VPN On OpenBSD 配置小记

豆豆网   技术应用频道   2006年08月28日  【字号: 收藏本文

本文详细介绍VPN On OpenBSD 配置小记

  而运行isakmpd就比较复杂了,他在静态的网关和需要拨号连接的网关上工作方法不同。对于静态网关,只需要修改/etc/rc.conf成'isakmpd_flags=""',然后isakmpd就可以每次重起都自动运行了。但是在拨号连接的网关上,这种方法就会毫无用处,因为他刚刚重起过以后并没有Internet连接。这时候,如果我们需要每次建立PPP连接以后都自动运行isakmpd、取消PPP连接的时候也同时关闭isakmpd。可以在/etc/ppp.linkup和/etc/ppp.linkdown里面加入一行字。在/etc/ppp.linkup里面加入

  MYADDR:

  !bg isakmpd

  而在/etc/ppp.linkdown里面加入

  MYADDR:

  !bg /etc/ppp/killisakmpd

  这里killisakmpd是一个shell脚本,内容如下:

  #!/bin/sh

  kill `cat /var/run/isakmpd.pid`

  这样,就可以完全将VPN的配置运行自动化了,很方便。

  

4.测试和调试

  如果读者的VPN第一次没有正常运行,那么你就不得不调试。如果isakmpd的一些功能没有正确配置、也就是虽然能够设立路由,但是没能加密所有的密钥,那这将是极为危险的。

  首先,最好先ping一下对方LAN的机器。上面已经讲过。如果工作不正常,那么在Gateway1上:

  tcpdump -i [网络外部接口名称,比如fxp1, tun0 等等] host [Gateway2的IP]

  这条命令可以显示所有从 Gateway2到Gateway1的流量。理论上应该只有加密的ping命令被传送,就像这样:

  16:10:07.543323 esp d7-lp-23.dial-up.net > gateway.whatever.com spi

  0xEFBF34AA seq 146 len 132

  16:10:07.712902 esp gateway.whatever.com spi > d7-lp-23.dial-up.net

  0xB17F45A2 seq 146 len 132

  这表示进入的所有信息都是以esp方式进行加密的,而且你的VPN正常工作。如果你没有看到任何有关ICMP的信息,你的Internet连接还是未被VPN加密的。

  当笔者的VPN没有正常工作的时候,却也得到了以上信息,但是没有ping的回答,表示加密的信息根本没有在对方Gateway上处理。原因很简单:对方Gateway运行的是OpenBSD 2.8系统!

  

5. 与NAT和防火墙(ipf)的交互性

  当以上所有工作都完成,并在没有Ipfilter的情况下正常工作了,笔者就打开了NAT和ipf。没有对标准的NAT设置作任何修改。然后在/etc/ipf.rules加上几行用来允许加密信息可以通过网关

  # VPN: allow any traffic on the ISAKMP port

  pass in on fxp1 proto udp from any port = 500 to 25.50.100.200 port = 500

  pass out on fxp1 proto udp from 25.50.100.200 port = 500 to any port = 500

  # VPN: allow all traffic in ESP form

  pass in proto esp from any to 25.50.100.200

  pass out proto esp from 25.50.100.200 to any

  这些规则会允许所有通过isakmpd进行的的密钥交换和后来的加密esp过程能够正常进行。

  

6. 结论

  从以上的记述来讲,对于一个对网络、网关、NAT、ipf、ppp有基本认识的读者,配置一个VPN不是很难的事情。当设定好一切,还可以尝试运用各种不同的加密和认证手段。

作者:刘稳    责编:豆豆技术应用

正在加载评论...