OpnBSD PPTP客户端:安装和创建VPN

时间:2020-01-09 10:40:34  来源:igfitidea点击:

我在家工作,需要使用基于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