使用firewall-cmd限制ssh只能从指定IP段访问

Posted augusite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用firewall-cmd限制ssh只能从指定IP段访问相关的知识,希望对你有一定的参考价值。

实现过程

下面的命令将配置192.168.1.0/24整个网段的IP允许访问服务器的22端口

// 先移除默认开启的没有访问限制的ssh服务
# firewall-cmd --permanent --remove-service=ssh
// 添加复杂规则,只允许指定IP段访问22端口
# firewall-cmd --permanent --add-rich-rule=‘rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept‘
// 使上面配置生效
# firewall-cmd --reload
// 查看当前配置信息
# firewall-cmd --list-all

备注:
source address也可以设置为单个IP地址,例如192.168.1.1
port可以为单个端口或端口范围,例如1-10000
其他常用命令
删除之前的复杂规则,这里的内容需要与之前添加时的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生效)

 

    参考文档(写的很详细)
    https://www.liquidweb.com/kb/an-introduction-to-firewalld/

以上是关于使用firewall-cmd限制ssh只能从指定IP段访问的主要内容,如果未能解决你的问题,请参考以下文章

用ChrootDirectory限制SFTP登录的用户只能访问指定目录且不能进行ssh登录

如何限制SSH用户访问Linux中指定的目录

linux解除绑定ssh源地址

ssh root用户开放指定ip登录,不影响其他用户

ssh/sftp配置和权限设置

linux下ssh/sftp配置和权限设置