在启用了SELinux Enforcing的CentOS/RHEL 7/8和Fedora 33/32/31/30上修改SSH端口
时间:2020-02-23 14:37:46 来源:igfitidea点击:
在本指南中,我们将看到如何在SELinux以Enforcecing模式运行的情况下更改CentOS 7/8,RHEL 7/8和Fedora 33/32/31/30/29上的SSH服务端口。当SELinux在强制模式下运行时,它将强制执行SELinux策略,并根据SELinux策略规则拒绝访问。大多数Linux/Unix系统上的标准SSH端口是TCP端口22. 可以将其轻松更改为系统中其他应用程序不使用的自定义端口。
当SELinux在Enforcing模式下运行时,要设置的端口将需要重新标记,以便控制访问的策略规则可以接受ssh服务进行绑定。遵循以下讨论的步骤,以在Enforcing模式下运行SELinux的情况下更改CentOS/RHEL/Fedora服务器或者Desktop上的SSH端口。
备份当前的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
更改SSH服务端口
使用我们喜欢的文本编辑器vi,vim,nano e.t.c打开SSH服务配置文件。
sudo vi /etc/ssh/sshd_config
找到具有以下内容的行:
#Port 22
取消注释端口行,并设置要使用的新服务端口。不适使用端口33000。
Port 33000
保存更改并关闭文件。
在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
在Firewalld上打开SSH端口
始终建议保持防火墙服务运行并仅允许信任的服务。
sudo firewall-cmd --add-port=33000/tcp --permanent 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
重新启动sshd服务
重新启动ssh服务以使更改生效。
sudo systemctl restart sshd
验证ssh的监听地址。
$netstat -tunl | grep 33000 tcp 0 0 0.0.0.0:33000 0.0.0.0:* LISTEN tcp6 0 0 :::33000 :::* LISTEN