为特定机器上的特定 URL 创建 iptables 规则?

为特定机器上的特定 URL 创建 iptables 规则?

我有一个现有的家庭网络,其中 DNS(通过 BIND)和 DHCP 在 Raspberry Pi 上运行。我想制定一条iptables规则,将单个设备限制到单个 URL。

  1. 对于设备kid.laptop.lan(MAC 或 IP 也可以)
  2. 丢弃所有流量tcp 80
  3. 除了kidsafe.website.com

我仍然需要能够通过 SSH 进入设备(运行 Ubuntu 17.10)。如果有更简单的方法(例如 DansGuardian),我愿意接受其他建议。

答案1

根据您想要锁定的程度,可以采用不同的方法来实现这一点。最简单的方法是只阻止端口 80 和 443 上的流量,但已知 IP 除外,这会让有动机的人泄露/窃取数据,但这远远超出了普通孩子的能力。您可以使用以下命令通过 IP 执行此操作:

iptables -I -s kids.ip -p tcp --dport 80 -j DROP
iptables -I -s kids.ip -d dest.ip.to.allow -p tcp --dport 80 -j ACCEPT
iptables -I -s kids.ip -p tcp --dport 443 -j DROP
iptables -I -s kids.ip -d dest.ip.to.allow -p tcp --dport 443 -j ACCEPT

请注意,顺序很重要,因为规则插入在表的顶部,所以最后一条规则首先匹配。

您需要确保设备使用静态 IP(kids.ip)才能正常工作。它不会影响邮件、DNS 或其他非网络流量。

相关内容