网上有不收的教程,基于linode建立VPN还是比较简单的,但如果启用了iptables以后,需要特别注意规则的书写,整个流程参考与网的记录整理如下,以备后用:
基本环境:linode 512
系统:ubuntu 12.04
以下所有的命令,如果不是ROOT权限下,需要在前面加上sudo
1、安装pptp
sudo apt-get install pptpd -y
2、修改/etc/pptpd.conf
#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
将前面的#号去掉
3、修改/etc/ppp/chap-secrets,这个文件名中保存了访问VPN的用户名密码,格式如下:
username pptpd password *
Username和password都是明文;pptpd代表服务名,和/etc/ppp/options.pptpd里的name对应,通常默认值就是pptpd;最后一项是分配这个用户的ip,*代表随机分配。
4、修改/etc/ppp/options.pptpd,大多数配置项都不需要修改,除了DNS设置:
#ms-dns x.x.x.x
#ms-dns x.x.x.x
使用GOOGLE的DNS服务器:8.8.8.8 和 8.8.4.4
重启PPTP:service pptpd restart
5、修改内核设置
找到
net.ipv4.ip_forward = 0
修改为
net.ipv4.ip_forward = 1
找到
net.ipv4.tcp_syncookies = 1
修改为
#net.ipv4.tcp_syncookies = 1
执行以下命令使修改后的内核生效
sysctl -p
6、修改iptables规则
iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
iptables -A INPUT -p tcp –dport 47 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE
7、导出iptables规则
sudo sh -c iptables-save > /home/username/iptables.up.rules
8、打开iptables.up.rules,看一下刚才输入的前3句规则是位置是否正常,必须要在
-A INPUT -i lo -j ACCEPT
-A INPUT -j DROP
的前面,否则不能使用,我就是一直在尝试了几次才想起来,规则输入后的位置一定要放好,否则后面drop掉了
我的规则如下:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [405:507919]
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 1723 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 47 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j DROP
COMMIT
现在通过windows的新建VPN连接,就可以正常工作了