linux VPN服务配置.docx
《linux VPN服务配置.docx》由会员分享,可在线阅读,更多相关《linux VPN服务配置.docx(23页珍藏版)》请在冰豆网上搜索。
linuxVPN服务配置
linuxVPN服务配置
2009-12-1716:
21:
46| 分类:
linux管理|字号 订阅
一、VPN概述
1.VPN简介
虚拟专用网是借助公共网络internet来连接在不同地理位置的本地网络,网络间的访问就像本地局域网访问一样。
由于VPN在传输数据的过程中对数据进行了加密,尽管这些数据在公共网络上传输,其安全性还是很高的。
2.VPN的原理
现在假定有一台主机想通过internet联入公司内部的网络。
首先该主机通过ADSL方式上网,然后通过vpn拨入方式与公司的VPN服务器建立一条虚拟连接,在建立联接的过程中,双方必须确定采用何种VPN协议和链接线路的路由路径等。
隧道建立成功后,双方的所有通信都是经过加密的。
也实现数据在互联网中传输的安全性。
VPN的隧道技术可以分为第2层和第3层隧道协议,第2层隧道协议使用帧作为数据交换单位,如pptp,l2tp等,都是使用ppp协议在互联网中传输的。
第3层隧道协议使用包作用数据传输单位,如IPSEC。
二、VPN服务的安装
1.VPN服务器网络环境
VPN服务器两块网卡,分别为eth0,eth1。
采用虚拟机模拟,redhatlinux9
eth0:
192.168.129.20/24模拟公网IP,可以上internet。
eth1:
192.168.1.1/24 实现内网
并且配置samba实现内部资料共享。
2.VPN服务器安装
rpm-ivhdkms-1.12-1.noarch.rpm #动态内核模块支持
rpm-ivhkernel_ppp_mppe-0.0.4-2dkms.noarch.rpm#MPPE加密协议内核补丁
rpm-Uvhppp-2.4.3-5.rhl9.i386.rpm #升级内置版本,以支持mppe加密
rpm-ivhpptpd-1.3.3-1.rhl9.i386.rpm#pptp安装包
软件查找地址:
在查找的过程中,注意linux的版本。
验证软件安装情况:
(1).检查PPP是否支持MPPE
strings'/usr/sbin/pppd'|grep-imppe|wc--lines
46 /*输出为0则表示不支持;输出为30或更大的数字就表示支持*/
(2).检查模块加载
[root@redhatroot]#lsmod|grepppp_mppe
ppp_mppe 14008 2 (autoclean)
ppp_generic 24572 3 (autoclean)[ppp_mppeppp_async]
3.VPN服务器配置
vpn服务器的主配置文件/etc/pptpd.conf以及/etc/ppp/chap-secrets。
(1).配置主配置文件
vi/etc/pptpd.conf
localip192.168.129.20#VPN服务器IP
remoteip192.168.1.254#客户端VPN连接成功后将分配的IP,如果是地址范围可表示为192.168.1.200-234的形式
(2).配置帐户文件
[root@redhatroot]#vi/etc/ppp/chap-secrets
#SecretsforauthenticationusingCHAP
#client server secret IPaddresses
"tom" pptpd "abc,.123" "*"
#用户名 服务 密码 分配的IP,可以指定
(3).开启内核路由支持
vi/etc/sysctl.conf
net.ipv4.ip_forward=1/*把原来的0改为1,永久性生效*/
或
#echo1>/proc/sys/net/ipv4/ip_forward临时生效
4.VPN服务启动
(1).vpn启动与关闭
/etc/init.d/pptpdstart
/etc/init.d/pptpdrestart-kill
(2).开机启动服务
chkconfigpptpdon
(3).开启防火墙
pptp服务使用TCP协议的1723端口和编号47的IP协议,应用打开相应规则通过。
iptables-IINPUT-ptcp--dport1723-jACCEPT
iptables-IINPUT-pgre -jACCEPT
三、VPN客户端
1.创建VPN连接
中文WindowsXP建立VPN连接步骤:
(1)、鼠标右键点击“网上邻居→属性→新建连接向导”,点击“下一步”按钮
(2)、选择“连接到我的工作场所的网络”,点击“下一步”按钮
(3)、选择“虚拟专用网络连接”,点击“下一步”按钮
(4)、公司名随便填,点击“下一步”
(5)、选择“不拨初始连接”,点击“下一步”按钮
(6)、在地址栏输入代理IP,点击“下一步”按钮
(7)、选择“在我的桌面上添加一个到此连接的快捷方式”,点击“完成”按钮,完成后填写帐号密码即完成的VPN连接。
2.连接VPN服务器
首先应用上一节的方法创建VPN连接,然后输入用户名与密码,开始建立连接。
默认状态下VPN连接就是加密的。
登录成功之后,会自动的在任务栏上有一个电脑图标,可以看该VPN客户连接的详细信息。
客户端上有两个IP地址,一个用于自己上网,一个用于连接VPN的局域网,可以访问公司内网的共享资料了。
\\192.168.1.1 就可以访问公司共享资料了。
RedHatEnterpriseLinux5.0之VPN服务器简易搭建
1.vpn服务器有两块网卡接外网的ip是10.1.24.39接内网的ip是192.168.0.1
2.外网有一个客户端10.1.26.78通过Internet连接拨vpn并分配一个公司内网的地址
3.尝试去ping一下vpn内网的ip地址是否可以访问192.168.0.0/24这个网段即可
服务器配置
1.软件的安装并检查ppp模块是否已经加载,一般载安装好软件后就会自动加载了
2.指定vpn服务器的工作网卡ip及vpn服务器分配给客户端的ip范围
vi/etc/pptpd.conf
3.建立vpn拨号的账户和密码及是否指定客户端ip地址
vi/etc/ppp/chap-secrets
4.启用nat地址转换及路由转发
5.启动服务器
6.检查服务器的网卡配置
客户端配置
1.检查客户端的网卡配置
2.开始建立vpn连接
检查服务器的日志和网卡状况
检查客户端的网卡状况
RedhatLinux5.3PPTPVPNServer的安装配置
实验环境:
(1) 公司所有game服务器,只允许一个外网ip去访问,需要维护服务器,必须先拨号到指定外网ip。
(2) 公司与总部通信都是走vpn通道,公司内部ip与vpn设备下是不同网段,需要在vpn设备下接一台双网卡服务器
解决方案:
通过linux下的pptp协议,远程用户能通过支持点对点协议的所有操作系统,安全访问网络.
实验图:
根据方案,需在192.168.15.50搭建Poptop服务
关于Poptop介绍信息:
Poptop是一个PPTP服务器的开源实现,采用C预言开发,可运行在x86或者是摩托罗拉嵌入式ColdFire体系。
可与微软的PPTPVPN客户端进行完全互操作。
点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。
通过该协议,远程用户能够通过 MicrosoftWindowsNT 工作站、Windows95 和 Windows98 操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地 ISP,通过 Internet 安全链接到公司网络。
PPTP 可以用于在 IP 网络上建立 PPP 会话隧道。
在这种配置下,PPTP 隧道和 PPP 会话运行在两个相同的机器上,呼叫方充当 PNS。
PPTP 使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。
PPTP 作为一个呼叫控制和管理协议,它允许服务器控制来自 PSTN 或 ISDN 的拨入电路交换呼叫访问并初始化外部电路交换连接。
PPTP 只能通过 PAC 和 PNS 来实施,其它系统没有必要知道 PPTP。
拨号网络可与 PAC 相连接而无需知道 PPTP。
标准的 PPP 客户机软件可继续在隧道 PPP 链接上操作。
PPTP 使用 GRE 的扩展版本来传输用户 PPP 包。
这些增强允许为在 PAC 和 PNS 之间传输用户数据的隧道提供低层拥塞控制和流控制。
这种机制允许高效使用隧道可用带宽并且避免了不必要的重发和缓冲区溢出。
PPTP 没有规定特定的算法用于低层控制,但它确实定义了一些通信参数来支持这样的算法工作。
Poptop环境需要软件包:
1.Dkms
2.kernel_ppp_mppeMPPE (MicrosoftPointtoPointEncryption,微软点对点加密)
3.ppp PPP(Point-to-PointProtocol,点到点协议)
4.pptpd
步骤如下:
1.查看还需安装哪些软件,由于RHEL5 的 2.6.18 内核已经集成了MPPE和高版本的ppp
[root@viong~]# rpm-qppp
ppp-2.4.4-2.el5
[root@viong~]# strings'/usr/sbin/pppd'|grep-imppe|wc-l
42
检查PPP是否支持MPPE,若结果显示“0”则表示不支持,而“30”或更大的数字就表示支持。
[root@viong~]# modprobeppp-compress-18&&echo‘ok!
MPPEwasfound!
’
ok!
MPPEwasfound!
检查内核MPPE补丁是否安装成功:
若结果显示“ok!
MPPEwasfound!
”则表示成功。
[root@viong~]# rpm-qdkms
packagedkmsisnotinstalled
[root@viong~]# rpm-qpptpd
packagepptpdisnotinstalled
2. 安装软件
[root@viongsoft]# rpm–ivh
[root@viongsoft] rpm–ivh
3.修改pptpd.conf配置参数
[root@viongsoft]# vi/etc/pptpd.conf
95#(Recommended)
96#localip192.168.0.1
97#remoteip192.168.0.234-238,192.168.0.245
修改为:
95#(Recommended)
96 localip192.168.126.2
97 remoteip192.168.126.100-200
注:
/etc/pptpd.conf 常用配置
option/etc/ppp/options.pptpd
PPP组件将使用的配置文件;
stimeout120
开始PPTP控制连接的超时时间,以秒计;
debug
把所有debug信息记入系统日志/var/log/messages;
localip192.168.1.10
服务器VPN虚拟接口将分配的IP地址,可设置为与VPN服务器内网地址相同网段的IP,也可设置为另一网段的IP;
remoteip192.168.1.11-30
客户端VPN连接成功后将分配的IP地址段,同样可设置为与VPN服务器内网地址相同网段的IP地址段,也可以设置为另一网段的IP地址段;
logwtmp
该功能项的作用是“使用wtmp记录客户端的连接与断开信息
4.修改options.pptpd配置参数
/etc/ppp/options.pptpd 默认配置就ok
注:
/etc/ppp/options.pptpd常用配置
namepptpd
pptpdserver的名称。
refuse-pap
拒绝pap身份验证模式。
refuse-chap
拒绝chap身份验证模式。
refuse-mschap
拒绝mschap身份验证模式。
require-mschap-v2
在端点进行连接握手时需要使用微软的mschap-v2进行自身验证。
require-mppe-128
MPPE模块使用128位加密。
ms-dns61.139.2.69
ms-dns202.98.96.68
ppp为Windows客户端提供DNS服务器IP地址,第一个ms-dns为DNSMaster,第二个为DNSSlave。
proxyarp
建立ARP代理键值。
debug
开启调试模式,相关信息同样记录在/var/logs/message中。
lock
锁定客户端PTY设备文件。
nobsdcomp
禁用BSD压缩模式。
novj
novjccomp
禁用VanJacobson压缩模式。
nologfd
禁止将错误信息记录到标准错误输出设备(stderr)
5.修改chap-secrets配置参数
[root@viongsoft]# vi/etc/ppp/chap-secrets
#SecretsforauthenticationusingCHAP
#client server secret IPaddresse
viong * 123 *
注:
viong用户账号
*代表自动识别当前服务器主机名,也可以手动配置
123用户密码
*代表自动分配可用的IP地址,可根据需要指定IP地址
也可以使用vpnuser命令来进行配置:
#vpnuseraddviong123 添加一个viong用户
6.开启路由转发
因为VPN客户端在拨号后实际是通过服务器外网网卡进行数据通信的,那么要访问内网网段的地址就必须开启数据包转发,使外网网卡的数据包能够转发到内网网卡上
[root@viongsoft]# vi/etc/sysctl.conf
6#ControlsIPpacketforwarding
7net.ipv4.ip_forward=0
修改为:
6#ControlsIPpacketforwarding
7 net.ipv4.ip_forward=1
[root@viongsoft]# sysctl-p/etc/sysctl.conf
路由转发立即生效
7. 防火墙配置
对于默认开启了SELinux认证:
需执行以下命令使pppd与pptp穿透SELinux
[root@viongsoft]# setseboolpppd_disable_trans1
[root@viongsoft]# setsseboolpptp_diable_trans1
附上关闭SELinux认证方法:
编辑vi/etc/sysconfig/selinux文件,配置以下选项
SELINUX=disabled
如果不重启生效就执行以下命令使修改生效
[root@viongsoft]# setenforce0
对于开启了iptables过滤的主机,需要开放VPN服务的端口:
471723和gre协议
编辑/etc/sysconfig/iptables文件,加入以下规则
-ARH-Firewall-1-INPUT-pgre-jACCEPT
-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW-mtcp--dport47-jACCEPT
-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW-mtcp--dport1723-jACCEPT
[root@viongsoft]# serviceiptablesrestart
重启iptables直接生效
用Iptables做NAT服务
在VPN客户端成功拨号以后,本地网络的默认网关会变为VPN服务器的VPN内网地址,这样会导致客户端只能够连接VPN服务器及其所在的内网,而不能访问互联网;
[root@viong~]#iptables-tnat-APOSTROUTING-s192.168.126.0/24-jSNAT--to192.168.15.50
[root@viong~]#echoiptables-tnat-APOSTROUTING-s192.168.126.0/24-jSNAT--to192.168.15.50>>/etc/rc.local
加入到/etc/rc.local开机自动启动
8.启动pptp
[root@viong~]#servicepptpdrestart
[root@viong~]#netstat-ntpl|grep1723
tcp 0 00.0.0.0:
1723 0.0.0.0:
* LISTEN 2585/pptpd
9.测试拨号是否成功
客户端:
Win7
C:
\DocumentsandSettings\Administrator>ipconfig
WindowsIPConfiguration
Ethernetadapter本地连接:
Connection-specificDNSSuffix .:
IPAddress............:
192.168.15.253
SubnetMask...........:
255.255.255.0
DefaultGateway.........:
192.168.15.1
PPPadaptertest:
Connection-specificDNSSuffix .:
IPAddress............:
192.168.126.100
SubnetMask...........:
255.255.255.255
DefaultGateway.........:
192.168.126.100
C:
\DocumentsandSettings\Administrator>ping192.168.126.1
Pinging192.168.126.1with32bytesofdata:
Replyfrom192.168.126.1:
bytes=32time=144msTTL=127
Replyfrom192.168.126.1:
bytes=32time=4msTTL=127
C:
\DocumentsandSettings\Administrator>ping
Pinging[119.75.216.20]with32bytesofdata:
Replyfrom119.75.216.20:
bytes=32time=33msTTL=52
Replyfrom119.75.216.20:
bytes=32time=27msTTL=52
通过以上测试,说明已经成功生效了.
小插曲:
每次写一篇文章,都是追求把它整理得完美点来与大家分享。
但也是比较累人。
关于这次blog编辑器的升级,给我带来一些欢喜。
我不用整理从word复制到编辑的文本,文章篇幅不会被限得那么死.谢谢51cto的努力,期待着图片的直接黏贴功能...有时间,我会把平时工作关联到的一些技术写出来与大家分享,谢谢支持!
vpn配置pptpd
本来一个简单的配置,被复杂化了!
安装mppe(支持MPPE加密协议的内核补丁),装了很久,试过几个方法,换过几个版本,换过两个平台,都失败了,后来才发现,RHEL5、centOS5或以上的版本不需要安装这个补丁的,因为内核已经支持了(导致这个问题的最大原因是网上的教程都太旧了,安装在4版本上的,所以教程都安装mppe协议)。
。
马上晕倒~然后跳过mppe直接继续安装,成功了,步骤也很少,把他写下来给大家参考!
我的平台是centOS5.1,曾在RHEL5.3下实验成功!
按理是可在centOS和RHEL的所有5系列中实现的
所有软件包
libpcap-0.9.4-11.el5
安装所需要的模块,如果系统没安装,请安装
ppp-2.4.4-9.0.rhel5.i386.rpm
升级内置的PPP软件包,也支持MPPE协议
pptpd-1.3.4-1.rhel5.1.i386.rpm
PPTP点对点隧道协议的RPM安装包
#yuminstalllibpcap
到这里下载相应的包
ppp-2.4.4-9.0.rhel5.i386.rpm 和 pptpd-1.3.4-1.rhel5.1.i386.rpm
下载完成放进服务器中
正常来说系统已安装ppp,现在需要升级内置的PPP软件包
#rpm-Uvhppp-2.4.4-9.0.rhel5.i386.rpm
安装PPTP安装包
#rpm-ivhpptp