Linux 限制 root 登录 IP 地址的方法

发布于:2025-08-09 ⋅ 阅读:(10) ⋅ 点赞:(0)

Linux 限制 root 登录 IP 地址的方法

在 Linux 系统中限制 root 用户只能从特定 IP 地址登录,可以通过以下几种方法实现:

方法一:修改 SSH 配置文件

  1. 编辑 /etc/ssh/sshd_config 文件:

    sudo vi /etc/ssh/sshd_config
    
  2. 添加或修改以下配置:

    PermitRootLogin yes
    AllowUsers root@192.168.1.100 root@192.168.1.101 root@192.168.1.103
    

    这将只允许 root 从 192.168.1.100 和 192.168.1.101 这两个 IP 登录

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

    sudo systemctl restart sshd
    

方法二:使用 hosts.allow 和 hosts.deny 文件

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

    sudo vi /etc/hosts.allow
    

    添加允许的 IP:

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

    sudo vi /etc/hosts.deny
    

    添加拒绝所有其他 IP 的规则:

    sshd:ALL:deny
    

注意:hosts.allow 的规则优先级高于 hosts.deny

方法三:使用防火墙规则

  1. 使用 iptables 限制 SSH 访问:

    # 允许特定 IP 访问 SSH 端口
    sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
    sudo iptables -A INPUT -p tcp -s 192.168.1.101 --dport 22 -j ACCEPT
    sudo iptables -A INPUT -p tcp -s 192.168.1.103 --dport 22 -j ACCEPT
    
    # 拒绝其他所有 IP 访问 SSH 端口
    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    
  2. 保存 iptables 规则:

    sudo sh -c "iptables-save > /etc/iptables/rules.v4"
    

这种方法提供了额外的安全层,即使 SSH 服务配置被修改,防火墙规则仍然有效

方法四:使用 access.conf 文件

  1. 编辑 /etc/security/access.conf 文件:

    sudo vi /etc/security/access.conf
    
  2. 添加以下内容:

    +:root:192.168.1.100 192.168.1.101 192.168.1.103
    -:root:ALL
    

    这将允许 root 从指定 IP 登录,拒绝其他所有 IP

注意事项

  1. 修改配置前建议备份相关文件
  2. 确保至少保留一个可用的管理员 IP,避免被锁在系统外
  3. 对于动态 IP 环境,建议使用 VPN 或其他安全通道
  4. 配置完成后务必测试连接,确保规则按预期工作

通过以上方法,您可以有效地限制 root 用户只能从特定 IP 地址登录 Linux 系统,提高系统安全性


网站公告

今日签到

点亮在社区的每一天
去签到