我在 Ubuntu 18.04 Server 中配置内部和外部网络时遇到问题。情况是我有一个网关设备,它有 DHCP 服务来为 wlan 连接的设备租用 IP 地址。网关设备 eth0 IP 地址为 192.168.1.120,网关设备 wlan0 具有静态 10.10.0.1 IP 地址,第一个 wlan 客户端获取 10.10.0.2 IP 地址。网关设备 eth0 可以访问互联网。但 wlan0 连接的设备应该只能访问网关设备服务,例如 MySql 或自定义 REST API。
规则 1:网关设备应能够访问互联网。
[eth0]<-->[互联网]
规则 2:WLAN 连接设备只能访问网关设备服务。
[WlanClient]<-->[wlan0]<-->[eth0]--||NoAccess||--[互联网]
我所做的是,我已经安装了 Ubuntu 18.04 Server 并安装了基本服务,现在我应该创建网络限制。
我已完成以下设置,以使 wlan0 连接的设备能够使用网关设备服务。而且 wlan0 连接的设备现在也可以访问互联网,这应该受到限制。
/etc/sysctl.conf
net.ipv4.ip_forward=1
iptables配置
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables-save > /etc/iptables/rules.v4
iptables-restore < /etc/iptables/rules.v4
有人可以帮我配置吗?
答案1
要解决您的问题,您必须使用桌子FORWARD
的链条filter
。这些FORWARD
表用于过滤进出主机的每个数据包。 (相反,该INPUT
表用于传入流量,OUTPUT
表用于传出流量)。实际上有两种方法:
1/ 您限制所有流量并根据需要打开:
iptables -t filter -P FORWARD DROP
iptables -t filter -A FORWARD [your rule #1 to match allowed streams(s)] -j ACCEPT
2/ 您仅限制您想要限制访问的设备的流量:
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -A FORWARD [your rule #1 to match forbidden stream(s)] -j REJECT --reject-with admin-prohib
通常,安全方面的良好实践是第一种方法。