Linux 限制 root 登录 IP 地址的方法
Linux 限制 root 登录 IP 地址的方法
在 Linux 系统中限制 root 用户只能从特定 IP 地址登录,可以通过以下几种方法实现:
方法一:修改 SSH 配置文件
编辑
/etc/ssh/sshd_config
文件:sudo vi /etc/ssh/sshd_config
添加或修改以下配置:
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 登录
重启 SSH 服务使配置生效:
sudo systemctl restart sshd
方法二:使用 hosts.allow 和 hosts.deny 文件
编辑
/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
编辑
/etc/hosts.deny
文件:sudo vi /etc/hosts.deny
添加拒绝所有其他 IP 的规则:
sshd:ALL:deny
注意:hosts.allow 的规则优先级高于 hosts.deny
方法三:使用防火墙规则
使用 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
保存 iptables 规则:
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
这种方法提供了额外的安全层,即使 SSH 服务配置被修改,防火墙规则仍然有效
方法四:使用 access.conf 文件
编辑
/etc/security/access.conf
文件:sudo vi /etc/security/access.conf
添加以下内容:
+:root:192.168.1.100 192.168.1.101 192.168.1.103 -:root:ALL
这将允许 root 从指定 IP 登录,拒绝其他所有 IP
注意事项
- 修改配置前建议备份相关文件
- 确保至少保留一个可用的管理员 IP,避免被锁在系统外
- 对于动态 IP 环境,建议使用 VPN 或其他安全通道
- 配置完成后务必测试连接,确保规则按预期工作
通过以上方法,您可以有效地限制 root 用户只能从特定 IP 地址登录 Linux 系统,提高系统安全性