在Linux中,可以使用iptables或firewalld来配置防火墙
- 使用iptables配置白名单:
首先,确保你的系统已经安装了iptables。然后,按照以下步骤操作:
a. 创建一个新的iptables规则文件,例如/etc/iptables/rules.v4
。在这个文件中,添加以下内容:
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp --dport 22 -s YOUR_WHITELISTED_IP -j ACCEPT -A INPUT -p tcp --dport 80 -s YOUR_WHITELISTED_IP -j ACCEPT -A INPUT -p tcp --dport 443 -s YOUR_WHITELISTED_IP -j ACCEPT COMMIT
将YOUR_WHITELISTED_IP
替换为你想要允许访问的IP地址。
b. 保存文件并重启iptables服务:
sudo systemctl restart iptables
- 使用firewalld配置白名单:
首先,确保你的系统已经安装了firewalld。然后,按照以下步骤操作:
a. 创建一个新的firewalld区域,例如whitelist
:
sudo firewall-cmd --permanent --new-zone=whitelist
b. 将你想要允许访问的IP地址添加到新创建的区域:
sudo firewall-cmd --permanent --zone=whitelist --add-source=YOUR_WHITELISTED_IP
将YOUR_WHITELISTED_IP
替换为你想要允许访问的IP地址。
c. 将所需的服务添加到新创建的区域:
sudo firewall-cmd --permanent --zone=whitelist --add-service=ssh sudo firewall-cmd --permanent --zone=whitelist --add-service=http sudo firewall-cmd --permanent --zone=whitelist --add-service=https
d. 将新创建的区域应用于公共接口(例如,eth0):
sudo firewall-cmd --permanent --zone=whitelist --change-interface=eth0
将eth0
替换为你的公共网络接口名称。
e. 重新加载firewalld配置:
sudo firewall-cmd --reload
现在,只有指定的IP地址才能访问SSH、HTTP和HTTPS服务。其他IP地址将被阻止。