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