Ubuntu 9 安装 PPTP VPN 服务
// October 22nd, 2009 // 6 Comments » // Funny, Life, Ubuntu, domain
IPHONE 支持VPN 是件非常不错的事情, 错的是不支持openvpn. 之前的文已经讲述了怎么在Linode 的Ubuntu上设置openvpn. 今天心血来潮准备按个PPTP 来支持IPHONE, 另外PPTP虽然速度比OPENVPN 慢但是加载方便, 弄一个也算是防万一. pptp 的安装设置其实一点都不难, 花了大时间的却是在配置对应的iptables上面.
sudo apt-get install pptpd -y
在ubuntu就是那么的方便,自动解决好包依赖关系. 安装完成后备份一下/etc/pptpd.conf 就是修改配置了. 好吧 这里要说一下浪费了很长时间的问题.
option /etc/ppp/pptpd-options #logwtmp localip 192.168.100.254 remoteip 192.168.100.130-199
其实这个配置文件灰常的简单option就不说了, 默认. localip 和 remoteip请使用样本配置文件最后的两段, 打开注释#就可以了.这里需要说的是在Ubuntu 9上 一定要把 logwtmp 这个选项注释掉, 原因俺也不知道, 要感谢一下twitter 朋友上的帮忙了, 之前的配置在连接用户的这步总是出错, 修改了这个就好用了..
第二步需要修改的是 配置文件 /etc/ppp/chap-secrets这个文件保存了PPTP 用户信息, 按照配置文件上的说明以下面的格式输入就ok了. 中间pptpd 这个服务如果默认的话不需要修改.
yourname pptpd yourpassword *最后用星号表示任何地方都可以通过这个用户访问VPN, VPN 本来就是提供方便访问的不是么? 最后要修改的是 /etc/ppp/pptpd-options我只修改了一个地方就是 ms-dns xx.xx.xx.xx 这里XXOO表示服务器的路由器地址, 跟openvpn 的push DNS 有点异曲同工, 就是让客户端通过这个DNS来访问网络,
完成配置后 重启一下pptp 服务 在ubuntu 下面我是这样重启的
$sudo /etc/init.d/pptpd stop $sudo /etc/init.d/pptpd start
如果你的服务器没配置iptables防火墙的 现在应该就可以通过在XP上建立简单的PPTP连接访问服务器资源了, 接下来就是配置iptables的过程切记备份现在的配置 小心噢.先来添加一条让1723端口通过的规则,然后就是允许gre协议通过防火墙, 其中xx.xx.xx.xx 就是服务器网卡绑定的地址, 一般是eth0 就是链接互联网的那个地址.
$sudo iptables -A INPUT -p tcp -m state --state NEW --dport 1723 -j ACCEPT $sudo iptables -A INPUT -p gre -j ACCEPT $sudo iptables -A OUTPUT -p gre -j ACCEPT $sudo iptables -A INPUT -p tcp --sport 1723 -s xx.xx.xx.xx -j ACCEPT $sudo iptables -A OUTPUT -p tcp --dport 1723 -d xx.xx.xx.xx -j ACCEPT
万事具备 链接成功, 不过现在还有一件事情要做,就是目前的PPTP链接能顺利链接服务器组成内部网络,但是却只能访问服务器的资源, 离我们通过VPN访问互联网那个还差那么一小步,
$sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE
这步使得通过192.168,100段的数据包路由到主网卡来实现于外部的链接, 好了 所有的东西都搞定了. Bingo !再多说一步, 如果能够通过测试的话就可以吧iptables 的配置保存起来, 具体看每个人的需要, 我自己是保存到一个文件的 每次重启自动导入, 有些人可能倾向手工再录入一次阿 哈哈.




