生产环境主机防火墙iptables 脚本
#!/bin/sh IPT=/sbin/iptables #remove ane exting rules $IPT -F $IPT -X $IPT -Z #setting for SSH $IPT -A INPUT -p tcp --dport 22 -s 192.168.132.0/24 -j ACCEPT $IPT -A INPUT -p tcp --dport 22 -s 192.168.10.0/24 -j ACCEPT #setting for loopback interface $IPT -A OUTPUT -o lo -j ACCEPT $IPT -A INPUT -i lo -j ACCEPT # this is default options $IPT --policy OUTPUT ACCEPT $IPT -P FORWARD DROP $IPT -P INPUT DROP #setting for looback interce #souce add spoconfig and other Bad Address $IPT -A INPUT -s 192.168.132.0/24 -p all -j ACCEPT $IPT -A INPUT -s 192.168.10.0/24 -p all -j ACCEPT $IPT -A INPUT -s 192.168.20.0/24 -p all -j ACCEPT $IPT -A INPUT -p tcp --dport 80 -j ACCEPT $IPT -A INPUT -p tcp --dport 443 -j ACCEPT $IPT -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT $IPT -A INPUT -p icmp -s 192.168.132.0/24 -m icmp --icmp-type any -j ACCEPT $IPT -A INPUT -p icmp --icmp-type 8 -j ACCEPT ##All of the bits are cleared $IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP $IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP $IPT INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP $IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP $IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP $IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP $IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /etc/init.d/iptables save 说明:tcp 状态标记 有SYN,ACK、FIN、RST、URG、PSH、ALL、NONE
SYN |
同步 |
ACK |
应答 |
FIN |
结束 |
RST |
重设 |
URG |
紧急 |
PSH |
强制推送 |
ALL |
所有 |
例如:根据TCP/IP 协议的握手原理、最常见的非法组合SYN/FIN 包由于SYN包是用来初始化连接的、因此它和FIN以及RST一起出现的时候就是恶意攻击了