<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
当前×××软硬结合、种类繁多,各种层出不穷的×××产品数不胜数,功能也日益复杂;这里,我们以客户需求的变化为牵引,进行一次×××世界的连连看。限于篇幅的原因,我们仅仅提供重要且容易出错的信息供参考。
 
一、第一关:PIX-PIX
 

客户提出要看一个***的模型,鉴于演示性质,要求不高,也没有提出协商参数和网络结构方面的需求,我们选择了cisco pix这个较为热门的***设备进行点到点的互通。

 

对于硬件***产品来说,由于不涉及到安装和调试环境的问题,因此配置方法都大同小异,无论是命令行还是WEB界面配置,都需要完成网络、协商、算法、访问控制等方面的配置,由于网上pix相关的实例太多,我们在这里仅仅列一下配置。

 
模型:192.168.0.1--192.168.0.2
 
192.168.0.2:
crypto isakmp enable outside
access-list outside_20_cryptomap line 1 extended permit ip interface inside host 192.168.X.1
access-list inside_nat0_outbound line 1 extended permit ip interface inside host 192.168.X.1
tunnel-group 192.168.0.1 type ipsec-l2l
tunnel-group 192.168.0.1 ipsec-attributes
  pre-shared-key XXXX
  isakmp keepalive threshold 10 retry 2
crypto isakmp policy 10 authen pre-share
crypto isakmp policy 10 encrypt 3des
crypto isakmp policy 10 hash sha
crypto isakmp policy 10 group 2
crypto isakmp policy 10 lifetime 86400
crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
crypto map outside_map 20 match address outside_20_cryptomap
crypto map outside_map 20 set  peer  192.168.0.1
crypto map outside_map 20 set  transform-set  ESP-3DES-SHA
crypto map outside_map interface  outside
nat (inside) 0 access-list inside_nat0_outbound  tcp 0 0 udp 0 
crypto isakmp enable outside
 
192.168.0.1:
access-list outside_20_cryptomap line 1 extended permit ip interface inside host 192.168.X.2 
access-list inside_nat0_outbound line 1 extended permit ip interface inside host 192.168.X.2 
tunnel-group 192.168.0.2 type ipsec-l2l
tunnel-group 192.168.0.2 ipsec-attributes
  pre-shared-key XXXX
  isakmp keepalive threshold 10 retry 2
crypto ISAkmp policy 10 authen pre-share
crypto isakmp policy 10 encrypt 3des
crypto isakmp policy 10 hash sha
crypto isakmp policy 10 group 2
crypto isakmp policy 10 lifetime 86400
crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
crypto map outside_map 20 match address outside_20_cryptomap
crypto map outside_map 20 set  peer  192.168.0.2 
crypto map outside_map 20 set  transform-set  ESP-3DES-SHA
crypto map outside_map interface  outside
nat (inside) 0 access-list inside_nat0_outbound  tcp 0 0 udp 0 
 
这样就将一个简单的ipsec ***建起来了,简单吧?
 
需要提醒的是:如果采用图形界面的ASDM的话,要注意在6.0版本以上,ipsec ***的向导位置发生了变化,移到了顶部的菜单。
二、第二关:PIX-ISA
客户随即提出了新的要求,要软硬结合的实现刚才的模型。
难度小有增加,但是难不倒我们,因为只要是标准的***产品,互通一般是没有问题的,这里我们选用了微软的ISA做对端。
根据微软官方文档,可以非常轻松的实现,因此在此也不赘述了。文档如下:

[url]http://www.microsoft.com/china/technet/prodtechnol/isa/2004/plan/ipsec***.mspx[/url]

 
三、第三关:ISA1-ISA2-ISA3-ISA4
本关客户提出了新的需求,他们旗下的四家子公司,ABCD,其中AB之间、CD之间已经建立的×××链接,现在希望能够仅仅将BC连起来就实现全网的两两ipsec互访。且由于已经部署了ISA平台,这次需要在全部为ISA的基础上实现。
这次有些难度了,一截一截的建立***并不难,难就难在转发。
我们看下模型:
 
外部接口:192.168.1.1--192.168.2.1  192.168.3.1--192.168.4.1
                                         10.0.0.1---10.0.0.2
内部接口: 100.0.1.0    100.0.2.0     100.0.3.0    100.0.4.0
命名号:        1                2                 3               4
                      
我们需要将四个***链接起来,相邻的***直接通信,间隔的***通过中间的***转发。
由于2和3之间已经使用192.168和1、4建立链接,无法再次使用这个接口地址进行链接。
因此增加一个10网段的接口用以2和3之间的链接;
这样1和4出现一个×××,为192网段;2和3出现两个×××,为192和10网段。
 
关键:两端的ISA很简单,只要和中间的2、3分别建立一条***即可,问题出现在中间的ISA,为了能够实现全网转发,必须将1和4的子网容纳到配置中来。
以3为例,站在192.168.3.X的角度看,内网不仅仅有100.0.3.X,同时还有100.0.1.X和100.0.2.X;站在10.X.X.2的角度看,内网就必须是100.0.3.X和100.0.4.X;
同时,还要在网络规则中配置两边内网的路由,在防火墙策略中配置两个***的互访。
这样才能实现跨***通信。
 
由于配置大部分相同,下面以3为例,其余的ISA只要稍加修改地址就好。
 
1、ISA管理界面-虚拟专用网络-创建×××点对点链接。
(由于ISA有傻瓜化向导,这里仅仅列出配置完后的样子)
 
其中***1为192网段,***2为10网段。
 
ISA3上192网段***1设置:(以下数据为ISA的虚拟专用网络设置中点到点设置摘要中提取的信息)
本地隧道终结点: 192.168.3.1
远程隧道终结点: 192.168.4.1
允许 HTTP 代理或 NAT 通讯到此远程站点,此远程站点配置
必须包括此本地站点隧道终结点的 IP 地址。
IKE 阶段 I 参数
    模式: 主模式
    加密: 3DES
    完整性: SHA1
    Diffie-Hellman 组: 组 2 (1024 位比特)
    身份验证方法: 预共享机密(XXXX)
    安全关联生存期: 28800 秒
IKE 阶段 II 参数:
    模式: ESP 隧道模式
    加密: 3DES
    完整性: SHA1
    完全向前保密: ON
    Diffie-Hellman 组: 组 2 (1024 位比特)
    重新生成密钥时间: ON
    安全关联生存期: 3600 秒
    重新生成密钥 KB: OFF
远程网络 '×××1' IP 子网:
    子网: 100.0.4.0/255.255.255.0
    子网: 192.168.4.1/255.255.255.255(对端接口)
本地网络 '***2' IP 子网:(这里的本地就是前面提到过的,对于4来说,1、2都是我3的子网,都要宣告,这样才能让4知道我这里有1、2)
    子网: 10.0.0.1/255.255.255.255(对端接口)
    子网: 100.0.1.0/255.255.255.0
    子网: 100.0.2.0/255.255.255.0
本地网络 '内部' IP 子网:
    子网: 100.0.3.0/255.255.255.0
可路由的本地 IP 地址:(注意第二条,掩码出现254实际上包含了100.0.2.X和100.0.3.X,实际上意义是路由所有的本地内网,即1、2、3)
    子网: 100.0.1.0/255.255.255.0
    子网: 100.0.2.0/255.255.254.0
 
ISA3上10网段***2设置:
本地隧道终结点: 10.0.0.2
远程隧道终结点: 10.0.0.1
允许 HTTP 代理或 NAT 通讯到此远程站点,此远程站点配置
必须包括此本地站点隧道终结点的 IP 地址。
IKE 阶段 I 参数
    模式: 主模式
    加密: 3DES
    完整性: SHA1
    Diffie-Hellman 组: 组 2 (1024 位比特)
    身份验证方法: 预共享机密(XXXX)
    安全关联生存期: 28800 秒
IKE 阶段 II 参数:
    模式: ESP 隧道模式
    加密: 3DES
    完整性: SHA1
    完全向前保密: ON
    Diffie-Hellman 组: 组 2 (1024 位比特)
    重新生成密钥时间: ON
    安全关联生存期: 3600 秒
    重新生成密钥 KB: OFF
远程网络 '***2' IP 子网:
    子网: 10.0.0.1/255.255.255.255
    子网: 100.0.1.0/255.255.255.0
    子网: 100.0.2.0/255.255.255.0
本地网络 '×××1' IP 子网:
    子网: 100.0.4.0/255.255.255.0
    子网: 192.168.4.1/255.255.255.255
本地网络 '内部' IP 子网:
    子网: 100.0.3.0/255.255.255.0
可路由的本地 IP 地址:
    子网: 100.0.3.0/255.255.255.0
    子网: 100.0.4.0/255.255.255.0
 
2、ISA管理界面-配置-网络-网络规则
这里简单,只需要添加如下路由规则:
1、2----4
4----1、2
 
这里写的烦琐了些,其实是可以合成两条的。
 
3、ISA管理界面-防火墙策略
添加如下策略:
***1-***2允许
***2-***1允许
4、CMD-用route add指令压入两条路由
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
        100.0.2.0    255.255.255.0        10.0.0.1       1
        100.0.1.0    255.255.255.0        10.0.0.1       1
 
原因是我们在测试中发现,在这种配置下,ISA压入10网段指向左侧的路由,将网关设成了10.0.0.2,这是3身上的网卡,我们需要指向2,即10.0.0.1;具体是什么原因导致这样的现象还不是非常清楚。这里路由设置注意加上-p参数,才能不至于在重启后消失。
这样,从1、2发向4的数据将进入***1,发往4;从4发向1、2的数据将进入***2,发向2;而3和2、4本来就依赖***已经互通,这样3的任务就完成了;
同理,2也依照这样的配置方法进行配置。
 
1、4则相对简单,以4为例,配置好和3的***后,增加目标地址1、2,其他步骤则可以省略,因为默认已经全部从该***转发了。
这样,全网均可实现***通信,且跨网数据全部经由***管道转发,没有明文。
 
四、第四关:FC9(S1)-FC9(S2)-FC9(S3)-FC9(S4)
本关客户提出了新的需要,由于业务的升级,服务器更换成了最新的Fedora9,需要将前面的***平台也整合进来。
由于模型和实现思路不变,我们感觉这次的难度并没有很大提升,然而真的是这样的吗?
 
我们决定采用FC自带的×××实现。
首先在安装FC的时候要注意安装ipsec-tools,在fc中,ipsec ***的实现被分解为几个部分,其中系统内核负责加密进程,由racoon实现,上层***则由ipsec-tools实现。
 
以S3为例。
1、打开路由转发
要使fc能够正常路由网络数据,必须先对/etc/sysctl.conf文件中的
 
进行修改,保证其处于打开状态,修改完后可用sysctl -p /etc/sysctl.conf指令刷新配置,无需重启。
 
2、配置ipsec ***
在网络配置工具的选项卡中,会出现ipsec一栏,可以启动***配置向导。
在处理网络网关时,一定要填写与相应的内网直连的网关,无论本地还是远程都一样。
 
依据向导完成配置,***就建立好了。
 
3、依需求调整其他配置
前面说过,fc的***实现由两部分组成,ipsec-tools和racoon;那么,这两个进程又分别维护着哪些配置文件呢?
 
ipsec-tools配置:
ipsec-tools的文件都放在/etc/sysconfig/network-scripts/下。
***配置:是在/etc/sysconfig/network-scripts/中建立了以“ifcfg-你命名的***名称”为文件名的脚本文件,以S3上建立的面向S4的***为例,格式如下:
和我们前面用向导配置输入的数据是一致的,如同前面ISA的处理方式,我们要给S4发送1、2网段,于是我们添加了两个源内网。
预共享密钥:此时,在/etc/sysconfig/network-scripts/中以“keys-你命名的***名称”文件中以明文存储了刚才配置的预共享密钥。
至此,ipsec-tools管理的两个文件都明确了。
 
下面我们看看racoon这个主管加密协商的都有哪些法宝。
在修改这部分配置之前,强烈建议大家先用man racoon.conf指令通读手册,因为racoon的功能异常强大。
第一阶段(IKE)协商文件:/etc/racoon/192.168.4.1.conf
 
这里我们可以通过proposal{}的结构体制定多种加密集,供协商选择。
第二阶段(ipsec)协商文件:/etc/racoon/racoon.conf
 
同样的可以通过“,”增加多个协商参数。
结尾还要采用include语句包含第一阶段的文件名,这里可以同时包含多个***。
预共享密钥:/etc/racoon/psk.txt
这个文件格式简单,没什么好解释的了。
 
4、压入route
和ISA一样,我们也需要将路由压入fc,采用route add指令将1、2的子网压入系统,指向左侧***网关。
 
5、启动***
对于***的启动非常简单,可以采用指令“ifup 脚本名”启动,也可以在前面看到的网络配置中用“激活”“取消激活”来控制。
 
6、失败的原因
对于这个模型,我们采用fc9并未获得成功,原因是ipsec-tools这个“上层建筑”采用了一种保护机制,对于我们前面手动添加的1、2网段进行了删除操作,最终只保留最上一行的网段配置,即必须吻合在向导内输入的数据,手工修改脚本文件无效。这种现象产生于激活***以后,系统随即对ifcfg脚本就进行了修改,还原了只有一个网段的配置。我们在强制配上其他网段后,也仅仅能够实现三网互通,如S1-S2-S3,或者S2-S3-S4,始终无法将S1-S4联系起来。对于这个限制无法理解是由于对于网到网的***来说,是无需明确指定内网网段和网关的,只需要指定协商的两端地址即可,前面的ISA已经让我们感觉限制过多,没想到ipsec-tools更加厉害,不仅有些困惑。
 
五、第五关:openswan(S1)-openswan(S2)-openswan(S3)-openswan(S4)
客户鉴于前面模型的失败,提出要采用安全性更高,更为灵活的openswan实现ipsec的连接。
这次openswan建立在fc9,也就是说我们仅仅是在前面的基础上替换了ipsec-tools,用以解决子网不能指定多个的问题。对于openswan来说,racoon已经不起作用,openswan采用一个pluto进程来管理协商,其检查指令是setkey。且linux从内核2.6以后,已经采用netkey方式替换了KLIPS的ipsec内核,如果你还是要用KLIPS的话,需要在安装编译的时候加以调整。
 
以S3为例。
 
1、安装
安装openswan很简单,对于fc9有独立的fc9发行包,可以直接rpm安装,也可以通过源码包编译安装,难度都很小,这里就不赘述了。
 
2、检查环境
openswan提供了ipsec verify指令检测当前环境是否满足***配置需要。
 
这里要说明的是,openswan一样需要调整sysctl,但是要求比前面的模型高多了,基本上我们可以列出一张清单如下:
 
同时,我们还要关闭SElinux,此外,NAT和OE方面的检测则根据用户需要自行调整,检查不通过也是没关系的。
 
3、配置
openswan的配置只要关注两个文件,在配置前强烈建议“man ipsec.conf”查看手册。
这两个文件分别是/etc/ipsec.conf;/etc/ipsec.secrets
 
ipsec.conf用来管理ipsec协商和网络,配置如下:
第一部分,全局部分
 
主要管理NATT、OE、debug等级之类的比较大的方面。
第二部分,***实例部分
 
这里,网段的配置已经比较灵活了,可以配置内网和网关,也可以不用配,仅仅两个对端就可以。因为***的内网互通完全可以依赖路由实现。
有人问,协商的参数哪里去了?其实,不指定就是用默认的参数实现,指定的话也是在这一节,结构如下:
 
这里举了几个例子,如IKE参数可以用“,”隔开,分别用加密-哈希-dh变换的格式实现,通过最后加“!”表示强制,即要求对方必须采用这样的方式,ESP部分也是这样的含义,只是格式需如上图所示,时间也可以指定,此外,还有一个man手册中没有提到的开关,通过使用ikev2=never可以关闭ikev2版本,打开v1版本的协商。
 
ipsec.secrets用来管理密钥,配置如下:
10.0.0.1 10.0.0.2 : PSK “XXXX”
 
同样的需要为转发压入路由,就不单独讲了。
 
4、启动
openswan提供了丰富的配置和验证参数。
ipsec setup start|stop|restart 开关重启ipsec进程,包括加密进程;
ipsec auto --add “name” 将当前实例压入,但是如果前面配置了auto=add,就会自动压入,但是不启动;
ipsec auto --up “name”将当前实例启动,如果前面配置了auto=start,不仅会自动压入,还会自动启动。
ipsec look 查看当前ipsec协商状态,是否建立的链接等。
setkey -D 查看密钥协商完成后的状态。
 
六、第六关:freeswan(S1)-freeswan(S2)-freeswan(S3)-freeswan(S4)
此时,客户在应用中发现了问题,openswan不支持ah,这是因为ah本身带有的不安全的特点,已经被近年来部分***产品直接咔嚓掉了,我们决定采用openswan的前身,freeswan,同样的freeswan在2.6版本以后也取消的ah的支持,因此我们采用1.99版本。
为了支持比较老的freeswan,我们将系统换成了redhat9。
由于freeswan和openswan师出同门,因此配置格式和环境特别相似,下面我们只需要简单讲讲区别。
 
1、freeswan提供的ipsec verify检测的项目比较少,这也和redhat9不支持很多特性有关系。
 
ipsec的核心已经是老的KLIPS了。
 
2、ipsec setup start启动时如果报超过长度错误,需要在/usr/local/lib/ipsec/_confread中,注释掉如下两行:
3、ipsec.conf配置结构大体相似,如果要打开ah认证,可以在其中加上auth=ah一行。
 
4、针对IKE和ESP的参数指定,需要在spi上设置。
 
5、如果在启动时报没有加载ipsec模块,可以用modprobe ipsec进行加载。
 
6、freeswan没有提供setkey指令。
 
七、隐藏关:open*** ssl ***
最后,我们的客户使出了狠毒的一招,要求增加更高的安全性,在ipsec ***外面再包裹一层ssl ***……
我们继续努力!
 
1、下载open***软件,安装。
 
2、生成服务器和客户端的密钥及证书。这个网上教程很多,就不详细说明了。
 
3、修改配置文件。这里我们两边都有内网。
server端
server
port 1765
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key 
dh dh1024.pem
server 10.6.0.0 255.255.255.0(这里可以调整***隧道内地址)
push "route 192.168.1.0 255.255.255.0"(推送本地内网)
client-config-dir ccd(建立一个名为ccd的目录。和配置文件同级)
push "route 172.16.1.0 255.255.255.0"(推送目标内网)
push "route 192.168.2.0 255.255.255.0"
push "route 192.168.3.0 255.255.255.0"
client-to-client(打开客户端之间转发)
route 172.16.1.0 255.255.255.0(路由目标内网)
route 192.168.2.0 255.255.255.0
route 192.168.3.0 255.255.255.0
tls-server
tls-auth ta.key 0 
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status open***-status.log
verb 5
 

建立ccd目录内的client文件,这步比较重要,很多人不通都是这步没有做,内容如下:

iroute 172.16.1.0 255.255.255.0(通知client端设置路由内网条目)
iroute 192.168.2.0 255.255.255.0
iroute 192.168.3.0 255.255.255.0
 

client端:

client
dev tun
proto tcp
remote 服务端IP地址 1756
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert Client.crt
key Client.key
ns-cert-type server
tls-client
tls-auth ta.key 1
comp-lzo
verb 4
 
4、拨号
拨号过程中要注意,服务端先拨,获得隧道地址,图标变绿,然后拨客户端,完成后应该能够访问互相内网。
需要注意的一点是,客户端内网路由有时候会压不进去,需要手动添加。添加方式和win下设置路由方式相同。
 
至此,我们的闯关暂告一段落,虽然我们只是试用了***大军中小小的部分,其中绝大部分都还是免费的,但是其思想和理念都是相通的,在***大潮滚滚而来的时候,我们应当发扬革命传统,在少花钱多办事,少花钱办实事方面深入挖掘,相信有不少模型是可以实现。
文中各类***的用法只是最基本的配置,它们的功能远远不止列出的这一小部分,希望能够抛砖引玉,引起大家对多种***产品应用和研究的兴趣。

转载于:https://blog.51cto.com/netwalk/92251

IPSEC ×××连连看相关推荐

  1. DCN-2655 gre隧道 vpn 嵌入IPSec配置:

    DCN-2655 gre隧道 vpn 嵌入IPSec配置: RT1配置: Ip route 183.203.10.128 255.255.255.252 183.203.10.2 Interface ...

  2. java中showconfirmdialog_Java小游戏之连连看

    连连看大家应该都玩过,不多说直接上一个做好的界面截图吧,所有的功能都在上面的,要做的就只是如何去实现它们了. 差不多就是这个样子.先说一下大致的思路吧.首先编写基本的界面:把什么按钮啊,表格啊什么的都 ...

  3. IPsec ××× 配置實例

    試驗top: ipsec ***的配置包括一下幾個步驟: 1.配置ike的協商 2.配置ipsec的協商 3.配置端口的應用 4ike的調試和排錯 按照步驟 建立ike 的協商策略和參數 R1< ...

  4. 第一次搜索-连连看= =

    连连看 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. 两分公支的IPSec***流量走总部测试

    一.概述: 在论坛上看到一个朋友发帖希望两个分支的IPSEC ***流量经过总部,如是搭建拓扑测试了一下,因为跑两个VM版的ASA8.42机器性能不过,所以用PIX8.0来代替ASA,应该主要配置都跟 ...

  6. ipsec ***野蛮模式应用

    IPSEC野蛮模式: 简介: IKE 的协商模式 在RFC2409(The Internet Key Exchange )中规定,IKE 第一阶段的协商可以采用 两种模式:主模式(Main Mode ...

  7. 配置隧道模式的IPSec.×××

    一.拓扑及IP配置 二.配置清单 R1#show run Building configuration... Current configuration : 1449 bytes ! upgrade ...

  8. 杭电1175简单搜索 连连看

    连连看 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  9. 利用IPSec实现网络安全之三(身份验证和加密数据)

    作者:许本新 在上两篇中我们一起讨论了关于利用IPsec实现禁用协议和端口的相关知识,其实IPsec真正能够让用户感觉到安全放心的功能并不局限于此,IPsec的功能是相当的强大,今天我们就继续来讨论如 ...

最新文章

  1. linux pureftp mysql_在Ubuntu下安装apache2+php5+mysql5+pureftp+ftp
  2. 【会议邀请】第5届语言与智能高峰论坛将于本周五在线召开
  3. 【CVPR 2020】神经网络架构搜索(NAS)论文和代码汇总
  4. init/main.c中的void init(void)
  5. 插入排序算法 及其二分搜索优化版 C++代码实现 恋上数据结构笔记
  6. 娃哈哈困境:做好了生意,没做好品牌
  7. iOS:×××送(二)----pem证书的生成
  8. 机构、基民双输,基金销售的利益困局如何破?
  9. 0成本睡后收入!从0教你搭建外卖红包CPS小程序
  10. 西勒振荡电路------multisim仿真
  11. EasyExcel 读.CSV 文件数据为null或乱码问题
  12. 蓝桥杯学习——递归问题(上楼梯)
  13. 快手算法岗日常实习面试经验
  14. 线段树入门之夜空星亮
  15. 文件管理(操作系统)
  16. 在Nignx增加http2模块顺便聊聊HTTP的八卦
  17. 大数据、Java、Python、区块链、人工智能前景简单对比
  18. 飞机游戏中子弹与飞机的移动与边界源码
  19. SQL Server 深入解析索引存储(上)
  20. 海洋环境科学概论知识整理--2

热门文章

  1. 如何实现一个深拷贝(考虑循环引用对象、和symbol类型)
  2. 快速学习编程的10个关键技巧
  3. HackTheBox-Grandpa渗透测试
  4. CHJ_MarkDown
  5. 英语语法总结--倒装
  6. 互联网呼唤版权社会化服务
  7. 深入学习ElasticSearch(一)——ElasticSearch安装
  8. 华为ai服务器芯片,华为AI芯片有什么用特殊在哪 与普通芯片有什么区别
  9. dnf7月7日服务器维护,dnf7月7日早7点/8点半停机更新公告
  10. python2打开文件_Python 基础 -2.2 文件操作