Linux -- VPN服务简绍、配置及应用(2)

二、不同的VPN 技术,比方说,PPTP、SSLVPN、CIPE、IPSec 等。

1、 IPSec(InternetProtocol Security)

IPSec是IETF(InternetEngineer Task Force)正在完善的安全标准,它把几种安全技术结合在一起形成一个较为完整的体系,受到了众多厂商的关注和支持。通过对数据加密、认证、完整性检查来保证数据传输的可靠性、私有性和保密性。

优点:它定义了一套用于认证、保护私有性和完整性的标准协议。 IPSec支持一系列加密算法如DES、三重DES、IDEA。它检查传输的数据包的完整性,以确保数据没有被修改。IPSec用来在多个防火墙和服务器之间提供安全性。IPSec可确保运行在TCP/IP协议上的VPNs之间的互操作性。

缺点:IPSec在客户机/服务器模式下实现有一些问题,在实际应用中,需要公钥来完成。IPSec需要已知范围的IP地址或固定范围的IP地址,因此在动态分配IP地址时不太适合于IPSec。除了TCP/IP协议外,IPSec不支持其他协议。另外配置比较复杂。

Linux实现使用IPSec的软件是:FreeS/WAN

http://www.freeswan.org/。FreeS/WAN不支持NAT(NetworkAddress Translation,网络地址翻译)和IP地址伪装用于加密通道通信。

2、 PPP OVER SSH

SSH一种基于安全会话目的的应用程序。SSH支持身份认证和数据加密,对所有传输的数据进行加密处理。同时,可以对传输数据进行压缩处理,以加快数据传输速度。SSH既可以代替Telnet作为安全的远程登录方式,又可以为FTP、POP等提供一个安全的“隧道”。OpenSSH是SSH的替代软件包,是免费的。用PPP端口在SSH上运行技术实现VPN的方法。优点:安装配置简单。缺点:运行时系统开销比较大。PPPOVER SSH具体应用软件有SSHVNC(http://3sp.com/products/sshtools/sshvnc/sshvnc.php

3、 CIPE : Crypto IP Encapsulation

CIPE (加密 IP 封装)是主要为Linux 而开发的 VPN

实现。CIPE 使用加密的 IP 分组,这些分组被封装或“包围”在数据报(UDP)分组中。CIPE 分组被给以目标头信息,并使用默认的CIPE 加密机制来加密。CIPE 使用标准的 Blowfish 或 IDEA加密算法来支持加密。根据你所在国家的加密出口法规而定,你可以使用默认方法(Blowfish)来加密你的专用网上的所有 CIPE 交通。CIPE配置可以通过文本文件、图形化的网络管理工具来完成。用CIPE技术实现VPN的方法,优点:安装配置简单,运行时系统开销比较小。缺点:CIPE不是一种标准VPN协议,不能支持所有平台。CIPE网址:http://sites.inka.de/

4.SSL VPN

IPSec VPN和SSL VPN是两种不同的VPN架构,IPSec VPN是工作在网络层的,提供所有在网络层上的数据保护和透明的安全通信,而SSLVPN是工作在应用层(基于HTTP协议)和TCP层之间的,从整体的安全等级来看,两者都能够提供安全的远程接入。但是,IPSecVPN技术是被设计用于连接和保护在信任网络中的数据流,因此更适合为不同的网络提供通信安全保障,而SSLVPN因为以下的技术特点则更适合应用于远程分散移动用户的安全接入。OpenVPN 是一个基于OpenSSL 库的应用层 VPN实现。详细信息可以参考http://www.openvpn.net

OpenVPN优点: 支持多种常用应用系统。目前版本支持Linux,Windows

2000/XP and higher, OpenBSD, FreeBSD, NetBSD, Mac OS X, andSolaris 。

支持多种客户端连接模式。可以通过GUI便捷的操作OpenVPN 工作在OSI layer 2 或 3 使用标准的SL/TLS 协议,可以通过certificates 或smart cards 认证。 加密强度较高,不易在传输通路上被人劫持破解信息资讯。

OpenVPN缺点:使用SSL 应用层加密,传输效率要低于IPSEC传输的VPN 软件

5.PPPTD

点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。

PPTP 可以用于在 IP 网络上建立PPP 会话隧道。在这种配置下,PPTP 隧道和 PPP 会话运行在两个相同的机器上,呼叫方充当PNS。PPTP 使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。PPTP作为一个呼叫控制和管理协议,它允许服务器控制来自PSTN 或 ISDN 的拨入电路交换呼叫访问并初始化外部电路交换连接。PPTP只能通过PAC 和 PNS 来实施,其它系统没有必要知道PPTP。拨号网络可与 PAC 相连接而无需知道 PPTP。标准的 PPP客户机软件可继续在隧道 PPP 链接上操作。PPTP 使用 GRE 的扩展版本来传输用户PPP 包。这些增强允许为在 PAC 和 PNS之间传输用户数据的隧道提供低层拥塞控制和流控制。这种机制允许高效使用隧道可用带宽并且避免了不必要的重发和缓冲区溢出。PPTP没有规定特定的算法用于低层控制,但它确实定义了一些通信参数来支持这样的算法工作。

PPTP相对其他远程“拨入”型VPN的不凡之处在于微软Windows(95/98/Me/NT/2000/XP/Vista)拥有一个内置的PPTP客户端,这意味着管理员不必涉及任何额外的客户端软件以及那些通常伴随出现的问题。Linux   PPTP服务器实现的软件是:poptop(http://www.poptop.org/)开源PPTP服务器产品Poptop特性为:

微软兼容的认证和加密(MSCHAPv2,MPPE40-128位RC4加密) 。

支持多个客户端连接 。

使用RADIUS插件无缝集成到一个微软网络环境中 。

和Windows95/98/Me/NT/2000/XP PPTP客户端共同工作 。

和LinuxPPTP客户端共同工作 。

Poptop在GNU通用公共许可下是,并仍将是完全免费。

下面分别介绍基于以上技术的VPN在Linux下的实现:

第一部分 建立Linux下的VPN-CIPE

一、CIPE概述

人们目前已经开发出了很多种VPN程序,这里介绍的最容易安装的VPN软件之一:CIPE。VPN是由经过相互授权的通信双方在公网上建立的安全通信隧道,数据在隧道中进行加密传输,用于总部与分支机构的安全通信。虚拟专用网络是一种新的网络技术,用于跨过Internet或局域网而安全地访问企业网。CIPE 是主要为Linux 而开发的 VPN 实现。CIPE 使用加密的 IP分组,这些分组被封装或“包围”在数据报(UDP)分组中。CIPE 分组被给以目标头信息,并使用默认的 CIPE加密机制来加密。然后,这些分组再通过 CIPE 虚拟网络设备(cipcbx)和 IP 层,以及通讯公司的网络被作为 UDP 分组传输给预想中的远程节点。CIPE网络模型如图-1。

CIPE 是Linux 网络管理员和系统管理员的明智选择,其原因如下:

CIPE 被包括在红帽企业 Linux 中,因此所有你想连接到你的内联网的红帽企业Linux 边缘机器(如防火墙和网关机器)和个体客户机器上都可以利用它。Redhat  Linux 还包括支持 CIPE 的加密术。

CIPE 使用标准的 Blowfish 或IDEA 加密算法来支持加密。根据你所在国家的加密出口法规而定,你可以使用默认方法(Blowfish)来加密你的专用网上的所有 CIPE 交通。

因为 CIPE 是基于软件的,只要运行红帽企业 Linux,任何一个较老的或闲置的机器都可以充当CIPE 网关,所以你不必购买昂贵的专用 VPN硬件来安全地连接两个局域网,从而给机构节省资金。

CIPE 被积极开发来与 iptables、ipchains、以及其它基于规则的防火墙一起使用。要和现存的防火墙规则共同存在,只需要让对端接受进入的 CIPE UDP 分组就可以了。

CIPE 配置是通过文本文件来完成的。这使管理员不必使用通过网络运行效果不佳的图形化工具来远程地配置CIPE服务器和客户。CIPE 还可以使用网络管理工具来配置。

CIPE软件在Redhat Linux 9.0 - Red Hat Enterprise Linux AS 3.0的安装光盘里都可以找到它。安装CIPE的办法有两种:一是从安装光盘来安装它,二是从CIPE软件的官方主页linux">http://sourceforge.net/projects/cipe-linux下载;下面笔者分别介绍。

二、使用在RedhatLinux 9.0   网络管理工具来配置CIPE VPN

1.服务器端配置

点击“主选单”-“系统配置”-“网络配置”-“新建”-“CIPE(VPN)连接”进行VPN隧道配置。见图-2。

图-2 CIPE服务器端配置

最后点击“生成”按钮产生一个128位(32个16进制数)的密匙,接着点击确定按钮。最后选择“当计算机启动时激活该设备”。CIPE在服务器端配置见表-1:

点击“前进”按钮继续查看汇总信息见图-3。

激活CIPE连接见图-4。

下面还要做三项工作:

(1)使系统支持IP转发,使用命令: /sbin/sysctl –w net.ipv4.ip_forward=1

(2)添加路由:route add -net 192.168.1.3 netmask 255.255.255.0 gw192.168.1.9

(3)打开防火墙的CIPE端口7777

2.CIPE客户机配置

由于CIPE要求服务器和客户机的密匙完全相同所以,首先将密匙文件:options.cipcb从服务器复制到客户机主机的/etc/cipe/目录中。

# scp

[email protected]:/etc/cipe/options.cipcb0

/etc/cipe/options.cipcb0

Are you sure you want to continue connec

ting (yes/no)? yes

Warning: Permanently added ‘192.168.0.3‘ (RSA) to the list ofknown hosts.

[email protected]‘s

password:

options.cipcb0

100% |***************************************|

61    00:00

CIPE这个软件在服务器端和客户机使用相同的界面。方法和服务器端配置一样,见图-5。

图-5 CIPE客户机配置界面

接着点击“前进”按钮。客户机配置结束。

3.使用CIPE网络接口连接VPN服务器

在客户机进行连接测试,首先使用命令察看网络接口:

# ifconfig -cipcb0

cipcb0 Link encap:IPIP Tunnel   HWaddr

inet addr:10.0.0.2   P-t-P:10.0.0.1  Mask:255.255.255.255

POINTOPOINT NOTRAILERS RUNNING NOARP  MTU:1442   Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:0 (0.0 b)   TX bytes:0 (0.0 b)

此时客户机的cipcb0没有激活,使用命令激活cipcb0,然后察看路由表:

#ifup cipcb0

#route

Kernel IP routing table

Destin

ati

on

Gateway

Genmask       Flags Metric

Ref Use Iface

10.0.0.1

*

255.255.255.255 UH 0

0        0 cipcb0

192.168.1.0

*

255.255.255.0 U

0

0        0 eth0

127.0.0.0

*

255.0.0.0    U

0

0        0 lo

default

192.168.1.1

0.0.0.0

UG 0

0        0 eth0

可以看到VPN端口已经打开,路由表中包括CIPE服务器的远程虚拟地址。下面使用ping命令连接CIPE服务器的虚拟地址(10.0.0.1)进行测试。

#ping -c 4 10.0.0.1

PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.

64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.681 ms

64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.341 ms

64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.080 ms

64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=0.094 ms

--- 10.0.0.1 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3013ms

rtt min/avg/max/mdev = 0.080/0.299/0.681/0.243 ms

VPN连接完成。下面断开VPN连接,使用命令:“ifdowncipcb0”然后察看路由表:

#ifdown cipcb0

#route

Kernel IP routing table

Destination

Gateway

Genmask       Flags Metric

Ref Use Iface

192.168.0.0

*

255.255.255.0 U

0

0        0 eth0

127.0.0.0

*

255.0.0.0    U

0

0        0 lo

路由表的10.0.0.1已经清除。

参考: http://book.51cto.com/art/200903/114593.htm

http://os.51cto.com/art/201001/177074_all.htm

时间: 2024-10-21 22:30:58

Linux -- VPN服务简绍、配置及应用(2)的相关文章

Linux -- VPN服务简绍、配置及应用(1)

一.概述:什么是VPN:认识数据加/解密::数据加/解密的类型:散列算法:IPSec Base VPN:Linux下的IPSec架构 1. VPN(Virtual Private Network)的中文意思为"虚拟专用网络",而VPN的功能是将因特网虚拟成企业网络来使用,这样的叙述似乎不是很容易理解,笔者以图8-1 为例来说明VPN 的功能及使用VPN 的必要性. 笔者假设某企业有两个分点,分别为台北总公司及上海分公司,而这两个分部的企业网络都设置有防火墙,且内部网络都是使用Priva

Linux VPN 服务

实验场景 通过将Linux配置VPN服务器允许远程计算机能够访问内网. 我的目的: 现在需要开发第三方接口,而第三方接口有服务器IP地址鉴权配置,这样在本地开发出来的程序每次都要发布到服务器上测试,如果是调试过程中每次这样比较麻烦,所以需要能直接通过VPN拨到这个服务器上,这个本地就可以直接开发调试了. 一.下载并安装VPN服务 1.下载所需安装包 输入:wget http://poptop.sourceforge.NET/yum/stable/packages/dkms-2.0.17.5-1.

linux telnet服务安装与配置

关闭防火墙:service iptabls stop            chkconfig iptabls off 1.安装telnet服务 [[email protected] ~]# rpm -qa |grep telnet   //检查是否安装这相关软件包telnet-0.17-47.el6.x86_64telnet-server-0.17-47.el6.x86_64 如果未安装,配置YUM源,使用yum install telnet telnet-server命令安装 2.开启tel

linux telnet服务安装和配置

因为要升级SSH,为了预防SSH升级失败无法连接服务器,安装telnet服务以备不时之需,升级完SSH后再将telnet服务关闭. telnet服务器配置 一.安装telnet软件包(通常要两个). 1. telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序: 2.是 telnet-server 软件包,这个才是真正的 Telnet server 软件包! 安装之前先检测是否这些软件包已安装,方法如下: [[email protected] ~]#rpm

利用openswan配置VPN服务

CentOS6.5  利用openswan xl2tpd配置VPN服务 OpenSWan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性.完整性问题OpenSWan支持2.0.2.2.2.4以及2.6内核,可以运行在不同的系统平台下,包括X86.X86_64.IA64.MIPS以及ARMOpenSWan是开源项目FreeS/WAN停止开发后的后继分支项目,由三个主要组件构成:配置工具(ipsec命令脚本)Key管理工具(pluto)内核组件(KLIPS/26

Linux下搭建VPN服务

转载需注明原文地址 http://mushapi.com/vpn-server-on-linux.html 最近google封锁的愈发严实了,所以不得不考虑弄个常备的VPN了.之前也用过买的vpn但是我用的那家vpn的官网也被封锁了,所以只能自己动手喽-本文是我安装完成后根据记忆写的,可能有不准确的地方,欢迎留言告诉我. 一.安装所需软件 在linux上搭建一个vpn server需要有iptables.ppp.pptpd.其中iptables和ppp可以直接通过yum安装. 1 yum ins

在RedHat Linux系统中安装和配置snmp服务

检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-utils-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 SNMP服务安装后会有以上安

【VNC】Linux环境VNC服务安装、配置与使用

[VNC]Linux环境VNC服务安装.配置与使用 2009-06-25 15:55:31 分类: Linux 前言:作为一名DBA,在创建Oracle数据库的过程中一般要使用dbca和netca图像化进行建库和创建监听(如果使用脚本建库另说),如果您身体好估计可以在瑟瑟发抖的机房中完成数据库的创建过程,由于本人对寒冷比较敏感,又不想通过这样的方式锻炼身体,所以更愿意在舒适的房间内一边品味着咖啡的浓香,顺便度过相对枯燥的数据库安装和配置的过程,So,图形化操作工具是必不可少的,在Linux操作系

Linux DNS服务系列之主从复制、子域授权和转发、view配置详解

前言 上文我们讲解了DNS服务的原理及正反向解析配置,相信大家对DNS服务已经有了初步了解.接下来,让我们进一步了解DNS服务的其它功能,本文将详解主从复制.子域授权和转发以及view的相关配置. 主从服务器配置 主从服务器关系 如果公司内DNS服务器负载过重或者为了实现冗余这一类功能就需要用到一个备份DNS服务器,备份服务器和主DNS服务器就形成了主从关系,如果主服务器的区域文件更新就会通知从服务器同步最新的区域文件,平时从服务器不提供解析服务,如果主服务器有故障从服务器就立刻激活提供域名解析