配置 IPTables 以阻止 VPN 断开连接时的特定端口?

配置 IPTables 以阻止 VPN 断开连接时的特定端口?

我正在使用最新的 Ubuntu 发行版... 但我的 VPN 连接不太稳定。我使用的是 Ubuntu 自带的默认网络管理器应用程序。

我无法维持与 VPN 的连接,这是另一个问题,我正在寻找一些可以让我更安全的方法。当 PPTP VPN 断开连接时,我希望有一种自动关闭特定端口的方法,或者在那时关闭应用程序... 更好的方法是在停止流量的同时重新连接到 VPN。

有谁知道有哪个应用程序可以在 Linux 上实现这个功能/我该如何配置 IPTables 来阻止端口?

答案1

如果您不希望任何流量以不安全的方式发送,我建议您设置没有默认路由的路由表,只设置到 VPN 服务器的特定路由。这意味着当您的 VPN 连接断开并删除 VPN 上的路由时,流量将没有任何匹配的路由,也不会出去。例如,假设 192.168.0.0/24 是您的本地网络,而您的 VPN 服务器位于 1.2.3.4:

192.168.0.0/24 dev eth0
1.2.3.4/32 via 192.168.0.1

如果您需要在端口级别上实现更精细的粒度,则可以添加 iptables 规则来阻止eth0从这些端口号发出的流量。当 VPN 处于启动状态时,这些数据包将从 VPN 接口(例如tun0)发出,并将被封装并eth0从 VPN 端口号发出。当 VPN 关闭时,它们将尝试直接eth0从原始端口号发出,iptables 规则应该阻止这些端口号。例如,为了防止 HTTP 流量不安全地发出:

iptables --append OUTPUT --out-interface eth0 --protocol tcp --dport 80 --jump REJECT

答案2

看看这样的工具岸墙建立 iptables 规则。将您的 VPN 和 Internet 配置到不同的区域。然后,您可以在 VPN 区域上允许在 NET 区域上不允许的端口。Shorewall 文档非常详尽,其中包括如何在添加 VPN 时修改配置。从示例 1 接口配置开始,然后添加 VPN。

相关内容