首页 > 运维干货 > Linux使用防火墙firewall-cmd限制ssh只允许从指定IP段或指定源IP访问
2020
10-15

Linux使用防火墙firewall-cmd限制ssh只允许从指定IP段或指定源IP访问

Linux7或Centos7以上版本系统可以使用系统自带的防火墙服务firewalld.service来对访问进行控制。本文主要说明如何使用firewall限制ssh连接访问。

实现过程如下:

1、设置firewall服务开机自启动

执行下面命令后,系统会提示创建服务,表示开机自启动设置成功,如果没有任何提示,则表示已经是开机启动状态。

systemctl enable firewalld

image.png

2、启动firewall服务

执行命令启动服务并查看服务运行状态,绿色字体显示running则表示服务运行正常。

systemctl start firewalld
systemctl status firewalld

image.png

3、开始配置访问策略,首先取消默认开启的没有访问限制的ssh服务,让ssh服务默认情况下拒绝连接。

执行下面的命令,系统会提示成功,表示设置完成

firewall-cmd --permanent --remove-service=ssh

image.png

4、配置允许访问ssh服务的控制策略

执行下面的命令,允许ip或ip段访问22端口的ssh服务,例如下面命令执行后,将允许192.168.1.0/24这个ip段允许访问ssh服务,注意端口要正确。

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
//备注:
//source address也可以设置为单个IP地址,例如192.168.1.1
//port可以为单个端口或端口范围,例如1-10000

image.png

5、重载firewall配置,使其生效

执行命令

firewall-cmd --reload

image.png

配置完成,可以使用下面命令查看目前防火墙生效的策略,可以看到已经有两条允许ssh连接的策略生效中~

firewall-cmd --zone=public --list-rich-rules

image.png


其他常用命令

删除之前的复杂规则,这里的内容需要与之前添加时的rule内容完全一致,可以复制粘贴过来

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'

手动开放指定端口

firewall-cmd --permanent --add-port=3306/tcp

删除开放的端口

firewall-cmd --permanent --remove-port=3306/tcp

开放指定服务(系统内置的)

firewall-cmd --permanent --add-service=http

删除服务

firewall-cmd --permanent --remove-service=http

添加白名单地址(单IP)

firewall-cmd --permanent --add-source=192.168.1.100
注: 白名单中的IP可以任意访问所有服务器可用的端口 这个白名单的作用不是这样的,有待继续研究

添加白名单地址(指定网络段CIDR格式)

firewall-cmd --permanent --add-source=192.168.1.0/24

删除白名单地址

firewall-cmd --permanent --remove-source=192.168.1.100

屏蔽指定IP地址

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"

屏蔽IP地址段

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"


手动编辑xml配置文件

除了上面的命令添加规则外,还可以直接编辑/etc/firewalld/zones/public.xml文件(改完后记得执行firewall-cmd --reload生效)



本文》有 0 条评论

留下一个回复