OpnBSD PPTP客户端:安装和创建VPN
我在家工作,需要使用基于pptp的vpn登录到我们的公司网络(基于Microsoft的PPTP服务器)。
如何在OpenBSD台式机/笔记本电脑或路由器/服务器操作系统下配置和设置PPTP VPN客户端?
pptp使用Microsoft的PPTP协议(使用IP GRE隧道协议)管理虚拟专用网(VPN)连接。
pptp在伪tty上使用ppp来与MS-CHAP身份验证协商连接。
警告:PPTP被认为是错误的协议。
由于固有的风险,该协议的设计者Microsoft建议不要使用它。
无论如何,由于易用性,很多人都使用PPTP,但这并不意味着它的危害性较小。
PPTP客户端和Poptop的维护者建议改用OpenVPN(基于SSL)或IPSec。
安装PPTP
首先,设置PKG_ADD路径,执行:
# export PKG_PATH=http://mirror.esc7.net/pub/OpenBSD/`uname -r`/packages/`machine -a`/
执行以下命令以安装pptp客户端:
# pkg_add -i -v pptp
输出示例:
pptp-1.7.2p3: ok --- +pptp-1.7.2p3 ------------------ PPTP IS NOT SECURE, see /usr/local/share/doc/pptp/PROTOCOL-SECURITY and http://www.schneier.com/pptp.html for more information.
配置示例
本示例假定您要使用pptp连接到VPN并使用VPN连接按以下方式路由流量:
- 您的远程办公室
192.54.1.2
的VPN服务器IP地址 - 您的VPN用户名
theitroad
- 您的VPN密码
candyBar
- 网络" 10.0.0.0/8"。我正在使用此子网/网络来路由VPN流量。
在客户端:
- OpenBSD 5.x amd64/i386。
- VPN客户端pptp。
- VPN配置文件名称/etc/ppp/ppp.conf
VPN接口名称tun0
配置
首先,编辑/etc/ppp/ppp.conf,执行:
# vi /etc/ppp/ppp.conf
为VPN连接添加一个条目:
## set default option for ppp. See man page ## default: set log Phase Chat LCP IPCP CCP tun command ## define our label. Use this label when connecting ## office: ## set serer ip / host set device "!/usr/local/sbin/pptp --nolaunchpppd 192.54.1.1" ## Login name/username set authname theitroad ## Login password set authkey candyBar ## Set other vales set timeout 0 set ifaddr 0 0 ## routing add 10.0.0.0/8 hisaddr disable ipv6cp set mppe 128 stateless
保存并关闭文件。
如何连接?
只需执行以下命令:
# ppp -ddial office
在连接日志中执行以下命令:
# tail -f /var/log/daemon
如何验证连接性?
执行以下命令以查看tun0配置:
# ifconfig | less
或者
# ifconfig tun0
执行以下命令以查看vpn子网的路由表:
# netstat -nr # netstat -f inet -nr
输出示例:
Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 192.168.1.2 UGS 1 374 - 8 vr0 10/8 10.0.31.18 UGS 0 0 1498 8 tun0 10.0.31.18 10.1.3.60 UH 1 0 1498 4 tun0 127/8 127.0.0.1 UGRS 0 0 33196 8 lo0 127.0.0.1 127.0.0.1 UH 2 0 33196 4 lo0 173.192.255.227 192.168.1.2 UGHD 2 376 - L 56 vr0 192.168.1/24 link#1 UC 2 0 - 4 vr0 192.168.1.2 74:44:01:40:57:fb UHLc 2 32 - 4 vr0 192.168.1.5 b8:ac:6f:65:31:e5 UHLc 1 2558 - 4 vr0 192.168.1.117 127.0.0.1 UGHS 0 0 33196 8 lo0 224/4 127.0.0.1 URS 0 0 33196 8 lo0
最后,将ICMP ECHO_REQUEST数据包发送到网络主机:
# ping -c4 10.10.29.72
输出示例:
PING 10.10.29.72 (10.10.29.72): 56 data bytes 64 bytes from 10.10.29.72: icmp_seq=0 ttl=61 time=271.268 ms 64 bytes from 10.10.29.72: icmp_seq=1 ttl=61 time=271.719 ms 64 bytes from 10.10.29.72: icmp_seq=2 ttl=61 time=272.265 ms 64 bytes from 10.10.29.72: icmp_seq=3 ttl=61 time=273.535 ms --- 10.10.29.72 ping statistics -- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 271.268/272.196/273.535/1.062 ms
您可以使用traceroute命令来打印到网络主机的路由数据包:
# traceroute 10.10.29.72
推荐配置
如果要使用pptp连接到VPN并将VPN连接用作"默认路由",则pptp手册页建议以下配置。
# cat /etc/ppp/ppp.conf
输出示例:
default: set log Phase Chat LCP IPCP CCP tun command office: set device "!/usr/local/sbin/pptp --nolaunchpppd 192.54.1.1" set authname theitroad set authkey candyBar set mppe 128 stateless
接下来,您需要在/etc/ppp/ppp.linkup中配置路由:
# cat /etc/ppp/ppp.linkup
输出示例:
offcie: add! default HISADDR
如果192.54.1.1。
不在本地网络上,我们必须添加指向192.54.1.1的主机路由,以免在将默认路由设置为VPN隧道后避免出现"鸡与蛋"问题。
假设标准默认路由为192.168.1.254:
# cat /etc/ppp/ppp.linkup:
输出示例:
office: add 192.54.1.1 192.168.1.254 add! default HISADDR
如果您的默认路由不固定,例如,如果您在旅途中从许多不同的网络连接到VPN,请使用脚本找出当前的默认路由并将主机路由添加到VPN网关。
例如:
# cat /etc/ppp/vpn-default-route.sh
输出示例:
#!/bin/sh gw=`netstat -rn -f inet | grep ^default | awk '{print };'` /sbin/route add -host 192.54.1.1 ${gw}
从/etc/ppp/ppp.linkup调用脚本:
office: ! sh /etc/ppp/vpn-default-route.sh add default HISADDR
确保在/etc/ppp/ppp.linkdown中撤消了对路由表的更改:
# cat /etc/ppp/ppp.linkdown
输出示例:
office: delete 192.54.1.1