具有免费互联网的本地网络的 iptables 规则会阻止从互联网到服务器的未经请求的连接?

具有免费互联网的本地网络的 iptables 规则会阻止从互联网到服务器的未经请求的连接?

我有一个家庭服务器(带有 slackware 13),其中 eth0 用于本地网络,eth1 用于互联网(带有动态 IP 的电缆调制解调器)。

虽然我确实想了解有关 iptables 的更多信息,但我仍在这个过程中,我需要完成一些规则,但在学会这样做之前我不能这样做,因为我不希望我的服务器在这个阶段受到损害。

我目前有一个虚拟机,我可以在其中使用我的规则和所有内容,如果有人能为我包装一条防火墙规则,让 iptables 执行以下操作,我将不胜感激:

  1. 允许 eth0 上的 dhcp 服务器的所有用户能够完全访问互联网和服务器,换句话说,eth0 在网络和服务器内不应受到任何限制。
  2. 允许所有用户能够创建服务器,例如,如果他们正在玩诸如魔兽争霸之类的游戏,并且他们创建了游戏,则防火墙应该允许这些连接的协商通过。
  3. 阻止从互联网到服务器的任何请求,除非它是由服务器或网络用户发起的。

答案1

那么,基本上你的 Linux 机器就充当了防火墙的角色?

首先,启用IP转发。

echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

然后,添加一些转发规则:

iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

保护 FORWARD 链:

iptables -P FORWARD DROP

创建NAT规则:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

最后,不要忘记检查您是否有默认路由:

ip route show | grep default

您应该看到类似以下内容:

default via <IP_of_eth1's_gateway> dev eth1

如果没有,请添加一个:

ip route add default vie <IP_of_eth1's_gateway> dev eth1

(一般DHCP客户端会自动添加一个)

答案2

为了允许服务器,您可以手动添加端口转发规则,或使用 uPnP 守护程序(如果应用程序支持 uPnP - 许多应用程序都支持...)[linux-igd][1]应该这样做...

NAT-PMP 类似,并被一些其他应用程序使用。 Linux 的一个实现是这里

相关内容