作为一个系统管理员,将SSH端口号更改为默认的 22 可以说是保障服务器安全的基本操作。因为 SSH 的默认端口号是 22,是所有人(包括黑客)都知道,如果不修改 SSH 端口,服务器将面临频繁的暴力破解。
所以将 SSH 端口更改为其它将增强服务器的安全性,因此不坏好心的人不会知道 SSH 在哪个端口上进行通信。虽然修改端口不会阻止某个决心闯入您服务器的人,但至少会帮你排除掉一大批机械性的端口扫描,暴力破解等攻击。
个人认为 CentOS 7 较为安全的方法是:
我认为,保护SSH服务器的最佳方法是使用 SSH 证书加密来实现无密码登录,并在安全组上面配置策略,只允许指的 IP 段访问指的端口。使用此方法,仅允许具有加密密钥的计算机使用SSH协议登录。
Centos 7端口修改步骤:
因为我这里是使用 Root 账户登录,如果你是谷歌云这类不是 Root 权限登录的服务器的需要在前面加上 Sudo 命令。
1.备份原有 SSH 配置
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
2.配置 SSH 新的登录端口
打开 SSH 配置文件
vi /etc/ssh/sshd_config
这里我们强烈建议先保留 22 端口,如果直接修改了,会有可能出线配置错误等原因,造成无法登录服务器哦。
所以我们先增加一个新端口,以确保可以通过新端口可以正常连接后,再禁用掉 22 端口。这都是经验教训啊!!
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
Port 2222
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
修改完毕之后,按 ECS 然后输入 :WQ 保存退出。
3.配置防火墙允许新的 SSH 端口通讯
Centos 7已经默认使用 Firewall了。
firewall-cmd --permanent --zone=public --add-port=2222/tcp
如果报错:FirewallD is not running
,表示防火墙还没有开启,可直接跳过此步骤。
如果正常执行了,需要重新加载防火墙配置使其生效。
firewall-cmd --reload
4. 重启 SSH 服务使我们新增端口失效。
systemctl restart sshd.service
通过运行以下命令验证 SSH 现在是否在新端口上运行。
ss -tnlp | grep ssh
反馈如下:
[root@web ~]# ss -tnlp | grep ssh
LISTEN 0 128 *:2222 *:* users:(("sshd",pid=22174,fd=3))
LISTEN 0 128 [::]:2222 [::]:* users:(("sshd",pid=22174,fd=4))
有上诉结果及表面修改已经成功,返回第二步把 22 端删掉即可。
如果您是使用阿里云或者 Vultr 这类服务器的话,还需要配置安全组,才可正常通讯哦。