linux系统安全诊断

2016-04-06 18:23
山西电子技术 2016年4期
关键词:系统安全用户名黑客

朱 煜

(山西省气象信息中心,山西 太原 030006)



linux系统安全诊断

朱煜

(山西省气象信息中心,山西 太原 030006)

实时业务对系统稳定、网络畅通有很高的要求。为了安全高效,实时业务系统也大多建立在linux平台上,因此,linux的系统安全就显得非常重要。本文就linux入侵检测方法作一些简要说明,并给出一些系统安全建议。

系统安全;Linux;入侵检测

随着信息技术的飞速发展,各行各业对信息系统的依赖程度越来越高,网络应用也越来越频繁,这时信息安全、网络安全就显得越发重要。实时业务对系统稳定、网络畅通的要求尤其高。目前单位对网络安全非常重视,为了安全高效,业务系统也大多建立在linux平台上,但随着网络技术的快速发展,病毒入侵已经成为一种重大安全隐患,linux系统会不会被入侵?入侵后该如何善后?都值得探讨。

1 故障及诊断

前段时间,有一次单位业务网络发生了不明原因的中断,影响很大。为了及时恢复网络,不影响工作,对故障立即进行了诊断。先断开其他所有网络设备,只保留核心业务设备时网络恢复;再从网管平台上进行仔细检查,发现连接并行机的交换机端口流量过大,从业务判断,该时段没有数据传输,当时怀疑并行机出现了问题,因此立即进行了检查:

首先,查看/etc/passwd中有没有可疑用户。结果发现:sbin和pvm2个用户可以进行系统登录,而这2个用户都不是管理员建立的;更严重的是,sbin用户有与root等同的权限!于是怀疑系统已经被入侵。

其次,分别su到这2个用户下执行history命令发现无记录,可能是被人清除掉了。在pvm的主目录/usr/share/pvm3下,发现安装了pvm软件。经过搜索得知PVM是用于网络并行计算机上的软件工具。它可以将异构的计算机网络连接起来,使用起来就像一个单一的但能力强大的并行计算机,本身可以由一些Unix或windows的计算机组成。为了排除这一现象,在root用户下执行命令:awk-F:′length($2)==0 {printf $1}′/etc/shadow,发现无记录,说明没有使用空密码的用户。

第三步,执行ps-ef查看系统进程,未发现异常;执行netstat-an查看网络连接,正常。执行cat/etc/crontab检查自动运行的程序,正常。检查/etc/inittab、/etc/bashrc、/etc/profile、/etc/rc.local以及/etc/rc.d/*这些系统重要的配置文件及自启动文件,均未发现异常。

第四步,用last命令查看近期谁登陆过系统:last-n20发现:

testpts/17172.18.*.*Tue Feb 28 15:49-19:26 (03:58)

这是个通过防火墙端口映射而登陆的外网用户(172.18.72.36是防火墙地址),马上检查test用户,在其目录中发现如下可疑文件:

[test@node2 ~]$ ls ssh/ssh/

a mass nobash.txt pass.txt pscan2 pscan2.c scan sshd vuln.txt

[test@node2 ~]$ ls bengos/

a go.sh linuxteam.tgz pass.txt pscan2 pscan2.c scanB ss sshd start

查看pass.txt的内容发现这是一个字典文件,里面列举出常用的用户名及口令(弱口令)如下:(只截取一部分,第一列用户名,第二列为对应的密码)

test test123

root root123

admin admin123

guest guest123

master master

……

第五步,分析源文件pscan2.c,认为这是一个黑客工具,它对ssh服务器进行扫描,用字典(pass.txt)中的用户名密码去尝试登陆,如果系统密码设置的太简单和字典中的吻合,那么黑客就成功入侵了,而这台并行机就因此不幸“中招”了。

第六步,问题的处理。

以下是处理步骤

1) vi /etc/passwd 将sbin:x:0:503::/home/sbin:/bin/bash这行删除,并保存

2) 删除黑客工具rm -rf bengos/ssh/ssh/

3) passwd test设置一个较为复杂的密码

4) 关闭防火墙相应端口的映射

2 检测与处理

虽然问题解决了,回头总结很有必要。如果系统万一被入侵,那么业务系统很可能会遭到严重破坏,后果将不堪设想。 所以有必要总结一下linux平台下入侵检测的方法以及给出一些安全建议。入侵检测分手工检测和工具检测两种。

2.1手工检测

手工检测是指不借助外部工具、依靠管理员的技巧和经验来对系统的安全性进行检查,相比于工具检测,它要求管理员对操作系统有较深的了解,虽然没有工具检测的细致深入,但却是基础,必须要掌握,以下是检测的大体步骤:

1) 检查系统密码文件:ls-l/etc/passwd查看文件修改的日期。awk-F: '$3==0 {print $1}' /etc/passwd显示passwd文件中的特权用户。正常情况下应该只有一个特权用户root。检查系统里是否存在空口令帐户:awk-F: 'length($2)==0 {printf $1}' /etc/shadow

2) 检查进程:ps-aef 看看有没有陌生进程在运行,尤其注意有没有以./xxx开头的进程。一旦确定为后门进程,可以使用kill-9 pid开杀死该进程,然后再运行ps-aef查看该进程是否被杀死;如果进程杀死以后又重新启动,说明存在守护进程。用find / -name 程序名-print,查找到其存放目录,然后判断是否应该删除。

3) 检查网络连接和监听端口:netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。netstat -rn,查看本机的路由、网关设置是否正确。

4) 检查系统中的core文件:某些入侵行为会在服务器相应目录下产生core文件。输入find / -name core-exec ls-l {}

依据core所在的目录、查询core文件来判断是否有入侵行为。

5) 检查系统日志:ls-al /var/log 检查日志文件的完整性和修改时间是否正常,黑客常通过清除日志的方法来掩盖入侵痕迹。 History命令用于显示历史指令记录内容,查看它可以了解黑客执行了哪些操作,不过这也是黑客重点清除的日志之一。

6) 检测当前及以前登陆的用户:who命令查看当前在线上的用户情况。可以显示用户名、终端类型、登陆时间、以及来自哪里。w命令可以显示登录到系统的用户当前正在进行的工作,如果发现陌生的用户或者陌生IP登陆系统,用命令pkill -KILL -t tty号 将他踢出系统,并立即修改此用户密码。last命令可以查看登录到本机的所有用户的历史记录,包括用户名、终端号、IP、时间等内容,也可以找到入侵者的蛛丝马迹。

7) 检查SUID和SGID文件,这样的程序可以以root身份运行,需要注意。 命令find / ( -perm -004000-o-perm-002000)-type f-print可以将它们找出。

8) 检查/etc/services需要密切地监视这个文件中的任何添加项,因为这可能会将后门作为服务来运行。

9) 检查/etc/crontab、/etc/inittab、/etc/bashrc、/etc/profile、/etc/rc.local以及/etc/rc.d/*这些是系统重要的配置文件和登陆或开机会被执行的文件,也是后门程序常被添加的地方。

10) 检查/.rhosts,/etc/hosts.equiv和~/.rhosts,看看是否有不合适的新条目存在,如果开了Rlogin、Rsh、Rexec等服务,就必须检查。因为像Rsh和Rlogin这样的服务是通过rhosts文件来认证的,而且不记录日志。黑客只要修改某用户的rhosts文件,就可以用这个账号无须口令Rlogin登录系统,且不留痕迹。

2.2工具检测

由于手工入侵检测比较麻烦,很难进行深层次的检测,而且这些检测大多基于系统命令,如果系统文件已经被黑客替换的话,就不可能进行准确的检测,要正确有效地进行入侵检测和审计需要借助于一些入侵分析工具。下面简要介绍两款检测工具chkrootkit和Snort。

chkrootkit是一个Linux系统下的查找检测rootkit后门的工具。所谓rootkit,它是一种具有自我隐蔽性的后门程序,类似于windows下的木马程序,它往往被作为一种入侵工具,通过rootkit,黑客可以偷偷控制被入侵的电脑,因此危害巨大。Chkrootkit是基于字符界面的,在终端下直接键入chkrootkit即可对系统进行全面扫面,并滚动显示出结果,如果显示 not infected not tested 或 nothing found之类,则为正常。如果出现了INFECTED则说明你的服务器遭到入侵了,系统管理员需要根据扫描结果对系统进行修复,必要时重新安装。

Snort是一个轻便的网络入侵检测系统,可以完成实时流量分析和对网络上的IP包登录进行测试等功能,能完成协议分析,内容查找/匹配,能用来探测多种攻击和嗅探(如缓冲区溢出、秘密断口扫描、CGI攻击、SMB嗅探、拇纹采集尝试等)。它的扫描结果以web方式显示给用户,非常清晰直观。它需要apache、adobe、mysql、php等软件的支持,安装及配置完成以后,可以通过http://IP/acidbase/查看Snort截获的入侵日志。

3 总结及建议

Linux系统由于其安全高效及稳定的特性,越来越受到企业用户的青睐,近年来,针对linux系统的攻击呈不断上升的趋势,如何保证其系统安全也成为一个普遍关注的话题,本文提出以下八条建议供参考:

1) 对重要文件进行备份,但不要备份在本机,否则也有可能被黑客修改。

2) 配置防火墙对网络进行防御,开启SElinux。

3) 卸载或关闭不必要的服务。

4) 安装供应商提供的所有补丁,对已安装的软件包进行完全升级。

5) 删除不必要的用户,为每个用户设置一个既好记又足够复杂的密码,并严格限定用户权限。

6) 对配置文件进行必要的手工修改,比如更改网络服务的端口号等。

7) 定期审核系统日志,查看服务以及进程的运行情况。

8) 重要业务系统要与因特网物理隔离,必须要联网的也应置于DMZ区,并在边界防火墙上作好策略及审计。

相信做好以上几点,基于linux业务系统必能安全稳定的工作,更好地提供服务。

Safety Diagnosis on Linux System

Zhu Yu

(ShanxiMeteorologicalInformationCenter,TaiyuanShanxi030006,China)

Real-time system has a high demand on the stable server and smooth network. For the safe and efficient business, the system is mostly built on the Linux platform. So, the security of Linux system becomes more important. This article makes some brief descriptions on Linux intrusion detection method and gives some safety recommendations for system.

system safety; Linux; intrusion & detection

2016-04-18

朱煜(1984- ),男,山西太原人,工程师,工程硕士,主要从事气象信息技术工作。

1674- 4578(2016)04- 0023- 02

TP316.81

A

猜你喜欢
系统安全用户名黑客
《护士进修杂志》投稿程序
欢乐英雄
多少个屁能把布克崩起来?
新型电力系统安全稳定运行分析
《护士进修杂志》投稿程序
网络黑客比核武器更可怕
《护士进修杂志》投稿程序
铁路信号系统安全输入输出平台
机智的快递员
户用光伏系统安全防护问题的研究