Linux 修改默认的 SSH 端口 22,以避免暴力破解密码 列印

  • 0

为了安全起见,我们先添加一个新的 SSH 端口,并为其添加对应的防火墙规则,然后尝试使用新端口连接服务器。
如果连接没有问题,再删除默认端口 22。
(这样做的原因是:如果直接修改端口,一旦出现问题可能无法连接 SSH,非常糟糕。)


添加 SSH 端口

 
vi /etc/ssh/sshd_config

打开文件后按 I 进入编辑模式,根据需要添加端口配置,编辑完成后按 ESC 退出编辑模式,再输入 :wq 保存退出。

我们在默认 SSH 端口配置下面添加一个新的端口,例如 23456:

 
Port 22 # 默认端口 22 配置,现在不要删除,避免修改后无法连接 SSH Port 23456 # 新增的 23456 端口配置

然后重启 SSH:

 
/etc/init.d/ssh restart # 如果提示找不到服务,则使用 /etc/init.d/sshd restart # CentOS7 使用 systemctl restart sshd.service

配置防火墙

先添加防火墙规则(示例端口 23456,可自行修改):

 
iptables -I INPUT -p tcp --dport 23456 -j ACCEPT

由于不确定你的服务器是否配置了开机自动读取防火墙规则,我把完整步骤写在下面,建议全部执行,避免 VPS 重启后新 SSH 端口未开放导致无法连接。


配置防火墙开机启动

以下命令用于配置防火墙开机自动启动,并保存当前规则,重启后自动加载。

CentOS 系统:

(注意:CentOS7 默认 firewall 而不是 iptables)

 
service iptables save chkconfig --level 2345 iptables on

以后保存防火墙规则只需执行:

 
service iptables save

Debian/Ubuntu 系统:

 
iptables-save > /etc/iptables.up.rules echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptables chmod +x /etc/network/if-pre-up.d/iptables

以后保存防火墙规则只需执行:

 
iptables-save > /etc/iptables.up.rules

测试新 SSH 端口

上述步骤完成后,请断开当前 SSH 连接,使用新端口(示例:23456)尝试连接服务器。

  • 如果能正常连接 → 继续下一步

  • 如果不能 → 使用旧端口 22 登录服务器排查问题


取消默认 SSH 端口 22

 
vi /etc/ssh/sshd_config

再次打开配置文件,删除 Port 22 这一行,然后重启 SSH:

 
/etc/init.d/ssh restart # 如果提示服务不存在,则使用 /etc/init.d/sshd restart # CentOS7 使用 systemctl restart sshd.service

这篇文章有帮助吗?

« 返回