Centos 7 SSh–端口号的更改

前言:开启某服务或软件的端口,要从该服务或软件监听的端口(多以修改配置文件为主),SeLinux 和防火墙(FireWall)的安全策略下手。如果使用阿里云,腾讯等第三方服务器还需要对管理控制台的安全组下手。

下面进入主题,如果有什么问题请查看下面的补充栏:
第一步:修改 SSH 配置文件(注意是 sshd_config 而不是 ssh_config,多了个 d)

vim /etc/ssh/sshd_config

找到“#Port 22”,这一行直接键入“yyp”复制该行到下一行,然后把两行的“#”号即注释去掉,修改成:

Port 22
Port 10022

SSH 默认监听端口就是 22,如果你不强制说明别的端口,”Port 22”注不注释都是开放 22 访问端口。上面我保留了 22 端口,防止之后因为各种权限和配置问题,导致连 22 端口都不能访问了,那就尴尬了。等一切都 ok 了,再关闭 22 端口。
Ok,继续,我增加了 10086 端口,大家修改端口时候最好挑 10000~65535 之间的端口号,10000 以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行。

第二步:如果你关闭了 SELinux,可以忽略第二步。
先查看 SELinux 开放给 ssh 使用的端口

semanage port -l|grep ssh
如果提示:-bash: semanage: command not found,表示没有安装 semanage
安装 yum -y install policycoreutils-python.x86_64

我的系统打印如下:

[root@****** ~]# semanage port -l|grep ssh
ssh_port_t                     tcp      22

可知,SELinux 没有给 SSH 开放 10086 端口,那么我们来添加端口:

semanage port -a -t ssh_port_t -p tcp 10022

完成后,再次查看

semanage port -l|grep ssh  
 
[root@****** ~]# semanage port -l|grep ssh
ssh_port_t                     tcp      10022,22

如果确认在配置文件中添加了和开放了端口,执行上一步未显示的话无需在意

第三步:如果你关闭了防火墙,可以忽略第三步(不开防火墙会很危险,建议开启)

先查看防火墙是否开启了 10022 端口:

firewall-cmd --zone=public --query-port=10022/tcp

打印结果如下:
no

表示没有开放端口,这就要添加端口

firewall-cmd --zone=public --add-port=10086/tcp --permanent 
 
打印结果:
success

重新加载防火墙策略:

firewall-cmd --reload

第四步:重启 SSH 服务和防火墙,最好重启一下服务器

systemctl restart sshd
systemctl restart firewalld.service
shutdown -r now

第五步:尝试用 10086 登录 SSH,或者进入该服务器直接本地访问 SSH 如下:

ssh root@localhost -p 10022

如果成功,说明 10086 已经完全可以使用了,接下来你就可以根据上述步骤 sshd_config Port22 注释掉,SELinux 和防火墙(Firewalld)关闭 22 端口就 OK,大工造成!

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容