
为Solaris服务器配置款安全的防火墙.doc
21页为Solaris服务器配置款安全的防火墙 曹江华(原创) 连接网上的服务器系统,不管是什么情况都要明确一点:网络是不安全的因此,虽然创建一个防火墙并不能保证系统100%安全,但却是绝对必要的传统意义上的防火墙技术分为三大类,“包过滤”(Packet Filtering)、“应用代理”(Application Proxy)和“状态检测”(Stateful Inspection),无论一个防火墙的实现过程多么复杂,归根结底都是在这三种技术的基础上进行功能扩展的 一、Solaris包过滤防火墙IPFilter简介 IPFilter是目前比较流行的包过滤防火墙软件,它目前拥有多种平台的版本,安装配置相对比较简单可以用它来构建功能强大的软件防火墙,下面就其的安装以与一些典型的配置作一下说明IPFfilter 的作者是 Darren Reed 先生,他是一位致力于开源软件开发的高级程序员,目前工作于 SUN 公司IP Filter 软件可以提供网络地址转换(NAT)或者防火墙服务简单的说就是一个软件的防火墙,并且这个软件是开源免费的当前的版本是4.1.15,目前支持 FreeBSD、NetBSD、Solaris、AIX 等 窗体顶端窗体底端平台。
IPFilter是它是一个在引导时配置的可加载到内核的模块这使得它十分安全,因为已不能由用户应用程序篡改我用Solaris10 来作为实验的平台介绍一下IP FilterIP Filter过滤器会执行一系列步骤图1说明处理包的步骤,以与过滤如何与 TCP/IP 协议栈集成在一起图1 服务器的处理数据包的步骤 数据包在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 验证 :已验证的包仅通过防火墙循环一次来防止双重处理 二、学会编写IPFfilter 规则 典型的防火墙设置有两个网卡:一个流入,一个流出IPFfilter读取流入和流出数据包的报头,将它们与规则集(Ruleset)相比较,将可接受的数据包从一个网卡转发至另一个网卡,对被拒绝的数据包,可以丢弃或按照所定义的方式来处理 通过向防火墙提供有关对来自某个源地址、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤通过使用IPFfilter系统提供的特殊命令建立这些规则,并将其添加到内核空间特定信息包过滤表内的链中。
关于添加、去除、编辑规则的命令,一般语法如下: action [in|out] option keyword, keyword... 参数说明: 1.每个规则都以操作开头如果包与规则匹配,则 Solaris IP 过滤器将操作应用于该包以下列表包括应用于包的常用操作 block :阻止包通过过滤器 pass :允许包通过过滤器 log :记录包但不确定是阻止包还是传递包使用 ipmon 命令可查看日志 count :将包包括在过滤器统计信息中使用 ipfstat 命令可查看统计信息 skip number :使过滤器跳过 number 个过滤规则 auth :请求由验证包信息的用户程序执行包验证该程序会确定是传递包还是阻止包 preauth :请求过滤器查看预先验证的列表以确定如何处理包 2.操作后面的下一个单词必须是 in 或 out您的选择将确定是将包过滤规则应用于传入包还是应用于传出包 3.接下来,可以从选项列表中进行选择如果使用多个选项,则这些选项必须采用此处显示的顺序 log :如果规则是最后一个匹配规则,则记录包使用 ipmon 命令可查看日志。
quick :如果存在匹配的包,则执行包含 quick 选项的规则所有进一步的规则检查都将停止 on interface-name :仅当包移入或移出指定接口时才应用规则 dup-to interface-name:复制包并将 interface-name 上的副本向外发送到选择指定的 IP 地址 to interface-name :将包移动到 interface-name 上的外发队列 4.指定选项后,可以从确定包是否与规则匹配的各关键字中进行选择必须按此处显示的顺序使用以下关键字 tos :基于表示为十六进制或十进制整数的服务类型值,对包进行过滤 ttl :基于包的生存时间值与包匹配在包中存储的生存时间值指明了包在被废弃之前可在网络中存在的时间长度 proto :与特定协议匹配可以使用在 /etc/protocols 文件中指定的任何协议名称,或者使用十进制数来表示协议关键字 tcp/udp 可以用于与 TCP 包或 UDP 包匹配 from/to/all/any :与以下任一项或所有项匹配:源 IP 地址、目标 IP 地址和端口号all 关键字用于接受来自所有源和发往所有目标的包。
with :与和包关联的指定属性匹配在关键字前面插入 not 或 no 一词,以便仅当选项不存在时才与包匹配 flags :供 TCP 用来基于已设置的 TCP 标志进行过滤 icmp-type :根据 ICMP 类型进行过滤仅当 proto 选项设置为 icmp 时才使用此关键字;如果使用 flags 选项,则不使用此关键字 keep keep-options :确定为包保留的信息可用的 keep-options 包括 state 选项和 frags 选项state 选项会保留有关会话的信息,并可以保留在 TCP、UDP 和 ICMP 包中frags 选项可保留有关包片段的信息,并将该信息应用于后续片段keep-options 允许匹配包通过,而不会查询访问控制列表 head number :为过滤规则创建一个新组,该组由数字 number 表示 group number :将规则添加到编号为 number 的组而不是缺省组如果未指定其他组,则将所有过滤规则放置在组 0 中 四、开始编写规则 1.查看IPFilter包过滤 防火墙运行情况 Solaris 10 上IPFilter 的启动和关闭是由 SMF 管理的,在Solaris 10 上工作的进程大多都交由SMF 管理,这和先前版本的Solaris 操作系统有很大的区别。
Solaris IP 过滤防火墙随 Solaris 操作系统一起安装但是,缺省情况下不启用包过滤使用以下过程可以激活 Solaris IP 过滤器使用命令“svcs-a|grepnetwork|egrep"pfil|ipf"”查看IP Filter 有两个服务ipfilter 和pfil,默认情况下ipfilter 是关闭的,而pfil 是打开的 svcs -a |grep network |egrep "pfil|ipf"disabled 7:17:43 svc:/network/ipfilter:defaultonline 7:17:46 svc:/network/pfil:default 2.查看网卡接口lo0: flags=2001000849
3.修改/etc/ipf/pfil.ap 文件 此文件包含主机上网络接口卡 (network interface card, NIC) 的名称缺省情况下,这些名称已被注释掉对传输要过滤的网络通信流量的设备名称取消注释编辑配置文件修改为如下内容:图2 配置文件修改为如下内容 4. 编辑防火墙规则 使服务器对ping没有反应 ,防止你的服务器对ping请求做出反应,对于网络安全很有好处,因为没人能够ping你的服务器并得到任何反应TCP/IP协议本身有很多的弱点,黑客可以利用一些技术,把传输正常数据包的通道用来偷偷地传送数据使你的系统对ping请求没有反应可以把这个危险减到最小修改配置文件/etc/ipf/ipf.conf添加一行: blockoutquickprotoicmpfromanyto192.168.0.2/24icmp-type0 如图 3图 3 配置文件/etc/ipf/ipf.conf添加一行 说明:IP 过滤协议的关键字有4种(icmp、tcp、udp、tcp/udp),启用对协议的控制就是在协议的关键字前加proto关键字ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。
它工作在OSI的网络层,向数据通讯中的源主机报告错误ICMP可以实现故障隔离和故障恢复我们平时最常用的ICMP应用就是通常被称为Ping的操作在使用ICMP协议控制的时候,可以使用icmp-type关键字来指定ICMP协议的类型,类型的值以下几种见表1 表1 ICMP协议内容简介类型 名称 备注 0 回波应答(Echo Reply) 不允许ping命令回应 8 回波(Echo) 允许ping命令回应 9 路由器公告(Router dvertisement) 10 路由器选择(Router Selection) 所以把icmp-type设置为 0即可 5. 启动服务 使用命令:svcadmenablesvc:/network/ipfilter:default 6.使 pfil.ap配置文件生效 autopush-f/etc/ipf/pfil.ap 。
