文章目录
- 基本语法
- 常用操作参数
- 常见匹配条件
- 动作(目标)
- 示例用法
- 1. **允许本机访问 22 端口(SSH)**
- 2. 拒绝、允许 来自某个 IP、网段、服务 的连接
- 3. **清空规则**
- 4. **查看规则**
- 5. **设置默认策略为 DROP**
- 6. **保存规则 和恢复默认规则**
- 7. **生产环境一般修改**
- 8. **snat 网络源地址转换**
- 9. **dnat 端口转发**
基本语法
iptables [参数] [链] [匹配条件] [动作]
[参数]
:表示操作类型(如添加、删除规则等)[链]
:如 INPUT、OUTPUT、FORWARD[匹配条件]
:如 -s
、-d
、-p
等[动作]
:如 ACCEPT、DROP、REJECT
常用操作参数
参数 | 说明 |
---|
-A | 在指定链(如 INPUT)追加规则 |
-I | 在指定链的开头插入规则 |
-D | 删除规则(指定规则或行号) |
-R | 替换指定规则 |
-L | 显示当前所有规则 |
-F | 清空所有规则 |
-Z | 将计数器归零 |
-N | 创建自定义链 |
-X | 删除自定义链 |
-P | 设置默认策略(如 DROP) |
常见匹配条件
参数 | 说明 |
---|
-s | 源地址(如 -s 192.168.1.0/24 ) |
-d | 目标地址 |
-p | 协议(如 tcp、udp、icmp) |
--dport | 目标端口(需 -p 指定协议) |
--sport | 源端口 |
-i | 入站网卡(如 -i eth0 ) |
-o | 出站网卡 |
动作(目标)
动作 | 说明 |
---|
ACCEPT | 允许 |
DROP | 丢弃(无响应) |
REJECT | 拒绝(返回错误信息) |
LOG | 记录日志 |
DNAT / SNAT | 改变目标/源地址(需 -t nat 表) |
MASQUERADE | IP 伪装(用于 NAT) |
示例用法
1. 允许本机访问 22 端口(SSH)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
2. 拒绝、允许 来自某个 IP、网段、服务 的连接
iptables -A INPUT -s 192.168.1.100 -j DROP
iptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp --dport 8848 -j DROP
iptables -A INPUT ! -s 192.168.1.0/24 -j DROP
iptables -A INPUT -m multiport -p tcp --dport 80,8848,8823 -j DROP
iptables -I INPUT -p tcp --dport 1:100 -j DROP
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
vim /etc/sysctl.conf
net.ipv4.imcp_echo_ignore_all=1
3. 清空规则
iptables -D INPUT 1
iptables -F
4. 查看规则
iptables -L -n -v
iptables -nL -t nat --line-number
5. 设置默认策略为 DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
- 限制并发和速率
-m imit --limit 10/minute
iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 10/minute --limit-burst 5 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT -t filter DROP

6. 保存规则 和恢复默认规则
iptables-save > /etc/sysconfig/iptables
iptables-restore < /etc/sysconfig/iptables
7. 生产环境一般修改
先把需要的端口和服务ACCEPT
然后 关门 把默认状态改成DROP
8. snat 网络源地址转换
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.1.13
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
9. dnat 端口转发
iptables -t nat -A PREROUTING -d 192.168.1.13 -p tcp --dport 80 -j DNAT --to-destination 192.168.14:80
ip转发
也可以但是有点费公网ip 有点浪费