(为清晰起见,已修改,2013 年 11 月 11 日)在路线表之前有两个不同的问题。
我知道这已经涵盖了。我读了几十篇帖子,但仍然有疑问。
我有一台工作服务器,它的流量必须经过加密才能离开我家。VPN 是 PPTP。目前我有一个 cron 作业,每分钟检查一次 ppp0 适配器的状态。如果连接断开(这种情况经常发生),它会关闭关键组件。
使用“nmcli con up id 'myVPNServer'”重新启动 PPTP 相当容易,但不能保证它会重新连接,并且当 ppp0 关闭时,我需要一种更好的方法来停止流量(除了终止应用程序)。
我看到讨论的两个选项是防火墙(UFW、Firestarter、IPTables)或路由表。我很容易被说服考虑防火墙选项,但我专注于路由表,因为不需要启动新功能。
我的问题涉及路线表的变化方式以及规则的具体细节。
当我启动 PPTP VPN 时,路由表会发生变化。这意味着如果 VPN 断开,路由表会变回原样,这样就违背了我所声称的阻止外部流量的意图。我如何才能对路由表进行“固定”更改,即使 VPN 连接断开,这些更改也会持续存在?也许是复选框“忽略自动获取的路由”或“仅将此连接用于其网络上的资源”(它们是 VPN 配置选项的一部分)?
看起来,如果我可以强制活动 VPN 路由表保持有效,即使 VPN 断开,这也将在 VPN 断开时有效终止任何外部流量。这将使我能够自由地运行例程以从命令行重新启动 VPN(假设路由表规则不阻止我重新建立连接)。
我的路由表(VPN 处于活动状态)是(IP 路由列表):
什么过程正在修改路由表(当我启动 VPN 时)?
对于 10.10.1.1 是什么,您有什么看法?
$ ip route list
default dev ppp0 proto static
10.10.1.1 dev ppp0 proto kernel scope link src 10.10.1.11
VPN_Server_IP_Address via 192.168.1.1 dev eth0 proto static
VPN_Server_IP_Address via 192.168.1.1 dev eth0 src 192.168.1.60
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.60 metric 1
答案1
希望示例配置能为您提供另一种方法的想法。例如:执行脚本以对 ppp0“up\down..”事件执行任何您想做的事情。您可以使用 predown 脚本停止所有服务,锁定防火墙中的所有流量并刷新路由表。
zcat /usr/share/doc/ifupdown/examples/network-interfaces.gz | less
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
##...
# The "pre-up", "up", "down" and "post-down" options are valid for all
# interfaces, and may be specified multiple times. All other options
# may only be specified once.
我认为是NetworkManager
修改了路由表。的配置文件NetworkManager
可以在以下位置找到:/etc/NetworkManager/*
在您的(pptp)连接的[ipv4]下添加以下内容:
ignore-auto-routes=true
ignore-auto-dns=true
我认为您需要重新启动 pptp 连接才能使其变为活动状态。有用吗?