我有一个现有的家庭网络,其中 DNS(通过 BIND)和 DHCP 在 Raspberry Pi 上运行。我想制定一条iptables
规则,将单个设备限制到单个 URL。
- 对于设备
kid.laptop.lan
(MAC 或 IP 也可以) - 丢弃所有流量
tcp 80
- 除了
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 或其他非网络流量。