《使用安全审计加强Linux主机的安全维护能力44007.docx》由会员分享,可在线阅读,更多相关《使用安全审计加强Linux主机的安全维护能力44007.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、M6-4 使用用安全审计加加强Linuux主机的安安全维护能力力1.1场景描述述1.1.1 学学习目的学生通过该能力力模块的学习习,能够独立立完成和熟练练掌握实现主主机安全审计计的能力。1.1.2 学学习要求理解:审计对主主机安全的重重要性。掌握:使用pssacct程程序所提供的的命令对主机机进行审计。1.1.3 学学习重点和难难点1.学习重点 ac命令. sa命令2.学习难点 psacct程程序1.2 知识准准备1.2.1 ppsacctt程序安全配置审计工工具是一款用用户对各类系系统、设备做做安全配置检检查的自动化化工具,能够够智能化识别别各类安全设设置,分析安安全状态,并并能够给出多多种
2、配置审计计分析报告,目目前已经支持持多种操作系系统及网络设设备。RedHat Linuxx系统中的ppsacctt程序可以根根据安全需求求进行修改。另另外,利用系系统工具对各各类账号的操操作权限做限限制,能够有有效保证用户户无法超越其其账号权限的的操作,确保保系统安全。RedHat Linuxx系统中的ppsacctt程序提供了了几个进程活活动监视工具具:ac、llastcoomm、acccton和和sa。 ac命令显显示用户连接接时间的统计计. lastcommm命令显示示系统执行的的命令. accton命令用于于打开或关闭闭进程记帐功功能. sa命令统统计系统进程程记帐的情况况.1.3 注
3、意事事项在使用psaccct程序进进行审计时,需需要查看其是是否安装,如如果没有安装装要手动进行行安装。1.4 操作步步骤1.4.1启动动psaccct服务默认情况下,RRedHatt Linuux系统默认认安装了pssacct程程序,只需要要系统中启动动psaccct服务,先先用chkcconfigg命令查看ppsacctt服务状态,如如下所示:rootllab2 # chhkconffig -list psaccctpsacct 00:关闭 1:关闭 2:关闭闭 3:关关闭 4:关闭 55:关闭 6:关闭使用命令chkkconfiig命令启用用默认启动,并并使用命令/etc/iinit.d
4、d/psaccct sttart命令令来启动pssacct服服务,如下所所示。rootllab2 # chhkconffig pssacct onrootllab2 # /eetc/innit.d/psaccct staart开启进程记帐: 确确定 rootllab2 #1.4.2对网网络行为进行行审计第一步:显示用用户连线时间间的统计信息息可以根据登陆数数/退出数在在屏幕上打印印出用户的连连线时间(单单位为小时)。总计时间间也可以打印印出来,如果果你执行没有有任何参数的的ac命令, 屏幕将会显显示总计的连连线时间。rootllab2 # acc totaal 1022.27显示每一天的连连线
5、统计时间间:rootllab2 # acc -dJan 12 totaal 233.86Jan 13 totaal 11.17Jan 14 totaal 133.11Jan 15 totaal 66.79Jan 26 totaal 466.37Today totaal 100.97rootllab2 #显示每一个用户户的总计连线线时间和所有有用户总计连连线时间:rootllab2 # acc -p userr1 9.31 userr2 7.62 roott 85.36 totaal 1022.29rootllab2 #第二步:查找用用户过去执行行的命令可以使用lasstcommm命令打印出出用
6、户过去执执行的命令. 你也可以以通过用户名名, ttyy名或命令名名来搜索以往往执行的命令令。比如显示useer1用户过过去执行的命命令:rootllab2 # laastcommm useer1bash uuser1 ttty1 00.00 ssecs WWed Jaan 27 06:244id uuser1 ttty1 00.00 ssecs WWed Jaan 27 06:244bash uuser1 ttty1 00.00 ssecs WWed Jaan 27 06:244id useer1 tty11 0.000 seccs Wedd Jan 27 066:24bash useer1
7、 tty11 0.000 seccs Wedd Jan 27 066:24id useer1 tty11 0.000 seccs Wedd Jan 27 066:24unicodee_starrt useer1 tty11 0.001 seccs Wedd Jan 27 066:24setfontt useer1 tty11 0.004 seccs Wedd Jan 27 066:24gzip useer1 tty11 0.000 seccs Wedd Jan 27 066:24loadkeyys useer1 tty11 0.000 seccs Wedd Jan 27 066:24dumpk
8、eyys useer1 tty11 0.000 seccs Wedd Jan 27 066:24kbd_modde useer1 tty11 0.000 seccs Wedd Jan 27 066:24consoleetype useer1 tty11 0.000 seccs Wedd Jan 27 066:24bash useer1 tty11 0.000 seccs Wedd Jan 27 066:24consoleetype useer1 tty11 0.000 seccs Wedd Jan 27 066:24bash useer1 tty11 0.000 seccs Wedd Jan
9、27 066:24id useer1 tty11 0.000 seccs Wedd Jan 27 066:24grep useer1 tty11 0.000 seccs Wedd Jan 27 066:24bash useer1 tty11 0.000 seccs Wedd Jan 27 066:24grep useer1 tty11 0.000 seccs Wedd Jan 27 066:24bash useer1 tty11 0.000 seccs Wedd Jan 27 066:24egrep useer1 tty11 0.000 seccs Wedd Jan 27 066:24bash
10、 useer1 tty11 0.000 seccs Wedd Jan 27 066:24dircoloors useer1 tty11 0.000 seccs Wedd Jan 27 066:24bash useer1 tty11 0.000 seccs Wedd Jan 27 066:24hostnamme useer1 tty11 0.000 seccs Wedd Jan 27 066:24bash useer1 tty11 0.000 seccs Wedd Jan 27 066:24id useer1 tty11 0.000 seccs Wedd Jan 27 066:24每一行信息都在
11、在屏幕上打印印出来,以第第一行输出项项为例:ls usser1 ttyy1 0.01 seecs Tuue Jann 12 116:24分析:ls是进程的命命令名user1是执执行命令的用用户名tty1 终端端名0.01 seecs - 进程退出出时间你可以通过执行行下面的命令令来搜索进程程记帐日志,如如下所示:rootllab2 # laastcommm lsls rooot pts/2 0.001 seccs Wedd Jan 27 077:27ls rooot pts/2 0.001 seccs Wedd Jan 27 077:26ls rooot pts/2 0.001 seccs W
12、edd Jan 27 077:26ls rooot pts/2 0.001 seccs Wedd Jan 27 077:18ls rooot pts/2 0.001 seccs Wedd Jan 27 066:10ls rooot pts/0 0.001 seccs Wedd Jan 27 066:08ls useer1 pts/0 0.002 seccs Wedd Jan 27 066:05ls useer1 pts/0 0.001 seccs Wedd Jan 27 066:04ls rooot pts/2 0.001 seccs Wedd Jan 27 055:52ls rooot pt
13、s/2 0.002 seccs Wedd Jan 27 055:34ls rooot pts/0 0.001 seccs Wedd Jan 27 055:32ls rooot pts/0 0.002 seccs Wedd Jan 27 055:32ls rooot pts/0 0.002 seccs Wedd Jan 27 055:32ls rooot pts/0 0.004 seccs Wedd Jan 27 055:28第三步:统计记记帐信息可以使用sa命命令打印过去去执行命令的的统计信息。另另外,sa命命令保存了一一个叫做saavacctt文件,文件件包含了命令令被调用的次次数和资源使使
14、用的次数。而而且sa还提提供每一个用用户的统计信信息, 这些些信息保存在在一个叫做uusraccct的文件当当中。rootllab2 # saa 55881 4065.23re 8.811cp 13886k 885 1894.22re 7.633cp 28772k *otther* 3 4.67re 0.233cp 24335k preliink 3 65.75re 0.133cp 118112k gnomee-termminal 116 0.37re 0.099cp 12110k sort 4 0.32re 0.088cp 19111k rpmq 229 453.61re 0.088cp 1
15、5997k bash 2 44.73re 0.055cp 102442k pythoon2 117 11.27re 0.055cp 26008k vim 8 0.17re 0.055cp 14226k uniq 664 0.09re 0.044cp 14559k sed 3 168.03re 0.044cp 18994k sshd 27774 0.25re 0.022cp 14006k ld-liinux.sso.2 9 201.32re 0.022cp 7332k loginn 1449 0.20re 0.022cp 12335k grep 223 0.02re 0.011cp 6669k
16、pidoff 2 0.02re 0.011cp 10006k xkbcoomp 117 0.02re 0.011cp 13990k setfoont 2 0.33re 0.011cp 5000k readaahead 4 2.97re 0.011cp 9220k telneetd 2 0.25re 0.011cp 15770k rc 117 105.96re 0.011cp 15667k su 444 14.52re 0.011cp 12117k vsftppd* 3 0.13re 0.011cp 14558k ifup-post 9 6.33re 0.011cp 23337k sendmma
17、il* 2 67.03re 0.011cp 78884k eggcuups 4 45.49re 0.011cp 34994k consoolehellper-gg以结果输出的第第一行为例:5288 22.55ree 1.115cp 14400k ld-llinux.so.2分析:2.55re 实际时间间 单位为为分钟.1.15cp系系统和用户时时间总数(CCPU时间, 单位为分分钟)1400k核心心使用所占的的平均CPUU时间, 一一个单元的大大小为1Kld-linuux.so.2命令名第四步:查看占占用CPU可以使用sa m命令,如如下所示:rootllab2 # saa -m5584 40
18、655.23ree 8.881cp 13386kroot 50211 33827.002re 8.73ccp 14088kuser1 388 8.79rre 0.03cp 11044kgdm 1 0.19re 0.033cp 150998kuser2 122 2.90rre 0.01cp 11087knobody 27 88.00ree 0.001cp 11197ksmmsp 5 12.61re 0.000cp 18008ksshd 3 00.07ree 0.000cp 15549kuser11 11 5.95rre 0.00cp 11218khtt 6 1199.700re 00.00cpp
19、 9635kk可以通过查看rre、k、ccp/cpuu(见上面输输出解释)时时间来找出可可疑的活动,或或某个用户/命令占用了了所有的CPPU时间。 如果CPUU/Memeeory使用用数(命令)在不断增加加,可以说明明命令存在问问题。1. 5 拓展展知识1.5.1 TTCPDUMMP详解tcpdumpp是一个用于于截取网络分分组,并输出出分组内容的的工具。tccpdumpp凭借强大的的功能和灵活活的截取策略略,使其成为为类UNIXX系统下用于于网络分析和和问题排查的的首选工具。tcpdumpp提供了源代代码,公开了了接口,因此此具备很强的的可扩展性,对对于网络维护护和入侵者都都是非常有用用的工
20、具。ttcpdummp存在于基基本的Linnux系统中中,由于它需需要将网络界界面设置为混混杂模式,普普通用户不能能正常执行,但但具备rooot权限的用用户可以直接接执行它来获获取网络上的的信息。因此此系统中存在在网络分析工工具主要不是是对本机安全全的威胁,而而是对网络上上的其他计算算机的安全存存在威胁。 一、概述顾名思思义,tcppdump可可以将网络中中传送的数据据包的“头”完完全截获下来来提供分析。它它支持针对网网络层、协议议、主机、网网络或端口的的过滤,并提提供and、oor、nott等逻辑语句句来帮助你去去掉无用的信信息。引用# tcpduump vvtcpdumpp: lisste
21、ninng on eth0, linkk-typee EN100MB (EEthernnet), captuure siize 966 bytees11:53:221.4444591 IIP (toos 0x110, tttl 64, id 119324, offsset 0, flaggs DFF, prroto 66, lenngth: 92) aasptesst.loccaldommain.sssh 192.1168.2228.2444.18588: P 339621332600:396211326522(52) ack 227265225936 win 11266asptestt.lo
22、caaldomaain.10077 192.1168.2228.1533.domaain: bad uudp ckksum 1166e! 325+ PTR? 244.228.1168.1992.in-addr.arpa. (46)11:53:221.4466929 IIP (toos 0x00, ttll 64, id 422911, offseet 0, flagss DF, prooto 177, lenngth: 151) 192.1168.2228.1533.domaain aspteest.loocaldoomain.1077: 325 NXDommain qq: PTRR? 244
23、4.228.168.1192.inn-addrr.arpaa. 0/11/0 nss: 1688.192.in-adddr.arrpa. (123)11:53:221.4477408 IIP (toos 0x110, tttl 64, id 119328, offsset 0, flaggs DFF, prroto 66, lenngth: 172) aspteest.loocaldoomain.ssh 192.168.2228.2444.18558: P 168:3300(1332) acck 1 wwin 12266347 pacckets captuured1474 paacketss
24、receeived by fiilter745 pacckets droppped byy kernnel不带参数的tccpdumpp会收集网络络中所有的信信息包头,数数据量巨大,必必须过滤。二、选项介绍引用-A 以ASCCII格式打打印出所有分分组,并将链链路层的头最最小化。-c 在收到指指定的数量的的分组后,ttcpdummp就会停止止。 -C 在将一个个原始分组写写入文件之前前,检查文件件当前的大小小是否超过了了参数fille_sizze 中指定定的大小。如如果超过了指指定大小,则则关闭当前文文件,然后在在打开一个新新的文件。参参数 fille_sizze 的单位位是兆字节(是是1,00
25、00,000字字节,而不是是1,0488,576字字节)。-d 将匹配信信息包的代码码以人们能够够理解的汇编编格式给出。-dd 将匹配配信息包的代代码以c语言言程序段的格格式给出。-ddd 将匹匹配信息包的的代码以十进进制的形式给给出。-D 打印出系系统中所有可可以用tcppdump截截包的网络接接口。-e 在输出行行打印出数据据链路层的头头部信息。-E 用spiiipadddr allgo:seecret解解密那些以aaddr作为为地址,并且且包含了安全全参数索引值值spi的IIPsec ESP分组组。 -f 将外部的的Interrnet地址址以数字的形形式打印出来来。-F 从指定的的文件中
26、读取取表达式,忽忽略命令行中中给出的表达达式。-i 指定监听听的网络接口口。-l 使标准输输出变为缓冲冲行形式,可可以把数据导导出到文件。-L 列出网络络接口的已知知数据链路。-m 从文件mmodulee中导入SMMI MIBB模块定义。该该参数可以被被使用多次,以以导入多个MMIB模块。-M 如果tccp报文中存存在TCP-MD5选项项,则需要用用secreet作为共享享的验证码用用于验证TCCP-MD55选选项摘要要(详情可参参考RFC 2385)。-b 在数据-链路层上选选择协议,包包括ip、aarp、raarp、ippx都是这一一层的。-n 不把网络络地址转换成成名字。-nn 不进行行
27、端口名称的的转换。-N 不输出主主机名中的域域名部分。例例如,niic.ddnn.mil只输出nnic。-t 在输出的的每一行不打打印时间戳。-O 不运行分分组分组匹配配(packket-maatchinng)代码优优化程序。-P 不将网络络接口设置成成混杂模式。-q 快速输出出。只输出较较少的协议信信息。-r 从指定的的文件中读取取包(这些包包一般通过-w选项产生生)。-S 将tcpp的序列号以以绝对值形式式输出,而不不是相对值。-s 从每个分分组中读取最最开始的snnaplenn个字节,而而不是默认的的68个字节节。-T 将监听到到的包直接解解释为指定的的类型的报文文,常见的类类型有rpc
28、c远程过程调调用)和snnmp(简单单网络管理协协议;)。 -t 不在每一一行中输出时时间戳。 -tt 在每一一行中输出非非格式化的时时间戳。-ttt 输出出本行和前面面一行之间的的时间差。-tttt 在在每一行中输输出由datte处理的默默认格式的时时间戳。-u 输出未解解码的NFSS句柄。-v 输出一个个稍微详细的的信息,例如如在ip包中中可以包括tttl和服务务类型的信息息。 -vv 输出详详细的报文信信息。-w 直接将分分组写入文件件中,而不是是不分析并打打印出来。三、tcpduump的表达达式介绍表达式是一个正正则表达式,ttcpdummp利用它作作为过滤报文文的条件,如如果一个报文
29、文满足表 达达式的条件,则则这个报文将将会被捕获。如如果没有给出出任何条件,则则网络上所有有的信息包 将会被截获获。在表达式中一般般如下几种类类型的关键字字: 引用第一种是关于类类型的关键字字,主要包括括 hostt,net,pport,例例如 hosst 2100.27.448.2, 指明 2110.27.48.2是是一台主机,nnet 2002.0.00.0指明2202.0.0.0是一一个网络地址址,portt 23 指指明端口号是是23。如果果没有指定类类型,缺省的的类型是hoost。第二种是确定传传输方向的关关键字,主要要包括srcc,dst,ddst orr src,ddst ann
30、d srcc, 这些关关键字指明了了传输的方向向。举例说明明,src 210.227.48.2 ,指明明ip包中源源地址是 2210.277.48.22 , dsst nett 202.0.0.00 指明目的的网络地址是是202.00.0.0。如如果没有指明明 方向关键键字,则缺省省是src or dsst关键字。第三种是协议的的关键字,主主要包括fdddi,ipp,arp,rrarp,ttcp,uddp等类型。FFddi指明明是在FDDDI (分布布式光纤数据据接口网络)上的特定的的网络协议,实实际上它是”eether”的的别名,fdddi和etther 具具有类似的源源地址和目的的地址,所
31、以以可以将fdddi协议包包当作ethher的包进进行处理和分分析。 其他他的几个关键键字就是指明明了监听的包包的协议内容容。如果没有有指定任何协协议,则tccpdumpp 将会 监监听所有协议议的信息包。除了这三种类型型的关键字之之外,其他重重要的关键字字如下:gaatewayy, brooadcasst,lesss, grreaterr, 还有三三种逻辑运算算,取非运算算是 noot ! , 与运算是and,&;或或运算是oor ,Ӝӈ; 这些关键字字可以组合起起来构成强大大的组合条件件来满足人们们的需要。四、输出结果介介绍下面我们介绍几几种典型的ttcpdummp
32、命令的输输出信息 (1) 数据链链路层头信息息使用命令: #tcpdummp -ee hostt ICEICE 是一台台装有linnux的主机机。它的MAAC地址是00:90:227:58:AF:1AA H2199是一台装有有Solarris的SUUN工作站。它它的MAC地地址是8:00:20:779:5B:46; 上上一条命令的的输出结果如如下所示:引用21:50:112.8477509 eeth0 IICE. ttelne t 0:00(0) aack 222535 wwin 87760 (DDF)21:50:112是显示的的时间, 88475099是ID号,eeth0 表表示从网络接接口
33、设备发送送分组, 88:0:200:79:55b:46是是主机H2119的MACC地址, 它它表明是从源源地址H2119发来的分分组. 0:90:277:58:aaf:1a是是主机ICEE的MAC地地址, 表示示该分组的目目的地址是IICE。 iip 是表明明该分组是IIP分组,660 是分组组的长度, h219.333577 ICCE. teelnet 表明该分组组是从主机HH219的333357端端口发往主机机ICE的 TELNEET(23)端口。 aack 222535 表表明对序列号号是2225535的包进进行响应。 win 88760表明明发 送窗口口的大小是88760。(2) AR
34、PP包的tcppdump输输出信息使用命令: #tcpdummp arpp得到的输出结果果是:引用22:32:442.8022509 eeth0 arp who-hhas rooute ttell IICE (00:90:227:58:af:1aa)22:32:442.8022902 eeth0 表明从主机机发出该分组组,arp表表明是ARPP请求包, who-hhas rooute ttell IICE表明是是主机ICEE请求主机rroute的的MAC地址址。 0:990:27:58:aff:1a是主主机 ICEE的MAC地地址。(3) TCPP包的输出信信息用tcpdummp捕获的TTCP
35、包的一一般输出信息息是: 引用src ddst: fflags data-seqnoo ack windoow urggent ooptionnssrc ddst:表明明从源地址到到目的地址, flagss是TCP报报文中的标志志信息,S 是SYN标标志, F (FIN), P (PUSH) , R (RST) . (没有标记记); daata-seeqno是报报文中的数据据 的顺序号号, ackk是下次期望望的顺序号, windoow是接收缓缓存的窗口大大小, urrgent表表明 报文中中是否有紧急急指针。 OOptionns是选项。(4) UDPP包的输出信信息用tcppdump捕捕获的
36、UDPP包的一般输输出信息是: 引用route.pport1 ICEE.portt2: uddp lennthUDP十分简单单,上面的输输出行表明从从主机rouute的poort1端口口发出的一个个UDP报文文 到主机IICE的poort2端口口,类型是UUDP, 包包的长度是llenth。五、举例(1) 想要截截获所有2110.27.48.1 的主机收到到的和发出的的所有的分组组: #tcpdummp hosst 2100.27.448.1(2) 想要截截获主机2110.27.48.1 和主机2110.27.48.2或或210.227.48.3的通信,使使用命令(注注意:括号前前的反斜杠是是必须的): #tcpdummp hosst 2100.27.448.1 aand (210.227.48.2 or 210.227.48.3 )(3) 如果想想要获取主机机210.227.48.1除了和主主机210.27.488.2之外所所有主机通信信的ip包,使使用命令: #tcpdummp ip host 210.227.48.1 andd ! 2110.27.48.2(4) 如果想想要获取主机机192.1168.2228.2466接收或发出出的ssh包包,并且不转转换主机名使使用如下命令令: #tcpdummp -nnn -n