在Debian系统中,使用iptables实现IP白名单主要涉及以下几个步骤:
首先,确保你的系统上已经安装了iptables。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install iptables
为了确保只有白名单中的IP可以访问你的服务器,你需要设置默认策略为拒绝所有流量:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
确保本地回环接口(lo)的流量被允许:
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
允许已建立的连接和相关流量:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
将需要允许访问的IP地址添加到白名单中。例如,允许IP地址192.168.1.100
访问:
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
如果你有多个IP地址需要添加,可以重复上述命令,或者使用-m iprange
模块来指定一个IP范围:
sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.110 -j ACCEPT
为了确保重启后规则仍然有效,你需要保存iptables规则。Debian默认使用iptables-persistent
包来保存规则:
sudo apt install iptables-persistent
在安装过程中,系统会提示你是否保存当前的iptables规则。选择“是”即可。
你可以使用以下命令查看当前的iptables规则,确保白名单规则已经生效:
sudo iptables -L -v -n
最后,测试白名单规则是否生效。尝试从不在白名单中的IP地址访问你的服务器,应该会被拒绝。
通过以上步骤,你就可以在Debian系统中使用iptables实现IP白名单功能。