linode的centos5.X安装pptp的vpn

前段时间用ssh隧道翻墙,满足了日常的需要,但是iphone用不了这个,想用pptp搞个简单的vpn可以给cydia用。

linode的vps还是满好的,假设pptp也很方便,网上的教程有点老,iptable部分遇到一些问题,下面就说说架设的步骤:

一、安装

1、检查环境是否支持(linode一般没有问题的)

如下执行zgrep MPPE /proc/config.gz和cat /dev/net/tun,

看看结果是不是和下面一样,一样就表示环境支持

[root@li399-18 ~]# zgrep MPPE /proc/config.gz
CONFIG_PPP_MPPE=y
[root@li399-18 ~]# cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state

2、安装所需服务:iptable、ppp,这个可以使用yum安装:

[root@li399-18 ~]# yum install ppp iptable

3、安装pptp,这个没法用yum安装,需要到sourceforge下载,最新版是1.3.4,然后用rpm安装

64位系统下载:http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm

32位系统下载:http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm

以64系统为例

[root@li399-18 ~]# rpm -Uvh pptpd-1.3.4-2.rhel5.x86_64.rpm

二、配置

1、配置pptp
打开/etc/pptpd.conf,将96行和97行的井号去掉,使用默认的ip配置即可

     96 localip 192.168.0.1
     97 remoteip 192.168.0.234-238,192.168.0.245

打开/etc/ppp/options.pptpd,配置dns地址,网上都建议用google的dns

     66 #ms-dns 10.0.0.1
     67 #ms-dns 10.0.0.2
     68 ms-dns 8.8.8.8
     69 ms-dns 8.8.4.4

打开/etc/ppp/chap-secrets,配置pptp的用户名和密码
这个文件开始是空的,直接在最后添加“用户名 pptpd 密码 ip地址”,一般天朝都用的是非固定ip,用*号代替

      user pptpd password *

2、修改内核配置,支持网络转发
打开/etc/sysctl.conf,启用ipv4的ip_forward,同时关闭ipv4的tcp_syncookies

      net.ipv4.ip_forward=1
      #net.ipv4.tcp_syncookies = 1

修改后需要执行sysctl -p命令,让修改生效

[root@li399-18 ~]# sysctl -p

3、添加iptables转发规则
假设你的机器外网ip为30.30.30.30,可以用ifconfig查一下

[root@li399-18 ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 30.30.30.30

保存下

[root@li399-18 ~]# service iptables save
Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]

4、开机启动服务

[root@li399-18 ~]# chkconfig pptpd on
[root@li399-18 ~]# chkconfig iptables on

5、修复iptables错误
如果现在启动pptpd,在启动iptables会遇到两个failed,如下

[root@li399-18 ~]# service iptables start
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: security raw nat mangle fi[FAILED]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_n[FAILED]

这两个问题主要是iptables版本和内核对不上导致的,不知道linode是不是修改过内核
第一个failed可以参考这里
第二个failed可以参考这里
第一个问题的修复需要在/etc/init.d/iptables,找到set_policy函数,添加一个security选项,如下123-128行

    120     for i in $tables; do
    121         echo -n "$i "
    122         case "$i" in
    123            security)
    124                     $IPTABLES -t security -P INPUT $policy \
    125                     && $IPTABLES -t security -P OUTPUT $policy \
    126                     && $IPTABLES -t security -P FORWARD $policy \
    127                    || let ret+=1
    128                 ;;
    129             raw)
    130                 $IPTABLES -t raw -P PREROUTING $policy \
    131                     && $IPTABLES -t raw -P OUTPUT $policy \
    132                     || let ret+=1
    133                 ;;

第二个问题的修复需要修改/etc/sysconfig/iptables-config配置,关闭ip_conntrack_netbios_ns模块,如下

    IPTABLES_MODULES=""
    IPTABLES_MODULES_UNLOAD="no"

6、启动服务

[root@li399-18 ~]# service pptpd start
Starting pptpd:                                            [  OK  ]
[root@li399-18 ~]# service iptables start
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: security raw nat mangle fi[  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]

到这里,所有的东西就架设完成了。

你可以留言,或者trackback 从你的网站

留言哦