之前记录过这篇笔记:使用firewall-cmd限制ssh只能从指定IP段访问,现在对安全的要求更严格了,对内网环境的特定服务器,现在只允许指定IP或IP段进行访问,其他一律屏蔽,配置步骤如下:
# 先确认并开启firewalld服务
$ sudo systemctl status firewalld
$ sudo systemctl enable firewalld
$ sudo systemctl start firewalld
# 直接编辑xml配置文件,比用firewall-cmd命令更方便其实(CentOS7里面默认就一个public.xml配置文件)
# Ubuntu系统中的默认public.xml配置文件位于/usr/lib/firewalld/zones
$ sudo vim /etc/firewalld/zones/public.xml
配置文件修改内容,移除所有<service>
标签内容,然后添加允许访问的IP或IP段:
<?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 incoming connections are accepted.</description>
<!-- 允许单个IP地址访问本服务器所有端口 -->
<rule family="ipv4">
<source address="10.1.1.13/32"/>
<accept/>
</rule>
<!-- 允许IP段访问本服务器所有端口 -->
<rule family="ipv4">
<source address="10.1.2.0/24"/>
<accept/>
</rule>
<!-- 允许IP段访问本服务器指定端口 -->
<rule family="ipv4">
<source address="10.1.3.0/24"/>
<port protocol="tcp" port="22"/>
<accept/>
</rule>
<!-- 允许IP段访问本服务器指定端口范围 -->
<rule family="ipv4">
<source address="10.1.4.0/24"/>
<port protocol="tcp" port="1000-1200"/>
<accept/>
</rule>
<!-- 禁止指定IP访问本服务器 -->
<rule family="ipv4">
<source address="10.1.1.1"/>
<reject/>
</rule>
</zone>
改完配置文件后重载一下防火墙服务
$ sudo firewall-cmd --reload