用L2TP与OpenSwan构建IPSec ×××(使用X.509证书认证)
Red Hat Enterprise Linux AS 4 (kernel 2.6.9-42EL)
Openssl 0.97a
OpenSwan 4.4.7
L2TPD 0.69(12jdl.i386.rpm) / XL2TPD 1.1.09
其中Openssl其实只是用来做CA功能的,可以用其它CA工具如OpenCA代替。
而xl2tpd则是代替l2tpd的。个人推荐使用。当然,如果你使用l2tpd没有问题,也无妨。这两个软件的设置几乎一模一样,毕竟都是L2TP的daemon嘛。
Openssl只是起到CA的作用,简要说一下安装过程:
解压后进入目录,输入命令:
./config –prefix=/usr/local/openssl 设置安装文件夹。
然后就make,再make install即可。
简要说明一下在VM中的网络设置。在VMware提供的Manage Network Tools中的Host Virtual Network Mapping把VMNet2设为Not bridged,点击右边的“>”按钮-subnet,IP地址填入192.168.2.0。确定。
×××Gateway虚拟机需要在虚拟机设置中添加一个网卡。然后在每个虚拟机中Linux下照下表设置各个网卡,并在
虚拟机设置中选择网卡对应的网络。其中×××Gateway的网卡0属于VMNet0,网卡1属于VMNet2。网卡1的默认网卡设为192.168.2.1。另外,XP本机自动位于VMNet0,不需要进行设置。
PureWinter 192.168.0.2 192.168.0.2 VMNet0 XP Client
×××Gateway 192.168.0.254 192.168.2.1 192.168.0.254 VMNet0,VMNet2 ×××Gateway
Jim 192.168.2.2 192.168.2.1 VMNet2 网关后服务器
CA.sh -newca或命令
openssl req –x509 –days 3650 –newkey rsa:1024 –keyout cakey.pem –out cacert.pem
使用openssl命令建立以后,还要进入demoCA目录执行以下命令:
mkdir newcerts
touch index.txt
echo “01” > serial
请确认在demoCA/private目录下有cakey.pem文件。若没有请复制过来。
CA生成以后,在demoCA上级目录输入openssl ca -gencrl -out crl.pem生成证书吊销列表文件。
使用命令CA.sh -newreq
或Openssl req –newkey rsa:1024 –keyout ***gateway.key –out ***gatewayreq.pem
这样得到了×××Gateway的私钥。然后使用命令
CA.sh -sign
或Openssl ca –in ***gatewayreq.pem –days 365 –out ***gateway.cert –notext
为其签名并生成证书。
使用CA.sh的方式,需要把生成的newreq.pem改名成***gateway.key,把newcert.pem改名成***gateway.cert。
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
改为:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
然后执行sysctl -p使之生效。
进入openswan-2.4.7目录,编译,生成,安装:
make programs
make install
安装本身没有太多好说的。但是linux内核版本在2.6.9以下的(如Red Hat Linux 9),需要打Nat补丁。而2.6.9及其以上版本(如我使用的AS 4)不需要打补丁。
安装完成后验证安装:ipsec –version
以及IPSec状态验证:ipsec verify。
/etc/ipsec.conf 配置文件(settings, options, defaults, connections)
/etc/ipsec.d/certs 存放X.509客户端证书(X.509 client Certificates)
/etc/ipsec.d/private 存放X.509认证私钥(X.509 Certificate private keys)
/etc/ipsec.d/crls 存放X.509证书撤消列表(X.509 Certificate Revocation Lists)
/etc/ipsec.d/ocspcerts 存放X.500 OCSP证书(Online Certificate Status Protocol certificates)
/etc/ipsec.d/passwd XAUTH密码文件(XAUTH password file)
/etc/ipsec.d/policies 存放Opportunistic Encryption策略组(The Opportunistic Encryption policy groups)
客户端(Laptop):JIm。×××服务器:×××Gateway. 服务器后的内网: 无或位于VMNet1的任意机器,如PureWinter
Jim和×××Gateway机器需要安装OpenSwan。其它机器不需要。
cp cacert.pem /etc/ipsec.d/cacerts
cp ***gateway.cert /etc/ipsec.d/certs
cp ***gateway.key /etc/ipsec.d/private
在Jim机器上,除了上面三个文件,还需要把jim.cert复制到/etc/ipsec.d/certs,把jim.key复制到/etc/ipsec.d/private
在此文件最后加上一行(以×××Gateway为例)
: RSA /etc/ipsec.d/private/***gateway.key "读取此key的密码"
jim机器类似。注意RSA前面有一个冒号。引号内用你生成key时输入的密码替换。
version 2.0
interfaces=%defaultroute
nat_traversal=yes
virtual_private=%v4:192.168.0.0/16,%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:!192.168.0.0/24
compress=yes
authby=rsasig
leftrsasigkey=%cert
rightrsasigkey=%cert
conn roadwarrior
left=192.168.2.1
leftcert=***gateway.cert
leftsubnet=192.168.0.0/24
right=%any
auto=add
conn roadwarrior
left=192.168.2.2
leftcert=jim.cert
right=192.168.2.1
rightcert=***gateway.cert
rightsubnet=192.168.0.0/24
auto=add
在×××Gateway上输入命令tcpdump -i eth1,可以监听数据包,应已被加密。不过,其实这种方式只有Jim想访问×××Gateway后的内网机器,数据包才会被加密,Jim与×××Gateway互相访问的数据包并不会被加密。可以在Jim上使用命令ping 192.168.0.254
然后再ping 192.168.0.2,
查看×××Gateway的tcpdump监听到的数据包对比得知。如果到×××网关也要加密,则双方的配置文件中的subnet一行要提出来,放到新的conn roadwarrior-net一段中去,并再加上一行:also=roadwarrior。然后在jim机器上执行ipsec auto –up roadwarrior,
再执行ipsec auto –up roadwarrior-net。 (注意:若已启动Ipsec,则修改配置以后要重启IPSec服务。)
关于roadwarrior以及使用RSA认证的方法,net-to-net模式,还可参见toorq的“用Openswan组建Linux IPSec”一文。地址:http://www.xfocus.net/articles/200610/891.html
安装的是l2tpd-0.69-12jdl.i386.rpm:双击这个rpm包,或输入命令:rpm -i l2tpd-0.69-12jdl.i386.rpm;
安装的是l2tpd-0.69.tar.gz或l2tpd-0.70pre.tar.gz:强烈建议不要安装0.69源包。解压后进入目录,输入命令make即可。生成l2tpd文件以后,可以复制到/usr/local/sbin下。
安装的是xl2tpd-1.1.09.tar.gz:解压后进入目录,输入make,回车,再输入make install回车。
rpm版的配置文件在/etc/l2tpd/l2tpd.conf
普通版的配置文件在/etc/l2tp/l2tpd.conf
xl2tpd的配置文件或者使用普通版的路径和名称,或者在/etc/xl2tpd/xl2tpd.conf
与l2tp相关的设置:
/etc/ppp/chap-secrets文件:在最后加入一行
test * "test123456" *
ipcp-accept-local
ipcp-accept-remote
#ms-dns 202.96.209.6
#需要设置dns,就把上一行的#号去掉
ms-wins 192.168.0.2
#noccp
auth
crtscts
idle 1800
mtu 1200
mru 1200
#mtu需要小于1500。也可以设成其它值,如1300
nodefaultroute
debug
lock
connect-delay 5000
logfile /var/log/l2tpd.log
proxyarp
[global]
listen-addr = 192.168.0.254
port=1701
auth file = /etc/ppp/chap-secrets
;exclusive = no
ip range = 192.168.2.128-192.168.2.254
;ip range即l2tp拨号成功后分配给客户端的ip地址范围。
local ip = 192.168.0.254
;lac = 0.0.0.0-255.255.255.255
require chap = yes
refuse pap = yes
require authentication = yes
name = ×××Gateway
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tp
length bit = yes
/etc/ipsec.secerts文件:与2.使用OpenSwan测试构建IPSec通道中相同。
version 2.0
interfaces=%defaultroute
nat_traversal=yes
virtual_private=%v4:192.168.0.0/16,%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:!192.168.0.0/24
compress=yes
authby=rsasig
disablearrivalcheck=no
leftrsasigkey=%cert
rightrsasigkey=%cert
keyingtries=1
conn l2tpx509
pfs=no
auto=add
left=192.168.0.254
leftcert=***gateway.cert
leftprotoport=17/1701
right=%any
rightca=%same
rightprotoport=17/%any
include /etc/ipsec.d/examples/no_oe.conf
输入命令l2tpd -D以前台模式启动L2TPD服务。使用XL2TPD则输入xl2tpd -D。如果不加-D的参数,将以后台服务的方式运行l2tpd,不实时显示连接信息。
输入命令tcpdump -i eth0监视数据包。可能需要加参数host 192.168.0.254以缩小监视的信息范围。
openssl pkcs12 -export -in democA/cacert.pem -inkey demoCA/private/cakey.pem -out demoCA.p12
输入读取CA密钥的密码,然后再指定导出p12文件中的证书需要的密码,再确认此密码即可。
然后导出win端的证书:
openssl pkcs12 -export -in purewinter.cert -inkey purewinter.key -out purewinter.p12
把这两个文件通过安全方式复制到Windows客户端。
在证书:本地计算机里,选择个人->所有任务->导入,导入两个p12证书。把CA的证书由个人拖到“受信任的根证书颁发机构”里。
右键点此连接,选属性-网络-×××类型选择为L2TP IPSec ×××,选定TCP/IP协议,属性-高级,去掉“在远程网络上使用默认网关”的勾。确定。(此步是防止IPSec ×××的拨号连接建立以后,夺去原来宽带拨号的路由,导致宽带拨号假断线。如果宽带接入方式不是拨号则可跳过此步。)
双击此连接,输入用户名test,密码test123456。拨号。如果顺利,就拨号成功了。在×××Gateway的tcpdump可以看到加密信息在传输,L2TPD的输出中可以看到Call established with 192.168.0.2…等字样。
在Jim上输入service httpd start启动Apache服务,然后在Win客户端的浏览器中输入http://192.168.2.2,就可以看到Jim上架设的网站了。如果没有架设,可能看到Apache的默认页面,或者看到403禁止访问,Apache 2.x.x的信息。至此L2TP的IPSec ×××架设成功。
/etc/ipsec.secerts文件:最后加入一行:其中123456即为预共享的密钥。
192.168.0.254 %any : PSK "123456"
conn l2tp
authby=secret
pfs=no
auto=add
type=transport
left=192.168.0.254
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
然后再拨号试试。顺利的话应该直接成功。
转载于:https://blog.51cto.com/billtym/486778
用L2TP与OpenSwan构建IPSec ×××(使用X.509证书认证)相关推荐
- 用openswan 2.4.7构建ipsec ×××笔记
前言: 反把复复尝试了很多次,在网上相关文档的指导下,终于实现了在RH Linux 9.0 (kernel 2.4.20-8 )上以源码方式安装[color=Blue]openswan-2.4.27 ...
- 在centos上使用openswan搭建IPSec***
背景:因公司业务逐渐迁移到阿里云上,所以有需求搭建一条从公司内容到阿里云的×××隧道,因环境限制并未有***设备可以使用,所以计划在linux上搭建ipsec***来实现该功能.拓扑图如下: 目的:在 ...
- 使用openswan构建lan-to-lan ×××(KLIPS)
一.OpenSWan简介 OpenSWan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性.完整性问题. OpenSWan支持2.0.2.2.2.4以及 ...
- 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书
最后更新于2017年01月24日 一.为什么 为什么写这篇文章?ca是什么?数字证书是什么?ejbca又是什么? 让我们从http与https说起.http是超文本传输协议(HyperText Tra ...
- 细说IPSec 密钥交换,(数字证书认证、PSK、数字信封)
前文介绍IPSec和IKE已经很清晰了,可以查看一张图认识IPSec,区分IKE SA(ISAKMP SA)和IPSec SA. 本文主要介绍在IKE动态协商方式建立IPSec隧道时的基本工作原理. ...
- 玩转华为ENSP模拟器系列 | 两个网关之间通过IKE方式协商IPSec VdPdNd隧道(采用证书认证)
素材来源:华为防火墙配置指南 一边学习一边整理试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:玩转华为ENSP模拟器系列 | 合集_COCOgsta的博客-CSDN博客_华为模拟器实验 目标 ...
- 用l2tp(不带ipsec)的方式实现云服务器到机器人的主动访问
最后更新于2023年3月24日 09:36:40 v*n不等于翻墙! v*n不等于翻墙! v*n不等于翻墙! 项目背景和概念定义 机器人使用5g模块(跟个路由器似的,能插一张5g电话卡,可以理解为手机 ...
- 思科与H3C IPSec 预共享密钥和证书认证 ,NAT穿越综合实验
目录 拓扑图 实验要求 AR1思科与AR2思科设备配置 CA服务器 AR1思科与AR3华三设备配置 AR1配置NAT 拓扑图 地址分配表 AR1 Gi0/0 10.10.1.2 Gi0/1 1 ...
- 构建用于签名/加密双证书测试体系的可执行命令
注意事项 生成证书请求的填写 范例 Subject: C = CN, ST = Beijing, L = Beijing, O = MSI, OU = msi, CN = ca, emailAddre ...
- 用Openswan组建Linux IPSec ---第一部分
用Openswan组建Linux IPSec ---Linux下建立IPSEC的vpn第一部分 1.概述 2.安装Openswan 3.认证和配置 3.1 RSAsig认证方式的配置 ...
最新文章
- 解决MyBatis中 Could not set property ~ o f ~异常
- OSChina 周四乱弹 ——震惊!程序员的时间都用来干这个!
- apache配置,保你配置成功
- 2022-03-31 一些后续
- php音频添加语音,PHP生成语音
- 树的存储结构-双亲表示法
- Scollector+Bosun+OpenTSDB的监控方案逻辑组网
- python--函数式登录程序
- 校园网打开IEEE 显示未登录
- 手动清理Windows系统目录
- Tomcat的JDBC连接池
- vue json对比 进行编辑
- Java输出竖排古典文字
- 2019年度十大网络小说:玄幻小说独占六部,都市小说一本超神
- UVA10066(DP)
- PM2部署React项目(Ubuntu服务器)
- cisco 模拟器安装及交换机的基本配置实验心得_软考网络工程师级配置题总结 | 交换机配置、路由器配置、广域网接入配置、L2TP配置、IPSec配置、PIX防火墙配置...
- C#开发的OpenRA游戏高性能内存访问的方法
- Vue3不支持eventBus
- 66句震撼人心的禅语(转)
热门文章
- Android 四大组件学习之Activity一
- 漫画:Dijkstra 算法的优化
- 漫画:什么是优先队列?
- android 看门狗引起crash分析
- 用glew,glfw,FreeImag实现opengl画图-第五课 摄像机
- 淘宝商品比价定向爬虫
- B - I Hate It(单点更新)(区间求最大值)
- 10米精度NPP净初级生产力数据/NDVI数据/植被类型数据/土地利用数据/降雨气温分布数据/太阳辐射分布数据
- matlab中的m-file,MATLAB m-file帮助格式化
- 7923 consoleconsumer 怎么关闭_英雄联盟手游怎么设置最好 LOL手游最佳设置攻略_英雄联盟手游...