Linux网络的IPv6应用

IPv6(Internet Protocol Version 6)协议是取代IPv4的下一代网络协议,它具有许多新的特性与功能。由IP地址危机产生和发展起来的IPv6作为下一代互联网协议已经得到了各方的公 认,未来互联网的发展离不开IPv6的支持和应用。Ipv6协议和Ipv4协议不论在结构上还是系统工具的使用上都不大相同。Linux是所有操作系统中 最先支持IPv6的,这里介绍一下Linux下的IPv6的地址、路由设定、防火墙配置、安全工具,使大家可以在Linux网络环境下从IPv4快速过渡 到IPv6。

配置Ipv6协议

下面笔者以Mandrake 9.1 Linux为例部署Linux下的IPv6。

1、加载IPv6模块

和Windows系统相比Linux对Ipv6的支持更好,一般基于2.4内核的Linux发行版本都可以直接使用Ipv6,使用前要看系统IPv6模块 是否被加载,如果没有的话可以使用命令手工加载,这需要超级用户的权限。然后使用命令检测,图1中第五行处显示IPv6地址(inet6 addr:fe80::200:e8ff:fea0:2586/64)证明IPv6已经加载。

# modprobe IPv6

#ifconfig -a

显示如下内容:


图1 显示IPv6地址已经加载

2、使用Ping命令检测网卡的IPv6地址是否有效

和IPv4不一样使用Ping6命令时必须指定一个网卡界面,否则系统将不知道将数据包发送到那个网络设备,I表示Interface、eth0 是第一个网卡、c表示回路,3表示Ping6操作三次。结果见图2:

#ping6 -I eth0 -c 1 fe80::200:e8ff:fea0:2586

3、使用IP命令

IP命令是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。如:ifconfig、route等。

(1)使用"ip"命令查看IPv6的路由表:

#/sbin/ip -6 route show dev eth0

(2)使用"IP"命令添加一个路由表:

#/sbin/route -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1

(3)用IP命令设定IPv6的多点传播Neighbor Solicitation

IPv6的Neighbor Discovery继承了IPv4的ARP(Address Resolution Protocol地址解析协议),可以重新得到网络邻居的信息,并且可以编辑/删除它.使用IP命令可以知道网络邻居的设定(其中,00:01:24: 45:67:89是网络设备的数据链路层的 MAC地址):

#ip -6 neigh show fe80::201:23ff:fe45:6789 dev eth0 ll addr 00:01:24:45:67:89

router nud reachable

Linux Ipv6版本网络环境的防火墙

安装:

基于Linux2.4内核的防火墙的关键是iptables。在2.2系列的时候它取代了ipchains和2.0系列之前的ipfwadm。如果你想使用任何形式的防火墙都需要安装iptables。

(1)下载Ipv6版本的iptables,下载链接:ftp://ftp.uni-bayreuth.de/pub/linux/arklinux/1.0-0.alpha8.2/i586/iptables-ipv6-1.2.7a-1ark.i586.rpm

(2) 安装防火墙:

#rpm -ivh iptables-ipv6-1.2.7a-1ark.i586.rpm

配置iptables

iptables 是与主流的 2.4.x 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器,则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。下面马上会详细讨论这些规则以及如何建立这些规则并将它们分组在链中。

-F :清除所有的已订定的规则;

-X :杀掉所有使用者建立的表(table)。

-Z :将所有的链(chain) 的计数与流量统计都归零。

(2)建立政策

#ip6tables [-t tables] [-P] [INPUT,OUTPUT,FORWARD, PREROUTING,OUTPUT,POSTROUTING] [ACCEPT,DROP] [-p TCP,UDP] [-s IP/network] [--sport ports] [-d IP/network] [--dport ports] -j

参数说明:

-t   :定义表( table)。

tables :table表的名称,

-P :定义政策( Policy )。

INPUT :数据包为输入主机的方向;

OUTPUT :数据包为输出主机的方向;

FORWARD :数据包为不进入主机而向外再传输出去的方向;

PREROUTING :在进入路由之前进行的工作;

OUTPUT :数据包为输出主机的方向;

POSTROUTING :在进入路由之后进行的工作。

TCP :TCP协议的数据包。

UDP :UDP协议的数据包;

-s :来源数据包的 IP 或者是网络。

--sport :来源数据包的端口( port)号。

-d :目标主机的 IP 或者是网络。

--dport :目标主机端口的(port)号。

ACCEPT :接受该数据包。

DROP :丢弃数据包。

(3) 范例:

1、允许ICMPv6数据包进入主机(即允许Ping主机Ipv6地址):

#/sbin/ip6tables -A INPUT -i sit+ -p icmpv6 -j ACCEPT

2、允许ICMPv6数据包从主机输出:

# ip6tables -A OUTPUT -o sit+ -p icmpv6 -j ACCEPT

3、允许使用IP地址是3ffe:ffff:100::1/128数据使用SSH

# ip6tables -A INPUT -i sit+ -p tcp -s 3ffe:ffff:100::1/128 --sport 512:65535

? --dport 22 -j ACCEPT

SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间服务器”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一 个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提 供一个安全的“通道”。SSH绑定在端口22上,其连接采用协商方式使用RSA加密。身份鉴别完成之后,后面的所有流量都使用IDEA进行加密。SSH (Secure Shell)程序可以通过网络登录到远程主机并执行命令。SSH的加密隧道保护的只是中间传输的安全性,使得任何通常的嗅探工具软件无法 获取发送的内容。

IPv6网络的安全工具

Nmap是在免费软件基金会的GNU General Public License (GPL)下发布的,由Fyodor进行开发和维护,可从www.insecure.org/nmap 站点上免费下载。nmap是一款运行在单一主机和大型网络情况下的优秀端口扫描工具,具有高速、秘密、可以绕过防火墙等特点。它支持多种协议,如TCP、 UDP、ICMP等。nmap也具有很多高性能和可靠性的特点,如动态延时计算、包超时重发、并行端口扫描、通过并行ping6探测主机是否当掉。它从 3.10版本开始支持IPv6。下载链接:http://gd.tuwien.ac.at/infosys/security/nmap/nmap- 3.48.tgz

nmap 安装编译过程如下:

#tar zxvf nmap-3.48.tgz

#cd nmap-3.48

# ./configure;# make;#make install

语法相当简单:nmap的不同选项和-s标志组成了不同的扫描类型,Ipv6版本的nmap支持两种扫描方式:

-sT 即Port Scanning,通常称为端口扫描。

-sS即TCP SYN,通常称为半开发扫描。

nmap扫描端口实例:

# nmap -6 -sT ::1

Starting nmap 3.48 ( http://www.insecure.org/nmap/ ) at 2003-12-23 11:55 UTC

All 1657 scanned ports on ::1 are: closed

Nmap run completed -- 1 IP address (1 host up) scanned in 20.521 seconds

输出的扫描报告显示Nmap扫描了1657个端口,一个是打开的其他是关闭的。

注意事项:如果你打算在IPv6网络下使用Nmap,下面几点经验可能对你有帮助:

● 避免误解。不要随意选择测试Nmap的扫描目标。许多单位把端口扫描视为恶意行为,所以测试Nmap最好在内部网络进行。如有必要,应该告诉同事你正在试验端口扫描,因为扫描可能引发IDS警报以及其他网络问题。

● 建立安全基准。在Nmap的帮助下加固网络、搞清楚哪些系统和服务可能受到攻击之后,下一步是从这些已知的系统和服务出发建立一个安全基准,以后如果要启用新的服务或者服务器,就可以方便地根据这个安全基准执行。

如果你想查看在Ipv6协议网络工作的Linux程序可以访问:http://www.netcore.fi/pekkas/linux/ipv6/ 这里能找到很多有IPv6支持的RPM包。

表1 Linux网络IPv4和IPv6功能对照

IPv4

IPv4的回路地址为127.0.0.1

来源位址和目的位址长度都为 32 位 (4 字节)。IPv4可提供4294967296个地址。

IPv4使用Internet群组管理通信协议(IGMP)管理本机子网络群组成员身份。

IPSec 支持是选择性的。

在 IPv4 包头中,路由器不识别用于 QoS 处理的 payload。

路由器和传送主机均支持数据片段。

包头包括检查值。

包头包括选项。

地址解析通讯协议 (ARP) 使用广播 ARP Request 讯框,将 IPv4 地址解析为连结层地址。

使用 Internet 群组管理通讯协议 (IGMP) 管理本机子网络群组成员身份。

使用 ICMP Router Discovery 确定具有最佳预设网关的 IPv4 地址 (选择性)。

使用广播地址将传输传送到子网络上的所有节点。

必须手动配置或使用 DHCP 配置。

使用网络域名称系统 (DNS) 中的主机地址 (A) 资源记录,将主机名称对应到IPv4地址。

使用IN-ADDR.ARPA DNS网域中的指标(PTR)资源记录,将IPv4地址对应到主机名称。

IPv6

IPv6的回路地址为0000:0000:0000:0000:0000:0000:0000:0001可以简写为::1。

来源位址和目的位址长度都为 128 位 (16 字节)。IPv6将原来的32位地址空间增大到128位,数目是2的128次方,能够对地球上每平方米提供6×1023个网络地址。

IPv6使用Multicast Listener Discovery (MLD)消息取代IGMP。

IPSec 支持是必需的。

在IPv6包头中,路由器使用 Flow Label 字段识别用于 QoS 处理的 payload。

路由器不支持数据片段。仅传送主机支持数据片段。

包头不包括检查值。

所有选项数据均移到IPv6扩充包头中。

用多点传播 Neighbor Solicitation 消息取代 ARP Request。

用 Multicast Listener Discovery (MLD) 消息取代 IGMP。

用 ICMPv6 Router Solicitation 和 Router Advertisement 消息取代 ICMPv4 Router Discovery,这是必需的。

没有IPv6广播地址。而是使用连结-本机领域所有节点多点传播地址。

不需要手动配置或 DHCP。

使用网络域名称系统 (DNS) 中的主机地址 (AAAA) 资源记录,将主机名称对应到IPv6地址。

使用IPv6.INT DNS 网域中的指标 (PTR) 资源记录,将IPv6地址对应到主机名称。



 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值