可锐资源网

技术资源分享平台,提供编程学习、网站建设、脚本开发教程

Linux系统修改ssh远程端口的办法_linux怎么修改远程端口号

修改 Linux 系统的 SSH 远程端口是提高服务器安全性的一种常见做法。通过更改默认端口(22)为其他端口,可以有效减少暴力破解攻击的风险。以下是详细步骤以及注意事项:


1. 修改 SSH 远程端口的步骤

1.1 登录服务器

  1. 使用当前的 SSH 端口登录服务器(默认端口为 22):
  2. bash
  3. ssh root@<服务器IP地址> -p 22
  4. 如果是非 root 用户,请使用具有 sudo 权限的账户登录。

1.2 修改 SSH 配置文件

  1. 使用文本编辑器打开 sshd_config 文件:
  2. bash
  3. sudo nano /etc/ssh/sshd_config
  4. 或者:
  5. bash
  6. sudo vi /etc/ssh/sshd_config
  7. 找到以下行(如果没有,则手动添加):
  8. plaintext
  9. #Port 22
  10. 去掉 # 注释符号。
  11. 将端口号 22 修改为你想要的端口号(例如 2022 或 2222),如下:
  12. plaintext
  13. Port 2022
  14. 确保以下设置已启用并检查是否存在(防止配置冲突):
  15. plaintext
  16. AddressFamily inet PermitRootLogin yes # 如果允许 root 登录,确保此项为 yes

1.3 修改防火墙规则

更改端口后,需要确保防火墙允许新端口的通信,否则可能导致无法连接。

1.3.1 使用 firewalld(CentOS/RedHat 系统)

  1. 添加新端口规则(以 2022 为例):
  2. bash
  3. sudo firewall-cmd --permanent --add-port=2022/tcp
  4. 移除默认端口(22)规则(如果不再需要):
  5. bash
  6. sudo firewall-cmd --permanent --remove-port=22/tcp
  7. 重新加载防火墙规则:
  8. bash
  9. sudo firewall-cmd --reload

1.3.2 使用 iptables(传统防火墙)

  1. 添加新端口规则:
  2. bash
  3. sudo iptables -A INPUT -p tcp --dport 2022 -j ACCEPT
  4. 移除默认端口规则(如果不再需要):
  5. bash
  6. sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
  7. 保存规则(确保重启后规则仍生效):
  8. bash
  9. sudo iptables-save > /etc/iptables/rules.v4

1.3.3 使用 ufw(Ubuntu/Debian 系统)

  1. 允许新端口:
  2. bash
  3. sudo ufw allow 2022/tcp
  4. 删除默认端口(如果不再需要):
  5. bash
  6. sudo ufw delete allow 22/tcp
  7. 检查并启用防火墙:
  8. bash
  9. sudo ufw enable

1.4 重启 SSH 服务

  1. 修改完成后,重启 SSH 服务以应用更改:
  2. bash
  3. sudo systemctl restart sshd
  4. 或:
  5. bash
  6. sudo service sshd restart
  7. 如果使用 Ubuntu/Debian,服务名可能是 ssh:
  8. bash
  9. sudo systemctl restart ssh

1.5 测试新的端口

  1. 打开新的 SSH 会话,测试是否能通过新端口连接:
  2. bash
  3. ssh root@<服务器IP地址> -p 2022
  4. 注意:在测试新端口成功前,不要关闭当前的 SSH 会话,以免配置错误导致无法连接。
  5. 如果测试成功,可以关闭旧的端口会话。

2. 常见问题和解决方法

2.1 修改后无法连接

  1. 检查防火墙是否开放了新端口
  2. 使用以下命令检查防火墙规则:
  3. bash
  4. sudo firewall-cmd --list-ports # 适用于 firewalld sudo ufw status # 适用于 ufw
  5. 检查 SSH 服务状态
  6. 确保 SSH 服务已启动且无错误:
  7. bash
  8. sudo systemctl status sshd
  9. 检查端口占用情况
  10. 确保新端口未被其他服务占用:
  11. bash
  12. sudo netstat -tuln | grep 2022

2.2 忘记新端口号

  • 如果忘记了新端口号,可以通过以下方法查看: 登录服务器的控制台(通过云服务商提供的 Web 控制台)。 查看 SSH 配置文件:
  • bash
  • cat /etc/ssh/sshd_config | grep Port

3. 安全性优化建议

除了修改默认 SSH 端口,还可以采取以下措施增强 SSH 安全性:

3.1 禁用密码登录,启用密钥登录

  1. 生成 SSH 密钥对(如果尚未生成):
  2. bash
  3. ssh-keygen -t rsa -b 4096
  4. 将公钥上传到服务器:
  5. bash
  6. ssh-copy-id -i ~/.ssh/id_rsa.pub root@<服务器IP>
  7. 修改 SSH 配置文件,禁用密码登录:
  8. bash
  9. sudo nano /etc/ssh/sshd_config
  10. 找到并修改以下项:
  11. plaintext
  12. PasswordAuthentication no
  13. 重启 SSH 服务:
  14. bash
  15. sudo systemctl restart sshd

3.2 限制登录 IP

  1. 修改防火墙规则,只允许特定 IP 地址访问 SSH:
  2. 使用 firewalld:
  3. bash
  4. sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='<你的IP>' port port=2022 protocol=tcp accept"
  5. 替换 <你的IP> 为你的公网 IP 地址。
  6. 重载防火墙:
  7. bash
  8. sudo firewall-cmd --reload
  9. 或编辑 /etc/hosts.allow 文件:
  10. plaintext
  11. sshd: <你的IP>

3.3 启用 Fail2ban

  • 安装并配置 Fail2ban,自动封禁多次尝试登录失败的 IP:
  • bash
  • sudo yum install epel-release -y sudo yum install fail2ban -y
  • 启动并配置:
  • bash
  • sudo systemctl start fail2ban sudo systemctl enable fail2ban

4. 总结

修改 SSH 端口是提升服务器安全性的有效措施,但需要注意以下几点:

  1. 修改端口后,确保防火墙规则已更新,并测试新端口连接。
  2. 配合其他安全措施(如密钥登录、IP 限制、Fail2ban)进一步提升安全性。
  3. 在修改前备份 SSH 配置文件,避免因配置错误导致服务器无法访问:
  4. bash
  5. sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

通过以上步骤,你可以安全地修改 SSH 端口并保护服务器免受暴力破解的威胁!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言