如何在 DebianUbuntu 服务器上架设 L2TPIPSec VPN

如何在 DebianUbuntu 服务器上架设 L2TPIPSec VPN,第1张

首先解释一个问题:在 iPhone 的 设置介面里(Settings >> General >> Network >> ),你可以看到三个标签:L2TP, PPTP, IPSec。但上面我们又讲本次介绍的 方式叫「L2TP / IPSec」,这两者究竟是什么关系?
这三个标签确实令人混淆,准确的写法应该是:L2TP over IPSec, PPTP, Cisco IPSec。PPTP 跟另外两者关系不大,且大家较为熟悉,暂且不提,L2TP 和 IPSec 的区别如下。
L2TP:一个「包装」协议,本身并不提供加密和验证的功能。
IPSec:在 IP 数据包的层级提供加密和验证功能,确保中间人无法解密或者伪造数据包。
本来,只用 IPSec 就可以实现 ,Mac OS X 和 Linux 都支持。但是 Mac OS X 和 iPhone OS 都推荐使用 L2TP over IPSec,在两者的图形介面上也只能设置这个。L2TP / IPSec 是业界标准,微软也支持。而只用 IPSec 的常见于 Linux-to-Linux 的应用,比如将两个位于不同地区的办公室网络安全地连在一起。这多是固定 IP 路由器到固定 IP 路由器级别的连接,只需保证数据包不被中途截获或者伪造就可以,故使用 L2TP 的意义不大。L2TP / IPSec 主要是实现所谓「Road Warrior」的设置,即用变动的客户端连固定的服务器。
Cisco 的 用的也是 IPSec 加密,但那是一套不同于 L2TP 的私有包装协议,用于提供用户管理之类的功能,因此一般都需要用 Cisco 自家的 客户端连接。iPhone / iPad 的 设置介面中的 IPSec 标签里有 Cisco 的标识,就是这个原因。
以下是在 Ubuntu 和 Debian 主机上架设 L2TP / IPSec 的步骤,一共十四步。你需要有服务器的 root 权限(所以 DreamHost, BlueHost, MediaTemple 这些服务供应商帮你把一切打点周到的主机就无缘了),也需要一些基本的 Linux 知识。不然的话,我们还是推荐您找一位比较熟技术的朋友帮忙。
一、安装 IPSec。如上所述,IPSec 会对 IP 数据包进行加密和验证。这意味着你的电脑 / 移动设备与服务器之间传输的数据无法被解密、也不能被伪造。我推荐用 openswan 这个后台软件包来跑 IPSec。
用以下命令安装 openswan:
sudo aptitude install openswan二、用文字编辑器打开 /etc/ipsecconf,改成这样:
version 20
config setup
nat_traversal=yes
virtual_private=%v4:10000/8,%v4:19216800/16,%v4:1721600/12
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=YOURSERVERIPADDRESS
leftprotoport=17/1701
right=%any
rightprotoport=17/%any三、用文字编辑器打开 /etc/ipsecsecrets,改成这样:
YOURSERVERIPADDRESS %any: PSK "YourSharedSecret"(别忘了把「YOURSERVERIPADDRESS」这部分换成你的服务器的 IP 地址,把「YourSharedSecret」部分换成随便一个字串,例如你喜欢的一句话,等等。)
四、运行以下命令:
for each in /proc/sys/net/ipv4/conf/
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done五、检查一下 IPSec 能否正常工作:
sudo ipsec verify如果在结果中看到「Opportunistic Encryption Support」被禁用了,没关系,其他项 OK 即可。
六、重启 openswan:
sudo /etc/initd/ipsec restart七、安装 L2TP。常用的 L2TP 后台软件包是 xl2tpd,它和 openswan 是同一帮人写的。
运行以下命令:
sudo aptitude install xl2tpd八、用文字编辑器打开 /etc/xl2tpd/xl2tpdconf,改成这样:
[global]
ipsec saref = yes
[lns default]
ip range = 10122-1012255
local ip = 10121
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/optionsxl2tpd
length bit = yes这里要注意的是 ip range 一项里的 IP 地址不能和你正在用的 IP 地址重合,也不可与网络上的其他 IP 地址冲突。
九、安装 ppp。这是用来管理 用户的。
sudo aptitude install ppp十、检查一下 /etc/ppp 目录里有没有 optionsxl2tpd 这个文件,没有的话就建一个,文件内容如下:
require-mschap-v2
ms-dns 20867222222
ms-dns 20867220220
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4注意 ms-dns 两行我填的是 OpenDNS。如果你想用其他的 DNS 服务器(例如谷歌的公共 DNS),请自行更换。
十一、现在可以添加一个 用户了。用文字编辑器打开 /etc/ppp/chap-secrets:
# user server password ip
test l2tpd testpassword 如果你之前设置过 PPTP ,chap-secrets 文件里可能已经有了其他用户的列表。你只要把 test l2tpd testpassword 这样加到后面即可。
十二、重启 xl2tpd:
sudo /etc/initd/xl2tpd restart十三、设置 iptables 的数据包转发:
iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward十四、因为某种原因,openswan 在服务器重启后无法正常自动,所以我们可以在 /etc/rclocal 文件里写入如下语句:
iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/initd/ipsec restart到这里,设置工作已经基本完成。你可以用 iPhone 或 iPad 试着连一下。记得在「Secret」中填入你在上述第三步里填的 YourSharedSecret。
如果连接成功,上网也没问题的话,恭喜你,大功告成。如果连不上,恐怕还得多做一步。
Ubuntu 910 自带的 openswan 版本是 2622, Debian Lenny 带的版本是 2412。这两个版本的 openswan 都有问题。我们的测试结果表明,2624 版的 openswan 可以在上述两版的 Linux *** 作系统下正常工作。所以如果做完以上十四步还是连不上的话,请考虑从源码编译 openswan 2624

你说的实在是太笼统了,清看下面的介绍再选择相关的东西吧
VPDN是拨号业务的,指利用公共网络的拨号及接入网实现的虚拟专用网,可为企业、小型ISP、移动办公人员提供接入服务。VPDN能够充分利用现有的网络资源,提供经济、灵活的联网方式,为客户节省设备、人员和管理所需要的投资,降低用户的费用,所以必将得到广泛的应用。下面就VPDN作一介绍。
一、VPDN基本原理
VPDN主要由网络接入服务器(NAS)、用户端设备(CPE)和管理工具组成。VPDN的构成如图1所示。其中NAS由大型ISP或电信部门提供,其作用是作为VPDN的接入服务,提供广域网接口,负责与PSTN、ISDN的连接,并支持各种LAN的协议、安全管理和认证、隧道及相关技术;CPE是VPDN的用户端设备,位于用户总部,根据网络功能的不同,可以是由NAS、路由器或防火墙等提供相关的设备来担任;VPDN管理工具对VPDN设备和用户进行管理。属于电信部门或大型ISP来管理,属于用户的设备及用户管理功能由用户方进行管理。
二、VPDN隧道协议
VPDN隧道协议有点到点隧道协议(PPTP)、第二层转发协议(L2F)、第二层隧道协议(L2TP)等几种。
1、点到点隧道协议(PPTP)
PPTP是PPP(点到点协议)的一种扩展,提供了在IP网上建立多协议的安全的通信方式,远端用户能够通过任何支持PPTP的ISP访问企业的专用网络。PPTP提供PPTP客户机及其服务器之间的保密通信。通过PPTP,客户可以采用拨号方式接入公共的IP网方法是:拨号客户首先按常规方式拨号到ISP的NAS,建立PPP连接;在此基础上,客户进行第二次拨号,建立到PPTP服务器的连接。
2、第二层转发协议(L2F)
L2F是可以在多种介质上建立多协方安全的通信方式。它将链路层的协议封装起来传送,因此网络的链路层完全独立于用户的链路层协议。L2F远端用户能够通过任何拨号方式接入公共IP网络,方法是:先按常规方式拨号到ISP和NAS,建立PPP连接;然后,NAS根据用户名等信息发起第二次连接,呼叫用户网络的服务器。
3、第二层隧道协议(L2TP)
LETF建立将PPTP和L2F的最优秀部分组成一个标准,就称为L2TP。自1999年5月以来,L2TP一直在开发中,某些部分正由Cisco和Microsoft开发实现。在L2TP协议中,规定了3个网络元素,即LAC(L2TP Access Concentrator),LNS(L2TP Network Server)和主局域网的管理域(Management Domain)。
LAC与LNS是对等的两个端点,隧道建立在它们之间。LAC对用户端收到的PPP帧进行封装,通过隧道传送到LNS,由LNS将用户的PPP帧解封并传送到目的主机。主局域网中的管理域负责地址分配、认证、授权、记费。L2TP使用两种类型的信息包:一种是控制信息包,用于建立、维护、清除隧道和呼叫,它使用可靠的控制信道来保证住信息的传送;另一种是数据信息包,由于封装PPP信息帧,在传输过程中发生信息帧的丢失,不会有数据信息包的重传。从L2TP协议结构中可以看出,PPP帧是在一个不可靠的数据通道中传送的,它首先被L2TP协议头封装,然后再被封装成相应传送网络的协议包进行传送;L2TP控制信息包与数据信息包是封装在同一个数据包中进行传送的,在所有控制信息中都要求有序列号,以保证控制信息在控制信道中的可靠传送。
4、安全协议(IPSec)
IPSec是一组开放的网络安全检查协议的总称,提供访问控制、无连接的完整性、数据来源验证、加密及数据流分类加密等服务。IPSec在IP层提供上述安全服务。IPSec包括3个基本协议:认证头(AH)、报文安全封装协议(ESP)和安全密钥管理协议(ISAKMP)。AH提供的主要功能有数据来源验证、数据完整性验证和报文重放功能。ESP主要是在AH协议的功能之外再提供对IP报文的加密功能。ISAKMP提供双方交流时的共享安全信息。IPSec可用两种方式对数据流进行加密:隧道方式和传输方式,如图2所示。隧道方式对整个IP包进行加密,使用一个新的IPSec包打包。传输方式仅对数据净荷进行加密,源IP包的地址部分不处理。IPSec支持的组网方式包括:主机与主机、主机与网关、网关与网关。IPSec可提供对远程访问用户的支持,还可以和L2TP、GRE等隧道协议一起使用,给用户提供更大的灵活性和可靠性。
三、VPDN实施方式
VPDN的实施方式有两种:一种是通过NAS与VPDN网关建立隧道;另一种是客户机与VPDN网关建立隧道。前者是NAS通过隧道协议与VPDN网关建立通道,将客户的PPP连接直接连到企业网关上,目前可以使用的协议有L2F和L2TP。后者是由客户机首先建立与因特网的连接,再通过专用的客户软件与网关建立通道连接,一般使用PPTP和IPSec协议。
四、VPDN业务分类
VPDN业务可分为全国范围的VPDN业务和省内的VPDN业务。全国范围的VPDN业务指申请了该业务的用户能在全国范围内使用该业务。省内的VPDN业务指申请了该业务的用户能在本省内使用该业务,出省后无法使用。全国业务和省内业务采用不同的用户域名体系结构来标志。
五、VPDN业务认证功能
拨号用户使用VPDN业务时有两种认证情况:一种是一次认证;另一种是二次认证。一般情况下,为了保证的安全性,通常需要采用二次认证。所谓二次认证是指在接入服务器和企业安全服务器上分别进行用户认证。接入服务器进行初步认证,确定该用户是否为合法的VPDN用户以及是否建立IP隧道。隧道建立后,企业安全服务器对用户进行第二次认证,再次确认用户是否为企业的合法用户。一般来说,二次认证方式要比一次认证方式的安全性高。但在企业的人力、物力资源匮乏,又有较大的业务量时,通常也可采用一次认证,即仅在接入服务器上作认证。

下面将简单介绍一下 L2TP 网络协议。应用 L2TP 所构建的典型 服务的结构 其中,LAC 表示 L2TP 访问集中器(L2TP Access Concentrator ),是附属在交换网络上的具有 PPP 端系统和 L2TP 协议处理能力的设备,LAC 一般就是一个网络接入服务器 NAS(Network Access Server)它用于为用户通过 PSTN/ISDN 提供网络接入服务;LNS表示 L2TP 网络服务器(L2TP Network Server),是 PPP 端系统上用于处理 L2TP 协议服务器端部分的软件。
在一个 LNS 和 LAC 对之间存在着两种类型的连接,一种是隧道(tunnel)连接,它定义了一个 LNS 和 LAC 对;另一种是会话(session)连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个 PPP 会话过程。 L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP 消息的交换来完成的,这些消息再通过 UDP的 1701 端口承载于 TCP/IP 之上。L2TP 消息可以分为两种类型,一种是控制消息,另一种是数据消息。控制消息用于隧道连接和会话连接的建立与维护。数据消息用于承载用户的 PPP 会话数据包。
L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP 消息的交换来完成的,这些消息再通过UDP的1701端口承载于 TCP/IP之上。 控制消息中的参数用 AVP 值对(Attribute Value Pair)来表示,使得协议具有很好的扩展性;在控制消息的传输过程中还应用了消息丢失重传和定时检测通道连通性等机制来保证了 L2TP 层传输的可靠性。数据消息用于承载用户的 PPP 会话数据包。L2TP 数据消息的传输不采用重传机制,所以它无法保证传输的可靠性,但这一点可以通过上层协议如 TCP 等得到保证;数据消息的传输可以根据应用的需要灵活地采用流控或不流控机制,甚至可以在传输过程中动态地使用消息序列号从而动态地激活消息顺序检测和流量控制功能;在采用流量控制的过程中,对于失序消息的处理采用了缓存重排序的方法来提高数据传输的有效性。 L2TP 还具有适用于 服务的以下几个特性:
灵活的身份验证机制以及高度的安全性 L2TP 可以选择多种身份验证机制(CHAP、PAP 等),继承了 PPP 的所有安全特性,L2TP 还可以对隧道端点进行验证,这使得通过 L2TP 所传输的数据更加难以被攻击。而且根据特定的网络安全要求还可以方便地在 L2TP 之上采用隧道加密、端对端数据加密或应用层数据加密等方案来提高数据的安全性。
内部地址分配支持 LNS可以放置于企业网的防火墙之后,它可以对于远端用户的地址进行动态的分配和管理,可以支持 DHCP 和私有地址应用(RFC1918)等方案。远端用户所分配的地址不是Internet地址而是企业内部的私有地址,这样方便了地址的管理并可以增加安全性。
网络计费的灵活性
可以在LAC和LNS两处同时计费,即ISP处(用于产生帐单)及企业处(用于付费及审记)。L2TP 能够提供数据传输的出入包数,字节数及连接的起始、结束时间等计费数据,可以根据这些数据方便地进行网络计费。
可靠性
L2TP 协议可以支持备份 LNS,当一个主 LNS 不可达之后,LAC(接入服务器)可以重新与备份 LNS 建立连接,这样增加了 服务的可靠性和容错性。 统一的网络管理 L2TP 协议将很快地成为标准的 RFC 协议,有关 L2TP 的标准 MIB 也将很快地得到制定,这样可以统一地采用 SNMP 网络管理方案进行方便的网络维护与管理。

无线VPDN业务的定价结构包括开通服务费、功能费和通信费:(1)开通服务费:包括平台数据配置和企业租户客户侧设备(LNS防火墙、AAA鉴权认证服务器等)的开通调测工作,费用与企业租户客户开通的终端用户客户数和使用区域无关。(2)功能费:以月租费方式向终端用户收取;提供终端用户客户通过无线VPDN网络访问企业租户客户网络或应用系统的功能。(3)通信费:终端用户使用VPDN业务产生的数据流量等通信费按现行业务资费标准收取。LNS接入线路或企业租户客户网络接入电信侧LNS线路费用按现行业务资费标准收取。注:为企业租户客户提供LNS防火墙和AAA鉴权认证服务器设备代购、集成租赁及维护等服务,产生的相关费用,参照系统集成业务相关资费模式收取。了解更多服务优惠点击下方的“官方网址”客服51为你解答。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10651387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存