本文转自:http://os.51cto.com/art/201311/419159.htm

一、VPN服务器环境说明

操作系统:CentOS release 6.4 (Final)

本地网卡:

  1. # ifconfig 
  2. em1      Link encap:Ethernet  HWaddr 78:2B:CB:42:C3:68  
  3.           inet addr:192.168.123.201  Bcast:192.168.123.255  Mask:255.255.255.0 
  4. em2      Link encap:Ethernet  HWaddr 78:2B:CB:42:C3:6A  
  5.           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网段的请求。

 


二、安装VPN服务器包

使用yum安装ppp和pptp包

  1. yum -y install ppp* 
  2. yum -y install pptp* 

如果yum不具备pptp,可到 http://pptpclient.sourceforge.net 下载安装,这里建议选用rpm包。


三、 配置VPN服务器

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

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

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

  1. # vi /etc/pptpd.conf 
  2. ppp /usr/sbin/pppd 
  3. option /etc/ppp/options.pptpd 
  4. #logwtmp 
  5. localip 192.168.123.201 
  6. remoteip 192.168.0.234-238,192.168.0.245 

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

  1. # vi /etc/ppp/options.pptpd  
  2. ms-dns 202.106.196.115 
  3. ms-dns 192.168.123.5 

保存退出文件。

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

  1. # vi /etc/ppp/chap-secrets 
  2. # Secrets for authentication using CHAP 
  3. # client        server  secret                  IP addresses 
  4. shen pptpd 123456 * 

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

4. 启动VPN服务器

  1. # /etc/init.d/pptpd restart 

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


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

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

  1. #vi /etc/sysctl.conf   

将net.ipv4.ip_forward = 0中的0改为1就OK了。

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

  1. #sysctl –p 

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

#iptables -t nat -A POSTROUTING -s 192.168.123.0/24 -o eth0 -j MASQUERADE

说明:来自192.168.123.0网段的访问流经eth0网卡做转发


五、FAQ

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服务。

  1. #logwtmp 
  2. # /etc/init.d/pptpd restart 

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