使用racoon setkey搭建IPsec环境
使用racoon setkey搭建IPsec环境
转载请注明出处:http://blog.csdn.net/rosetta
以前的博文写的都是基于openswan klips的IPsec实现及环境搭建,没有使用过Linux自带的netkey,现基于Linux自带的netkey搭建IPsec 环境,并参考UNPV13e写一个应用层程序倾泻安全联盟。
搭建环境:CentOS release 5.4,内核2.6.18-164.el5xen
在每一个网关需要增加默认路由,否则无法使用ping触发协商。
因为在我的局域网中有默认网关1.1,所以我设它为默认路由,如果没有默认网关的话可以设置对端协商口为默认路由。
一、使用setkey手动设置方式。
[root@localhost ipsec]# ipsec version
Linux Openswan U2.4.7/K2.6.18-164.el5xen (netkey)
See `ipsec --copyright' for copyright information.
在确保Linux是使用netkey的情况下,就可以往下继续操作了。先配置网关1,网关只要把配置里的IP换个位置就可以了,加黑的表示执行的命令行。
[root@localhost racoon]# cd /etc/racoon/
[root@localhost racoon]# vim setkey.conf
[root@localhost racoon]# cat setkey.conf
spdadd 40.0.0.0/24 50.0.0.0/24 any -P out ipsecesp/tunnel/192.168.95.162-192.168.95.230/use;
spdadd 50.0.0.0/24 40.0.0.0/24 any -P in ipsecesp/tunnel/192.168.95.230-192.168.95.162/use;
[root@localhost racoon]# setkey -f/etc/racoon/setkey.conf
此时网关1网关的SA、SP已经添加完毕,下面使用一个应用程序倾泻出已添加完的SA。
[root@localhost racoon]# cat dump.c (相关代码可参考UNPV13e,也可从网上直接下载源码)
因为dump.c要使用UNPV13e里的一些库和封装的函数,所以这个.c文件无法直接使用简单的gcc命令执行。我在源码目录已经编译好了dump可执行程序。
[root@localhost racoon]# ./dump (如果使用klips是无法倾泻的,因为klips没有实现倾泻安全联盟相关代码)
SADBMessage Dump, errno 0, satype Unspecified, seq 0, pid 27408
SADBMessage Dump, errno 0, satype IPsec ESP, seq 1, pid 27408
SA: SPI=16973824 Replay Window=0 State=Mature
Authentication Algorithm: HMAC-MD5
Encryption Algorithm: 3DES-CBC
0 allocations, 0 bytes0 addtime, 0 usetime
0 allocations, 0 bytes0 addtime, 0 usetime
added at Tue Jan 29 11:11:58 2013, never used
Source address: 192.168.95.230/32
Dest address: 192.168.95.162/32
Proxy address: 0.0.0.0 (IP proto 255)
Authentication key,128 bits: 0x16b844ab6136507eadc4765d782af8d0
Encryption key, 192bits: 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae70a96c831
SADBMessage Dump, errno 0, satype IPsec ESP, seq 0, pid 27408
SA: SPI=16908288 Replay Window=0 State=Mature
Authentication Algorithm: HMAC-MD5
Encryption Algorithm: 3DES-CBC
0 allocations, 0 bytes0 addtime, 0 usetime
0 allocations, 0 bytes0 addtime, 0 usetime
added at Tue Jan 29 11:11:58 2013, never used
Source address: 192.168.95.162/32
Dest address: 192.168.95.230/32
Proxy address: 0.0.0.0 (IP proto 255)
Authentication key,128 bits: 0x16b844ab6136507eadc4765d782af8d0
Encryption key, 192bits: 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae70a96c831
可以很清楚的看到,两个方向都包含对应的SA,只不过它的SPI显示的不太好看,可以用以下命令查看SPI,即我们在 setkey.conf里指定的。
[root@localhost racoon]# setkey -D
esp mode=tunnel spi=769(0x00000301) reqid=0(0x00000000)
E: 3des-cbc 7aeaca3f 87d060a1 2f4a4487 d5a5c335 5920fae70a96c831
A: hmac-md5 16b844ab 6136507e adc4765d 782af8d0
seq=0x00000000 replay=0flags=0x00000000 state=mature
created: Jan 29 11:11:58 2013 current: Jan 29 11:18:14 2013
diff: 376(s) hard: 0(s) soft: 0(s)
current: 0(bytes) hard: 0(bytes) soft: 0(bytes)
esp mode=tunnel spi=513(0x00000201) reqid=0(0x00000000)
E: 3des-cbc 7aeaca3f 87d060a1 2f4a4487 d5a5c335 5920fae70a96c831
A: hmac-md5 16b844ab 6136507e adc4765d 782af8d0
seq=0x00000000 replay=0flags=0x00000000 state=mature
created: Jan 29 11:11:58 2013 current: Jan 29 11:18:14 2013
diff: 376(s) hard: 0(s) soft: 0(s)
current: 0(bytes) hard: 0(bytes) soft: 0(bytes)
二、使用racoon自动协调方式。
[root@localhost racoon]# cd /etc/racoon/
[root@localhost racoon]# vim setkey.conf
[root@localhost racoon]# cat setkey.conf
spdadd 40.0.0.0/24 50.0.0.0/24 any -P out ipsecesp/tunnel/192.168.95.162-192.168.95.230/use;
spdadd 50.0.0.0/24 40.0.0.0/24 any -P in ipsecesp/tunnel/192.168.95.230-192.168.95.162/use;
[root@localhost racoon]# vim racoon.conf
[root@localhost racoon]# cat racoon.conf
# RacoonIKE daemon configuration file.
# See'man racoon.conf' for a description of the format and entries.
pathpre_shared_key "/etc/racoon/psk";
#pathcertificate "/etc/racoon/certs";
authentication_methodpre_shared_key;
encryption_algorithm 3des, blowfish448, rijndael ;
authentication_algorithm hmac_sha1,hmac_md5 ;
compression_algorithm deflate ;
[root@localhost racoon]# cat psk
[root@localhost racoon]# chmod 700 psk
[root@localhost racoon]# ls -alh psk
-rwx------1 root root 24 01-28 17:27 psk
注意psk文件的属性,一定不能被除所有者以外的人可读(我把它设置为700),否则racoon协商时会报以下错误:
/etc/racoon/pskhas weak file permission
[root@localhost racoon]# setkey -f/etc/racoon/setkey.conf
2013-01-2911:27:54: INFO: @(#)ipsec-tools 0.6.5 (http://ipsec-tools.sourceforge.net)
2013-01-2911:27:54: INFO: 127.0.0.1[500] used as isakmp port (fd=7)
2013-01-2911:27:54: INFO: 127.0.0.1[500] used for NAT-T
2013-01-2911:27:54: INFO: 192.168.95.230[500] used as isakmp port (fd=8)
2013-01-2911:27:54: INFO: 192.168.95.230[500] used for NAT-T
2013-01-2911:27:54: INFO: 50.0.0.1[500] used as isakmp port (fd=9)
2013-01-2911:27:54: INFO: 50.0.0.1[500] used for NAT-T
2013-01-2911:27:54: INFO: ::1[500] used as isakmp port (fd=10)
2013-01-2911:27:54: INFO: fe80::20c:29ff:fe38:49f8%eth0[500] used as isakmp port (fd=11)
2013-01-2911:27:54: INFO: fe80::20c:29ff:fe38:4902%eth1[500] used as isakmp port (fd=12)
此时两边都是就绪状态,这时可以通过从一方ping对端保护子网地址,就可以触发协商,这个类似于cisco方式。
附几个常用的命令:
常遇错误
1,/etc/racoon/pskhas weak file permission
这是因为psk这个文件的安全性要求很高,不能不能被除所有者以外的人可读(这个可以从源码的注释中看到)。
2,pfkey X_SPDDUMP failed: No such file ordirectory
使用racoon setkey搭建IPsec环境相关推荐
- strongswan 搭建 IPSec 实验环境
使用两个CentOS7虚拟机,基于strongswan搭建IPSec VPN实验环境,通过是否配置加密算法,达到产生正常和非正常ESP数据包的目的.本篇为自己填坑记录. 目录 1.准备两个CentOS ...
- 使用libreswan搭建ipsec点对点隧道 实现两idc内网网段互通
使用libreswan搭建ipsec点对点隧道 实现两idc内网网段互通 文章目录 使用libreswan搭建ipsec点对点隧道 实现两idc内网网段互通 一.libreswan 简介 - > ...
- atom搭建markdown环境
1. 搭建markdown环境 > 禁用atom自带的markdown-preview插件(功能简单) > 安装插件:markdown-preview-plus@2.4.16(在markd ...
- linux apache2.4 php,php5.6+apache2.4+linux如何搭建php环境
php5.6+apache2.4+linux如何搭建php环境 前言 最近突然想搭建个人博客,尽管笔者擅长java-web,但综合各种原因,于是选择了大众化的php+mysql搭建个人博客.对于php ...
- Android NDK开发之旅29 云服务器Ubuntu下搭建NDK环境,并编译FFmpeg
###前言 因为在Linux环境下编译FFmpeg生成库和头文件下比较方便,所以接下来主要操作在Linux环境下进行.但是对于Android NDK 开发新手来说,自己电脑配置Ubuntu Linux ...
- 软件测试培训:如何搭建测试环境
如何搭建测试环境?这是很多测试人员都需要了解的,测试是每个产品上线前必备的一个检验,不管是什么产品,做好有效的测试是对产品质量的一个负责,软件测试环境要考虑的就是软件在什么软硬件下能正常运行,什么环境 ...
- vm虚拟机下linux安装python_VM中安装linux系统,安装VS Code,搭建Python环境
VM中安装linux系统 在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载安装包 2.在下载目录打开终端安装 sudo dpkg -i code_1.32.3 ...
- Ubuntu 18.04.1 搭建Java环境和HelloWorld
一.搭建Java环境 系统环境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下载JDK 官网地址:http://www.oracle.com/technet... 选择相应的 ...
- PCL-1.8.1从源码搭建开发环境三(QHULL库的编译)
原文首发于微信公众号「3D视觉工坊」:PCL-1.8.1从源码搭建开发环境三(QHULL库的编译) 首先,介绍一下QHull库. QHull是一个开源的程序软件,用来研究解决凸包问题,生成凸包形体.官 ...
- PCL-1.8.1从源码搭建开发环境二(FLANN库的编译)
原文首发于微信公众号「3D视觉工坊」,PCL-1.8.1从源码搭建开发环境二(FLANN库的编译) 首先,快速近似最近邻搜索库FLANN-Fast Library for Approximate Ne ...
最新文章
- 汉诺塔的改编题(用栈求解,分别递归和非递归)
- thinkPHP开发基础知识 包括变量神马的
- 程序人生:32条软件开发的建议和教训,值得读一读!
- [html] 给内联元素加float与给块元素加float有什么区别?
- NAR再版 | 人类长非编码RNA知识库LncRNAWiki 2.0
- LoadRunner安装
- bom csv java_Java系列化与反系列化
- 黄聪:解决WordPress的函数mb_strimwidth截断中文产生乱码的问题
- 漫画小程序支持流量主,自动采集资源,漫画源码漫画小程序源码简单即可发布
- python 安装talib模块
- linux下telnet工具下载,telnet.exe下载
- 信号处理电路整理(RC、运放、TTL)
- 正则应用之——日期正则表达式
- vs2013配置CUDA .cu文件
- 美国出台最严技术出口管制!14项前沿科技面临封锁
- Laravel56查询构建器中的increment和decrement用法
- ad被锁定的账户_如何在AD中方便查询被锁定的帐号状态和特定条件的查询被锁定的帐号...
- 【C】C语言基础(包括:关键字、数据类型、输入输出)
- ENVI去除影像的地理坐标信息
- 270w活跃UP主的B站,品牌该如何选择?
热门文章
- AlertManager 告警信息
- 分享:如何在线将两个PDF合并成一个
- 计算机 不识u盘,电脑不认u盘了怎么办?
- 【构造】POJ-3295 Tautology
- linux系统时间编程(2) 各种时间标准GMT、UTC、世界时、TAI
- mac 树莓派 kali linux系统,MacOS制作树莓派kali系统
- 播布客的视频讲座-下载(持续更新2011-12-31)
- 通灵学院|游戏设计研习9:游戏社群★(1500字)
- java常见问题incompatible types
- iTest使用说明_V4.5.1