修改SSH默认端口并配置防火墙限制SSH访问来源

在 centos 中,修改 SSH 默认端口并配置防火墙限制 SSH 访问来源是提升系统安全性的重要措施。以下是详细的操作步骤:


1. 修改 SSH 默认端口

默认情况下,SSH 使用 22 端口,这容易被攻击者扫描和攻击。修改为其他端口可以减少被扫描的风险。

操作步骤:

  1. 编辑 SSH 配置文件 /etc/ssh/sshd_config

    sudo vi /etc/ssh/sshd_config
    
  2. 找到以下行(默认是注释的):

    #Port 22
    
  3. 取消注释并修改端口号(例如改为 2222):

    Port 2222
    

    注意:端口号范围是 1-65535,避免使用常见端口(如 80443 等)。

  4. 保存并退出编辑器。

  5. 重启 SSH 服务使配置生效:

    sudo systemctl restart sshd
    
  6. 验证新端口是否生效:

    sudo ss -tuln | grep 2222
    

    如果看到类似以下输出,说明配置成功:

    LISTEN 0 128 0.0.0.0:2222 0.0.0.0:*
    
  7. 重要:在关闭当前 SSH 会话之前,先测试新端口是否可以连接:

    ssh -p 2222 username@your_server_ip
    

    确保可以正常登录后再关闭当前会话。


2. 配置防火墙限制 SSH 访问来源

通过防火墙限制 SSH 访问来源,可以只允许特定的 IP 地址或 IP 段访问 SSH 服务,进一步提升安全性。

操作步骤:

  1. 确保防火墙(firewalld)已启用并运行:

    sudo systemctl enable firewalld
    sudo systemctl start firewalld
    
  2. 添加新的 SSH 端口到防火墙:

    sudo firewall-cmd --permanent --add-port=2222/tcp
    
  3. 移除默认的 SSH 端口(22):

    sudo firewall-cmd --permanent --remove-service=ssh
    
  4. 限制 SSH 访问来源(例如只允许 192.168.1.0/24 网段访问):

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="2222" protocol="tcp" accept'
    

    如果需要允许单个 IP 地址(如 203.0.113.10):

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="2222" protocol="tcp" accept'
    
  5. 重新加载防火墙配置:

    sudo firewall-cmd --reload
    
  6. 查看防火墙规则,确认配置是否生效:

    sudo firewall-cmd --list-all
    

    输出应包含类似以下内容:

    ports: 2222/tcp
    rich rules:
       rule family="ipv4" source address="192.168.1.0/24" port port="2222" protocol="tcp" accept
    

3. 测试配置

  1. 从允许的 IP 地址尝试连接 SSH:

    ssh -p 2222 username@your_server_ip
    

    确保可以正常登录。

  2. 从不允许的 IP 地址尝试连接 SSH:

    ssh -p 2222 username@your_server_ip
    

    应该无法连接,提示超时或拒绝连接。


4. 其他注意事项

  • 备份配置文件:在修改 SSH 或防火墙配置之前,建议备份相关文件:

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    sudo cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.bak
    
  • 多端口支持:如果需要同时支持多个 SSH 端口(如 222222),可以在 /etc/ssh/sshd_config 中添加多行 Port 配置:

    Port 22
    Port 2222
    
  • SELinux 配置:如果启用了 SELinux,需要允许新端口:

    sudo semanage port -a -t ssh_port_t -p tcp 2222
    

总结

通过修改 SSH 默认端口和配置防火墙限制访问来源,可以显著提升 CentOS 系统的安全性,减少 SSH 服务被攻击的风险。建议定期审查防火墙规则和 SSH 配置,确保系统安全。

posted @ 2025-03-20 09:38  VeryCoolBaby  阅读(528)  评论(0)    收藏  举报