可参考:连接
iptables语法:
-I (插入)规则有优先级 最上面最高
filter表
1.查看filter表的规则链:
iptables -t filter -L
(默认对ip进行域名解析,-nL不解析)
显示filter表的INPUT规则链的规则带编号:
iptables -t filter -L INPUT --line-number
2.向INPUT链中添加规则,拒绝某ip进入防火墙的icmp数据。
3.通过编号删除filter表INPUT链的某个规则:
4.禁止从某网段的主机访问任何IP的80与443端口(该流量为出去的所以使用OUTPUT):
iptables -t filter -A OUTPUT -s 192.168.223.0/24 -p tcp --dport 80 -j DROP
使用--dport 必须使用 -p
5.设置默认是模式(接受,拒绝)
iptables -t filter -P INPUT DROP
将INPUT规则链的默认模式改为拒绝(DROP)
6.转发
先将默认模式设为拒绝
iptables -t filter -P FORWARD DROP
再允许192.168.1.0/24与192.168.2.0/24之间可互相转发
iptables -t filter -A FORWARD -s 192.168.1.0/24 -d 192.168.2.0/24 -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.2.0/24 -d 192.168.1.0/24 -j ACCEPT
7.报文检查:
iptables 常用附加模块:
按包状态匹配 (state)
-m state --state 状态
NEW:当建立tcp连接,三次握手发送 syn
时将该会话标记为new
ESTABLISHED:当三次握手完成,tcp会话建立,或者udp建立标记为ESTABLISHED(稳定的)
RELATED:相关联如 21与20;80与443等。
tcp会话状态为 NEW,ESTABLISHED,RELATED时接受
iptables -t filter -A FORWARD -d 8.8.8.8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
nat表
1.nat表的3个规则链
2.代理与端口转发