通过在CentOS / RHEL 7/8和Fedora 31/30/29上强制SELinux来更改SSH端口


从下面的链接下载并以PDF格式支持本文。

theロード下载PDF指南

关门


本指南描述了如何更改以Enforcing模式运行的SELinux上的CentOS 7/8,RHEL 7/8,Fedora 31/30/29上的SSH服务端口。什么时候 SELinux 继续 模式,它 实施SELinux 根据政策拒绝访问 SELinux 政策规则。大多数Linux / Unix系统上的标准SSH端口是TCP端口22。可以轻松将其更改为系统中另一个应用程序未使用的自定义端口。

如果SELinux在强制模式下运行,则需要重新标记配置的端口,以便控制访问的策略规则可以接受ssh服务进行绑定。要更改以CenOS / RHEL / Fedora服务器或以Enforcing模式运行的SELinux的桌面的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服务端口

使用您喜欢的文本编辑器(vi,vim,nano e.t.c)打开SSH服务配置文件。

sudo vi /etc/ssh/sshd_config

找到以下行:

#Port 22

取消注释端口行,并设置要使用的新服务端口。使用端口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 --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

步骤5:重新启动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    

其他文章:

如何在Linux / Unix系统上禁用SSH反向DNS查找

如何在CentOS / RHEL上为SSH设置两因素(2FA)身份验证

使用Linux CLI创建SSH隧道的简单方法

如何在Linux / Unix上更改或更新SSH密钥密码

Linux SysAdmins ssh速查表


从下面的链接下载并以PDF格式支持本文。

theロード下载PDF指南

关门


Sidebar