PPTP VPN

 

之所以选择PPTP,最主要还是因为其简单,很多路由器也都支持PPTP.

方案上参考了 http://blog.lifeclaw.com/articles/how-to-install-pptp-vpn-service-on-ubuntu/

向该文作者表示一下感谢。

 

安装:

Shell代码  收藏代码
  1. sudo apt-get -y install pptpd

 

配置:

 

pptpd.conf

 

Shell代码  收藏代码
  1. sudo vi /etc/pptpd.conf
  2. #确保如下选项的配置
  3. option /etc/ppp/pptpd-option        #指定PPP选项文件的位置
  4. debug                                            #启用调试模式(这个可以不开启,我最终使用后还是关闭的。因为ec2空间有限。但是一开始用来查问题很有用))
  5. localip 10.90.0.1                            #VPN服务器的虚拟ip.  不需要和你的实际ip对应。 你可以任意指定
  6. remoteip 10.90.0.2-100                #分配给VPN客户端的虚拟ip。 自己用,这些足够了

 

pptpd-options

 

Shell代码  收藏代码
  1. sudo vi /etc/ppp/pptpd-options
  2. #确保如下选项的配置
  3. name pptpd                      #pptpd服务的名称
  4. refuse-pap                        #拒绝pap身份认证模式
  5. refuse-chap                       #拒绝chap身份认证模式
  6. refuse-mschap                   #拒绝mschap身份认证模式
  7. require-mschap-v2               #允许mschap-v2身份认证模式
  8. require-mppe-128                #允许mppe 128位加密身份认证模式
  9. ms-dns 8.8.8.8                  #使用Google DNS. 这个DNS你可以自己指定。
  10. ms-dns 8.8.4.4                  #使用Google DNS
  11. proxyarp                        #arp代理
  12. debug                            #调试模式. 一样,该项目在最终使用时被我关闭。这里临时开启
  13. dump                             #服务启动时打印出所有配置信息
  14. lock                                #锁定TTY设备
  15. nobsdcomp                       #禁用BSD压缩模式

 

认证信息配置:

 

Shell代码  收藏代码
  1. sudo vi /etc/ppp/chap-secrets
  2. #格式:用户名   服务类型   密码   分配的ip地址
  3. allen    *    xxxxxxx    *
  4. #第一个*代表服务可以是PPTPD也可以是L2TPD,第二个*代表随机分配ip

 

这里特别说明一下日志问题。 默认的debug日志是通过syslog 输出的。不过ubuntu已经用rsyslog替代了syslog. 如果想要看到日志文件,必须做额外配置:

 

Shell代码  收藏代码
  1. sudo vi /etc/rsyslog.conf
  2. #添加
  3. daemon.debug /var/log/pptpd.log

 

重新启动rsyslog:

 

Shell代码  收藏代码
  1. sudo service rsyslog stop
  2. sudo service rsyslog start

 

重启pptpd服务:

 

Shell代码  收藏代码
  1. sudo /etc/init.d/pptpd restart

 

此时可以尝试vpn拨号连接了。如果有问题可以在/var/log/pptpd.log中查看。

 

此时拨号以后还不能上网。必须做NAT转发。

 

Shell代码  收藏代码
  1. sudo sed -i ’s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g’ /etc/sysctl.conf
  2. sudo sysctl -p

 

iptables:

 

Shell代码  收藏代码
  1. #注意这里eth0代表你的外网网卡,请用ifconfig查看或者咨询网络管理员
  2. sudo iptables -t nat -A POSTROUTING -s 10.90.0.1/24 -o eth0 -j MASQUERADE
  3. #如果上面的命令报错,那么可以尝试以下的命令,其中xxx.xxx.xxx.xxx代表你的VPS外网ip地址
  4. sudo iptables -t nat -A POSTROUTING -s 10.90.0.1/24 -o eth0 -j SNAT –to-source xxx.xxx.xxx.xxx
  5. #设置MTU来确保过大的包不会被丢弃(据说有人举到过某些网站不能访问问题。因此做了此项设置。但是本人没有遇到。因此这步本人跳过. mss的大小请根据各人实际情况调整)
  6. sudo iptables -I FORWARD -s 10.90.0.1/24 -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1300

 

以上iptable可以写入/etc/rc.local,确保启动时候加载。

好了,收工。

此条目发表在 未分类 分类目录。将固定链接加入收藏夹。

评论功能已关闭。