在Linux服務器上實現IP白名單,可以通過以下幾種方法:
iptables
是Linux中最常用的防火墻工具之一,可以用來限制特定IP地址的訪問。
安裝iptables(如果尚未安裝):
sudo apt-get install iptables
允許特定IP地址:
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -s 192.168.1.101 -j ACCEPT
保存iptables規則:
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
設置iptables開機自啟動:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent start
ufw
是一個用戶友好的防火墻管理工具,基于iptables
。
安裝ufw(如果尚未安裝):
sudo apt-get install ufw
允許特定IP地址:
sudo ufw allow from 192.168.1.100 to any
sudo ufw allow from 192.168.1.101 to any
啟用ufw:
sudo ufw enable
通過SSH密鑰認證可以進一步增強安全性,只允許特定的公鑰進行登錄。
生成SSH密鑰對(如果尚未生成):
ssh-keygen -t rsa
將公鑰添加到服務器:
ssh-copy-id user@server_ip
編輯SSH配置文件(/etc/ssh/sshd_config
):
sudo nano /etc/ssh/sshd_config
添加或修改以下行:
PasswordAuthentication no
PermitRootLogin no
重啟SSH服務:
sudo systemctl restart sshd
如果你希望結合使用iptables
和SSH密鑰認證,可以在SSH配置中添加額外的規則。
編輯SSH配置文件(/etc/ssh/sshd_config
):
sudo nano /etc/ssh/sshd_config
添加或修改以下行:
PasswordAuthentication no
PermitRootLogin no
AllowUsers user1@192.168.1.100 user2@192.168.1.101
重啟SSH服務:
sudo systemctl restart sshd
通過以上方法,你可以在Linux服務器上實現IP白名單,確保只有特定的IP地址能夠訪問服務器。