Linux 限制 root 登錄 IP 地址的方法
- Linux 限制 root 登錄 IP 地址的方法
- 方法一:修改 SSH 配置文件
- 方法二:使用 hosts.allow 和 hosts.deny 文件
- 方法三:使用防火墻規則
- 方法四:使用 access.conf 文件
- 注意事項
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 系統,提高系統安全性