跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

使用 IP 过滤功能加固 AIX 服务器

朱 靖虹, 高级 IT 工程师, IBM
朱靖虹 2001 年加入 IBM 公司. 在 Advanced Technical Skill 部门,负责 AIX,、PowerVM、PowerHA 的相关技术支持工作。

简介: 服务器的安全在网络无处不在的今天显得越来越至关重要。通过设置 IP 过滤规则,使服务器在增强 AIX 安全的同时,又能充分使用 AIX 提供的各项网络服务。本文将介绍在 AIX 中设置 IP 过滤规则的步骤和相关注意事项。

发布日期: 2012 年 1 月 16 日
级别: 中级
访问情况 : 1479 次浏览
评论: 


前言

在通常情况下,AIX 服务器都放置于企业内部环境中,可以受到企业级防火墙的保护。为了方便使用,在 AIX 系统中许多常用服务端口缺省是开放的,但这同时也带来一定的安全隐患,给企业内部一些别有用心的人提供了方便之门。

安全无小事,对于运行了关键业务的 AIX 服务器,为了提高安全性,我们可以通过关闭不必要的端口,停止相应的服务来实现。但是,如果某项服务端口由于应用的特殊需要不可以停止,有什么办法可以使其只为一部分服务器提供该项服务,而不为其他服务器提供该项服务呢 ? 即通 IP 地址来判断访问请求是否合理,可否为其提供服务。

为了保护 AIX 服务器,避免不必要的访问,最好的办法就是在 AIX 中实施 IP 过滤规则。在 AIX 中我们通过设置 IP 过滤规则 (IP Security Filter),只接受预先定义好的访问请求而拒绝其他的访问的请求。

下面就 IP Security Filter 的设置步骤进行介绍。


安装 IP Security 软件包

为了设置 IP 过滤规则,需要在 AIX 上安装相应的 IP security 软件包,检查系统中是否有以下的软件包。 ( 在本文中所使用的操作系统的版本是 AIX 6100-TL06-SP01,而 IP Security Filter Feature 在早期的 AIX4.3.3 中就有支持了 )


图 1. 检查系统中是否安装了 IPSec 的软件包
图 1. 检查系统中是否安装了 IPSec 的软件包

如果没有,请在光盘驱动器中插入 AIX 操作系统 DVD,使用 AIX 中的 smit 命令进行安装。该软件包是随着操作系统一起提供的。

# smitty install
			 


加载 IP Security 核心扩展模块

软件包安装完成后,需要在系统中加载 IP Security 核心扩展模块,才能使过滤功能生效。可以使用 smitty 或 mkdev 命令来完成模块的加载。

请参照以下图片完成 IP Security 扩展模块的加载。

#smitty tcpip 

Configure IP Security (IPv4)->Start/Stop IP Security->Start IP Security


图 2. 加载 IP Security 扩展模块
图 2. 加载 IP Security 扩展模块

注意 : 在此时 <Deny All Non_secure IP Packets> 选项要设为 <no>. 否则所有的网络通讯可能就会断掉。

成功完成上述命令后,系统中应增加了以下的设备


图 3.检查系统中 IP Security 扩展模块的状态
图 3. 检查系统中 IP Security 扩展模块的状态

ipsec_v4 针对的是服务器中使用的 IP 地址是 V4 的定义

ipsec_v6 针对的是服务器中使用的 IP 地址是 V6 的定义。

现在我们就可以开始在系统中定义过滤规则了。


检查系统中的缺省的 IP 过滤规则

在 AIX 中可以通过设定 permit 或 deny 规则,来表示接受或拒绝网络请求。IP Security 扩展核心模块加载后系统中就会有 2 条缺省过滤规则。

使用 lsfilt 命令检查当前系统中定义的规则。

#lsfilt –s –v4 –O 


图 4.AIX 系统中缺省的过滤规则
图 4。AIX 系统中缺省的过滤规则

规则 1,用于会话密钥监控服务 (session key daemon ), 只会出现在 IP v4 的过滤规则表中。通过使用端口 4001 来控制用于刷新会话密钥的通讯包。不要修改该规则。

规则 2,自动生成的规则,总是在过滤表中的最后一行,缺省是 permit 规则,表示如果之前的所有过滤规则都不匹配的话,就允许该包通过。为了安全起见,通过周密的设置,可以改为 deny 规则,拒绝所有不满足过滤规则的通讯包访问该服务器。


配置 IP 过滤规则

IP 过滤表中的每一行就表示一条过滤规则。在 AIX 中可以通过设定 permit 或 deny 规则来表示接受或拒绝网络请求。这些规则的集合决定了什么样的包是可以接收或发送的。

我们可以从多个方面来定义过滤规则,其中包括包的源地址、目标地址、网络屏蔽位、使用的协议类型、端口号、通讯方向 (inbound or outbound)、网络接口名 (interface name) 等。

在 IP 过滤规则表中,匹配检查是从规则 1 开始的,一旦找到了相匹配的规则就可以决定是接受还是拒绝该通讯包,停止对剩余规则的扫描。所以序号小的规则总是被先扫描,序号大的规则是在之前的过滤规则都不满足的情况下才会被扫描到。我们可以根据需要来调整某条规则在过滤规则表中的位置,使其发挥应有的作用。过滤规则表中的静态过滤规则是可以进行增加、删除、修改和序号移动操作的。

过滤规则的设置可以参照以下步骤完成 :

#smitty ipsec4

选择 Advanced IP Security Configuration -> Configure IP Security Filter Rules -> Add an IP Security Filter Rules.

下面举例说明 : 对于 IP 地址是 172.16.58.131 的 AIX 服务器,我们希望只有来自于 172.16.15.0 网段的服务器才可以通过 telnet 访问它, 拒绝来自其他网段的 telnet 请求。

在 Unix 操作系统中 telnet 缺省使用的端口号是 23,所以在 172.16.58.131 服务器上需要设置以下 2 条过滤规则,一条是 permit 规则,一条是 deny 规则。

注意 :permit 规则要在 deny 规则之前。


图 5.172.16.58.131 服务器上设置的 permit 规则
图 5。172.16.58.131 服务器上设置的 permit 规则

图 6.172.16.58.131 服务器上设置的 deny 规则
图 6。172.16.58.131 服务器上设置的 deny 规则

设置完成后选择 <List IP Security Filter Rules> 检查一下当前系统中的 IP 过滤规则表。


图 7.系统中定义的过滤规则表
图 7。系统中定义的过滤规则表

或者使用命令行来完成这些操作。

增加 2 条 IP 过滤规则 :

# genfilt -v 4  -a 'P' -s '172.16.15.0' -m '255.255.255.0' -d '172.16.58.131' 
-M '255.255.255.0' -g 'y' -c 'all' -o 'any' -p '0' -O  'eq' -P '23' -r 'B' 
-w 'B' -l 'N' -t '0' -i 'all
# genfilt -v 4  -a 'D' -s '0.0.0.0' -m '0.0.0.0' -d '172.16.58.131' 
-M '255.255.255.255' -g 'y' -c 'all' -o 'any' -p '0' -O 'eq' -P  '23' -r 'B' 
-w 'B' -l 'N' -t '0' -i 'all'

使用命令 lsfilt 检查当前系统中的 IP 过滤规则表

 #lsfilt –v 


使 IP 过滤规则生效

设置完成的 IP 过滤规则不是立即生效的,需要做激活操作才起作用。 可以在 smit 菜单中选择激活操作菜单项或使用命令行的方式来激活它。

# smitty ipsec4

选择 Advanced IP Security Configuration ->Activate/Update/Deactivate IP Security Filter Rule

或者

 # mkfilt –v4 –u 

使 IP 过滤规则生效后,下面来验证过规则是否有效。

测试一

在 IP 地址是 172.16.15.56 的服务器上,应该能 ping 到 172.16.58.131,也可以用 telnet 访问 172.16.58.131 服务器

检查 IP 地址

 zhujh@atsnim:/atspersonal/zhujh>ifconfig -a 
 en2: flags=1e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,
 64BIT,CHECKSUM_OFFLOAD(ACTIVE),LARGESEND,CHAIN> 
 inet 172.16.15.56 netmask 0xffffff00 broadcast 172.16.15.255 
 tcp_sendspace 131072 tcp_recvspace 65536 rfc1323 0 


图 8.服务器 172.16.15.56 可以 telnet 访问 172.16.58.131
图 8. 服务器 172.16.15.56 可以 telnet 访问 172.16.58.131

测试二

在 IP 地址是 172.16.28.221 服务器,按规则应该只能 ping 到 172.16.58.131,但却无法使用 telnet 访问 172.16.58.131。


图 9.服务器 172.16.28.221 上的运行结果
图 9。服务器 172.16.28.221 上的运行结果

在 172.16.58.131 服务器上使 IP 过滤规则临时失效,这时 172.16.28.211 服务器就可以用 telnet 访问 172.16.58.131 服务器。以上的实验证明,设置在 172.16.58.131 的 IP 过滤规则是有效的。


图 10. 规则失效时,172.16.28.211 可以用 telnet 访问 172.16.58.131
图 10. 规则失效时,172.16.28.211 可以用 telnet 访问 172.16.58.131

维护 IP 过滤规则

调整 IP 过滤规则的顺序

在 IP 过滤规则表中,过滤规则的顺序是非常重要的。如果定义的顺序不恰当可能造成任何服务器都无法访问服务器,或者是本来需要限制的访问,却没有起作用,使服务器面临不必要的安全风险。

最新定义的过滤规则,其序号总是最大。为了保证它能正常发挥作用,定义完成后根据需要适当调整其在过滤规则表中的位置。

参考“配置 IP 过滤规则”中的例子,如果 deny 规则定义在 permit 之前,则所有的服务器都无法通过 telnet 来访问 172.16.58.131.


图 11.deny 规则在 permit 规则前
图 11。deny 规则在 permit 规则前

使用 mvfilt 命令将 permit 调整到 deny 之前就可以实现对 IP 的有效过滤。

 # /usr/sbin/mvfilt -v 4 -p '4' -n '3 


图 12.调整后的过滤规则表
图 12 调整后的过滤规则表

这样修改前的规则 4 就改为当前规则 3,原规则 3 及之后的规则序号都递增 1。不要忘记使用下面的命令刷新当前的过滤规则表。

 #/usr/sbin/mkfilt –v4 –u 

当完成上述操作后,调整后的 IP 过滤规则就可以生效和起作用了。

修改 IP 过滤规则

参照 “配置 IP 过滤规则”中的例子。如果希望只有 172.16.15.56 服务器才可以访问 172.16.58.131 服务器,而在 172.16.15.0 网段和其他网段的服务器都不可以通过 telnet 来访问它。

在 172.16.58.131 服务器上使用命令 chfilt 来进行修改 permit 规则 3:

# /usr/sbin/chfilt -v 4  -n '3' -s '172.16.15.56' -m '255.255.255.255


图 13 修改后的过滤规则表
图 13.修改后的过滤规则表

注意 : 其中的网络掩码是 255.255.255.255 而不是 255.255.255.0。指将规则 3 中的源地址 172.16.15.56 和网络掩码做 与 (AND) 的逻辑运算,其结果是 172.16.15.56. 只有来自于该服务器的 telnet 请求连接才会被接受。


总结

通过使用以下命令对 IP 过滤规则表进行周密的定义,就可以大大增强 AIX 服务器的安全,减少受到网络攻击的可能。

  • genfilt: 向系统中增加过滤规则
  • mkfilt: 使过滤规则生效或失效
  • lsfilt: 列出当前系统中定义的过滤规则表
  • chfilt: 修改过滤规则
  • mvfilt: 调整过滤规则在表中顺序
  • ipsecstat : 检查 IP security 设备和状态以及对各类 IP security 包进行统计。

参考资料

学习

  • <<AIX6.1 安全手册 >>: 本书介绍了 AIX6.1 中与安全有关的所有内容。其中包括操作系统的基本安全设置,网络安全设置以及 AIX Security Expert 等内容。

  • AIX 6.1 Information Center:AIX 6.1 信息中心。该网站提供了大量与 AIX6.1 系统管理,性能调优,编程和系统安全相关的内容,您可以利用它们来提高自己的 AIX 技能。

  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。

  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。

  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。

  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。

  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

关于作者

朱靖虹 2001 年加入 IBM 公司. 在 Advanced Technical Skill 部门,负责 AIX,、PowerVM、PowerHA 的相关技术支持工作。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=787642
ArticleTitle=使用 IP 过滤功能加固 AIX 服务器
publish-date=01162012

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。