我们专注服务于当下互联网基础设施建设与云计算、大数据时代的各种需求!

如何做到linux系统安全

现在发行的各种linux中,red hat的企业版相对来说比较安全。对于一般的linux版本来说,我们如何保证系统的安全。或者系统安全需要关注哪些方面?这就是本次要讨论的要点。
linux系统的安全主要通过以下几个部分进行重点保护:文件系统保护、用户管理安全、进程的保护、以及日志的管理。
文件系统保护
首先linux系统中有这么一个概念:“一切皆文件”。那么对文件的管理就是通过文件系统进行实现的。如何对文件系统进行管理?linux中已经存在了基本的对文件权限的设置。现在主要介绍一款检测文件系统的工具。tripwire。
Tripwire是目前最为著名的unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。
那么知道了tripwire是干什么的了,现在介绍如何安转。不是一般软件安装都是三部曲吗?./configure    、 make、 make install
对,该软件的安装页需要上述几步,但是该软件还需要生成一个基准数据库。使用命令 #tripwire –init
该软件的工作原理是:首先使用特定的特征码函数,为需要监视的系统文件和目录建立一个特征数据库,这里的特征码就是使用了hash函数,使得任意长度的文件产生固定大小的值。通过保存该值与现有的文件或目录的hash值进行比较,如果结果相同,则说明该文件没有被改动,否则视文件被改动。
具体的安装步骤可以在网上查看。安装好之后就可以使用该工具对系统进行检查,默认是对整个系统进行检测,这里我们可以在某个目录下对文件进行检测,使用命令#tripwire –check.运行该命令之后会产生哪些文件是新增的、哪些改动过。
用户管理安全
用户管理这里主要涉及用户登录密码和用户管理。这里主要介绍一款工具来查看自己的密码是否相对安全。john the ripper

John the Ripper免费的开源软件,是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法, 如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目 的是破解不够牢固的Unix/Linux系统密码。目前的最新版本是John the Ripper 1.7.3版,针对Windows平台的最新免费版为John the Ripper 1.7.0.1版。
John the Ripper的官方网站: http://www.openwall.com/john/

如何安装,首先解压源码包之后进入解压包中的src目录,然后执行make、make clean linux-x86-any.
安装好之后可以进入到run目录下进行测试,执行./john -test.该结果给出了解密需要的一些时间

上面的salts指用户数,针对传统的DES解密速度为413414次/秒。

测试完之后就可以进行解密,该命令含有很多参数,这里只讲述简单的方式。使用命令#./john -single “/etc/shadow”就可以显示存在/etc/shadow中的用户及对应密码。

该结果显示了我的密码之前已经被破解了(这运行之前我已经运行了该命令一次)。如果john已经破解了用户的密码,她就回将解密的密码放到当前目录的john.pot文件中。
比如查看这个文件显示
$6$V04bcTXNnRgUepZa$SFlIYTUDAkC9rlajU1oO4AozREGzGZrZvKocUkBtOOnlS9qJ/tt8VpV5jk9YIdEhPfIjs7LJ0IDUkI6sGxCZq0:wuyaalan
:前面的部分是用户的密文,后面是对应用户的密码。

当然如果简单的方式不能破解,可以使用字典解密。字典解密的成功与否是由字典是否完整为依据的。如果再有比较强的密码可以结合-rules、-incremental、-rexternal等等。基本命令的使用查看john手册。

进程安全
很多的入侵都是通过进程实现的,所以我们要时刻监视某些比较重要的进程。看其是否有不寻常的变化。这里主要通过linux里面的命令查看:主要有:who 、w 、ps、top
日志管理
如果系统被入侵了,并且入侵者在没修改日志的情况下,我们可以通过查看日志来回放入侵行为。
在linux中主要有3个主要的日志子系统:链接时间日志、进程统计日志、错误日志。
链接时间日志记录在/var/log/wtmp和/var/log/utmp中,用于跟踪谁何时登录了系统。其中utmp记录当前登录用户的信息;wtmp记录了用户登录系统和退出的时间记录。以上两个文件都是二进制文件。
进程统计日志给系统中的基本服务提供命令使用统计。
错误日志有syslogd后台进程记录,系统中各种守护进程、用户程序需要通过调用syslog向文件/var/log/messages记录相关事件。

用户程序以及内核如何通过syslog记录消息。
用户程序首先通过syslog库函数将用户消息通过syslogd后台进程输出到log文件。
内核里面产生日志通过printk将消息写入到一个环形缓冲区,如果环形缓冲区填满,printk在缓冲区的开始位置填写数据。然后通过系统调用syslog将消息发送到klogd后台进程,klogd监听    并得到内核消息之后,发送到syslogd后台进程,最后写入到log中。
这里使用的基本命令有:who、users、last、ac、lastlog等等。