CentOS VPN

网络实验环境:
双网卡AS5.0 VPN服务器:eth0=192.168.10.1 eth1=192.168.20.1,eth0内网卡,虚拟网络vmnet2,eth1外网卡,虚拟网络桥接。
内网服务器IP地址:192.168.10.1
外网PC机,做VPN客户端,IP地址:192.168.20.2

一、软件包

  1. dkms-2.0.17.5-1.noarch.rpm
  2. kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
    MPPE(Microsoft Point to Point Encryption,微软点对点加密)
  3. ppp-2.4.4-9.0.rhel5.i386.rpm(AS5.0光盘默认就有)
    PPP(Point-to-Point Protocol,点到点协议)
  4. pptpd-1.3.4-1.rhel5.1.i386.rpm

软件包下载地址

1
2
3
4
wget http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm 
wget http://poptop.sourceforge.net/yum/stable/packages/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
wget http://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.4-9.0.rhel5.i386.rpm
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm

安装

1
2
3
4
rpm -ivh dkms-2.0.17.5-1.noarch.rpm
rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
rpm -ivh ppp-2.4.4-9.0.rhel5.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

二、安装软件包
安装时注意顺序

三、编辑pptpd主配置文件

  1. #vim /etc/pptpd.conf

localip 后面要改为你服务器的外网IP地址:192.168.20.1,也就是VPN客户端拨号的IP地址。
remoteip 后面改为你分配给VPN用户的IP段….比如192.168.10.100-200

  1. #vi /etc/ppp/options.pptpd 修改内容如下:
    一般只需修改ms-dns,分配给VPN客户端的DNS服务器IP地址

    1
    2
    3
    4
    5
    6
    7
    8
    name pptpd
    refuse-pap
    refuse-chap
    refuse-mschap
    require-mschap-v2
    require-mppe-128
    ms-dns 202.101.224.68
    proxyarp
  2. 重启pptpd服务器

四、增加VPN用户和密码,会立即生效的。
/etc/ppp/chap-secrets 增加两行分别对应如下:

1
2
# client server secret IP addresses
"test@gd.cn" * "test"    *

上面第二行代码的四项内容分别对应第一行中的四项。“test@gd.cn” 是Client端的VPN用户名;“server”对应的是VPN服务器的 名字,该名字必须和/etc/ppp/options.pptpd文件中指明的一样,或者设置成“”号来表示自动识别服务器;“secret”对应的是 登录密码;“IP addresses”对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“”号。

五、开启路由转发

#echo 1 > /proc/sys/net/ipv4/ip_forward
可以将这条命令放到文件 /etc/rc.d/rc.local 里面,以实现每次开机时自动运行该命令。

六、开启linux 防火墙

将Linux服务器的1723端口和47端口打开,并打开GRE协议。

1
2
3
#/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

七、用Iptables做NAT服务
我们还需要设置NAT IP转发.否则用户连接上服务器后.是不能访问外网的内容的.
设置方法也很简单的.

复制内容到剪贴板
代码:

1
2
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to 999.999.999.999

上面的192.168.10.0替换成你要分配给客户用的VPN 内网IP段
999.999.999.999 替换成你的VPN服务器IP [与上面PPTPD.CONF的LOCALIP一样]
最后我们打开LINUX服务器的IP转发功能就大功告成了