我已经设置了一个带有 2 个网卡的 Ubuntu 服务器作为基本路由器,用作dnsmasq
DNS 和 DHCP 服务器,并且我用它ufw
来控制iptables
。
一切正常,我认为我对正在发生的事情有了一个相当基本的了解。
但是,为了转发数据包,我必须进行设置DEFAULT_FORWARD_POLICY="ACCEPT"
。/etc/default/ufw
配置文件指出我可能还想调整我的规则。
我做了调整/etc/ufw/before.rules
并添加了:
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -o enp0s3 -j MASQUERADE
我的问题是:
将默认值设置为“ACCEPT”不好吗?我不能只将默认策略保留为“DROP”,而是使用 UFW 添加转发规则吗?
我添加了转发规则,但它实际上并没有转发数据包。
sudo ufw route allow in on enp0s8 out on enp0s3 to 0.0.0.0/24 from 192.168.0.0/24
答案1
好吧,我有几点评论:
您必须按照“设置 DEFAULT_FORWARD_POLICY=”ACCEPT“来接受”才能在 2 个网卡之间转发流量。如果您使用 iptables 而不是 UFW,您可以根据需要编写更具体的规则。
默认“接受”是什么意思?如果默认接受所有流量,则与不运行防火墙相同。您只需禁用防火墙即可。
如果您刷新规则,将默认策略设置为 REJECT 将会锁定您自己。
我认为最好将默认设置保留为 ACCEPT,编写所有要接受的规则,然后将 REJECT 作为 iptables 中的最终规则。这样,如果您刷新规则,您将不会被锁定。
不要使用 DROP,而要使用 REJECT - 请参阅 http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject
如果没有更多信息,我们确实无法告诉您应该使用什么规则或如何编写这些规则。
您正在运行哪些服务器?您想要转发哪些流量?您当前的规则是什么?
在我看来,如果你正在编写广泛而复杂的规则,有时使用 iptables rater 比 UFW 更容易。