使用 IP 过滤功能加固 AIX 服务器.docx
前言在通常情况下,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的软件包I :jrep ipsecbos.tsff.Eir US.net.ipsec bo!5r(vet. ipsec. keijFigt&.1.4.0CMIflTtElcoimiTriuEP Security flessages - U.SIP Security Haneaentbos Jiet. ipfjec.rteEj.I.B.GCDMIITEDIF Securitybu. I.i£巳仁.kCDtiniTTEDIP S蛙uHtg Kug Plan叫eireiit. ips虻,fttcoHNnmIP ecurtiu如果没有,请在光盘驱动器中插入AIX操作系统DVD,使用AIX中的smit 命令进行安装。该软件包是随着操作系统一起提供的。# smitty install加载IP Security核心扩展模块软件包安装完成后,需要在系统中加载IP Security核心扩展模块,才能使过滤 功能生效。可以使用smitty或mkdev命令来完成模块的加载。请参照以下图片完成IP Security扩展模块的加载。#smittytcpipConfigure IP Security (lPv4)->Start/Stop IP Security->StartIP Security图2.载IPSecurityX展模块Start IP SECiiritijJyjt or selecL lues in PrEEJi Enter AFTER 时kingentry rields.a 11 dpsifEd rhanye-s .Start IP SecurityDeny 011 tion._Secure FPrackets(Ent.ru Fie海】Hew and After Refeootl wJ注意:在此时Deny All Non_secure IP Packets选项要设为no.否则所有 的网络通讯可能就会断掉。成功完成上述命令后,系统中应增加了以下的设备图3.检查系统中IP Security扩展模块的状态rOtitlesnmy2/> Krffiv -Cc ipSetipSEC-U'l AnaHab 1e IF Uersinn 4 Securily Extension ipsEc_uB Auailable IP Uersinn & Security Exteiasiamipsec_v4针对的是服务器中使用的IP地址是V4的定义 ipsec_v6针对的是服务器中使用的IP地址是V6的定义。 现在我们就可以开始在系统中定义过滤规则了。检查系统中的缺省的IP过滤规则在AIX中可以通过设定permit或deny规则,来表示接受或拒绝网络请求。IP Security扩展核心模块加载后系统中就会有2条缺省过滤规则。 使用lsfilt命令检查当前系统中定义的规则。#lsfilt -s -v4 -OrootesfiipS/titsfEit -s -d1 -01 pen it 0 J.O.ft 0.0.0.fl 0.0.0.0殉 1001 eq 挪 1 both boh no «11 pitiels 0 a】1 0 mut DeuJI HuieI * lyiMic filter pliteiect rule far IEE inune* * no9 pErnjt fi.O.G.6 0,9.0.0 C.0.0.0 ijh 5ll 由nij 9 any 9 而th mth all 0 ill Ei 师眺日畔神11 Jkj佰图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规则255.Z5S.256.0172.16 -SB . 131 255,255.255.0岬!scrips imifkitl 叩 I P ELurity ' i !tfr RnEf己 ar sc ltd Milues i it Press Enter flFTEJS flakingenti'tj f itdds.dl 1 desired ctiaiTqesz iCNP Type UpcritiDW Number j ICNF Type Port / 1CHP Code DperatiAS Port flupiber / ICttF Tu陀*址H PJFIPa 日叩也 tn Source Rq»tlng? (PE?ni7fnbDun4 only J« Protocol* Source Pf)rt日 Soutree Port3 DE5t L Ftdt 1011» DestlHAtiony Rout j nga Bircctiui) Ldg CouleeJa Fr&康降EHtallQn Contra I jnterf aceExpirat ion Tine: (set 3rattern T邮Pattern /Fattern File卜 Rule Action岛uixe AddressS&urce HastQest iRdttlsn AddressBestimtion nakfEntiy FleEftsJ k 1 .2*1!yes 1 tallIBIbathi bothl Ins 01齐1fiuitrlo.o.o.GQMH 口 2.1&一场Fin 255.255.255r25S图6.172.16.58.131服务器上设置的deny规则Add an if Security Filter Rulepfijpe ar sciid.Iu«s in entryPress Enter AFTO Making 111 dtrsirert chanits.Expiration Tine 眼cJ Fattern lype fattern / Pattern FileDes匚i ptlgw/ ICttF Type diErat ionNunhtr / ICrtl' TyjiePort , ICHF Cole Dferatlon Port nuMber / ICH? lypeHuIe net 1cmFIPPIPSource flddrestSuurce flaskUestindtion AddressDestination HmXAppty te Source rout hie? ( PETmninbuund only) PrwtiEcul Sourte Port 吕口urcE rurt Besti natter Destination 时口成I ng Direct ion Lq# ContrcI Fr朝邱MH iDn COritrO IEntry rildsiyes mi any! 0 齐monJ (I 111 both) both) Innl (03设置完成后选择List IP Security Filter Rules检查一下当前系统中的IP过滤规则表。图7.系统中定义的过滤规则表£»hhaiiib smug. 珊日甲乐ngnre lii3i.iid ltmi ple1 loiii. Aidd l.linitaJ Inipuct htirs nay appoiir hlflii| piirnit 9 .0.0.Q &.8.e.C.B.6 9.0.9.8 nib 师理 4 的】电 1flJ kith bn th nci All “mq S j| 0 mnc 触 RhjIL 国 iIhE DyAOfif filler pJxiLiiCKl fiik SIKE Luiruls uu- to3 jiurnil 17?_16.IS.0 ?S5.255.n5.8 172A6.it.3l 西乱EJI.W听直 抻 UL岫 H ir IX 皿壮 bulh jiu «ll i虬ML£ 8 ±11 « ihtie1 diliuy O.fl ._C e_fl .G.0ns .25S.】 sng B rq 23 both both iid nil 严仁虹2 9 d| « 拓旭H jicrilt fr.(l.9 8.9.0.6 B.O B.E B.&.B.O gz It 4«y 6 d用 9 bCitli "bCith HU Al I pdLtelS Q dll 6 mnit Dtraul L Halt或者使用命令行来完成这些操作。 增加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'使用命令Isfilt检查当前系统中的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至0 172.16.58.131,也 可以用telnet访问172.16.58.131服务器检查IP地址zhujhatsnim:/atspersonal/zhujh>ifconfig -aen2: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.255tcp sendspace 131072 tcp recvspace 65536 rfc1323 0图 8.服务器 172.16.15.56 可以 telnet 访问 172.16.58.131JniJliSatspinizatspersonaIxzhw1 net I7Z.16.58.131 Trying, ” tannected to 172 369.131. fcscpt character is 1 T .tel net (sBnpZ)测试二在IP地址是172.16.28.221服务器,按规则应该只能ping到 172.16.58.131,但却无法使用 telnet 访问 172.16.58.131。图9.服务器172.16.28.221上的运行结果n ikonf 1g -»A: rI也脖曲帽向胴出曲姬屈imcn&l刑财*阪州肺inr;,引xple舄kulti舶&t,e皿put.鬲冒i!rCNtran顶fu>怫cactiuh. jfiEt 172.16.38 221 丽FTFF阡盹 bmadtifit 1 也心日一斓E网瑚涌抑礼£ 131972 tcrTttWpue 康3h rfU32J 峥MO. TlL,朋H舞戏.cOUPrBnnaCAST,LOOPBItW.明牌ING.SLIfPLEl,MILTSCfiKTmPHI.MEIT,LACESEmJ.CHtlEn)Liet U7.e 0.1 aet邮就 BKffWM IroAit l皿趴西SJKi<iE 16 : istl/fiEci_S«ll<S胛肆忙Jl_强.吗EfP町口引 1N IHSIMK怔"E虬】I F 胤 LS.1& 削,13】372.lG.bg.Bi: 17iZ.lb.Sd.131L 娜 dda 也t能"bytes 口帅 172.UARJ3I; knp_se|=e ttl-254 Line'9 略h fron 172.16.98.Eli声做勺 UPSS! tine -0 rs切 bjftcs fran 172 lb.Sfl.13U knp s酒=2 Hl-254 tins-Q 略rcrl?Z.iG.5S.llt FING SUtlslUa9 pickets ”引wulHM, I Edels retellr 眄 ycket I睡$raiiiid-lrip ah/iq/vax 袖4 ifil UlHtTrijinff.在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.131a hflstncuneUadel0_llF tclnpt 1?2,L&,5B,131 rryiiig.,. te I net: connect: A ren-ote liast did not resTiond uitnii the t iriEoiit period. 0 telnetJ31|Try iiiy. Conwted to L7Z.Ife.Sfl.131.Escape character is 'Ar .维护IP过滤规则调整IP过滤规则的顺序在IP过滤规则表中,过滤规则的顺序是非常重要的。如果定义的顺序不恰当可 能造成任何服务器都无法访问服务器,或者是本来需要限制的访问,却没有起作 用,使服务器面临不必要的安全风险。最新定义的过滤规则,其序号总是最大。为了保证它能正常发挥作用,定义完成 后根据需要适当调整其在过滤规则表中的位置。参考“配置IP过滤规则”中的例子,如果deny规则定义在permit之前,则所 有的服务器都无法通过telnet来访问172.16.58.131.-s -H -H! permit。.白-LA $ 白息& ,6 .0 iki 以i4041 tq 4的 t 命 Kh 扇ps a 11 件以祖孚 0 d IK $ t»|K LtFau.ll 恤2 ByLUfiic p*CCTcnt N Jn IW UK timnels * M3 i-eny $9.0.0.8 172.16.50.131,£ 近景ifes dll any 9 eq 3 liotb both no a IL peuckets 看 all 5 i 珈c4 pernit l?Z.lti.l5.9 Z55i.Zi5.Z55.e 17Z.16.5a.Bl Z55.255.Z55.9 yeg ML any。eq Z3 both tot!) no att packets 0 All flio pen it 9.0J 0 0.0.9 a 0.0.0.0 O.Q .6 .0 ysa All diiy H any & 柘 th bo lit io alt pacihtts 0 时 I 0 wiie IteFiult BiiJc图ll.deny规则在permit规则前使用mvfilt命令将permit调整到deny之前就可以实现对IP的有效过滤。# /usr/sbin/mvfilt -v 4 -p '4' -n '3图12.调整后的过滤规则表i It W fi -nJFaitcr rule 1 far IPvi has bes mwtd (a 3 知if加拒£岫阳/月NUt -s -irf -8I pennit 0.8.S 出 0.Q.9,日U,。舟 i咽 udp eq *961 cq 106.1 botli lotJi 曲 «L L (wetets 6 n t $ iwiw! Pcf audt R«1eK * EJynnic fi 1 trr plMEinnH ni lc far IKE tunnels * 赋i3 件H 近 172.16.15.0 255.2S.25S 172.16.5G.L31 255.25E.255.0 皑 占可巧昭 23 皿 Ek bMh rib till 件猊匕$ OMID4 化辿 0.0.0.0 iJ.O.O.C 17Z. 1&.50. O1 Z55.255.£55.£55 u既 占】Aliy 0 eq 23 kith bath no 4 LI 螂'kets 0 nil none8 pcFnjt B 6.&.6.0用,8 cs all ang 5 雄肘 0 hath 物W 界田睇切 9 citi 9 ium 国:Nidt 新lc这样修改前的规则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修改后的过滤规则表it6arwpl/M sTi It -a * -01 LSJ.8 S.HJ.8 啊岫 eq 4胞1 自耳姗 1 totli koth na ill jackets £ Hl fl none Rifle2 h* DyiMric filter' ptwwent rvh for IKE tutfiel$ >* noP 忡囱 172-1645,56 !55,255.255,255 17IH.W.13B 2S5,255.2S5.BH【会"舛 23 itth 就h w alt 泌也队11 44 版咫 9.9.Q,8 8皿日,日也、1&却,1明255.2用新5-沥普 all any 023 both both ns 泪 p诚仓bs 0 al I 86 permit B.B.I.fl B,9. Lt .8.4 R.BJI.8 舟 al I a叫日刊 ft both both In all pacStets 0 al S mne Defanrii Rule注意:其中的网络掩码是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包进行统计。1 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no udpeq 4001 eq 4001 both both no all packets 0 all 0 none Default Rule2 * Dynamic filter placement rule for IKE tunnels * no3 permit 10.195.109.235 255.255.255.0 10.195.109.119 255.255.255.0 yes all any 0 eq 1521 both both no all packets 0 all 0 none4 permit 10.195.109.234 255.255.255.0 10.195.155.119 255.255.255.0 yes all any 0 eq 1521 both both no all packets 0 all 0 none5 permit 10.195.109.189 255.255.255.0 10.195.109.119 255.255.255.0 yes all any 0 eq 1521 both both no all packets 0 all 0 none6 deny 0.0.0.0 0.0.0.0 10.195.109.119 255.255.255.0 yes all any 0 eq 1521 both both no all packets 0 all 0 none0 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 yes all any 0 any 0 both both no all packets 0 all 0 none Default Rule