iptables例子
一些例子。
设置链的默认规则
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
删除所有规则和多余的链
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
查看现有规则
iptables -L -v -n --line-number
-L
列出规则-v
详细模式-n
不查找IP的reverse DNS,以免节约时间。不然显示结果的时候会比较卡。--line-number
显示行号
通用规则
放行本机访问本地端口,放行已建立链接的数据包,丢弃未知数据包。
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m conntrack --ctstate RELATED,ESTABLISHED --jump ACCEPT
iptables -I INPUT -m conntrack --ctstate INVALID --jump DROP
-m conntrack --ctstate
和-m state --state
有什么区别?
后者已经被前者取代,在新版本的操作系统中,后者会直接被转换为前者。ctstate
有哪些?是什么意思?
NEW,这个数据包想开启一个连接。
RELATED,这个数据包想开启一个连接,且其他已知连接相关。
ESTABLISHED,已建立连接的数据包。
INVALID,找不到与其相关的连接。
允许IP和IP段
iptables -I INPUT --protocol tcp --src 1.1.1.1 --jump ACCEPT
iptables -I INPUT --protocol all --src 1.1.1.1/24 --jump ACCEPT
开放指定端口
一条命令可以开启1个端口,也可以同时开启多个端口。
iptables -I INPUT -p tcp --dport 80 --jump ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https --jump ACCEPT
允许指定协议
iptables -I INPUT --protocol tcp --dport 80 --jump ACCEPT
iptables -I INPUT --protocol udp --dport 80 --jump ACCEPT
新增规则
# 把规则插入最顶端
iptables -I INPUT --protocol tcp --dport 80 --jump ACCEPT
# 将新规则插入到2的位置
iptables -I INPUT 2 --protocol tcp --dport 80 --jump ACCEPT
删除规则
删除INPUT链第二条规则
iptables -D INPUT 2
删除指定规则
iptables -D INPUT --protocol tcp --dport 80 --jump ACCEPT
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。