iptables使用

在iptables里有2个表,filter,nat。


filter表用作包抓取与匹配,nat用于地址转换。


 


filter表中有两个链,INPUT和FORWARD。


INPUT链匹配目的IP地址是本机的包。


FORWARD链匹配穿过本机的数据包。


 


nat表中有两个链,PREROUTING和POSTROUTING。


PREROUTING链用于修改目的地址DNAT。


POSTROUTING链用于修改源地址SNAT。


 


iptables -t 表 命令 链 规则号 匹配条件 -j 动作


 


阻止与通过:


 


添加规则,拒绝所有包:


iptables -t filter -A INPUT -j DROP


 


在INPUT链最初插入规则,拒绝所有的包:


iptables -t filter -I INPUT -j DROP


 


在INPUT链第二条之前插入规则,拒绝所有的包:


iptables -t filter -I INPUT 2 -j DROP


 


在INPUT链尾部添加规则,拒绝来自192.168.1.222的包:


iptables -t filter -A INPUT -s 192.168.1.222 -j DROP


 


在INPUT链中删除第2行规则:


iptables -t filter -D INPUT 2


 


在INPUT链中,替换第3条规则的动作:


iptables -t filter -R INPUT 3 -j ACCEPT


 


设置表默认策略为DROP:


iptables -t filter -P INPUT DROP


 


清空表中的所有规则链(不能清除默认策略):


iptables -t filter -F INPUT


iptables -t nat -F PREROUTING


 


查看所有的链规则:


iptables -t filter -vnL


iptables -t nat -vnL


iptables -t filter -vnL INPUT


 


阻止所有从192.168.1.22来的80端口的访问包:


iptables -t filter -A INPUT -s 192.168.1.22 --dport 80 -j DROP


 


阻止所有从192.168.1.22来的进入eth0的tcp包:


iptables -t filter -A INPUT -s 192.168.1.22 -p tcp -i eth0 -j DROP


 


阻止所有从本机前往192.168.1.25的包:


iptables -t filter -A OUTPUT -d 192.168.1.25 -o eth0 -j DROP


 


阻止所有从211.154.172.0网段前往本机的访问80的包:


iptables -t filter -A INPUT -s 211.154.172.0/24 -p tcp --dport 80


 


加入允许211.154.172.0前往本机访问的udp包:


iptables -t filter -A INPUT -s 211.154.172.0/24 -p udp -j ACCEPT


 


阻止来源于192.168.1.1的数据包通过本机:


iptables -t filter -A FORWARD -s 192.168.1.1 -j DROP


 


转发:


 


把eth0接到的TCP80数据包送往192.168.0.1


iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.1


 


把eth0接到的TCP80数据包送往192.168.0.1~192.168.0.10


iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.1-192.168.0.10


 


把eth0接到的TCP80数据包送往192.168.0.1


iptables -t nat -A POSTROUTING -j SNAT --to 10.10.10.1


 


同时匹配多端口,80和22


iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT


 


WEB服务器防护


iptables -A INPUT -i lo -j ACCEPT


iptables -A INPUT -p tcp -m muoltiport --dports 22,80 -j ACCEPT


iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


iptables -P INPUT DROP


 


网关:


echo "1" > /proc/sys/net/ipv4/ip_forward


iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE


 


限制内网用户:


iptables -A FORWARD -s 192.168.0.3 -j DROP


iptables -A FORWARD -m mac --mac-source 11:22:33:44:55:66 -j DROP


iptables -A FORWARD -d bbs.chinaunix.net -j DROP


 


内网对外做服务器:


iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.1.1


iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1521 -j DNAT --to 192.168.1.2:80


 


必加项:


echo "1" > /proc/sys/net/ipv4/ip_forward


echo "1" > /proc/sys/net/ipv4/tcp_syncookies


echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses


你可能感兴趣的:(命令,iptables,使用)