插件窝 干货文章 Linux安全提升–SSH仅允许指定IP访问的三种方法

Linux安全提升–SSH仅允许指定IP访问的三种方法

iptables 允许 sudo 704    来源:    2025-05-14

Linux安全提升:SSH仅允许指定IP访问的三种方法

限制SSH访问仅允许特定IP地址连接是增强Linux服务器安全的重要措施。以下是三种实现方法:

方法一:使用TCP Wrappers (hosts.allow/hosts.deny)

  1. 编辑/etc/hosts.allow文件:

    sudo nano /etc/hosts.allow
    

    添加以下内容(将192.168.1.100替换为允许的IP):

    sshd: 192.168.1.100
    
  2. 编辑/etc/hosts.deny文件:

    sudo nano /etc/hosts.deny
    

    添加以下内容:

    sshd: ALL
    
  3. 保存后立即生效,无需重启服务。

方法二:配置iptables防火墙规则

  1. 首先清除现有规则(谨慎操作):

    sudo iptables -F
    
  2. 设置默认策略为拒绝所有连接:

    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    
  3. 允许指定IP访问SSH端口(默认22):

    sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
    
  4. 保存规则(根据发行版不同):

    • Ubuntu/Debian: bash sudo iptables-save > /etc/iptables.rules
    • CentOS/RHEL: bash sudo service iptables save

方法三:修改SSH配置文件(sshd_config)

  1. 编辑SSH配置文件:

    sudo nano /etc/ssh/sshd_config
    
  2. 在文件末尾添加(将IP替换为允许的地址):

    AllowUsers *@192.168.1.100
    

    或者允许多个IP:

    AllowUsers *@192.168.1.100 *@192.168.1.101
    
  3. 也可以使用CIDR表示法允许整个子网:

    AllowUsers *@192.168.1.0/24
    
  4. 重启SSH服务使更改生效:

    sudo systemctl restart sshd
    # 或旧版系统使用
    sudo service ssh restart
    

最佳实践建议

  1. 组合使用:建议同时使用至少两种方法(如iptables+sshd_config)实现多层防护
  2. 备份当前连接:在应用限制前,确保有其他访问途径以防被锁
  3. 测试规则:应用新规则前,先在其他终端测试连接
  4. 日志监控:定期检查/var/log/auth.log/var/log/secure中的SSH访问尝试
  5. 考虑使用VPN:对于管理访问,可考虑先通过VPN连接,再限制SSH仅允许VPN IP

通过以上方法,您可以有效减少SSH服务的攻击面,提高服务器安全性。