CentOS 6.4 搭建VPN Server端 – lionelshen的个人空间 – 开源中国社区

  • 1         VPN服务器环境说明
  • 2         安装VPN服务器包
  • 3         配置VPN服务器
  • 4         配置VPN服务器的路由转发功能
  • 5         FAQ
  • 5.1   /var/log/messages日志中出现下面的错误,如何解决?
  • 5.2  如果系统阻止了gre协议,可以使用下面的命令打开
  • 作者:沈小然    日期:2013-11-26

    目录

    1       VPN服务器环境说明2

    2       安装VPN服务器包2

    3       配置VPN服务器3

    4       配置VPN服务器的路由转发功能3

    5       FAQ.. 4

    5.1   /var/log/messages日志中出现下面的错误,如何解决?4

    1         VPN服务器环境说明

    操作系统:CentOS release 6.4 (Final)

    本地网卡:

    # ifconfig

    em1      Link encap:Ethernet  HWaddr 78:2B:CB:42:C3:68 

              inet addr:192.168.123.201  Bcast:192.168.123.255  Mask:255.255.255.0

    em2      Link encap:Ethernet  HWaddr 78:2B:CB:42:C3:6A 

              inet addr:10.100.100.201  Bcast:10.100.100.255  Mask:255.255.255.0

    说明:本地网卡em1负责连接vpn客户端,em2负责与10.100.100.0网段服务器的连接。

    本实验目的:

    (1)       vpn客户端能够成功的连接到vpn服务器上;

    (2)       vpn服务器可以转发来自vpn客户端对10.100.100.0网段的请求。

    2         安装VPN服务器包

    使用yum安装ppppptp

    yum -y install ppp*

    yum -y install pptp*

    注意:redhat5.8等老版本的yum没有提供pptp和pptp-setup的rpm包,推荐到http://rpm.pbone.net/index.php3去找,源码包可以到 http://pptpclient.sourceforge.net 下载,这里建议选用rpm包。

    3         配置VPN服务器

    1.       编辑/etc/pptpd.conf文件,找到“locapip”和“remoteip”这两个配置项,将前面#去掉。将后面的IP地址更改为自己需要IP

    locapip表示VPN服务器自己的本地IP地址;

    remoteip表示VPN客户端连到服务器上将会被分配的IP地址范围。

     

    # vi /etc/pptpd.conf

    ppp /usr/sbin/pppd

    option /etc/ppp/options.pptpd

    #logwtmp

    localip 192.168.123.201

    remoteip 192.168.0.234-238,192.168.0.245

    2.       再编辑文件/etc/ppp/options.pptpd,在末尾添加DNS地址

    # vi /etc/ppp/options.pptpd

    name ZLZFVPN    

    refuse-pap          拒绝 pap 身份验证模式
    refuse-chap        拒绝 chap 身份验证模式
    refuse-mschap    拒绝mschap身份验证模式

    require-mschap-v2

    require-mppe-128

    proxyarp

    debug            开启调试模式,相关信息同样记录在 /var/logs/message 中

    dump

    lock            锁定客户端 PTY 设备文件

    nobsdcomp    禁用 BSD 压缩模式

    novj    
    novjccomp    禁用 Van Jacobson 压缩模式

    nologfd        禁止将错误信息记录到标准错误输出设备(stderr)

    ms-dns 202.106.196.115

    ms-dns 192.168.123.5

    保存退出文件。

    3.       添加VPN客户端帐号和口令

    # vi /etc/ppp/chap-secrets

    # Secrets for authentication using CHAP

    # client        server  secret                  IP addresses

    shen pptpd 123456 *

    这里,我们创建了一个vpn用户:shen,口令:123456。一个帐号一行,可以添加多个帐号。

    4.       启动VPN服务器

    # /etc/init.d/pptpd restart

    至此VPN服务器搭建完成了,但实际环境中还需要给VPN服务器增加路由功能

    pptpd成功启动以后将开启一个TCP协议的端口1723。

    tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      1435/pptpd

    4         配置VPN服务器的路由转发功能

    1.       修改内核文件,使系统支持转发

    #vi /etc/sysctl.conf  

    net.ipv4.ip_forward = 1

    然后执行下列命令,使其生效: 

    #sysctl p

    2.       配置防火墙增加转发规则

    #iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o em2 -j MASQUERADE 

    说明:对来自192.168.0.0网段(VPN分配的IP段,拨号网卡是em1)的访问允许转发到em2网卡(em2网卡连接10.100.100.0网段),从而访问10.100.100.201那个网段的服务器。

    本例中,我只需要访问vpn服务器的10.100.100.201网卡,所以上面的路由转发操作可以不做。

    提供我的路由表

    # route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.0.234   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
    10.100.100.0    0.0.0.0         255.255.255.0   U     0      0        0 em2
    192.168.123.0   0.0.0.0         255.255.255.0   U     0      0        0 em1
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 em1
    0.0.0.0         192.168.123.250 0.0.0.0         UG    0      0        0 em1

    提供我的iptables,其实没有任何配置

    # iptables -t nat -L
    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination         

    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination         

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    注意:vpn客户端要访问10.100.100.0网段需要在vpn客户端添加一条路由网关指向拨号以后创建的ppp0网卡,这里不说明大家可能会有点懵。

    5         FAQ

    5.1   /var/log/messages日志中出现下面的错误,如何解决?

    错误日志内容:from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs

    解决办法:

    修改 /etc/pptpd.conf 文件,注释掉logwtmp 这行,重启pptpd服务。

    #logwtmp

    # /etc/init.d/pptpd restart

    再次尝试连接vpn客户端,可以成功验证用户和口令了。

    5.2  如果系统阻止了gre协议,可以使用下面的命令打开

    iptables -A INPUT -p tcp -m tcp –dport 1723 -j ACCEPT
    iptables -A INPUT -p gre -j ACCEPT
    iptables -A OUTPUT  -p gre -j ACCEPT

    来源URL:http://my.oschina.net/lionel45/blog/179164