怎样修改SSH端口号

2018年9月13日 | 分类: 【技术】

【介绍】

Linux服务器远程连接的SSH端口默认为22。很多机器人进行端口扫描、暴力破解就是从22开始。若您的密码还设置过于简单,那么可能中招。所以务必修改端口号。

【命令】

systemctl start sshd.service # 启动
systemctl stop sshd.service # 停止
systemctl restart sshd.service # 重启
systemctl status sshd.service # 状态
systemctl reload sshd.service # 重载

【常规】

参考:https://www.vultr.com/docs/changing-your-ssh-port-for-extra-security-on-centos-6-or-7
参考:https://blog.csdn.net/yanzi1225627/article/details/51470962

修改SSH端口号:

编辑 /etc/ssh/sshd_config :

#   Port 22
Port 2048

更新防火墙设置:

firewall-cmd --zone=public --add-port=2048/tcp --permanent

如果需要删除:

firewall-cmd --zone=public --remove-port=2048/tcp --permanent

重载配置使之生效:

firewall-cmd --reload

查看已放行端口:

firewall-cmd --zone=public --list-ports

重启SSH服务使之生效:

service sshd restart

【特例:阿里云】

如果是阿里云,需要在安全组规则中同步设置。

参考:https://help.aliyun.com/document_detail/25471.html?spm=5176.2020520101.0.d0.60c04df5KklC9G

实证成功。

【特例:DigitalOcean.com】

如果是DigitalOcean.com,需要在 Firewall Cloud 中同步设置。

然鹅未遂。SELinux缘故?

参考:http://www.178linux.com/72697
参考:https://blog.csdn.net/woailyoo0000/article/details/79782986

修改SSH端口号:

编辑 /etc/ssh/sshd_config :

#   Port 22
Port 2048

载入新的SSH设置:

systemctl restart sshd.service

报错;

Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.

原因是selinux启用了,并且selinux允许的sshd-port跟设置的port不匹配造成的。

那么先关闭selinux,然后设置SSH端口放行,最后进行为sshd服务添加selinux放行端口。

查看防火墙配置(CentOS7):

systemctl status firewalld

输出:

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

没有设置防火墙策略,那就不是防火墙的因素。

关闭selinux,尝试重启sshd服务:

查看selinux状态:

getenforce

输出:

Enforcing

关闭selinux:

setenforce 0

查看selinux状态:

getenforce

输出:

Permissive

重试重启SSH:

systemctl restart sshd

重启成功。

使用新端口SSH登入成功,

重新开启selinux并修改selinux端口标签:

启用selinux:

setenforce 1

查看selinux状态:

getenforce

输出:

Enforcing

查看selinux中sshd服务放行的端口号:

semanage port -l | grep ssh

输出:

ssh_port_t                     tcp      22

添加自定义sshd服务端口至selinux中:

semanage port -a -t ssh_port_t -p tcp 2048

查看selinux中sshd服务放行的端口号:

semanage port -l | grep ssh

输出:

ssh_port_t                     tcp      2048, 22

参考:https://www.v2ex.com/t/193637
参考:https://www.howtoing.com/how-to-troubleshoot-digitalocean-firewalls/
参考:https://www.digitalocean.com/community/questions/how-to-change-ssh-port-and-firewall-rule
参考:https://www.digitalocean.com/community/questions/custom-ssh-port-blocked-by-do

【参考】

参考:https://amon.org/fail2ban
参考:https://amon.org/firewalld