一、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网段的请求。

二、安装VPN服务器包

使用yum安装ppp和pptp包

复制代码

代码如下:

yum -y install ppp* 
yum -y install pptp* 
如果yum不具备pptp,可到 <a href="http://pptpclient.sourceforge.net">http://pptpclient.sourceforge.net</a> 下载安装,这里建议选用rpm包。

三、 配置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 
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服务器搭建完成了,但实际环境中还需要给VNP服务器增加路由功能

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

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

复制代码

代码如下:

#vi /etc/sysctl.conf 

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

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

复制代码

代码如下:

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

复制代码

代码如下:

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

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

相关链接

http://www.jb51.net/os/RedHat/128137.html

http://www.bitbottle.com/archives/132.html/2

http://bbs.51cto.com/thread-708223-1.html

最新文章

  1. [Objective-c开源库]HHRouter
  2. .net中事件引起的内存泄漏分析
  3. &lt;实训|第四天&gt;Linux下的vim你真的掌握了吗?附上ftp远程命令上传。
  4. argparse
  5. iOS 数字字符串的直接运算 + - * /
  6. 错误 1 Files 的值“ &lt; &lt; &lt; &lt; &lt; &lt; &lt; .mine”无效。路径中具有非法字符。
  7. Unity3d修炼之路:载入一个预制体,然后为该对象加入组件,然后查找对象,得到组件。
  8. 使用 WTForms 进行表单验证的例子
  9. 同源策略 &amp; 高效调试CORS实现
  10. Java -- JDBC 学习--获取数据库链接
  11. nginx安装以及常用配置
  12. LeetCode题解之Copy List with Random Pointer
  13. 个推应用统计产品(个数)Android集成实践
  14. 设计模式学习笔记(1)Iterator
  15. Docker学习--Linux基础准备篇
  16. 冒泡排序(高级版)之C++实现
  17. 开源NFV管理器 - OpenStack Tacker介绍 NFV和Tacker介绍和主要功能
  18. 基于IDEA和Maven的SSM分层项目搭建
  19. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 18—Photo OCR 应用实例:图片文字识别
  20. PageAdmin环境配置要求

热门文章

  1. 关于WM_CTLCOLOREDIT的处理的一些问题
  2. Java Hour7
  3. android 搭建环境工具
  4. Android判断App是否在前台运行(转)
  5. NDK编译生成so文件
  6. matlab练习程序(透视投影,把lena贴到billboard上)
  7. MySQL出现无法删除行记录
  8. SGU438 The Glorious Karlutka River =)(最大流)
  9. C#控制鼠标位置
  10. Revit二次开发示例:HelloRevit