Linux iptables 防火墙配置速查手册
iptables 安装方式
yum install iptables
清空现有规则
iptables -F
iptables -X
iptables -Z
开放特定端口配置
允许本地回环接口通信(本机访问本机):
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
允许所有出站流量:
iptables -A OUTPUT -j ACCEPT
开放 SSH(22端口):
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
开放 HTTP(80端口):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
允许特定 IP 访问 SSH:
iptables -I INPUT -s 192.168.0.19 -p tcp --dport 22 -j ACCEPT
拒绝所有未明确允许的入站和转发流量:
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT
IP 屏蔽操作
屏蔽单个 IP:
iptables -I INPUT -s 123.45.6.7 -j DROP
屏蔽整个 /8 网段(123.0.0.0 至 123.255.255.255):
iptables -I INPUT -s 123.0.0.0/8 -j DROP
屏蔽 /16 网段(124.45.0.0 至 124.45.255.255):
iptables -I INPUT -s 124.45.0.0/16 -j DROP
屏蔽 /24 网段(123.45.6.0 至 123.45.6.255):
iptables -I INPUT -s 123.45.6.0/24 -j DROP
规则管理与维护
列出所有规则:
iptables -L -n
显示规则序号:
iptables -nL --line-number
删除指定规则(例如删除 INPUT 链中序号为 8 的规则):
iptables -D INPUT 8
保存当前规则:
service iptables save
重启 iptables 服务:
service iptables restart
配置文件路径
vi /etc/sysconfig/iptables
FTP 传输配置
开放主动模式 21 端口:
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
加载 FTP 关联模块:
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
允许已建立或相关的连接通过:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
限制特定 IP 访问特定端口
仅允许指定 IP 访问 SSH:
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 22 -j ACCEPT
注意:对于入站数据,--dport 表示目标端口(服务端监听端口);对于出站数据,--sport 表示源端口(本地发送端口)。-s 指定源地址,-d 指定目标地址。
默认策略设置
将所有链默认策略设为丢弃:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
yum 下载所需规则
yum 软件包管理器通常使用动态高端口,需要精心配置规则:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 10000:65535 -j ACCEPT
Ping 控制
允许 Ping:
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
禁止 Ping:
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP