#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT
我建议使用防火墙配置工具,例如Firestarter,然后从那里开始。不过,这里有一些基础知识。
这会将您的系统变成一个不存在的系统,用于不允许的计算机。
如果你想允许任意范围而不是整个子网,你可以使用 'iprange' iptables 模块:
iptables -P INPUT DROP
iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT
例如,将允许来自地址在 192.168.1.30 和 192.168.1.50 之间的所有计算机的流量。
如果您想允许传入和传出流量到相同的 IP 范围,我建议您创建一个特定的链,允许该 IP 并将所有输入和输出目标定位到它:
--定义删除所有内容的默认策略:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
--创建新链:
iptables -N allowed_ips
--如果源是允许范围的一部分,接受
iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT
--如果不是,则返回调用者链继续处理
iptables -A allowed_ips -j RETURN
--让所有进出机器的流量都通过我们的新链
iptables -A INPUT -j allowed_ips
iptables -A OUTPUT -j allowed_ips
就是这样!当然,您可能需要额外的规则,例如允许所有进出 lo 接口的流量等。
一旦你对你的规则感到满意,你可能想要保存它们。此链接中的评论有几个关于如何做到这一点的选项。
一个简单易用的 iptables 规则生成器是ufw。该软件包在 debian 不稳定版中可用。
也试试Firestarter。提供 lenny。
您也可以使用我在过去一年中也使用过的ferm,它在条件防火墙规则等情况下帮助了我很多。