iptables 共享互联网连接并限制访问

iptables 共享互联网连接并限制访问

我正在尝试配置一个 ubuntu 服务器,以将互联网访问从 eth0 共享到 eth1 上的客户端系统,但我只想允许端口 1688 上的访问,并解析主机名,同时阻止所有其他进出流量。我不确定实现此目的需要哪些 IPTable 规则,希望得到任何帮助。

[外部] <--- 端口 1688 上的流量 ---> {eth0}[Ubuntu 11.10 服务器]{eth1} <-----> [客户端系统]

答案1

为了正确执行此操作,您确实需要学习 iptables,以便能够解决可能出现的任何问题。否则,iptables 可能会成为您的“黑匣子”,因为您不了解如何使用它,并向自己证明问题不是使用 iptables。不过不要气馁,学习 iptables 的基础知识其实并不难,如果您感兴趣,有很多不同的教程、操作方法和手册,介绍您可以用 iptables 在您的控制下完成的奇妙事情(谷歌搜索“颠倒互联网”是一个有趣的例子)。

您要做的事情只需 3 个简单的步骤。

1) 向链中附加/插入一条规则FORWARD以接受 TCP 端口 1688。如果您也需要 UDP 访问,请添加类似的规则,但针对 UDP。

2)附加/插入规则以将 TCP 和 UDP 端口 53 接受到FORWARD链中。

3)将链上的默认策略设置FORWARD为DROP。

在完成了 iptables 的基础速成课程之后,这应该相当容易,不要被潜在的复杂性所吓倒,因为你不需要了解任何内容,这都是基础知识。

答案2

您需要将您的服务器设置为这两个网络之间的路由器和防火墙。

FORWARD因此,请在服务器中设置防火墙规则,以仅允许1688/tcp和通过路由器中的防火墙。并为 或 设置默认策略53/udp。尝试使用类似53/tcpFORWARDDROPDENY联邦快递或者岸墙设置防火墙。这比iptables直接使用要容易得多。

无论如何,如果您iptables直接使用,则必须手动更改/etc/sysctl.conf文件中的内容(或在中添加新文件/etc/sysctl.conf.d/),以便您的计算机开始在两个网络之间路由 IP 消息。查找以net.ipv4.ip_forward=1解决该问题。

可以在 Ubuntu wiki 中找到很好的说明。

相关内容