在本文中,我们将了解如何在执行模式下运行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模式下运行。
步骤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命令即可查看:
相关主题 |