常用的iptables命令组合

iptables 是一个强大的防火墙工具,用于配置 Linux 内核的网络数据包过滤规则。以下是一些常用的 iptables 命令组合:

1. 查看当前的 iptables 规则

sudo iptables -L -v -n
  • -L:列出所有链中的规则。
  • -v:显示详细信息(如数据包和字节计数)。
  • -n:以数字形式显示 IP 地址和端口号,而不是尝试解析主机名和服务名。

2. 清空所有规则

sudo iptables -F
  • -F:清空所有链中的规则。

3. 删除特定链中的规则

sudo iptables -D INPUT 1
  • -D:删除指定链中的规则。
  • INPUT:指定要操作的链(例如 INPUTOUTPUTFORWARD)。
  • 1:指定要删除的规则编号(从 1 开始)。

4. 设置默认策略

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
  • -P:设置链的默认策略。
  • DROP:默认丢弃所有数据包。
  • ACCEPT:默认接受所有数据包。

5. 允许本地回环接口的流量

sudo iptables -A INPUT -i lo -j ACCEPT
  • -A:追加规则到指定链。
  • -i lo:指定输入接口为本地回环接口。
  • -j ACCEPT:接受匹配的数据包。

6. 允许已建立的连接

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  • -m conntrack:使用连接跟踪模块。
  • --ctstate ESTABLISHED,RELATED:匹配已建立的连接或相关连接。
  • -j ACCEPT:接受匹配的数据包。

7. 允许特定端口的流量

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  • -p tcp:指定协议为 TCP。
  • --dport 22:指定目标端口为 22(SSH)。
  • --dport 80:指定目标端口为 80(HTTP)。
  • --dport 443:指定目标端口为 443(HTTPS)。
  • -j ACCEPT:接受匹配的数据包。

8. 拒绝来自特定 IP 的流量

sudo iptables -A INPUT -s 192.168.1.100 -j DROP
  • -s 192.168.1.100:指定源 IP 地址。
  • -j DROP:丢弃匹配的数据包。

9. 限制每秒的连接数

sudo iptables -A INPUT -p tcp --dport 22 -m limit --limit 5/min --limit-burst 10 -j ACCEPT
  • -m limit:使用限速模块。
  • --limit 5/min:限制每分钟最多 5 个新连接。
  • --limit-burst 10:允许突发的最大连接数为 10。
  • -j ACCEPT:接受匹配的数据包。

10. 保存和恢复 iptables 规则

CentOS 6 默认情况下不会自动保存 iptables 规则,因此需要手动保存和恢复。

保存规则
sudo service iptables save
恢复规则
sudo service iptables restart

11. 配置 NAT 和端口转发

# 启用 IP 转发
echo 1 > /proc/sys/net/ipv4/ip_forward

# 配置 NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 端口转发
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:8080
  • -t nat:指定表为 NAT 表。
  • -A POSTROUTING:在 POSTROUTING 链中添加规则。
  • -o eth0:指定输出接口。
  • -j MASQUERADE:启用 IP 地址伪装。
  • -A PREROUTING:在 PREROUTING 链中添加规则。
  • --dport 80:指定目标端口为 80。
  • --to-destination 192.168.1.10:8080:将流量转发到 192.168.1.10 的 8080 端口。

12. 阻止特定国家的 IP 地址

可以使用 ipset 工具来管理大量的 IP 地址列表,并与 iptables 结合使用。

安装 ipset
sudo yum install -y ipset
创建 IP 集
sudo ipset create blocklist hash:net
添加 IP 地址到集
sudo ipset add blocklist 192.168.1.0/24
使用 iptables 匹配 IP 集
sudo iptables -I INPUT -m set --match-set blocklist src -j DROP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值