[转载并修改]在Ubuntu上安装PPTP VPN服务

来源:互联网 发布:好用房产软件 编辑:程序博客网 时间:2024/06/05 04:35

转载:http://blog.lifeclaw.com/articles/how-to-install-pptp-vpn-service-on-ubuntu/

1

 

此图完整的阐述了身为帝国平民的必备技能之一,VPN服务则是此种技能的技术实现,虚拟专用网络(Virtual Private Network ,简称VPN)指的是在公用网络上建立专用网络的技术。它涵盖了跨共享网络或公共网络的封装、加密和身份验证链接的专用网络的扩展。VPN主要采用了彩隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。

点对点隧道协议(PPTP)是VPN服务的一种最简单的实现协议,其它常见的VPN类型还有:使用IPsec的第2层隧道协议(L2TP/IPsec)、安全套接字隧道协议(SSL VPN)。本文主要讨论PPTP VPN服务在Ubuntu上的安装和配置。

A.使用apt源服务来安装PPTPD服务

sudo apt-get -y updatesudo apt-get -y install pptpd


B.安装完成之后编辑pptpd.conf配置文件


sudo gedit /etc/pptpd.conf

#确保如下选项的配置option /etc/ppp/pptpd-option                    #指定PPP选项文件的位置debug                                           #启用调试模式localip 192.168.0.1                             #VPN服务器的虚拟ipremoteip 192.168.0.200-238,192.168.0.245        #分配给VPN客户端的虚拟ip


C.编辑PPP选项配置文件


sudo gedit /etc/ppp/pptpd-options
#确保如下选项的配置name pptpd                      #pptpd服务的名称refuse-pap                      #拒绝pap身份认证模式refuse-chap                     #拒绝chap身份认证模式refuse-mschap                   #拒绝mschap身份认证模式require-mschap-v2               #允许mschap-v2身份认证模式require-mppe-128                #允许mppe 128位加密身份认证模式ms-dns 8.8.8.8                  #使用Google DNSms-dns 8.8.4.4                  #使用Google DNSproxyarp                        #arp代理debug                           #调试模式dump                            #服务启动时打印出所有配置信息lock                            #锁定TTY设备nobsdcomp                       #禁用BSD压缩模式logfile /var/log/pptpd.log      #输出日志文件位置



D.编辑用户配置文件来添加用户

sudo gedit /etc/ppp/chap-secrets
#格式:用户名   服务类型   密码   分配的ip地址test    *    1234    *#第一个*代表服务可以是PPTPD也可以是L2TPD,第二个*代表随机分配ip



E.重启PPTPD服务

sudo service pptpd restart


F.配置网络和路由规则 设置ipv4转发

sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.confsudo sysctl -p


设置iptables NAT转发


#注意这里eth0代表你的外网网卡,请用ifconfig查看或者咨询网络管理员sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE#如果上面的命令报错,那么可以尝试以下的命令,其中xxx.xxx.xxx.xxx代表你的VPS外网ip地址sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source xxx.xxx.xxx.xxx


设置MTU来确保过大的包不会被丢弃(这个可以不做)

sudo iptables -I FORWARD -s 192.168.0.0/24 -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1300


iptables的设置重启之后会取消,所以可以将上面的命令加入到/etc/rc.local来确保每次重启都会执行设置。

G.至此设置全部完成,可以用任意一个客户端机器如MAC、PC或者手机来新建一个VPN连接使用用户test,密码1234进行测试。另外网上提供一种自动安装脚本,可以参见如下操作:

wget -c http://small-script.googlecode.com/files/debian-pptpd.tar.gztar -zxf debian-pptpd.tar.gzsudo sh pptpd.sh


安装pptpd

  1. $ sudo apt-get install pptpd

编辑配置文件:

  1. $ sudo gedit /etc/pptpd.conf

找到最下面,修改ip:

  1. localip 你的主机ip
  2. remoteip 10.100.0.2-10

第二行为分配的ip段 

设置dns

  1. $ sudo gedit /etc/ppp/pptpd-options

修改以下部分为google的dns:

  1. ms-dns 8.8.8.8
  2. ms-dns 8.8.4.4

设置账号:

  1. $ sudo gedit /etc/ppp/chap-secrets

添加一行,依次为:用户名,服务,密码,限制ip:

  1. "user" pptpd "user" *

重启服务:

  1. $ sudo /etc/init.d/pptpd restart

设置IP转发

打开这个文件

  1. $ sudo vi /etc/sysctl.conf

去掉文件中这一行的注释:

  1. net.ipv4.ip_forward=1

使它立刻生效:

  1. sudo sysctl -p

安装iptables,如果你还没有安装的话:

  1. sudo apt-get install iptables

建立一个 NAT:

  1. sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24-o eth0 -j MASQUERADE

将规则保存,使重启后规则不丢失:

  1. sudo iptables-save >/etc/iptables-rules

若此处提示:-bash: /etc/iptables-rules: Permission denied 则可使用root用户,命令:su - 进入root用户保存

编辑网卡文件,加载网卡时自动加载规则

  1. sudo gedit /etc/network/interfaces

末尾加入:

  1. pre-up iptables-restore </etc/iptables-rules

设置MTU,防止包过大:

  1. sudo iptables -A FORWARD -s 10.100.0.0/24-p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200

若设置了上条规则,记得保存:

  1. sudo iptables-save >/etc/iptables-rules

macos 能连上,但没有任何收发包的问题,即能连接上VPN,不能上网:vpn高级里勾选发送全部流量

至此,搞定。


0 1