< 返回

云服务器安全第一步:修改SSH端口,让黑客“找不到门”

2025-04-01 20:42 作者:xiao gang 阅读量:32

你是否遇到过服务器突然卡顿、日志里出现大量陌生IP的登录尝试?这很可能是黑客在暴力破解你的SSH密码!SSH(远程登录协议)默认使用22端口,就像你家大门的锁眼位置被所有人知道一样,极易成为攻击目标。本文将用“保姆级教程”,教你如何通过修改SSH端口这个简单操作,让攻击者“摸不着门路”!

一、为什么要改SSH端口?

1. 降低被扫描的概率

  • 黑客常用自动化工具全网扫描22端口,尝试暴力破解密码。

  • 修改端口后,相当于把“大门锁眼”藏到隐蔽位置,攻击者需要扫描全部6万多个端口才能找到入口,成本大幅增加。

2. 配合其他防护更安全

  • 端口修改后,可进一步限制新端口的访问权限(如仅允许特定IP连接),形成“多重保险”。

二、操作步骤(以Linux为例)

步骤1:备份!备份!备份!

重要提示:操作失误可能导致无法远程登录服务器!

  • 先备份SSH配置文件:

    bash 复制
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

步骤2:选择一个“冷门”端口

  • 避免使用常见端口(如2222、22222),推荐在 1024-65535 之间选不连续的数字(如58231)。

  • 注意:不要使用已被系统占用的端口(可通过 netstat -tuln 查看已用端口)。

步骤3:修改SSH配置文件

  • 使用命令行编辑器(如nano或vim)打开配置文件:

    bash 复制
    sudo nano /etc/ssh/sshd_config
  • 找到 #Port 22 这一行(可能被注释),删除 # 并添加新端口:

    bash 复制
    Port 22          # 暂时保留旧端口(测试成功后再删除)
    Port 58231      # 新增你的自定义端口

    (保留旧端口是为了防止新端口配置错误导致失联)

步骤4:放行新端口的防火墙

  • 如果使用firewalld(CentOS等):

    bash 复制
    sudo firewall-cmd --permanent --add-port=58231/tcp
    sudo firewall-cmd --reload
  • 如果使用ufw(Ubuntu等):

    bash 复制
    sudo ufw allow 58231/tcp
    sudo ufw reload

步骤5:重启SSH服务

bash 复制
sudo systemctl restart sshd
# 或旧版系统用:
sudo service ssh restart

步骤6:测试新端口是否生效

  • 打开新终端窗口,尝试用新端口连接:

    bash 复制
    ssh 用户名@服务器IP -p 58231

    务必保持当前连接不退出! 测试成功后再关闭旧端口。

步骤7:关闭旧22端口

  • 确认新端口可用后,再次编辑 /etc/ssh/sshd_config,删除 Port 22 行,只保留新端口:

    bash 复制
    Port 58231
  • 重启SSH服务,并关闭防火墙的22端口:

    bash 复制
    sudo systemctl restart sshd
    sudo ufw deny 22/tcp    # Ubuntu
    # 或
    sudo firewall-cmd --permanent --remove-port=22/tcp && firewall-cmd --reload  # CentOS

三、验证与排错

1. 如何检查端口是否开放?

  • 本地电脑执行(替换为你的IP和端口):

    bash 复制
    telnet 服务器IP 58231    # 显示空白即连通,失败则提示超时
    # 或使用更现代的工具:
    nc -zv 服务器IP 58231    # 显示 "succeeded!" 表示成功

2. 连接失败怎么办?

  • 检查防火墙:确保新端口已放行(sudo ufw status 或 firewall-cmd --list-ports)。

  • 检查SSH服务状态:systemctl status sshd 确认服务正常运行。

  • 查看日志:sudo tail -f /var/log/auth.log(Ubuntu)或 /var/log/secure(CentOS),观察连接错误信息。

四、进阶安全建议

1. 禁止密码登录,改用密钥认证

  • 密钥比密码更难破解,彻底关闭密码登录:

    bash 复制
    # 在sshd_config中修改:
    PasswordAuthentication no
    PubkeyAuthentication yes

2. 限制IP访问

  • 仅允许办公室或家的IP连接SSH:

    bash 复制
    # ufw示例(替换为你的IP):
    sudo ufw allow from 123.45.67.89 to any port 58231

3. 安装Fail2Ban

  • 自动封禁多次登录失败的IP:

    bash 复制
    sudo apt install fail2ban    # Ubuntu
    sudo yum install fail2ban    # CentOS

五、总结:安全无小事

修改SSH端口是最基础的防护措施,就像给你的服务器“换个门锁位置”。配合密钥登录、IP限制和Fail2Ban,能构建多层次安全防线。记住:

  1. 永远先备份配置文件!

  2. 测试新端口时不要关闭原有连接!

  3. 复杂密码仍是最后一道屏障!

动手试试吧,5分钟操作,让服务器安全性提升一个等级!

联系我们
返回顶部