iptables 配置白名单

本文指导如何使用iptables配置文件实现IP地址白名单功能,包括添加白名单列表、限制端口访问权限以及配置允许ping操作。

编辑iptables配置文件,将文件内容更改为如下,则具备了ip地址白名单功能
#vim /etc/sysconfig/iptables 

  1. *filter
  2. :INPUT ACCEPT [0:0]
  3. :FORWARD ACCEPT [0:0]
  4. :OUTPUT ACCEPT [0:0]
  5. -N whitelist
  6. -A whitelist -s 1.2.3.0/24 -j ACCEPT
  7. -A whitelist -s 4.5.6.7 -j ACCEPT
  8. -A INPUT -m state --state RELATED,ESTABLISHED -j whitelist
  9. -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist
  10. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j whitelist
  11. -A INPUT -p icmp -j ACCEPT
  12. -A INPUT -i lo -j ACCEPT
  13. -A INPUT -j REJECT --reject-with icmp-host-prohibited
  14. -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  15. COMMIT

6~8 行是添加白名单列表,可以是ip段或者单个ip地址
10~12行 注意的是“-j whitelist”而不是“-j ACCEPT”,前者将该端口访问权限限制在白名单内,后者为不限制
13行 任何ip地址都能ping通该主机,因为“-j ACCEPT”没有做相应限制

配置完毕后,运行命令重启防火墙使规则生效
#systemctl restart iptables.service

### 使用iptables配置白名单规则 通过 `iptables` 配置白名单是一种常见的网络安全措施,用于限制只有特定的 IP 地址可以访问服务器。以下是实现此功能的具体方法[^1]。 #### 1. 清空现有规则 在配置新的白名单规则之前,建议先清空现有的 `iptables` 规则以避免冲突。执行以下命令: ```bash iptables -F # 删除 INPUT, OUTPUT, FORWARD 三个链的所有规则 iptables -X # 删除所有用户定义的链 ``` 这些命令将清除所有现存的规则,确保从一个干净的状态开始配置[^1]。 #### 2. 设置默认策略 设置默认的链策略为拒绝所有入站流量,同时允许出站和转发流量。 ```bash iptables -P INPUT DROP # 默认拒绝所有入站流量 iptables -P OUTPUT ACCEPT # 默认允许所有出站流量 iptables -P FORWARD ACCEPT # 默认允许所有转发流量 ``` 通过设置默认策略,可以确保未明确允许的流量被自动拒绝[^1]。 #### 3. 添加白名单规则 接下来,添加允许特定 IP 地址访问的规则。例如,允许来自 `192.111.51.45` 和本机 `192.111.51.44` 的所有流量: ```bash iptables -A INPUT -s 192.111.51.45 -p all -j ACCEPT # 允许来自 192.111.51.45 的所有流量 iptables -A INPUT -s 192.111.51.44 -p all -j ACCEPT # 允许来自本机的所有流量 ``` 如果需要添加更多 IP 地址到白名单中,只需重复上述命令并替换 `-s` 参数中的 IP 地址即可[^1]。 #### 4. 确保本地回环接口可用 为了保证服务器上的本地服务能够正常运行,通常还需要允许本地回环接口(`lo`)的流量: ```bash iptables -A INPUT -i lo -j ACCEPT # 允许本地回环接口的流量 ``` #### 5. 保存规则 完成配置后,使用以下命令保存规则以确保系统重启后仍然有效(具体命令可能因操作系统而异): - 在 CentOS/RHEL 上: ```bash service iptables save ``` - 在 Ubuntu/Debian 上: ```bash iptables-save > /etc/iptables/rules.v4 ``` ### 示例代码 以下是一个完整的脚本示例,用于配置白名单规则: ```bash #!/bin/bash # 清空现有规则 iptables -F iptables -X # 设置默认策略 iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT # 添加白名单规则 iptables -A INPUT -s 192.111.51.45 -p all -j ACCEPT iptables -A INPUT -s 192.111.51.44 -p all -j ACCEPT iptables -A INPUT -i lo -j ACCEPT # 保存规则 iptables-save > /etc/iptables/rules.v4 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值