Linux防火墙仅允许指定IP或者IP段访问某个端口
CentOS 7中使用firewall-cmd来设置防火墙。
在防火墙未放通9088端口的情况下,仅允许192.168.80.0/24网段访问9088端口。
使用iptables --list 或者 firewall-cmd --list-all查看现有防火墙策略
iptables --list
firewall-cmd --list-all
如果有放通端口,使用以下指令,关闭端口开放
firewall-cmd --permanent --zone=public --drop-port=9088/tcp
通过firewall-cmd命令放通IP网段访问端口,默认在public zone中操作
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.80.0/24" port protocol="tcp" port="9088" accept'
通过firewall-cmd命令放通单个IP访问端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.90.3" port protocol="tcp" port="9088" accept'
删除其中的rich-rule
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.90.3" port protocol="tcp" port="9088" accept'
制定策略完成后,重新加载策略
firewall-cmd --reload
也可以通过修改配置文件的方式,创建策略
修改/etc/firewalld/zones/public.xml配置文件,如下有两个rule,分别允许192.168.80.2和3两个IP访问端口9088
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected inco
ming connections are accepted.</description>
<service name="ssh"/>
<service name="dhcpv6-client"/>
<rule family="ipv4">
<source address="192.168.80.2"/>
<port protocol="tcp" port="9088"/>
<accept/>
</rule>
<rule family="ipv4">
<source address="192.168.80.3"/>
<port protocol="tcp" port="9088"/>
<accept/>
</rule>
</zone>
修改配置文件后,同样需要重新加载策略
firewall-cmd --reload
- 上一篇: CentOS 6下(虚拟机)修改IP地址步骤
- 下一篇: systemd.timer定时任务
# iptables -I INPUT -p tcp --dport 80 -j DROP
# iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT