IPv6IPSec导引2试验Linux+NAS+.docx

上传人:b****4 文档编号:4402089 上传时间:2022-12-01 格式:DOCX 页数:17 大小:43.28KB
下载 相关 举报
IPv6IPSec导引2试验Linux+NAS+.docx_第1页
第1页 / 共17页
IPv6IPSec导引2试验Linux+NAS+.docx_第2页
第2页 / 共17页
IPv6IPSec导引2试验Linux+NAS+.docx_第3页
第3页 / 共17页
IPv6IPSec导引2试验Linux+NAS+.docx_第4页
第4页 / 共17页
IPv6IPSec导引2试验Linux+NAS+.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

IPv6IPSec导引2试验Linux+NAS+.docx

《IPv6IPSec导引2试验Linux+NAS+.docx》由会员分享,可在线阅读,更多相关《IPv6IPSec导引2试验Linux+NAS+.docx(17页珍藏版)》请在冰豆网上搜索。

IPv6IPSec导引2试验Linux+NAS+.docx

IPv6IPSec导引2试验Linux+NAS+

IPv6和IPSec

试验笔记

1.IPv6inLinux配置2

1.1.安装Debian2

1.2.检查IPv6支持2

1.3.添加IPv6工具组件2

2.IPv6路由实验3

2.1.自动分配IPv6地址3

2.2.路由配置4

3.NAS:

访问控制5

3.1.NAS网关原理试验:

允许或禁止路由访问5

3.2.NAS部署试用:

走TT6

3.3.获得正式的IPv6地址:

使用BTexact的IPv6隧道7

3.4.自动分配IPv4地址:

DHCPv4Server7

3.5.登录界面:

重定向页面8

3.4.1Apache的配置8

4.NAS@211.86.49.110说明9

5.IPSecinLinux试验9

5.1.FreeS/WAN10

5.2.KAME-racoon10

5.2.1IPSec/IPv410

5.2.2IPSec/IPv611

5.2.3IPSec/IPv6withCERT12

5.3.isakmpd13

6.TunnelBroker13

7.参考13

1.IPv6inLinux配置

Linux对IPv6的支持是比较彻底的,这得益于社区的共同努力,尤其是USAGI项目的持续努力,2.6内核保持了较好的IPv6新特性。

下面以Debian3.1r1a为例,介绍IPv6的安装和配置。

1.1.安装Debian

Debian3.1r1a默认安装。

修正sources.list启用新的安装源:

debftp:

//211.86.49.110/pub/ISOs/Debian3.1r1a/debian-31r1-i386-binary-1/unstablecontribmain

debftp:

//211.86.49.110/pub/ISOs/Debian3.1r1a/debian-31r1-i386-binary-2/unstablecontribmain

然后更新dpkg库:

#apt-getupdate

为了方便后期使用,安装辅助工具:

#apt-getinstallapt-show-versions//查看已经安装组件列表

#apt-getinstallrcconf//服务管理

#apt-getinstallsshsambaless//常用工具

为了操作方便,尤其是使用vmware虚拟机中安装的Linux时,建议从Windows中使用ssh连接到linux,同时在Linux启用Samba服务,这样可以在Windows中方便的浏览Linux文件。

1.2.检查IPv6支持

Linux内核2.4/2.6已全面支持IPv6。

核实当前系统是否已经开启IPv6支持:

#cat/proc/net/if_inet6

#ping6:

:

1

IE/Mozilla/Firefox浏览器都支持IPv6。

Mozilla/Firefox可以使用这种形式的URL(IE不能使用这种形式):

http:

//[3e79:

1:

:

1]/

如果是IE,可以在/etc/hosts(\windows\system32\drivers\hosts)文件中添加一行,然后访问http:

//rose/。

3e79:

1:

:

1rose

1.3.添加IPv6工具组件

将要用到的主要的IPv6工具:

ping6

traceroute6

tracepath6

tcpdump

添加net-tools组件(indebian默认已经安装),以及添加iproute等组件:

apt-getinstallnet-tools

apt-getinstalliproute

apt-getinstalliputils-arpingiputils-pingiputils-tracepath

apt-getinstalltcpdumpnmap

可以综合为一条命令:

apt-getinstallnet-toolsiprouteiputils-arpingiputils-pingiputils-tracepathtcpdumpnmap

 

2.IPv6路由实验

路由器至少有两个网络接口连接两个网络。

5.1.自动分配IPv6地址

IPv6的路由器可以使用radvd分发地址配置信息,主要是广播地址前缀。

安装radvd组件:

#apt-getinstallradvd

比如在eth0网段上广播路由前缀3e79:

1:

:

/64,配置文件/etc/radvd.conf内容如下。

3e79是随便取用来测试的地址。

interfaceeth0{

AdvSendAdverton;

MinRtrAdvInterval3;

MaxRtrAdvInterval10;

prefix3e79:

1:

:

/64{//3e79CNGI

AdvOnLinkon;

AdvAutonomouson;

AdvRouterAddron;

};

};

使用radvdump命令可以看到radvd的路由广播信息。

#radvdump

为方便设置eth0的地址为3e79:

1:

:

1。

#ifconfigeth0add3e79:

1:

:

1//为什么自己网卡不能自动获得IPv6地址?

eth0所在网络上的其他机器可以自动获得3e79:

1:

:

/64前缀的IPv6地址,其后64位由网卡MAC地址自动衍生。

比如某机器A获得的地址是3e79:

1:

:

20c:

29ff:

fedc:

a021,机器B获得的地址是3e79:

1:

:

20c:

29ff:

feb4:

290c。

则A、B和Rose机器相互之间可以使用3e79:

1:

:

/64前缀的地址相互ping通。

查看本机IPv6地址:

#ifconfig|grepinet6

5.2.路由配置

机器Rose作为路由器,有2块网卡分别连接两个LAN。

一个LAN是实验室网络,包括原IP属于211.86.49.0/24的所有机器,其中有一台专门的测试机Alice。

另一个LAN是虚拟LAN,使用OpenVPN和桥接连接到远程一个TT网段上,其上一台测试机Bob。

(1)eth03e79:

1:

:

1/64接在实验室LAN,发布3e79:

1:

:

/64前缀。

(2)eth13e79:

2:

:

2/64连接远程LAN的隧道,发布3e79:

2:

:

/64前缀。

 

结构图示{a/b/r都是vmware虚拟机}

核实在Rose上已经开启IPv6路由转发(/proc/sys/net/ipv6/conf/all/forwarding),配置radvd,分别在eth0和eth1上提供3e79:

1:

:

/64和3e79:

2:

:

/64前缀,并设置路由,脚本如下:

hostnamerose

echo1>/proc/sys/net/ipv6/conf/all/forwarding

ifconfigeth0up

ifconfigeth0add3e79:

1:

:

1/64

route-Ainet6add3e79:

1:

:

/64eth0

ifconfigeth1up

ifconfigeth1add3e79:

2:

:

2/64

route-Ainet6add3e79:

2:

:

/64eth1

可能由于Linuxinvmware的MAC地址动态变化的原因,每次获得的IPv6地址有变化。

为方便,可以另外添加一个地址,比如Alice额外设置3e79:

1:

:

a。

这个地址可以视同静态地址被外部引用。

在Alice上:

hostnamealice

ifconfigeth0add3e79:

1:

:

a/64

route-Ainet6add3e79:

2:

:

/64gw3e79:

1:

:

1

在Bob上:

hostnamebob

ifconfigeth0add3e79:

2:

:

b

route-Ainet6add3e79:

1:

:

/64gw3e79:

2:

:

2

为了方便,特添加到/etc/hosts(\windows\system32\drivers\hosts):

3e79:

1:

:

1roserose1r1r

3e79:

1:

:

aalicea

3e79:

2:

:

2rose2r2

3e79:

2:

:

bbobb

此时A、B之间可以ping6通。

注:

实际上Rose是运行在238上的vmware虚拟机,Alice是运行在110上的虚拟机,Bob是运行在OpenVPN隧道远端的虚拟机。

3.NAS:

访问控制

上面的路由实验中默认允许任意分组通过路由器。

下面使用Linux内置的防火墙功能演示网络访问服务(NAS)的实现。

5.1.NAS网关原理试验:

允许或禁止路由访问

把3f79:

1:

:

/64当作内网,把3f79:

2:

:

/64当作外网。

一开始禁止所有源自内网的分组通过路由器访问外网:

ip6tables-AFORWARD-s3e79:

1:

:

/64-jDROP

ip6tables-DFORWARD-s3e79:

1:

:

/64-jDROP//如果恢复

允许比如Alice、svr110通过,则:

[登录成功后]

ip6tables-IFORWARD-s3e79:

1:

:

a/128-jACCEPT

如果再禁止通过:

[注销或超时]

ip6tables-DFORWARD-s3e79:

1:

:

a/128-jACCEPT

注意:

A的IPv6地址是通过radvd广播前缀结合本机网卡MAC自动得来的,此处为方便假设。

假如位于外网3e79:

2:

:

/64上有某些资源(比如可以连接到IPv6互联网),3e79:

1:

:

/64上的用户可以登录后访问。

http:

//rose/login.htm

该网页用一个FORM接受用户提交的帐号、口令、登录/注销请求,数据POST路由器rose的/cgi-bin/checkin.cgi脚本,该脚本文件检查用户名字和口令是否有效,如果有效则登录或注销。

登录成功,允许当前用户IP地址通过网关访问3e79:

2:

:

注销成功,禁止当前用户IP地址通过网关访问3e79:

2:

:

为了演示效果,同时支持IPv4,内网地址172.21.0.0/16,外网地址172.22.0.0/16。

如图:

 

注:

login.htm、checkin.cgi、cngiuser.conf、rc内容与代码,可以ssh登录rose查看。

{0utdate}

注意事项

(1)cgi脚本文件需要设置可执行属性。

chmod+xcheckin.cgi

(2)为了让webserver/CGI能够操作iptables,暂时设置ip6tables为SUID属性。

这样做应该不会带来问题。

chmod+s`whichip6tables`

chmod+s`whichiptables`

5.2.NAS部署试用:

走TT

在Alice上,启用IPv6,获得IPv6地址,修改hosts,访问http:

//rose/login.htm登录,则可以访问3e79:

2:

:

/64外网。

Bob有一条TT宽带线路。

使用IPv4,在Bob上启用NAT,则可以让内网透明使用TT线路。

同时,配合对路由表的修正,仍可以保持对教育网的高速访问。

在Rose上如下配置,并启用IPv4路由转发:

[主要思路如此]

echo1>/proc/sys/net/ipv4/ip_forward//启用IPv4路由

ifconfigeth0:

1172.21.1.1/16//Rose的内网地址

ifconfigeth1:

1172.22.2.2/16//Rose的外网地址,可达Bob

routeadd-net0/0172.22.22.22//IPv4的默认路由指向Bob

在Bob上配置外网地址,同时启用IPv4的路由转发和NAT:

ifconfigeth0:

1172.22.22.22

echo1>/proc/sys/net/ipv4/ip_forward

iptable-tnat-APOSTROUTING-s172.16.0.0/12-oeth1-jMASQUERADE

内网其他机器上的IPv4地址自己手工配置为172.21.0.0/16,则在172.21.0.0/16上的机器可以通过Rose经由Bob使用TT高速线路。

如果需要保持EDU仍走校园网,则可以保持路由表规则即可。

比如在211.86.49.238上的配置如下:

netshinterfaceipaddaddr"本地连接"172.21.49.238255.255.0.0

routeadd0.0.0.0mask0.0.0.0172.21.1.1metric1

routeadd202.194.0.0mask255.255.0.0211.86.49.254metric1

…//以及其他教育网地址段

5.3.获得正式的IPv6地址:

使用BTexact的IPv6隧道

3e79:

:

是非正式的IPv6地址。

互联网上有好多站点提供测试用IPv6地址,BTexact即提供正式的临时IPv6地址可用。

为实测,已在105机房202.194.194.246上申请到的BTexact的IPv6地址2001:

618:

400:

7ffc:

:

/64,使用radvd播放地址广告,部署NAS控制访问IPv6网络。

测试和使用方法如下:

(0)确信能ping/ping-6/ping6通2001:

618:

400:

7ffc:

:

1

ping62001:

618:

400:

7ffc:

:

1

(1)添加路由

#route-Ainet6add:

:

/0gw2001:

618:

400:

7ffc:

:

1或者在windows中

C:

>netshinterfaceipv6addroute:

:

/0local2001:

618:

400:

7ffc:

:

1

(2)用mozilla访问网关,登录

http:

//[2001:

618:

400:

7ffc:

:

1]/login-en.htm

(3)在登录后pingIPv6网络应该可以通达。

ping6-n

ping6-n

(4)使用mozilla访问IPv6-Only的网址,应该可以看到正常网页。

5.4.自动分配IPv4地址:

DHCPv4Server

dhcpd提供了IPv4版的动态地址分配,同时附带配置路由和域名后缀。

安装dhcpd:

{可以直接#aptitudeinstalldhcpd}

wgetdhcp-3.0.4.tar.gz

tarzxfdhcp-3.0.4.tar.gz

cddhcp-3.0.4

./configure

make

makeinstall

touch/var/state/dhcp/dhcpd.leases

一个典型的dhcpd.conf如下:

#cat/etc/dhcpd.conf

default-lease-time600;

max-lease-time7200;

optionsubnet-mask255.255.0.0;

optionbroadcast-address172.23.255.255;

optionrouters172.23.1.1;

optiondomain-name-servers202.194.15.12;

optiondomain-name"";

ddns-update-styleinterim;

subnet172.23.0.0netmask255.255.0.0{

range172.23.1.9172.23.250.250;

}

注:

这个软件在后来并没有被使用。

5.5.PPTPD:

PPTPVPNServer

(在debian4中。

2008-2)

aptitudeinstallpptpd

在/etc/pptpd.conf的尾部,像这样修改:

listen211.87.235.52

localip169.254.2.252

remoteip169.254.2.140-240

修改/etc/ppp/pptpd-options,有几处像这样:

name52db4

#require-mppe-128

在/etc/ppp/chap-secrets中,

#clientserversecretIPaddresses

vpn52db4"vpn"*

这样基本就可以了。

另外,可以同时配置上DHCP,让DHCP客户端和VPN客户端之间ping互通。

这样:

aptitudeinstalldhcpd

配置文件像这样,其中shared-network视需要可以加上或去掉。

optiondomain-name-servers202.194.15.12;

optionsubnet-mask255.255.255.128;

default-lease-time600;

max-lease-time7200;

shared-networkmytag{

subnet169.254.2.0netmask255.255.255.128{

range169.254.2.2169.254.2.80;

optionbroadcast-address169.254.2.127;

optionrouters169.254.2.1;

}

subnet211.87.235.0netmask255.255.255.0{

}

}

5.6.登录界面:

重定向页面

用户在使用网络之前应该先登录,可行方法有:

(1)去某个约定的网址登录;

(2)如果用户没有登录就访问网络,典型的是用浏览器访问网站,则弹出登录页面。

方法1容易实现,2对用户来说更方变一些。

方法2可以通过netfliter/iptables实现(?

)。

在路由器上使用iptables命令操作nat表,添加一条nat规则如下,则所有来自指定子网/主机的IP分组会被转向某固定IP。

iptables-tnat-APREROUTING-s172.21.0.0/16-jDNAT--to172.21.1.1

如果用户浏览器访问比如

//172.21.1.1/login.htm">

当用户登录成功后,除了放开路由,再配合使用如下规则让该用户的IP不再被DNAT。

iptables-tnat-IPREROUTING-s172.21.49.238-jRETURN

3.4.1Apache的配置

安装Apache2withSSL。

安装后需要修改配置文件./conf/httpd.conf和./conf/extra/httpd-ssl.conf。

wgethttpd-2.2.2.tar.gz

tarzxfhttpd-2.2.2.tar.gz

cdhttpd-2.2.2

./configure--enable-ssl--prefix=/usr/local/apache2ssl

make

makeinstall

编辑conf/httpd.conf,把尾部的一行去掉注释:

Includeconf/extra/httpd-ssl.conf

修改httpd-ssl.conf,主要是把443改成[:

:

]:

443,准备证书、私钥、CA证书等。

然后:

bin/apachectlstart

使用浏览器访问https:

//~/看看结果。

该Apache只用来提供登录界面。

为把对该站点的所有访问都重定向到login.shtml,在原主页文件头部区域添加:

//172.21.1.1/login.shtml">

并在apache的配置文件中添加一项:

ErrorDocument404/login-redir.shtml

其中login-redir.shtml也是重定向到login.shtml。

为了网页的移植性,在login.shtml等网页中使用了Apache/SSI特性。

具体细节参看部署在211.86.49.110上的一个实例。

4.NAS@211.86.49.110说明

登录110的帐号test,口令cngi,可以用来观察。

文件说明

/root/auto.bat建立BT/IPv6隧道

/root/fw-enb.bat开启防火墙

/root/fw-dis.bat关闭防火墙

/etc/dhcpd.confDHCPv4服务器配置文件(dhcpd进程)

/etc/radvd.confIPv6路由广播配置文件(radvd进程),相当于DHCPv6

/etc/cngiuser.conf用户文件,当前在checkin.cgi中被引用

/usr/local/apache2ssl/中的Apache2相关文件:

conf/httpd.confApache2配置文件

conf/user9.pemSSL证书和私钥

conf/root.pemCA证书

cong/extra/httpd-ssl.confSSL配置文件

htdocs/index.shtml

htdocs/login-redir.shtml网页重定向

htdocs/login.shtml登录表单网页

htdocs/login-en.shtml登录表单网页英文

cgi-bin/checkin.cgi处理登录请求的CGI脚本

5.IPSecinLinux试验

起先,是FreeS/WAN项目实现了IPSec的支持,那时还主要是IPv4年代。

其IPSec栈名叫KLIPS,密钥管理器叫pluto。

但是该项目在04年底废弃了。

还好,OpenSWAN和StrongSWAN两个项目继续和发展了OpenSWAN。

然后,IPSec的另一个项目---KAME项目主要由日本厂商开发的,可用于BSD和Linux,其密钥管理器在linux上叫racoon,在bsd上叫isakmpd。

真正加入到Linux内核2.6的,出乎预料,不是KAME,而是02年由Alexey

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1