我有一个 Rasberry Pi,DHCP 分配一个静态 IP 地址(基于它的 MAC 地址)192.168.2.12本地网关为 192.168.2.1,我想阻止传入和传出的互联网流量, 但我愿意想本地 LAN 网络流量访问 Rasberry Pi(仅限内部)。我怎样才能做到这一点iptables和AdvanceTomato 路由器脚本? (如果这是最好/最简单的方法)。
我尝试了以下命令:
######## block all internet to ip address but give access to LAN
iptables -I FORWARD -s 192.168.2.12 -j REJECT
####### Restarts the firewall to update iptables without reboot of router
service firewall restart
但好像已经泄露到网上了
$ ping att.com
PING att.com (144.160.36.42) 56(84) bytes of data.
From unknown (192.168.2.1) icmp_seq=1 Destination Port Unreachable
From unknown (192.168.2.1) icmp_seq=2 Destination Port Unreachable
From unknown (192.168.2.1) icmp_seq=3 Destination Port Unreachable
From unknown (192.168.2.1) icmp_seq=4 Destination Port Unreachable
64 bytes from att.com (144.160.36.42): icmp_seq=5 ttl=241 time=87.5 ms
From unknown (192.168.2.1) icmp_seq=6 Destination Port Unreachable
64 bytes from att.com (144.160.36.42): icmp_seq=7 ttl=241 time=64.8 ms
From unknown (192.168.2.1) icmp_seq=8 Destination Port Unreachable
64 bytes from att.com (144.160.36.42): icmp_seq=9 ttl=241 time=93.3 ms
我是否使用正确的命令/语法来阻止 DHCP 分配的静态 IP 的互联网,但允许内部 LAN 网络访问设备?
答案1
您可以通过运行以下命令删除 Raspberry 的默认网关:
$ sudo ip route del default
答案2
在路由器中,使用 Pi 的 MAC 地址的保留地址,并且不分配默认路由。这样,每当 pi 重新启动时,它总是会获得相同的 IP 地址,但没有路由。
然后,在防火墙规则中,您可以简单地拒绝来自该 IP 地址的所有内容...以防万一有人手动分配默认路由。
当然,足够聪明并且具有 pi 的 root 访问权限的人可以手动分配不同的地址,并且可以绕过您的规则。但是,如果您只是想随意阻止 pi 意外或无意的互联网访问,则此建议应该有效。
答案3
DROP
任何需要从一个网络转发到另一个网络的内容(例如:Internet -> Lan || Lan -> Internet):
iptables -P FORWARD DROP
每个DROP
数据包从树莓派到局域网外的主机,反之亦然:
iptables -A INPUT ! -s 192.168.2.0/24 -j DROP
iptables -A OUTPUT ! -d 192.168.2.0/24 -j DROP