#1.语法
iptables [选项][参数]
#2.选项
-t<表>: 指定要操作的表;
-A: 向规则链中添加条目;
-D: 从规则链中删除条目;
-I: 向规则链中插入条目;
-R: 代替规则链中的条目;
-L: 显示规则链中的条目;
-F: 清除规则链中的条目;
-Z: 清空规则链中的数据包计算器和字节计算器;
-N: 创建用户自定义规则链;
-P: 定义默认的规则链;
-p: 指定匹配的数据包协议类型;
-s: 指定要匹配的数据包源ip地址;
-j<目标>: 指定要跳转的目标;
-i<网络接口>: 指定数据包进入本机的网络接口;
-o<网络接口>: 指定数据包要离开本机使用的网络接口;
#3.参数
iptables 命令选项输入顺序:
iptables -t 表名 <-A/I/D> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源ip/源子网> --sport 源端口 <-d 目标ip/目标子网> --dport 目标端口 -j 动作
表名包含:
raw: 高级功能,网址过滤
mangler: 数据包修改(QOS)用于实现服务质量
nat: 地址转换,用户网关路由器
filter: 包过滤,用于防火墙规则
规则链名:
INPUT: 处理入数据包
OUTPUT: 处理出数据包
FORWARD: 处理转发数据包
PREROUTING: 用于目标地址转换(DNAT)
POSTROUTING: 用户源地址转换(SNAT)
动作包含:
accept: 接受数据包
drop: 丢弃数据包
redirect: 重定向、映射、透明代理
snat: 源地址转发
dnat: 目标地址转发
masqueread: ip伪装(nat), 用于adsL
log: 日志记录
#4.基本事例
#4.1清除iptables规则
iptables -F
iptables -X
iptables -Z
#4.2 设置默认规则
iptables -P INPUT reject
iptables -P PORWARD reject
iptables -P OUTPUT ACCEPT
#4.3 设置本地回环
iptables -A INPUT -i lo -j ACCEPT
#4.4 允许已建立或相关连的连通
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#4.5 开放端口【建议加上-m】
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
#4.6 封禁IP
iptables -I INPUT -s 124.10.13.10 -j DROP
#4.7 其他常用命令
iptanles -nvL 查询已经添加的规则链
iptables -nL --line-numbers 将所有iptables以序号标记显示
iptables -D INPUT 8 删除input链序号为8的规则
iptables-save > /root/iptable.rules 保存到文件
iptables-restore < /root/iptable.rules 重载
#5. 其他用法
#5.1 默认input, output都reject
iptables -P INPUT -j reject
iptables -P OUTPUT -j reject
#5.2 开放端口事例
# 允许在eth0上接入ssh
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 允许特殊网段接入ssh
iptables -A INPUT -i eth -p tcp -s 192.168.100.0/24 --dport 22 -m state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 同时开放 22,443,80
iptables -A INPUT -i eth0 -p tcp -m multiport --dport 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --sport 22,80,443 -m state --state ESTABLISHED -j ACCEPT
# 要连接外面ssh
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
#5.3 限流
5.3.1 限制端口最大链接数
|
|
#5.3.2 限制端口传输速度
|
|