Linux网络的IPv6应用

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  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模块

  和视窗系统系统相比Linux对Ipv6的支持更好,一般基于2.4内核的Linux发行版本都能直接使用Ipv6,使用前要看系统IPv6模块 是否被加载,如果没有的话能使用命令手工加载,这需要终极用户的权限。然后使用命令检测,图1中第五行处显示IPv6地址(inet6

  addr:fe80::200:e8ff:fea0:2586/64)证实IPv6已加载。 bbs.bitsCN.com

  # 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等。 bitsCN_com

  (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版本网络环境的防火墙 BBS.bitsCN.com网管论坛

  安装:

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

  (1)下载Ipv6版本的iptables,下载链接:linux/arklinux/1.0-0.alpha8.2/i586/iptables-ipv6-1.2.7a-1ark.i586.rpm”>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 :数据包为输出主机的方向; bitscn.com

  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数据包从主机输出: www_bitscn_com

  # 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的加密隧道保护的只是中间传输的安全性,使得所有通常的嗅探工具软件无法获取发送的内容。 www.bitsCN.com

  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 BBS.bitsCN.com网管论坛

  # ./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警报及其他网络问题。 BBS.bitsCN.com网管论坛

  ●

  建立安全基准。在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个地址。 bitscn.com

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

  IPSec 支持是选择性的。

  在 IPv4

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

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

  包头包括检查值。

  包头包括选项。

  地址解析通讯协议

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

  使用 Internet 群组管理通讯协议 (IGMP)

  管理本机子网络群组成员身份。

  使用

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

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

  必须手动设置或使用

  DHCP 设置。

  使用网络域名称系统 (DNS) 中的主机地址 (A) bitsCN_com

  资源记录,将主机名称对应到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。 www_bitscn_com

  用 ICMPv6 Router Solicitation 和 Router Advertisement 消息取代 ICMPv4

  Router Discovery,这是必需的。

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

  不必手动设置或 DHCP。

  使用网络域名称系统 (DNS) 中的主机地址 (AAAA)

  资源记录,将主机名称对应到IPv6地址。

  使用IPv6.INT DNS 网域中的指标 (PTR)

  资源记录,将IPv6地址对应到主机名称。

有多远,走多远,把足迹连成生命线。

Linux网络的IPv6应用

相关文章:

你感兴趣的文章:

标签云: