云网牛站
所在位置:首页 > Linux安全 > 使用SELinux强制更改CentOS、RHEL 7/8、Fedora上的SSH端口

使用SELinux强制更改CentOS、RHEL 7/8、Fedora上的SSH端口

2019-09-06 08:52:45作者:李燕稿源:云网牛站

在本文中,我们将了解如何在执行模式下运行SELinux的情况下更改CentOS 7/8、RHEL 7/8、Fedora 31/30/29上的SSH服务侦听端口,当SELinux以强制模式运行时,它会强制执行SELinux策略并拒绝基于SELinux策略规则的访问,大多数Linux/Unix系统上的标准SSH端口是TCP端口22,这可以很容易地更改为系统中其他应用程序未使用的自定义端口。当SELinux在Enforcing模式下运行时,要设置的端口将需要重新标记,以便控制访问的策略规则可以接受ssh服务进行绑定,按照下面的步骤更改CentOS/RHEL/Fedora服务器或桌面上的SSH端口,SELinux在Enforcing模式下运行。

使用SELinux强制更改CentOS、RHEL 7/8、Fedora上的SSH端口

 

步骤1:备份当前SSH配置

登录到你的CentOS/RHEL/Fedora系统并备份当前的ssh守护程序配置文件:

date_format=`date +%Y_%m_%d:%H:%M:%S`

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$date_format

确认:

$ ls /etc/ssh/sshd_config*

/etc/ssh/sshd_config  /etc/ssh/sshd_config_2019_09_05:21:40:10

 

第2步:更改SSH服务端口

使用你喜欢的文本编辑器打开SSH服务配置文件:vi、vim、nano都可,参考玩转Linux必备的Vim技能,一文读懂Vim的安装和配置,学习之法

sudo vi /etc/ssh/sshd_config

找到具有以下内容的行:

#Port 22

取消注释Port行并设置要使用的新服务端口,我将使用33000端口:

Port 33000

保存更改并关闭文件。

 

步骤3:在SELinux上允许新的SSH端口

标记为SSH的默认端口为22:

$ semanage port -l | grep ssh

ssh_port_t  tcp 22

如果要允许sshd绑定到配置的网络端口,则需要将端口类型修改为ssh_port_t:

sudo semanage port -a -t ssh_port_t -p tcp 33000

确认新端口已添加到ssh的允许端口列表中:

$ semanage port -l | grep ssh

ssh_port_t  tcp 33000, 22

 

第4步:在Firewalld上打开SSH端口

始终建议保持防火墙服务正常运行,并且只允许受信任的服务:

sudo firewall-cmd --add-port=33000/tcp --permananet

sudo firewall-cmd --reload

如果未安装Firewalld,请使用yum进行安装并启动该服务:

sudo yum -y install firewalld

sudo systemctl enable --now firewalld

sudo firewall-cmd --add-port=33000/tcp --permanent

sudo firewall-cmd --reload

你现在可以删除ssh服务了:

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

sudo firewall-cmd --reload

 

第5步:重新启动sshd服务

重新启动ssh服务以使更改生效:

sudo systemctl restart sshd

验证ssh的侦听地址,运行netstat -tunl | grep 33000命令即可查看:

使用SELinux强制更改CentOS、RHEL 7/8、Fedora上的SSH端口

 

相关主题

Linux下更改SSH端口、重启sshd及SSH安全策略

精选文章
热门文章