ACCEPT
ACCEPT:允许数据包通过。
DROP
DROP: 直接丢弃数据包,不作处理,这时候客户端会感觉自己的请求沉入大海,等过了超时时间才会有反应。
REJECT
REJECT:拒绝数据包,会给一个拒绝的响应 –reject-with ‘message’ 可以指定如果被拒绝的情况下的回应消息,message默认是icmp-port-unreachable,还可以有如下选择
icmp-net-unreachable
icmp-host-unreachable
icmp-port-unreachable
icmp-proto-unreachable
icmp-net-prohibited
icmp-host-prohibited
icmp-admin-prohibited
SNAT
SNAT:源地址转换(Source Network Address, Translation):内部报文发送出去时,报文的源IP被修改,SNAT报文必须存在POSTROUTING链中,也就是从内部发出去的报文经过的最后一道关卡,对应的–to-source选项
所有从内部机器IP=192.168.10.111发过来的报文都会被隐藏源IP,并转发到192.168.1.111机器上
iptables -t nat -I POSTROUTING -s 192.168.10.111 -j SNAT –to-source 192.168.1.111
DNAT
DNAT:目标地址转换(Destination Network Address, Translation): 外部报文响应时,目标IP再次被修改,从外部网络发送到内部网络的报文,目的IP被修改,一般配置在 PREROUTING链中
所有从外部访问主机192.168.1.34对应的端口为53000的服务,都会被转发到192.168.100.100:53000 上,目标IP被修改
iptables -t nat -A PREROUTING -d 192.168.1.34 -p tcp -m tcp –dport 53000 -j DNAT –to-destination 192.168.100.100
MASQUEREAD
MASQUEREAD:MASQUEREAD与SNAT 类似,也是将内部发出去的报文映射成公网IP,不同是MASQUEREAD可以指定网卡,而不需要关心IP是什么,即使IP发生变化也可以正常映射
iptables -t nat -I POSTROUTING -s 192.168.10.111 -j -o eth0 MASQUEREAD
LOG
LOG:打印日志,对匹配到规则的请求打印日志,然后将数据包传给下一个规则,不做任何处理,日志会被记录到/var/log/messages里
–log-level 可以给指定的日志加级别:emerg,alert,crit,error,warn,notice,debug,info
–log-prefix 可以给指定的日志加标签,便于查看
REDIRECT
REDIRECT:在本机做端口映射
#将本机的80端口转发到8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
比如,如果你想把所有的80端口请求重定向到8080端口,可以使用REDIRECT处理动作;如果你想记录所有的被iptables过滤的请求,可以使用LOG处理动作;如果你想让所有来自内网的请求都被伪装成同一个IP地址,可以使用MASQUERADE处理动作;如果你想将来自某个IP的请求都转发到另一个地址,可以使用DNAT处理动作;如果你想将发出请求的IP地址都替换为指定的地址,可以使用SNAT处理动作;如果你想拒绝某个IP的连接请求并告知其原因,可以使用REJECT处理动作;如果你想默默地丢弃某个IP的连接请求,可以使用DROP处理动作。