这是一个后续问题这问题。
我想配置一个本地网络,使其客户端使用服务器作为通往互联网的网关。
所有客户端和服务器上的操作系统都是 OpenSuse 42.3。每个成员已经可以自行访问互联网,并且每个成员都可以 ping 通其他成员。
我为服务器提供了两个 IP:一个用于本地网络,一个用于互联网,并在其中启用了 ipv4 转发。
客户端使用服务器的 IP 作为通向互联网的标准网关,但我可能设置了一些错误的值,因为它不起作用。
答案1
OpenSuse 的包管理器中应该有 shorewall 和 shorewall-doc 包。
https://software.opensuse.org/package/shorewall
Shoreline 防火墙,通常称为“Shorewall”,是一种基于 Netfilter >(iptables)的防火墙,可用于专用防火墙系统、多功能网关/路由器/服务器或独立的 GNU/Linux 系统。
Debian 示例
安装shorewall后启用net.ipv4.ip_forward = 1
并/etc/sysctl.conf
执行sysctl -p
假设您的网关上有两个以太网接口,并且您已经安装了 shorewall-doc,我们需要来自 /usr/share/doc/shorewall/examples/two-interfaces/ 的以下示例
- 区域
- 告诉 shorewall 哪些区域(网络)与其相连。
- 接口
- 告诉 shorewall 可以使用哪些接口
- 面具
- 将我们的私有 IP 地址范围转换为我们的公共 IP
- 政策
- 做出广泛而深刻的改变
- 规则
- 对政策文件做出例外
并将它们全部放在 /etc/shorewall/
区域文件应该包含
- 防火墙
- 网络 IPv4
- 本地 IPv4
以下是一个例子接口文件,eth0 上的 dhcp 选项适用于您从 ISP 获取“动态”静态地址的情况。
net eth0 dhcp,tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0
loc eth1 tcpflags,nosmurfs,routefilter,logmartians
你的 masq 文件将你的私有地址范围转换为你的公共地址,例如
eth0 192.168.1.0/24
这政策文件是广泛而重大的防火墙变革,在这里
- 拒绝所有传入流量
- 允许所有传出流量
策略示例
loc net ACCEPT
fw all DROP
net all DROP
all all DROP
这规则文件为策略文件设置例外,因此我们在这里例如想要允许 SSH 到网关,因为all all DROP
否则应该拒绝我们向 FW 发送任何包
SSH(ACCEPT) loc $FW
允许 ICMP 包,这样我们就不会拒绝 ICMP PMTU。
ACCEPT all all icmp
允许防火墙解析 DNS 查询,因为这在策略中被阻止。在 Debian 上用于运行 apt-get 更新和安装包。
ACCEPT $FW net tcp,udp 53,80
http://shorewall.net/manpages/对于上述所有选项都有详尽的记录。
在使用防火墙规则之前,请使用检查配置是否没有错误,shorewall check
并使用使新更改生效shorewall safe-restart
当您创建了一个有效的配置并且乐意保存您的 iptables 规则并iptables-save > /root/iptables.txt
在 /etc/network/interfaces 中进行输入以在您的接口启动之前加载规则时pre-up iptables-restore < /root/iptables.txt
,这样如果 shorewall 在某个时候启动失败,您的网络就不会毫无防御能力。
他们还有很多工作要做,以进一步加强你的网络,但这只是一个开始。