基于 poptop 的 VPN 服务

OS: Ubuntu Gutsy
kernel: 2.26.14-server
内网网卡: 192.168.1.254
外网网卡: 172.18.11.220
pptpd : v1.3.4

PS:如果没有特别说明,下面命令都需要使用 root 权限。

1.安装 pptpd 服务
apt-get install pptpd

2.编辑 /etc/pptpd.conf
vi /etc/pptpd.conf
# 指明配置文件(默认是 /etc/ppp/pptpd-options ,要注意修改一下)
option /etc/ppp/options
# 使用wtmp 记录客户端的连接与断开
logwtmp
# localip 指明建立 VPN 连接时 VPN 服务器端分配的 IP 地址。
localip 192.168.1.254
# remoteip指明建立VPN连接时其客户端的IP地址。
remoteip 192.168.1.201-230
#注意:如果不设置localip,VPN服务器将对每一个VPN连接在服务器端各分配一个IP地址和对应的VPN客户通信。如果设置localip为单一的IP地址,则VPN服务器将对每一个VPN连接在服务器端都使用指定的IP地址和对应的VPN客户通信。如果设置localip为一个IP地址范围,VPN服务器将对每一个VPN连接在服务器端都使用指定的IP地址和对应的VPN客户通信;若地址分配完,则新的VPN连接将被拒绝。

3.编辑配置文件
vi /etc/ppp/options
# 不使用任何"逸出"控制序列
asyncmap 0
# 需要使用 /etc/ppp/chap-secrets 文件进行身份验证,不使用为 noauth。
auth
#不使用的时候就不用加密 使用硬件流量控制,默认就是打开的
crtscts
# 使用 uucp 形态的锁定档以避免它人取用串列设备
lock
# 当记录 PAP 包的时候隐藏密码
# hide-password
# 要求客户端使用 MS CHAP V2 身份验证连接,加密方式为 mppe 128 位,如果没有这两个,Windows 客户端连接的时候需要去掉连接属性-“安全措施”-“要求数据加密(没有就断开)”的勾;如果加上了,又只允许使用这个验证方式,就要在连接属性-“安全措施”-“高级(自定义设置)”里面只勾上“Microsoft CHAP 版本 2 (MS-CHAP v2)”,其他的协议不要。
+mschap-v2
require-mppe-128
# 使用 chap 身份验证
# +chap
# 拒绝 chap 身份验证。拒绝了 chap ,MS CHAP V2 当然也不能用了。
# -chap
# 拒绝 pap 身份验证(不加密密码的验证方法,不建议使用)。
# -pap
# 设置作为认证过程中的"主机名称"
name VPN
# 启动ARP代理,如果分配给客户端的IP地址与内网网卡在一个子网就需要启用ARP代理。
proxyarp
# 将每 30 秒发送 LCP echo-request 帧给客户端,以便检测客户端是否在连接
lcp-echo-interval 30
# 如果发送 4 次都没有接受到 LCP echo-reply,那么就假定客户端没有连接
lcp-echo-failure 4

4.添加身份验证
vi /etc/ppp/chap-secrets
# 使用 CHAP 身份验证的帐号、主机名称、密码、客户端可拨入的IP,注意主机名称要对应上面的
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
comet   VPN   12345678   *

5.重启服务器
/etc/init.d/pptpd restart

6.如果接入后为了能使用内网程序,如浏览内网web,须起用IP转发。
echo "1" > /proc/sys/net/ipv4/ip_forward

附:Window 2000 客户端的配置图文教程(English)
http://poptop.sourceforge.net/dox/pptp_win2k/

另:网上有文章说要

编辑 /etc/modprobe.d/aliases,在使用 MS CHAP V2 时增加  mppe 支持。
vi /etc/modprobe.d/aliases
alias char-major-108 ppp_generic
alias tty-ldisc-3 ppp_async
alias tty-ldisc-14 ppp_synctty
alias ppp-compress-18 ppp_mppe
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
alias net-pf-47 ip_gre

但是没有加也行,当 Windows 客户端使用该协议连接的时候会自动加载  ppp_mppe 模块的.

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据