iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP(检查 SYN,RST标识位,匹配到 SYN,RST的丢弃,SYN是建立连接,RST是重置连接,所以这样的包是有问题的)
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP (检查 SYN,FIN标识位,匹配到 SYN,FIN的丢弃,SYN是建立连接,FIN是结束连接,所以这样的包是有问题的)
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
SNAT 和 DNATSNAT:
假如我要让公司192.168.10.0/24段的地址都通过linux服务器的eth0 :123.123.123.123上网
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 123.123.123.123
DNAT
GATEWAY eth0:123.123.123.123 eth1:192.168.10.1 内网主机:192.168.10.10
要使访问123.123.123.123的80 自动跳到192.168.10.10的80端口上
iptables -t nat -A PREROUTING -p tcp -d 123.123.123.123 --dport 80 -j DNAT --to-destination 192.168.10.10:80
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.10 --dport 80 -j SNAT --to-source 192.168.10.1 (内网之间进行nat才加上)
第一条:将外部数据包的目的地址改到内网主机的指定端口
第二条:转发前,将外部源地址改为内网本地地址
更多iptables相关教程见以下内容:
CentOS 7.0关闭默认防火墙启用iptables防火墙