启动:
service iptables start
保存规则:
iptables-save > /etc/sysconfig/iptables
生成保存规则的文件 /etc/sysconfig/iptables,
也可以用
service iptables save
它能把规则自动保存在/etc/sysconfig/iptables中。
iptable基本操作
iptables -L 列出iptables规则
iptables -F 清除iptables内置规则
iptables -X 清除iptables自定义规则
设定默认规则
在iptables规则中没有匹配到规则则使用默认规则进行处理
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
示例配置SSH规则 允许全部IP访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
只允许192.168.0.3的机器进行SSH连接
iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT
如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.
允许loopback回环通信
IPTABLES -A INPUT -i lo -p all -j ACCEPT
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT
输入以下命令查看到每个规则chain的序列号。
iptables -L -n --line-number
最后输入以下命令根据序列号删除指定一条防火墙规则即可。
iptables -D INPUT 3
#删除INPUT的第三条已添加规则,这里3代表第几行规则
#注意,当删除一条规则之后行号有变动!不可一口气删除多规则,否则可能会与预期不符
拒绝全部IP访问某一端口:
iptables -A INPUT -p tcp --dport 3306 -j DROP
#注意,这是拒绝所以IP访问3306,除添加允许的规则
#同事也会拒绝本机localhost 访问3306
#如果只是单纯拒绝外面访问3306 允许特定IP访问3306
#建议配置特定IP访问3306 和开启默认拒绝入 iptables -P INPUT DROP
查询端口已经连接的IP,方便配置规则
netstat -an |grep 'ESTABLISHED' |grep '3306'
#查看已经连上3306端口的IP
允许源地址是192.168.0.0/24网段的IP访问(已包括192.168.0.1/32在内)
iptables -A INPUT -s 192.168.0.1/32 -j ACCEPT
#允许192.168.0.1/32 一个IP
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
#允许192.168.0.0/24 一段IP
允许目标地址是192.168.0.0/24网段的IP访问(已包括192.168.0.1/32在内)
iptables -A INPUT -d 192.168.0.1/32 -j ACCEPT
#允许192.168.0.1/32 一个IP
iptables -A INPUT -d 192.168.0.0/24 -j ACCEPT
#允许192.168.0.0/24 一段IP
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
#不添加DNS 无法解析