Trade Off

supercalifragilisticexpialidocious

centos5上ppp、pptpd配置VPN

安装ppp:

1
yum install ppp

下载pptpd:

1
wget -c http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.x86_64.rpm

安装pptpd:

1
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

修改参数:

1
vi /etc/ppp/options.pptpd

ms-dns 8.8.8.8和ms-dns 8.8.4.4(这里用了Google的dns,你可以用别的)

加入分配IP等信息:

1
vi /etc/pptpd.conf

localip 192.168.0.1

remoteip 192.168.0.2-30(意思是连接上分配一个2~30的地址)

加入账号密码:

1
vi /etc/ppp/chap-secrets

用空格分开:USERNAME pptpd PASSWORD *   (最后的这个星号意思是不指定IP,自动分给你一个,pptpd是在配置文件中写的一个服务名称,默认就是这个,不用再修改了,你需要更改的就是大写的两组值)

修改转发参数:

1
vi /etc/sysctl.conf

把net.ipv4.ip_forward = 0改正1保存退出

1
2
/sbin/sysctl -p
使刚才配置的转发参数生效,你能够看到系统打印出的参数列表,应该能够看到ip_forward = 1了

启动pptpd:

1
/sbin/services pptpd start

配置iptables内容:

1
2
3
4
/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 47 -j ACCEPT
/sbin/iptables -A INPUT -p gre -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

解释一下,前两行是开启1723和47端口,第三行是允许GRE协议,最后一行是设置转发到eth0轮询。至于这个轮询的概念我就不太清楚了。转发到eth0也就是说把请求发送到了网卡eth0,这个可以在/sbin/ifconfig看到网卡的名字。

保存iptables规则,重启iptables:

1
2
3
/etc/init.d/iptables save
/etc/init.d/iptables restart
如果原有iptables内容可能会和现有的冲突,所以发现问题后先检查一下这里,毕竟iptables是控制连接的所有出口

下面这两条根据需要执行吧:

1
2
/sbin/chkconfig pptpd on
/sbin/chkconfig iptables on

分别是让pptpd和iptables机器再次重启后也能运行。

工作都完成了,连接上试试吧,用pptp方式连接哦,别的方式没用过,应该是不行的。有时候连接上不能访问网页建议断开几次再连接上试试,我曾更改了mtu,发现没什么作用,应该不出问题默认的都能用,服务器一般建立的ppp0、1、2……这些的mtu都是1496,本机对应的是1444,具体算法不想深究。

Comments