centos7设置IP白名单

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

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

6~8 行是添加白名单列表,可以是ip段或者单个ip地址

10~12行 注意的是“-j whitelist”而不是“-j ACCEPT”,前者将该端口访问权限限制在白名单内,后者为不限制

13行 任何ip地址都能ping通该主机,因为“-j ACCEPT”没有做相应限制

配置完毕后,运行命令重启防火墙使规则生效

1
systemctl restart iptables.service