我有一个树莓派,它被设置为路由器,为访客网络提供服务。
设置如下:
- Pi 接口 eth0 连接到本地家庭网络(192.168.10.0/24)
- 通过这个网络,Pi 可以连接到互联网
- Pi 接口 eth1 连接到本地访客网络
- 这使用 USB 转 RJ45 适配器
- Pi 在此网络上充当 DHCP(192.168.20.0/24)
Pi 所连接的交换机有几个端口被分配到 VLAN,因此它们与我的家庭网络是分开的。
到目前为止一切都运行正常。
下一步:授予访客网络互联网访问权限
通过以下命令我完成了该操作:
# Enable Forwarding
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo nano /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4:
net.ipv4.ip_forward=1
# Allow NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
所以现在我的访客网络可以访问互联网,但也可以访问我的本地家庭网络。
我需要一些 iptables 规则方面的帮助来限制访问。
我希望得到以下工作:
- 客人隔离
- 访客网络上的任何成员都无法看到/连接/ping 该网络上的任何其他成员
- 不允许访客网络成员访问我的家庭网络
- 我的家庭网络成员无权查看/连接/ping 访客网络上的任何成员
- 我想我已经明白了?(如果我错了请纠正我)
这是我目前的 iptables 配置:
# Restrict Access to Interface eth0 (local home network)
# Drop all traffic from RFC 1918 subnets
# Allow SSH and Ping from local home network to Pi's
# interface on the local home network for remote administration
sudo iptables -A INPUT -s 192.168.0.0/16 -i eth0 -j DROP
sudo iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
sudo iptables -A INPUT -s 172.16.0.0/12 -i eth0 -j DROP
sudo iptables -A INPUT -s 224.0.0.0/4 -i eth0 -j DROP
sudo iptables -A INPUT -s 240.0.0.0/5 -i eth0 -j DROP
sudo iptables -A INPUT -s 127.0.0.0/8 -i eth0 -j DROP
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
所以理论上除了 ping 和 SSH 之外我无法从本地网络连接到访客网络中的任何内容,对吗?
我该如何扭转这种局面,让我的访客网络计算机无法连接到本地家庭网络中的任何内容,但仍可访问互联网?在我的测试中,我要么限制所有内容(甚至互联网),要么我仍然可以访问网络共享。
问候 Alkahna
答案1
经过多次尝试和错误,我得出了以下命令/规则
sudo iptables -I FORWARD -d 192.168.0.0/16 -i eth1 -j DROP
sudo iptables -I FORWARD -d 10.0.0.0/8 -i eth1 -j DROP
sudo iptables -I FORWARD -d 172.16.0.0/12 -i eth1 -j DROP
sudo iptables -I FORWARD -d 224.0.0.0/4 -i eth1 -j DROP
sudo iptables -I FORWARD -d 240.0.0.0/5 -i eth1 -j DROP
sudo iptables -I FORWARD -d 127.0.0.0/8 -i eth1 -j DROP
sudo iptables -I FORWARD -d 127.0.0.0/8 -i eth1 -j DROP
基本上丢弃进入 eth1(我的访客网络)的以 RFC 1918 子网为目的地的所有内容。
有了这些规则,我就无法 ping 我的家庭网络。
但是,我可以通过某种方式 ping 通家庭网络中 Pi 的第二个 NIC,应该是这样吗,或者这会引起什么担忧?
但我对于客人隔离仍不甚了解。