通过组策略实现vpn掉线后自动断开与外界的网络通信

在外面干坏事之前,我们都会给自己披上一层叫“VPN”的遮羞布。但由于各种原因,VPN偶尔会出现自动掉线的情况。如果掉线的时候你正在执行某种任务,那么你的真实地址也会被对方看到。尽管这种记录只有几条,但还是难逃足够细心的日志review。这时候我们就需要一种机制,当vpn断线之后就禁止对外发送数据包。

之前在wooyun上看到有类似的小程序可以实现上述功能,但其实windows自带的组策略工具就可以完成这一需求了。这块其实上一年实习的时候就做过了,不过当时没记录下来。于是今天就花了一点时间把大概的步骤回忆起来,然后在2003 server上重现了一遍。

首先win+R输入“gpedit.msc”回车,打开“组策略编辑器”。依照路径打开:计算机配置→windows设置→安全设置→IP安全策略,在本地计算机。

1

根据我的理解,“IP安全策略”这块是用于建立IPSec隧道的,由于它可以对各类数据包进行限制,所以可用于我们的需求。先说下大概的思路,这个策略允许我们同时设置白名单和黑名单,即(允许/禁止)某些IP对某些IP的数据包的(发送/接收),所以我的想法是,禁止host的公网ip对外的一切访问,同时允许本地对vpn地址的所有数据包。由于vpn拨号成功后ip地址会变成私有的,所以还要允许vpn的ip段发出的所有数据包。下面是详细配置过程:

右键空白处右键,选择“创建IP安全策略”。狂点下一步,碰到“激活默认响应规则”时把前面的勾去掉,然后完成,就会出现编辑属性的页面。这里我创建了名为“VPN”的策略。

2

点击下面的“添加”,创建IP安全规则,“隧道终结点”和“网络类型”默认即可,然后来到“IP筛选器列表”页面。

3

这里要做的事情就是实现上面蓝色字体的内容。每一个“IP筛选器”只能选择“允许”或是“禁止”,那首先把“禁止”的规则写好。

添加一个新筛选器,明天写“ban”,然后再点添加,源ip填写主机对外的ip,如我的是192.168.153.130,目的ip选择任何ip,协议选择任意,然后点击确认。

4

这样我们的“ban”筛选器就完成了,点击确认,勾选“ban”然后下一步。 筛选器操作的作用是实现“允许”和“禁止”,添加一个新的操作,两次下一步之后选择“阻止”,点击完成。

5

选上“ban”之后就完成了这一条ip安全规则的配置。

然后是“允许”规则的创建。重复上面的步骤,IP筛选器中添加两条规则,一条是“本地ip地址向vpn地址发送数据包”,222.222.222.222为vpn地址,协议选择任意。

6

另外一条是“vpn私有地址允许发送所有数据包”。由于vpn地址分配是在一个ip段里随机分配的,所以最好填写ip段,协议选择任意:

7

“筛选器的操作”选择现有的“许可”就可以了。这样子就完成了整个组策略的配置,点击确认返回“组策略编辑器”,到这里我们就可以测试一下效果了。右键点击“VPN”,选择指派,可以看到左边的图标出现了一个绿点。

8

尝试访问一个非本地的网络看看,如baidu:

9

发现不能访问了。打开vpn连接然后拨号,再次尝试访问baidu:

10

再把vpn断开,发现网站都打不开了~

« 返回