INPUT # 进入
FORWARD # 转发
OUTPUT # 出去
ACCEPT # 将封包放行
REJECT # 拦阻该封包
DROP # 丢弃封包不予处理
-A # 在所选择的链(INPUT等)末添加一条或更多规则
-D # 删除一条
-E # 修改
-p # tcp、udp、icmp0相当于所有all!取反
-P # 设置缺省策略(与所有链都不匹配强制使用此策略)
-s # IP/掩码(IP/24)主机名、网络名和清楚的IP地址 !取反
-j # 目标跳转,立即决定包的命运的专用内建目标
-i # 进入的(网络)接口 [名称] eth0
-o # 输出接口[名称]
-m # 模块
--sport # 源端口
--dport # 目标端口
iptables-restore < 规则文件 # 导入防火墙规则
/etc/init.d/iptables save # 保存防火墙设置
iptables -t filter -D INPUT -p icmp -j REJECT #删除入站icmp都会被拒绝的链条
iptables -t filter -I INPUT -p icmp -j REJECT #-I在链表开头插入,-A在链表之后添加
iptables -D INPUT 1 //删除INPUT第一条规则
iptables -A OUTPUT -p icmp -j REJECT #添加链条OUTPUT禁止icmp出站
iptables -F #清除所有表的所有连的规则
iptables -t nat -F #指定清除NAT表的链规则
iptables -t filter -P FORWARD DROP #filter转发默认被丢掉
iptables -t filter -P FORWARD DROP #filter入站默认被丢掉
iptables -A FORWARD -p icmp -j ACCEPT #"!"取反,转发除icmp外所有包。
iptables -I INPUT -s 10.20.30.1 -j drop #丢弃来自10.20.30.1的包
iptables -I OUTPUT -d 8.8.8.8 -j drop #丢弃目标地址为8.8.8.8的数据包
iptables -I INPUT -s 192.168.26.0/24 -j REJECT #拒绝来自26网段的ip
iptables -A FORWARD -s 192.168.26.0 -j DROP #丢弃来自26网段的数据包
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #开放80端口
iptables -A INPUT -p tcp --dport 20:22 -j ACCEPT #开放20至22端口的tcp数据传输
iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCERT #接受来自24网段的在53端口的udp数据转发
iptables -A FORWARD -d 192.168.24.0/24 -p udp --sport 53 -j ACCPT #接受目标24网段的在53端口的udp数据转发
iptables -I INPUT -i eth0 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP #TCP丢弃TCP标示符SYN,RST,ACK SYN
iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT #开放多个端口
iptables -I FORWARD -p tcp -m iprange --src-range 192.168.21.21-192.168.21.180 -j ACCEPT #ip地址匹配
iptables -A INPUT -m mac --mac-source 00:0c29:c0:55:3f -j DROP #mac地址匹配
iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP #禁止转发与正常TCP连接无关的非--syn请求数据包
iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m state --state ESTALISHED -j ACCEPT
iptables -p INPUT DROP
#除了请求80端口的数据包全都丢掉
iptables -t nat -A POSTROUTING -s 192.168.22.0/24 -o eth0 -j SNAT --to 192.168.1.118 #共享上网或者vpn转发
echo 1 > /proc/sys/net/ipv4/ip_forward # 在内核里打开ip转发功能
route add -net 10.10.20.0 netmask 255.255.255.0 gw 10.10.20.111 # 内网需要添加默认网关,并且网关开启转发
iptables -t nat -A PREROUTING -d 192.168.10.158 -p tcp --dport 9999 -j DNAT --to 10.10.20.55:22 #ssh转发
iptables -t nat -A PREROUTING -i eth0 -d 22.22.22.123 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100 #发布服务器
iptables -t nat -nL # 查看转发