我们在做服务器安全检查或安全事故处理时,防止不了要去检查系统软件的安全性状况。在开展 Linux 安全检查时,必须应用相应的脚本系统对的安全性状况开展全方位剖析,一方面必须尽量的整理系統的有关信息,另一方面在总数较多的情况下尽量的提高工作效率。因为在多次的安全检查中碰到检查时全是几十台网络服务器要做一个全方位检查的状况,假如人工笔写脚本得话,一方面高效率较低另一方面必须安全检查者了解所必须检查的项。在这样的情况下,自己写了一个 Linux 安全检查的脚本,该脚本关键在下列情景应用:
- Linux 服务器安全检查时
- Linux 主机产生安全事故必须全方位剖析时
该脚本进行有一段时间,近期在应急处置群内探讨,发觉这方面的安全检查是我们的一个强要求,因而把该检查脚本共享资源给大伙儿,共享资源的目地关键以2个:一是提升大伙儿在 Linux 安全检查时的高效率,释放出来我们的活力;另一方面期待我们在运用的历程中可以不断发现问题,持续的汇总缺乏的安全检查项,帮助健全该检查脚本。因此我们在应用全过程中有任何的问题或提议热烈欢迎立即同歩帮我。
检查內容
1. 总体架构
有关 Linux 安全检查,这里边我汇总关键必须检查以下几点:
- 系统软件安全检查(过程、开放端口、联接、日志等):这一块是现阶段本人该脚本所建立的作用
- Rootkit:提议应用 rootkit 专杀工具来检查,如 rkhunter
- Webshell:这一块杀毒技术水平相对性较高,并不是本脚本所必须完成的作用,对于这一块的检查可以应用 D 盾来检查 (Linux 下可以将 web 文件目录初始化到 Windows 下开展检查)
- Web 日志:
- 总流量:这一块关键偏重于服务器的短期的流量统计,现阶段本人应用 tshark 完成了基本的流量统计,中后期会做好相对应的健全。总流量这一块可以获取总流量五元组、DNS 流量、HTTP 总流量再融合威胁情报的信息开展深层剖析。这一中后期本人会开展有关的试着,很有可能得话会做好相对应內容的共享。
2. 系统软件安全检查架构
3. 作用完成
功能分析:
- V1.0 关键作用用于采集信息
- V1.1 关键作用将原始记录开展剖析,并找到存有异常或风险项
- V1.2 提升基准线检查的作用
- V1.3 可以开展有关风险项或异常项的自行解决
现阶段到 V1.2 版本号,中后期健全 V1.3 有关的作用。
此外,实际操作上可以完成一键开展安全检查,并将检查后的結果保留到远程服务器。只要在hosts文本里键入对应的IP、账户、登陆密码。实际操作上人工参加降到最低。
4. 各脚本作用表明
免费下载后有关全部脚本的文件目录构造如下所示所显示:
- checkrulues:一部分判断逻辑,这里边现阶段仅有端口号的判断逻辑,中后期可以将过程、应用软件是不是有系统漏洞等逻辑放到这里边开展安全检查,非常简单的判断逻辑立即在 buying_linuxcheck.sh 中可以完成
- buying_linuxcheck.sh:关键检查逻辑
- del.exp:删掉虚拟服务器上的脚本与检查結果
- get.exp:获得虚拟服务器上安全检查的結果
- hosts.txt:必须被检查的服务器列表
- login.sh:一键完成登陆检查,安全检查时只须要运作该脚本就可以
- put.exp:将安全检查脚本上传入虚拟服务器上
- readme.txt:应用有关表明文本文档
- sh.exp:在远程电脑上实行安全检查脚本
下边对于在其中一部分脚本开展详细介绍
(1) Checkrules
判断逻辑关键放到2个文档中:一个是 checkrules 中,文件格式为 dat,这里边提议将比较复杂的判断逻辑放到这儿,如下边的 TCP 风险端口号这方面,由于比较多,假如放到 buying_linuxcheck.sh 中则编码有一些冗杂,下边是 TCP 高风险端口号的判断逻辑,关键或是依据木马病毒默认设置应用的端口,这里边判断的逻辑相对性简易,很有可能会存有乱报的状况,因此后面必须人工干预剖析。
(2) buying_linuxcheck.sh
关键的作用搜集与判断逻辑,非常简单的判断逻辑可以放到这里边开展判断。
5. 应用
使用非常简单,将本脚本拷到自身一台 Linux 服务器上,可以应用vm虚拟机,将必须被检查的网络服务器的 IP、账户、登陆密码放进 hosts.txt 文件目录中,立即运作就可以完成一键安全检查。
有关实际操作如下所示:
(1) 将必须被检查的网络服务器 IP、账户、登陆密码载入到 hosts.txt 文档中,文件格式为
在其中 user 为本地用户的账户,port 为 ssh 登陆端口号, uesrpassword 为一般账户的登陆密码, rootpassword 为 root 的密码, 只因此加个本地用户是由于有的体系干了安全设置,不允许 root 立即登陆,假如被检查的网络服务器容许 root 立即登陆,可以立即把 user 和 userpassword 写出 root 及其 root 登陆密码
这里边被检查的网络服务器容许 root 立即登陆,因而立即写 root 账户和登陆密码
(2) 运作安全检查脚本,
安全检查脚本就在后台程序了,稍等片刻…….
(3) 见到删掉虚拟服务器上的检查脚本与检查結果,就表明检查结束
(4) 检查完毕后,会将虚拟服务器上的結果保留到当地服务器上
6. 检查結果表明
检查完毕后,将相对应的結果缓解压力后文件目录构造如下所示所显示:
(1) Check_file
储存的是检查的最后結果,长这些模样……
(2) Log
文件目录中储存的是 Linux 系统软件日志,web 日志这方面现阶段脚本沒有完成全自动装包的作用,缘故便是 web 日志常常很大,而且保留的日志很有可能从运作到现在的全部日志,许多日志并不一定开展检查与剖析,因而在检查时有关工作人员可以依据实际情况开展装包相对应的日志
(3) danger_file.txt
储存的是在安全检查全过程中发觉的问题
(4) sysfile_md5.txt
储存的是系统软件重要文档或安装文件的 MD5 值,往往将这种重要文档的 MD5 记下来关键有两个作用:一是规律性的检查时,可以与以前的效果完成比照,若有变化会提醒;另一个是可以将这种重要文档的 MD5 值跑一下危害情报库或 virustotal 以发觉有可能具有的安装文件被更换的状况。
7. 代码下载
相关代码已上传到 github,有必须可自主下载,有问题也可以立即联络:
https://github.com/T0xst/linux