免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2836 | 回复: 0
打印 上一主题 下一主题

Solaris 10 NAT配置攻略 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-15 19:44 |只看该作者 |倒序浏览

  原文出处:
http://security.ctocio.com.cn/tips/227/8344227.shtml
    NAT(Network Address Translation,网络地址转换),允许一个整体机构以一个公用IP地址出现在Internet上。它是一种把内部私有网络地址翻译成合法网络IP地址的技术。
   一、NAT 基础知识
  1. NAT定义
  NAT英文全称是“
Network
Address Translation
”,“网络地址转换”,它是一个IETF(Internet Engineering
Task
Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet
Protocol
)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。图1给出了NAT的一个简单实现。

  2. NAT技术的提出
  IP地址耗尽促成了CIDR的开发,但CIDR开发的主要目的是为了有效的使用现有的internet地址。而同时根据RFC 1631(IP Network
Address
Translator)开发的NAT却可以在多重的互联网子网中使用相同的IP,用来减少注册IP地址的使用。 NAT技术使得一个私有网络可以通过互联网注册IP连接到外部世界,位于内部网络和外部网络中的NAT路由器在发送数据包之前,负责把内部IP翻译成外部合法地址。内部网络的主机不可能同时于外部网络通信,所以只有一部分内部地址需要翻译。
  数据包中如果包含有目的IP 地址,一旦内部
Intranet
的IP 地址被截获,那么内部网络资源就会暴露,并可以对其实施
攻击
。为了更好地提高内部网络安全性,可以采用网络地址转换技术。另外,IP 地址的不足使许多用户使用私有EP 地址来搭建网络,私有网络中的IP 地址应遵循RFC 1597 中为私有网络分配的地址,其地址范围为
      10.0.0.0-10.255.255.255 ,
  172.16.0.0--172.16.255.255
  192.168.0.0--192.168.255.255
  而使用私有地址不能直接与Internet 互联。为了使这样的网络能够访问Internet,可以采用地址转换解决这一问题。网络地址转换(NAT) 实现将一个(或一组)IP 地址转换成另一个或一组iP 地址,即将内网的IP 地址或者外网的IP 地址转换。由于网络地址的缺乏和出于安全等因素的考虑,许多内部网络使用私有IP 地址建立起来,在与internet 互连时,通过带有NAT 功能的路由器或防火墙,实现私有IP 与合法IP 地址的转换,对外表现为合法的IP 地址。
  3. NAT工作原理
  NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。通过NAT路由器的所有出分组,都把分组中的源地址更换为全球NAT地址。通过NAT路由器的所有入分组,都把分组中的目的地址(这个NAT路由器的全球地址)更换为适当的专用地址。如图2所示给出了地址转换的示例。

  图2 NAT工作原理图
  4. NAT的实现方法和分类
  NAT 功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。比如Cisco路由器中已经加入这一功能,网络管理员只需在路由器的IOS中设 置NAT功能,就可以实现对内部网络的屏蔽。,其他如Linux中的IP伪装(IP Masquerade),Solaris中的ipfilter或Windows98的Sygate软件和Windows 2000 、2003都包含了这一功能。NAT分类:
  (1) 源NAT(Source NAT,SNAT):修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。
  (2) 目的NAT(Destination NAT,DNAT):修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据懈的目的地地址,如平衡负载、端口转发和透明代理就是属于DNAT。
  5. NAT的转换表
  NAT路由器怎样知道从Internet来的入分组的目的地址呢?可能有几百个或几千个专用IP地址,每一个都属于一个特定主机。如果NAT路由器有一个转换表,问题就解决了。最简单的形式是一个转换表只有两列:专用地址和外部地址(分组的目的地址)。当这个路由器对出分组的源地址进行转换时,它也记下来目的地址———这个分组要去的地方。当响应从这个目的地址返回时,路由器就使用这个分组的源地址(作为外部地址)来找出这个分组的专用地址。图3给出了这个概念。应当注意,改变的(被转换的)地址用灰色表示。

  图3 NAT的转换表
  6.NAT的优点和缺陷:
  NAT方案在一定程度上减缓了IP地址耗尽的周期和路由表规模越来越大的问题,提供了一种非常方便的方式来解决私有网络与Internet的互连问题。
  NAT的优点:
  终端用户可以透明地访问Internet。
  利用NAT可以做到对外部网络隐藏内部网络的体系结构,从外部网络无法知道究竟是哪台主机发送或接收数据,从另一个角度,它也是一个缺点。
  为已建成的私有网络方便地建立与Internet的连接,而不必去修改每台主机的地址以及内部路由器的配置。
  *在实现NAT时,可以加入一些服务器代理和
包过滤
的功能,可以获得很好的安全性及其它性能,而不用增加管理的开销。
  以极少的全局地址实现一个较大型的私有网络与Internet的互连。
  但NAT方案含有很多消极特征,决定了它只能是一个临时的解决方案,包括:
  如果网络规模增大,访问Internet的主机增多,地址对应表的规模必然会越来越大,这将导致效率的降低。
  它会增加错误寻址的可能性。
  它隐藏了发送报文的主机的有关信息,使得外部网络难于对它们进行管理,例如,若内部网络中某台主机在Internet上违反安全规则,Inter—
net
就无法查处“元凶”。
  由于NAT要修改相应的IP地址,这使得不能对包含IP地址或有关IP地址信息的内容(如
  TCP报文头的校验和)进行加密,降低了安全性。
  l那些使用到IP地址的高层应用将受到限制,除非NAT有可能修改其中包含的IP地址信息,即便如此,对这些高层应用还是有所限制,如不能加密等。
  *ICMP,SNMP,DNS等等各种网络上使用的协议在进行地址翻译时所带来的问题,难予考虑周全。
二、NAT在Solaris 下的实现原理
  NAT在Solaris 下的实现原理也是使用防火墙工具IPFilter是目前比较流行的
包过滤
防火墙软件,它目前拥有多种平台的版本,安装配置相对比较简单。可以用它来构建功能强大的软件防火墙,下面就其的安装以及一些典型的配置作一下说明。IPFfilter 的作者是 Darren Reed 先生,他是一位致力于
开源
软件开发的高级程序员,目前工作于 SUN 公司。IP
Filter
软件可以提供网络地址转换(NAT)或者防火墙服务。简单的说就是一个软件的防火墙,并且这个软件是开源免费的。当前的版本是4.1.15,目前支持 FreeBSD、NetBSD、Solaris 10、Open Solaris、AIX 等
操作系统
平台。IPFilter是它是一个在引导时配置的可加载到内核的模块。这使得它十分安全,因为已不能由用户应用程序篡改。我用Solaris10 来作为实验的平台介绍一下IP Filter。IP Filter过滤器会执行一系列步骤。图4说明处理包的步骤,以及过滤如何与 TCP/IP 协议栈集成在一起。

   图4 处理数据包的步骤
  数据包在Solaris内的处理顺序包括下列步骤:
  1. 网络地址转换 (
Network
Address Translation, NAT)
:将专用 IP 地址转换为不同的公共地址,或者将多个专用地址的别名指定为单个公共地址。当组织具有现有的网络并需要访问 Internet 时,通过 NAT,该组织可解决 IP 地址用尽的问题。
  2. IP 记帐:可以分别设置输入规则和输出规则,从而记录所通过的字节数。每次与规则匹配时,都会将包的字节计数添加到该规则中,并允许收集层叠统计信息。
  3. 片段高速缓存检查:如果当前流量中的下一个包是片段,而且允许前一个包通过,则也将允许包片段通过,从而绕过状态表和规则检查。
  4. 包状态检查:如果规则中包括 keep state,则会自动传递或阻止指定会话中的所有包,具体取决于规则指明了 pass 还是 block。
  5. 防火墙检查:可以分别设置输入规则和输出规则,确定是否允许包通过 Solaris IP 过滤器传入内核的 TCP/IP 例程或者传出到网络上。
  6. 组:通过分组可以按树的形式编写规则集。
  7. 功能:功能是指要执行的操作。可能的功能包括 block、pass、literal 和 send ICMP response。
  8. 快速路由:快速路由指示 Solaris IP 过滤器不将包传入 UNIX IP 栈进行路由,从而导致 TTL 递减。
  9. IP 验证:已验证的包仅通过防火墙循环一次来防止双重处理。
三、Solaris 10 NAT配置实战
  在 Solaris 10 上,不需要再安裝 IP
Filter
了,Solaris 10 已經內建了 IP Filter,所以,只要做一些設定就可以使用。在舊版本的 Solaris系統上是需要自行下載(http://coombs.anu.
edu
.au/~avalon/ )和安裝 IP Filter 的。
  1、了解nat规则
  IP Filter过滤器规则集很多这里笔者介绍和nat相关的规则。
  查看活动的 NAT 规则
      # ipnat -l
  List of active MAP/
Redirect
filters:
  map dmfe0 192.168.1.0/24 -> 20.20.20.1/32
  List of active sessions:
  如何删除 NAT 规则
  以下示例显示如何删除当前 NAT 规则中的项。
      # ipnat -l
  List of active MAP/Redirect filters:
  map dmfe0 192.168.1.0/24 -> 20.20.20.1/32
  List of active sessions:
  # ipnat -C
  1 entries flushed from NAT list
  # ipnat -l
  List of active MAP/Redirect filters:
  List of active sessions:
  如何将规则附加到 NAT 规则
  使用以下方法之一将规则附加到活动规则集:
  在命令行上使用 ipnat -f - 命令,将规则附加到 NAT 规则集。
# echo "map dmfe0 192.168.1.0/24 -> 20.20.20.1/32" | ipnat -f -
  以下示例显示如何从命令行将规则添加到 NAT 规则集。
      # ipnat -l
  List of active MAP/Redirect filters:
  List of active sessions:
  # echo "map dmfe0 192.168.1.0/24 -> 20.20.20.1/32" | ipnat -f -
  # ipnat -l
  List of active MAP/Redirect filters:
  map dmfe0 192.168.1.0/24 -> 20.20.20.1/32
  List of active sessions:
  2、启动IP转发
  NAT需要使用兩張網卡才能正常使用,首先查看网卡,使用ifconfig –a 命令如图5:

  图5 查看网卡接口
  这里笔者使用的两块网卡分别是:elx0 、mxfe0 。
  IP forwarding即IP转发,在我们单位的日常工作中,人们往往由于分配的IP地址不在一个网段,而不能相互访问,给员工之间的数据交换带来不便。虽然可以利用第三层交换技术VLAN来实现数据交换,但那需要更换现有的部分网络设备。那么,利用现有的网络设备,通过大量的实践和探索,我们找到了解决此问题的方法,即利用IP转发功能来实现不同网段的数据交换。IP转发就是在一个路由器中,如果IP包的地址与路由器的地址表有相符的地址时,把这个包卸下来,发给相应的主机,否则将其转发到别的路由器的过程。首先查看目前ip转发情况,使用routeadm 命令,如图6 。

  图6 查看目前ip转发情况
  说明:不带选项的 routeadm 命令可报告IP转发和路由选择守护
进程
的状态。下面使用命令启动IP转发: 
routeadm -u -e ipv4-forwarding
  另外也可以使用smf命令:
# svcadm enabled ipv4-forwarding
  下面重新使用routeadm 命令查看情况,如图6 。

  图7 IP转发已经启动
  当你把 IP forwarding 启动后,你就需要設定 NAT (的規則。NAT 規則在檔案 /etc/ipf/ipnat.conf 裡面。 
      map elx0 192.168.0.0/24 -> 0/32
proxy

port
ftp ftp/tcp
  map elx0 192.168.0.0/24 -> 0/32 portmap tcp/udp auto
  map elx0 192.168.0.0/24 -> 0/32
  修改/etc/ipf/pfil.ap 文件,此文件包含主机上网络接口卡 (
network
interface
card
, NIC) 的名称。缺省情况下,这些名称已被注释掉。对传输要过滤的网络通信流量的设备名称取消注释。
      vi /etc/ipf/pfil.ap
  # IP Filter pfil autopush setup
  # See the autopush(1M) manpage for more
information
.
  #
Format
of the entries in this
file
is:
  #major minor lastminor modules
  #iprb -1 0 pfil
  #elxl -1 0 pfil
  #e1000g -1 0 pfil
  #bge -1 0 pfil
  #nf -1 0 pfil
  elx0 -1 0 pfil
  #mxfe0 -1 0 pfil
  #el -1 0 pfil
  #ipdptp -1 0 pfil
  #lane -1 0 pfil
  pcn -1 0 pfil
  #pcelx -1 0 pfil
  #spwr -1 0 pfil
  启动服务使用命令:svcadm enable svc:/network/ipfilter:default
  使pfil.ap配置文件生效
autopush -f /etc/ipf/pfil.ap
  说明:此步骤只需要做一次,以后更改防火墙规则就不需要再做。
  重新引导计算机,使用命令:“
reboot
”。
  如果不希望重新启动计算机也可以使用命令:
      ifconfig elx0 unplumb
  ifconfig elx0 plumb dhcp start
  这里假设elx0是通过DHCP获得的ip地址。
      


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/24551/showart_1308243.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP