虚位以待(AD)
虚位以待(AD)
首页 > 操作系统 > Solaris > Solaris 10 IP Filter技术详解

Solaris 10 IP Filter技术详解
类别:Solaris   作者:码皇   来源:互联网   点击:

Solaris 10 IP Filter技术详解Solaris 10集成了许许多多的开源软件,IP Filter就是其中之一,该软件包直接替换了原来SUN screen 防火墙软件包。IP Filter软件包其功能也完全替代sun screen,功能包括状
Solaris 10 IP Filter技术详解   Solaris 10集成了许许多多的开源软件,IP Filter就是其中之一,该软件包直接替换了原来SUN screen 防火墙软件包。IP Filter软件包其功能也完全替代sun screen,功能包括状态性包过滤和网络地址转换(NAT),同样提供非状态包过滤以及创建和管理地址池的能力。   包过滤是防止基于网络攻击最直接有效的保护方法,Solaris IP Filter可以根据不同需求,可通过IP地址、端口、协议、网卡对网络包加载过滤功能。Solaris IP Filter也可以通过私有的源IP地址和目标IP地址 ,或者一个IP地址范围,再或者一个IP池来进行网络包的过滤。就是说其定制的策略是非常灵活的。   Solaris IP Filter配置文件介绍 Solaris IP Filter软件包提供防火墙和网络地址转换(NAT)两种功能,而起配置信息都可以使用相应的配置文件来提供。Solaris IP Filter配置文件都放在/etc/ipf目录下,包括ipf.conf,ipf.nat以及ippool.conf等文件。这些文件在系统boot过程中被自动读取,只要这些文件存放在/etc/ipf目录下。   Solaris IP Filter包过滤特征介绍 通过使用包过滤规则集可以十分轻松设置防火墙功能,命令ipf是用来配合这些规则集进行功能设置。这些规则集既可以使用命令行进行设置,也可以使用编写配置文件的方法来进行设置。/etc/ipf/ipf.conf配置文件里面放置了所有包过滤规则集,在系统boot过程中被ipfilter服务所读取。如果ipf.conf文件不放在/etc/ipf/目录下,这些规则集就不会被读取,但是可以在启动完成后,使用命令来动态读取。 Solaris IP Filter同时维护着两份规则集,一个为激活使用的(在kernel中),一个为非激活的规则集。IP Filter在进行包过滤的时候是从规则集的开始一直到最后一行进行处理,并设置着一个标志,根据这个标志,IP Filter决定是否转发或者拦截网络包。 以上从头到尾的遍历处理方式有两个例外情况,一个是规则中含有quick关键字,另外一个就是含有group关键字。如果规则中含有quick关键字,规则合规处理就为处理完所在规则行后,将不再往下读取其他规则了。如果规则中含有group关键字,那么只有带有group标志的网络包才被处理。   Solaris IP Filter语法通解 在/etc/ipf/ipf.conf文件中每一行的语法都如以下所示来描述一个规则: action [in|out] option keyword, keyword... 1.       action  每个规则必须使用的开始部分 这些action为其后规则被匹配时所采用的动作,具体如下: block                  阻止网络包 pass                     允许网络报文通过 log                        记录所有被通过和阻止的网络包,使用ipmon命令查看 count                 统计计算网络报文数,使用ipfstat查看统计信息 skip number      过滤处理时跳过规则的个数 auth                     通过用户程序验证网络报信息,需要进行包授权请求 preauth             过滤器查看预授权表请求,决定网络包如何处理 2.       action后面必须为in或者out in为进来的网络包,out是出去的网络包 3.       第三部分为规则的一些选项 如果以下选项都被使用的话,必须按顺序写入规则集 log             最后一个规则被匹配时,网络包将被记录 quick                    如果网络包被匹配时的规则行包含quick选项,将按该规则处理,后面的规则不在被读取 on interface-name            只有进出指定网卡的网络包才能适用该规则 dup-to interface-name      在指定网卡上,拷贝包然后发送拷贝的包到指定的IP上 to interface-name              将网络包在改网卡上顺序移动 4.       第四部分为网络包的匹配原则 tos              根据服务类型进行包过滤,为一个十六进制或者十进制的整型数来表达 ttl                根据包的存活值time-to-live进行匹配,该值存放在数据包头上 proto        根据指定的协议来匹配,可以使用任何在/etc/protocols文件中命名的协 议,比如tcp/udp用来匹配TCP或者UDP数据包        from/to/all/any           匹配以下任何一个或者全部数据包:源IP地址、目标IP地址 以及端口号 with             匹配与指定属性相关联的数据包,如果插入not或者no,是为了只                      有选项没有表达情况才匹配 flags            用于TCP数据包,基于TCP 标志位被设置的情况 icmp-type  根据ICMP类型进行过滤 keep keep-options      检测被保留的数据包的相关信息,keep-optons 包含在state选项                                         中才有效 head number               为过滤规则创建一个新的组,用number数字来标注 group number             增加一规则用组数number来替代缺省的组 配置文件的编写,以及规则示例后面章节将加以详细介绍。 Solaris IP Filter网络地址转换NAT特征介绍 网络地址转换NAT是一组映射规则的设置,它担负着将源IP地址和目标IP地址映射成其他的IP地址或者INTERNET网络地址。这些规则修改数据包里的源IP地址和目标IP地址,使得这些数据包能够发送到正确的地址上去。NAT也可以将数据包从一个端口发送到另一个端口上。   可以使用ipnat命令来维护制定NAT的列表,也可以使用配置文件来维护和制定此列表,这些列表都可以写在ipnat.conf文件里面。跟IP Filter包过滤配置文件一样,如果需要在boot的时候读取调用的话,就将ipnat.conf文件放置在/etc/ipf目录下,如果不需要这样,就可以放在任意指定的目录中,使用命令读取。 配置NAT列表 按以下的语法进行编制: command interface-name parameters 1.       每个规则必须以以下关键字开始 map            一个IP地址或者网络映射到另一个IP地址或者网络 rdr                从一个IP地址和端口的配对重定向到另一个IP地址和端口配对 bimap        在外部IP地址和内部IP地址之间建立一个双向的NAT map-block 建立静态IP地址翻译 2.       第二部就是网卡的名字 3.       第三部是以下一些参数 ipmask       指明网络掩码 dstipmask 指明ipmask翻译到网络的地址 mapport     指定TCP,udp,或者TCP/UDP端口,或者一个端口号范围 Solaris IP Filter IP地址池特征介绍 IP地址池创建了一个参考标准,用来命名一个地址/端口配对组,这样带来的好处就是大大减小了用规则来匹配IP的时间,提高了处理效率。   IP地址池配置规则放置在ippool.conf文件中,和前面的FILTER和NAT一样,如果需要在引导系统就load进kernel的话,就将该文件放在/etc/ipf/目录下。 配置IP地址池 配置IP地址池可以使用以下语法: table role = role-name type = storage-format number = reference-number table         为多个地址定义了一个参考表 role           指定这个池在Solaris IP Filter中的角色 type            指定池的存储格式 number    指定一个参考数被过滤过滤规则使用 使用pfil STREAMS模块激活IP Filter 激活Solaris IP Filter必须使用到pfil STREAMS模块,Solaris IP Filter不提供自动机制来为每个接口(比如网卡)调用模块,其替代方法就是pfil STRAMS模块使用SMF svc:/network/pfil机制来管理。为网卡激活网络包过滤功能,需要为网卡配置pfil.ap配置文件并激活svc:/network/pfil,这样pfil STRAMS模块就能为每个网卡服务了。enable 该模块,必须用以下两种方法来实现,一个是reboot系统,另外一个就是将所涉及的网卡 unplumb,在plumb起来,手动配置网口。   Solaris IP Filter配置指南 1.         Enable IP Filter Solaris IP Filter软件在solaris 10版本及以后版本已经集成,缺省情况下是不启用这个服务的,以下为打开该服务的步骤: a.  使用IP Filter角色用户登陆系统或者直接使用root用户 b.  创建Filter规则配置文件/etc/ipf/ipf.conf c.  Enable系统的Filter功能svcadm enable network/ipfilter 以下步骤是完成指定网卡设置的Filter功能 a.    创建关于网卡的文件pfil.ap 这个文件包含了需要包过滤的网卡,只要写入该网卡的名字即可 例如:bge -1 0 pfil b.    重启进程以读取该文件内容 scvadm restart network/pfil c.    激活对网卡包过滤的规则策略的另种方法 l  # sync;sync;sync; init 6系统 l  # ifconfig bge0 unplumb; # ifconfig bge0 plumb 192.168.0.199/24 up 手工停启用网卡,配置网络IP等 2.         Re-Enable IP filter 修改了配置文件后必须是的进程重新读取文件内容,才能使得新修订的包过滤规则生效: #ipf –D停止Filter #ipf –E 启用Filter #ipf –f /etc/ipf/ipf.conf重新读取ipf.conf文件内容 Solaris IP Filter配置文件内容示例 以下内容为配置内容详解,主要为制定一些包过滤规则策略提供参考: 1.       缺省情况下记录所有的进出网卡nxge0的数据包 pass in log on nxge0 all pass out log on nxge0 all   2.       阻止,但是不记录进入其他保留地址的数据包 block in quick on nxgel0 from 10.0.0.0/8 to any block in quick on nxgel0 from 172.16.0.0/12 to any 其中quick选项,在读取配置文件时,只要数据包匹配了该行规则,就不再读取后续的规则行 3.       阻止并记录不可信任内部IP的所有数据包,192.168.100.100/32为运行IP filter的机器 block in log quick from 192.168.0.15 to 192.168.100.100/32 4.       阻止并记录X11(port 600)协议所有数据包,以及RPC和portmapper(port 111),192.168.100.100/32为运行IP filter的机器 block in log quick on nxge0 proto tcp from any to 192.168.100.100/32 port = 6000 keep state block in log quick on nxge0 proto tcp/udp from any to192.168.100.100/32 port = 111 keep state   5.       灵活运用quick示例 pass in quick on nxgel0 from 192.168.0.101/32 to any pass out quick on nxgel0 from 192.168.0.101/32 to any pass in quick on nxgel0 from 192.168.0.200/32 to any pass out quick on nxgel0 from 192.168.0.200/32 to any block in quick on nxgel0 from 192.168.0.0/24 to any block out quick on nxgel0 from 192.168.0.0/24 to any 该例子阻止了192.168.0.0网段所有进出的数据包,但是该网段192.168.0.101和192.168.0.200两台主机所有的数据包还是能够正常发送和接受的。这是quick灵活运用的例子,quick表示在规则被匹配后,后续的规则不再读取,这样就能屏蔽掉后面的包含该规则的其他行。  
相关热词搜索: Solaris Filter 技术