linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > unix > unix提高 >
栏目导栏
资料搜索
热门文章
·20%的SOLARIS知识解决80%的问题
·Solaris启动过程详解 zt
·查看Solaris系统硬件配置的命令
·Unix系列shell程序编写(中)
·STRUTS 源码学习笔记
·SOLARIS技巧篇
·snort源码分析
·Unix系列shell程序编写(下)
·在solaris 10/x86下安装oracle
·solaris 10 硬盘安装
·Solaris安全配置手册
·Apache源代码分析——关于模块
·HP-UX基本指令快速参考
· Tomcat Server源码启动分析
·Solaris8 双网卡配置(路由器用
最新文章
·solaris系统安全配置
·RHEL5.0操作系统下NFS服务的配
·Solaris Linux 9下Vsftpd的配置
·在HP-UX下建立只归属于某个目录
·SolarWinds2002使用说明
·从外部存储划盘并加入vg,为fs扩
·因带库问题导致系统光纤卡报错
·Unix下多线程中条件变量的使用
·UNIX和Linux中信号的个数
·不同的类UNIX操作系统密码破解
·AIX系统下Domino邮件服务器安装
·限制ROOT用户远程登陆UNIX系统
·Unix操作系统入侵追踪反击战
·AIX CDE不能启动的故障一般性解
·CentOS4.4用VSFTPD架设FTP服务
Google
 
实战:为Solaris配置IP过滤防火墙
[ 作者:  加入时间:2007-08-20 11:32:42  来自:Linux联盟收集整理 ]
IPFilter是目前比较流行的包过滤防火墙软件,它拥有多种平台的版本,安装配置相对比较简单。当前的版本是4.1.15,支持 FreeBSD、NetBSD、Solaris 10、Open Solaris、AIX 等操作系统平台。IPFilter是一个在引导时配置的可加载到内核的模块。这使得它十分安全,因为已不能由用户应用程序篡改。NtaLinux联盟
NtaLinux联盟
一、 学会编写IPFfilter 规则NtaLinux联盟
NtaLinux联盟
    通过使用IPFfilter系统提供的特殊命令建立这些规则,并将其添加到内核空间特定信息包过滤表内的链中。关于添加、去除、编辑规则的命令,一般语法如下: NtaLinux联盟
NtaLinux联盟
    action [in|out] option keyword, keyword... NtaLinux联盟
NtaLinux联盟
    参数说明:NtaLinux联盟
NtaLinux联盟
    1. 每个规则都以操作开头。如果包与规则匹配,则 Solaris IP 过滤器将操作应用于该包。以下列表包括应用于包的常用操作。NtaLinux联盟
NtaLinux联盟
    block :阻止包通过过滤器。NtaLinux联盟
    pass :允许包通过过滤器。NtaLinux联盟
    log :记录包但不确定是阻止包还是传递包。使用 ipmon 命令可查看日志。NtaLinux联盟
    count :将包包括在过滤器统计信息中。使用 ipfstat 命令可查看统计信息。NtaLinux联盟
    skip number :使过滤器跳过 number 个过滤规则。NtaLinux联盟
    auth :请求由验证包信息的用户程序执行包验证。该程序会确定是传递包还是阻止包。NtaLinux联盟
    preauth :请求过滤器查看预先验证的列表以确定如何处理包。NtaLinux联盟
NtaLinux联盟
    2. 操作后面的下一个单词必须是 in 或 out。您的选择将确定是将包过滤规则应用于传入包还是应用于传出包。NtaLinux联盟
NtaLinux联盟
    3. 接下来,可以从选项列表中进行选择。如果使用多个选项,则这些选项必须采用此处显示的顺序。NtaLinux联盟
NtaLinux联盟
    log :如果规则是最后一个匹配规则,则记录包。使用 ipmon 命令可查看日志。NtaLinux联盟
    quick :如果存在匹配的包,则执行包含 quick 选项的规则。所有进一步的规则检查都将停止。NtaLinux联盟
    on interface-name :仅当包移入或移出指定接口时才应用规则。NtaLinux联盟
    dup-to interface-name:复制包并将 interface-name 上的副本向外发送到选择指定的 IP 地址。NtaLinux联盟
    to interface-name :将包移动到 interface-name 上的外发队列。NtaLinux联盟
NtaLinux联盟
    4. 指定选项后,可以从确定包是否与规则匹配的各关键字中进行选择。必须按此处显示的顺序使用以下关键字。NtaLinux联盟
NtaLinux联盟
    tos :基于表示为十六进制或十进制整数的服务类型值,对包进行过滤。NtaLinux联盟
    ttl :基于包的生存时间值与包匹配。在包中存储的生存时间值指明了包在被废弃之前可在网络中存在的时间长度。NtaLinux联盟
    proto :与特定协议匹配。可以使用在 /etc/protocols 文件中指定的任何协议名称,或者使用十进制数来表示协议。关键字 tcp/udp 可以用于与 TCP 包或 UDP 包匹配。NtaLinux联盟
    from/to/all/any :与以下任一项或所有项匹配:源 IP 地址、目标 IP 地址和端口号。all 关键字用于接受来自所有源和发往所有目标的包。NtaLinux联盟
    with :与和包关联的指定属性匹配。在关键字前面插入 not 或 no 一词,以便仅当选项不存在时才与包匹配。NtaLinux联盟
    flags :供 TCP 用来基于已设置的 TCP 标志进行过滤。NtaLinux联盟
    icmp-type :根据 ICMP 类型进行过滤。仅当 proto 选项设置为 icmp 时才使用此关键字;如果使用 flags 选项,则不使用此关键字。NtaLinux联盟
    keep keep-options :确定为包保留的信息。可用的 keep-options 包括 state 选项和 frags 选项。state 选项会保留有关会话的信息,并可以保留在 TCP、UDP 和 ICMP 包中。frags 选项可保留有关包片段的信息,并将该信息应用于后续片段。keep-options 允许匹配包通过,而不会查询访问控制列表。NtaLinux联盟
    head number :为过滤规则创建一个新组,该组由数字 number 表示。NtaLinux联盟
    group number :将规则添加到编号为 number 的组而不是缺省组。如果未指定其他组,则将所有过滤规则放置在组 0 中。
 
二、 动手编写第一个规则NtaLinux联盟
NtaLinux联盟
    1.查看IPFilter包过滤防火墙运行情况NtaLinux联盟
NtaLinux联盟
    Solaris 10 上IPFilter 的启动和关闭是由 SMF 管理的,在Solaris 10 上工作的进程大多都交由SMF 管理,这和先前版本的Solaris 操作系统有很大的区别。Solaris IP 过滤防火墙随 Solaris 操作系统一起安装。但是,缺省情况下不启用包过滤。使用以下过程可以激活 Solaris IP 过滤器。使用命令“svcs -a |grep network |egrep "pfil|ipf"”查看。界面如图1 。NtaLinux联盟
 NtaLinux联盟
图1 查看IPFilter包过滤防火墙运行情况
NtaLinux联盟
    IP Filter 有两个服务ipfilter 和pfil,默认情况下ipfilter 是关闭的,而pfil 是打开的。NtaLinux联盟
NtaLinux联盟
    2.查看网卡接口NtaLinux联盟
NtaLinux联盟
    lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1NtaLinux联盟
        inet 127.0.0.1 netmask ff000000NtaLinux联盟
pcn0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2NtaLinux联盟
        inet 10.1.1.8 netmask ff000000 broadcast 10.255.255.255NtaLinux联盟
可以看到网卡接口是pcn0。NtaLinux联盟
NtaLinux联盟
    3.修改/etc/ipf/pfil.ap 文件NtaLinux联盟
NtaLinux联盟
    此文件包含主机上网络接口卡 (network interface card, NIC) 的名称。缺省情况下,这些名称已被注释掉。对传输要过滤的网络通信流量的设备名称取消注释。NtaLinux联盟
NtaLinux联盟
vi /etc/ipf/pfil.apNtaLinux联盟
"/etc/ipf/pfil.ap" 23 ÐУ¬371 ×Ö•ûNtaLinux联盟
# IP Filter pfil autopush setupNtaLinux联盟
# See the autopush(1M) manpage for more information.NtaLinux联盟
# Format of the entries in this file is:NtaLinux联盟
#major  minor lastminor modulesNtaLinux联盟
#iprb   -1      0       pfilNtaLinux联盟
#elxl   -1      0       pfilNtaLinux联盟
#e1000g -1      0       pfilNtaLinux联盟
#bge    -1      0       pfilNtaLinux联盟
#nf     -1      0       pfilNtaLinux联盟
#fa     -1      0       pfilNtaLinux联盟
#ci     -1      0       pfilNtaLinux联盟
#el     -1      0       pfilNtaLinux联盟
#ipdptp -1      0       pfilNtaLinux联盟
#lane   -1      0       pfilNtaLinux联盟
pcn     -1      0       pfil NtaLinux联盟
#pcelx  -1      0       pfilNtaLinux联盟
#spwr   -1      0       pfilNtaLinux联盟
NtaLinux联盟
    4. 编辑防火墙规则NtaLinux联盟
NtaLinux联盟
    使服务器对ping没有反应 ,防止你的服务器对ping请求做出反应,对于网络安全很有好处,因为没人能够ping你的服务器并得到任何反应。TCP/IP协议本身有很多的弱点,黑客可以利用一些技术,把传输正常数据包的通道用来偷偷地传送数据。使你的系统对ping请求没有反应可以把这个危险减到最小。修改文件添加一行:NtaLinux联盟
NtaLinux联盟
    block out quick proto icmp from any to 10.1.1.8/24 icmp-type 0 NtaLinux联盟
NtaLinux联盟
    说明:IP 过滤协议的关键字有4种(icmp、tcp、udp、tcp/udp),启用对协议的控制就是在协议的关键字前加proto关键字。ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。我们平时最常用的ICMP应用就是通常被称为Ping的操作。在使用ICMP协议控制的时候,可以使用icmp-type关键字来指定ICMP协议的类型,类型的值以下几种见表1。NtaLinux联盟
表1 ICMP协议内容简介
NtaLinux联盟
    所以把icmp-type设置为 0即可。 NtaLinux联盟
NtaLinux联盟
    5. 启动服务NtaLinux联盟
NtaLinux联盟
    使用命令:svcadm enable svc:/network/ipfilter:defaultNtaLinux联盟
NtaLinux联盟
    6.使 pfil.ap配置文件生效NtaLinux联盟
NtaLinux联盟
    autopush -f /etc/ipf/pfil.apNtaLinux联盟
NtaLinux联盟
    说明:此步骤只需要做一次,以后更改防火墙规则就不需要再做。NtaLinux联盟
NtaLinux联盟
    7. 重新引导计算机,使用命令:“reboot”。NtaLinux联盟
NtaLinux联盟
    8.使用命令再次查看IPFilter包过滤防火墙运行情况如图2 。NtaLinux联盟
 NtaLinux联盟
图2 查看IPFilter包过滤防火墙运行情况
NtaLinux联盟
   从图2 可以看到IP Filter 有两个服务ipfilter 和pfil都已经打开。NtaLinux联盟
NtaLinux联盟
    9.从客户端计算机测试NtaLinux联盟
NtaLinux联盟
    下面从一台和sorlaris连接的windows 计算机使用ping 命令检测,如图3 。NtaLinux联盟
 NtaLinux联盟

图3从客户端计算机测试ping操作

 

三、 IPFilter包过滤防火墙规则编写技巧NtaLinux联盟
NtaLinux联盟
    在创建IPFilter包过滤防火墙规则的第一步是与用户咨询确定一个可接受的服务列表。许多公司会有—个可接受的使用策略,该策略会控制哪些端口应当可用和应当赋予用户启动的服务的权限。在你确定了开放的流入端口和外出的端口需求之后,最好是编写一条规则:首先拒绝全部数据包,然后编写另外的规则:允许使用的端口。你还必须设置两个方向启用允许的服务。例如.用户同时接收和发送电子邮件通常是必要的,于是你需要对sendmail(端口25)包括一条入站和出站规则。NtaLinux联盟
NtaLinux联盟
    1.技巧一NtaLinux联盟
NtaLinux联盟
    要阻止从 IP 地址 192.168.0.0/16 传入的流量,需要在规则列表中包括以下规则:NtaLinux联盟
    block in quick from 192.168.0.0/16 to anyNtaLinux联盟
    下面的例子阻止来自b类网络178.222.0.0的任何数据包:NtaLinux联盟
    block in quick from 178.222.0.0/16 to anyNtaLinux联盟
NtaLinux联盟
    2.技巧二NtaLinux联盟
NtaLinux联盟
    通俗来说就是:禁止是block ,通过是pass ,进入流量是in,出去流量是out 。然后配合起来使用就行了,再加上可以指定在哪个网卡上使用,也就是再加个on pcn0,另外还有一个关键字就是all,这是匹配(禁止或者通过)所有的包。基于IP地址和防火墙接口的基本过滤方式:NtaLinux联盟
    block in quick on hme0 from 192.168.0.0/24 to anyNtaLinux联盟
    block in quick on hme0 from 172.16.0.0/16 to anyNtaLinux联盟
    pass in allNtaLinux联盟
    应用此规则将阻止通过hme0口来自于192.168.0.0和172.16.0.0网段的所有包的进入,但是允许其他网段的包进入到防火墙,同时对出去的包不作任何限制。NtaLinux联盟
NtaLinux联盟
    3.技巧三NtaLinux联盟
NtaLinux联盟
    基于IP地址和防火墙接口的完全双向过滤方式:NtaLinux联盟
    block out quick on hme0 from any to 192.168.0.0/24NtaLinux联盟
    block out quick on hme0 from any to 172.16.0.0/16NtaLinux联盟
    block in quick on hme0 from 192.168.0.0/24 to anyNtaLinux联盟
    block in quick on hme0 from 172.16.0.0/16 to anyNtaLinux联盟
    pass in all

    应用此规则后将阻止通过hme0口来自于192.168.0.0和172.16.0.0网段的所有包的进入和外出,但是允许其他网段的包进入到防火墙,同时对出去的包不作任何限制。NtaLinux联盟
NtaLinux联盟
    4.技巧四NtaLinux联盟
NtaLinux联盟
    使用“port”关键字对TCP和UDP的端口进行过滤:NtaLinux联盟
    block in log quick on hme0 proto tcp from any to 192.168.0.0/24 port = 513NtaLinux联盟
    block in log quick on hme0 proto tcp from any to 192.168.0.0/24 port = 8080NtaLinux联盟
    block in log quick on hme0 proto tcp from any to 192.168.0.0/24 port = 23NtaLinux联盟
    pass in allNtaLinux联盟
    应用此规则后将阻止从192.168.0.0网段通过8080和23端口对防火墙内的数据通信,但是允许其他网段的包进入到防火墙,同时对出去的包不作任何限制。

 

四、 禁用 Solaris IP 过滤防火墙NtaLinux联盟
NtaLinux联盟
    有些情况可能希望取消激活或禁用包过滤,例如要进行测试另外在认为系统问题是由 Solaris IP 过滤器所导致时,对这些问题进行疑难解答。首先成为管理员权限。NtaLinux联盟
NtaLinux联盟
    禁用包过滤,并允许所有包传入网络的命令:NtaLinux联盟
    # ipf –DNtaLinux联盟
    取消激活 Solaris IP 过滤器规则方法:NtaLinux联盟
    从内核中删除活动规则集。NtaLinux联盟
    # ipf -FaNtaLinux联盟
    此命令取消激活所有的包过滤规则。NtaLinux联盟
    删除传入包的过滤规则。NtaLinux联盟
    # ipf -FiNtaLinux联盟
    此命令取消激活传入包的包过滤规则。NtaLinux联盟
    删除传出包的过滤规则。NtaLinux联盟
    # ipf -FoNtaLinux联盟
    此命令取消激活传出包的包过滤规则。NtaLinux联盟
NtaLinux联盟
五、 查看 Solaris IP 过滤器的日志文件NtaLinux联盟
NtaLinux联盟
    使用命令如下:NtaLinux联盟
    ipmon –o -a [S|N|I] filenameNtaLinux联盟
    参数说明:NtaLinux联盟
    S :显示状态日志文件。NtaLinux联盟
    N:显示 NAT 日志文件。NtaLinux联盟
    I:显示常规 IP 日志文件。NtaLinux联盟
    -a:显示所有的状态日志文件、NAT 日志文件和常规日志文件。NtaLinux联盟
    清除包日志文件使用命令:NtaLinux联盟
    # ipmon -F

 

六、 Solaris IP 过滤防火墙的监控和管理NtaLinux联盟
NtaLinux联盟
    1.查看包过滤规则集NtaLinux联盟
NtaLinux联盟
    启用 Solaris IP 过滤器后,活动和非活动的包过滤规则集都可以驻留在内核中。活动规则集确定正在对传入包和传出包执行的过滤。非活动规则集也存储规则,但不会使用这些规则,除非使非活动规则集成为活动规则集。可以管理、查看和修改活动和非活动的包过滤规则集。查看装入到内核中的活动包过滤规则集,使用命令:ipfstat –io,如图4 。NtaLinux联盟
 NtaLinux联盟
图4 查看活动的包过滤规则集
NtaLinux联盟
    如果希望查看非活动的包过滤规则集。可以同使用命令:NtaLinux联盟
    # ipfstat -I –ioNtaLinux联盟
NtaLinux联盟
    2. 激活不同的包过滤规则集NtaLinux联盟
NtaLinux联盟
    以下示例显示如何将一个包过滤规则集替换为另一个包过滤规则集。NtaLinux联盟
    # ipf -Fa -f filenameNtaLinux联盟
    活动规则集将从内核中删除。filename 文件中的规则将成为活动规则集。NtaLinux联盟
NtaLinux联盟
    3. 将规则附加到活动的包过滤规则集NtaLinux联盟
NtaLinux联盟
    以下示例显示如何从命令行将规则添加到活动的包过滤规则集。NtaLinux联盟
    # ipfstat -ioNtaLinux联盟
    empty list for ipfilter(out)NtaLinux联盟
    block in log quick from 10.0.0.0/8 to anyNtaLinux联盟
    # echo "block in on dmfe1 proto tcp from 10.1.1.1/32 to any" | ipf -f -NtaLinux联盟
    # ipfstat -ioNtaLinux联盟
    empty list for ipfilter(out)NtaLinux联盟
    block in log quick from 10.0.0.0/8 to anyNtaLinux联盟
    block in on dmfe1 proto tcp from 10.1.1.1/32 to anyNtaLinux联盟
NtaLinux联盟
    4.监控整个IP管理器防火墙查看状态表NtaLinux联盟
NtaLinux联盟
    使用没有参数的ipfstat命令即可,图5 是整个IP过滤器防火墙查看状态表的输出。NtaLinux联盟
 NtaLinux联盟
图5 整个IP过滤器防火墙查看状态表的输出
NtaLinux联盟
    另外可以使用命令:“ipfstat -s” 查看 Solaris IP 过滤器的状态统计,使用命令:“ipnat -s” 查看 Solaris IP 过滤器的NAT状态统计。表 2是 显示 Solaris IP 过滤器的统计信息 的列表,也是对以下操作的一个总结。NtaLinux联盟
表 2是 显示 Solaris IP 过滤器的统计信息

 

七、IPFilter包过滤防火墙不足之处NtaLinux联盟
NtaLinux联盟
    尽管IPFilter技术十分容易了解,并且对于在网络传输上设置具体的限制特别有用,  —般而言,配置IPFilter防火墙存在一些缺点,因为防火墙配置涉及编写规则,常用规则语言的话法通常对于初学者(特别是Windows 初学者)难于理解,这样数据包过滤可能难于正确配置。当然如果您以前使用Freebsd 那么掌握IPFilter包过滤防火墙就非常简单了。NtaLinux联盟
NtaLinux联盟
    规则表很快会变得很大而且复杂,规则很难测试。随着表的增大和复杂性的增加,规则结构出现漏洞的可能性也会增加。这种防火墙最大的缺陷是它依赖一个单一的部件来保护系统。如果这个部件出现了问题,会使得网络大门敞开,而用户其至可能还不知道。在一般情况下,如果外部用户被允许访问内部主机,则它就可以访问内部网上的任何主机。包过滤防火墙只能阻止一种类型的IP欺骗,即外部主机伪装内部主机的IP,对于外部主机伪装外部主机的IP欺骗却不可能阻止,而且它不能防止DNS欺骗。NtaLinux联盟
NtaLinux联盟
    虽然,包过滤防火墙有如上所述的缺点,但是在管理良好的小规模网络上,它能够正常的发挥其作用。一般情况下,人们不单独使用包过滤防火墙,而是将它和其他设备(如堡垒主机等)联合使用。

 

附录:Solaris IP 过滤器配置文件示例NtaLinux联盟
NtaLinux联盟
    以下示例说明了在过滤配置中使用的包过滤规则。示例显示具有 elxl 网络接口的主机上的配置。NtaLinux联盟
NtaLinux联盟
    # pass and log everything by defaultNtaLinux联盟
    pass in log on elxl0 allNtaLinux联盟
    pass out log on elxl0 allNtaLinux联盟
    # block, but don't log, incoming packets from other reserved addresses

    block in quick on elxl0 from 10.0.0.0/8 to anyNtaLinux联盟
    block in quick on elxl0 from 172.16.0.0/12 to any

    # block and log untrusted internal IPs. 0/32 is notation that replaces NtaLinux联盟
    # address of the machine running Solaris IP Filter.NtaLinux联盟
    block in log quick from 192.168.1.15 to 0/32NtaLinux联盟
    block in log quick from 192.168.1.43 to 0/32

    # block and log X11 (port 5555) and remote procedure call and portmapper (port 121) attemptsNtaLinux联盟
    block in log quick on elxl0 proto tcp from any to 0/32 port = 5555 keep stateNtaLinux联盟
    block in log quick on elxl0 proto tcp/udp from any to 0/32 port = 121 keep state

    说明:此规则集以两个无限制规则开始,分别允许将任何内容传入和传出 elxl 接口。第二个规则集阻止从专用地址空间 10.0.0.0 和 172.16.0.0 传入的任何包进入防火墙。下一个规则集阻止来自主机的特定内部地址。最后一个规则集阻止从端口 5555 和端口 121 上传入的包。

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息