#允许调用localhost的应用

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT


#允许外部来ping

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

允许其他主机来发送MTU调整报文

iptables -A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT

#允许访问80、443端口

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT


#允许某个ip访问22端口tcp

iptables -A INPUT -p tcp -s 104.224.147.43 --dport 22 -j ACCEPT

#允许某个ip访问161端口udp

iptables -A INPUT -p udp -s 104.224.147.43 --dport 161 -j ACCEPT


#禁止其他所有流量进入

iptables -A INPUT -j DROP

#允许本机响应编号为01-08的数据包发出

iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

#禁止本机主动发出外部链接

iptables -A OUTPUT -j DROP


#禁止本机转发数据包

iptables -A FORWARD -j DROP

#删除某条规则

iptables -D INPUT 2


开放被其他服务调用的本地服务:如被nginx调用的php-fpm服务,如果只是设置允许ESTABLISHED状态的连接出去则php-fpm的9000端口是出不去的,这时要在OUTPUT链上放行9000端口。

iptables -I OUTPUT -p tcp --dport 9000 -j ACCEPT

或允许本地服务发出:

iptables -I OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT


限定端口进出:

iptables -A INPUT -p tcp -s 0.0.0.0/0 -d 192.168.0.16 -i eth0 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.0.16 -d 0.0.0.0/0 -o eth0 -j ACCEPT

设置链的默认策略:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

允许ping:

iptables -I OUTPUT 2 -s 192.168.0.16 -p icmp --icmp-type 8 -j ACCEPT
iptables -I INPUT 3 -d 192.168.0.16 -p icmp --icmp-type 0 -j ACCEPT

同时开放多IP多端口:

iptables -I INPUT -p tcp -m iprange --src-range 192.168.0.6-192.168.0.50 -d 192.168.0.16 -m multiport --dports 22,80,8080 -j ACCEPT