Linux系统检测和防护脚本

2019-11-08  本文已影响0人  猪蹄胖

1、方便将服务器安全情况通过检测脚本直接输出txt文件,同时便于检查出安全隐患。
2、缩短安全检查和防护时间,提高安全检查和防护效率
github地址 https://github.com/xiaoyunjie/Shell_Script.git


一、Linux检测脚本


1.1、文件

压缩包包含2个文件:

Linux检测脚本:Check_script.sh


1.2、操作说明

执行CentOS_Check_Script.sh脚本文件进行检查,每次体检生成文件都是唯一的,命令格式如下:

sudo sh CentOS_Check_Script.sh | tee check_`date +%Y%m%d_%H%M%S`.txt

1.3、脚本简介

按三级等保要求,编写的一键检查脚本,此脚本只适合linux分支中的redhat、centos,运行脚本将结果输出到自定义的文件中,脚本结果需要管理员人为检查,脚本结果中有相应提示检测内容是否需要整改。


1.4、脚本检测内容

警告:本脚本只是一个检查的操作,未对服务器做任何修改,管理员可以根据此报告进行相应的安全整改

管理员需要根据检测报告进行安全加固,需要加固的条目都会标记 [需调整]

1.4.1、系统基本信息

脚本捞取主机的基本信息,包含以下内容:

基本信息名 命令 备注
主机名
系统名称
系统版本
内核版本
系统类型
本机IP地址
CPU型号
CPU核数
机器型号
系统时间
1.4.2、资源使用情况
检测条目 命令 备注
总内存大小
已使用内存大小
可使用内存大小
系统运行时间
系统负载
内存状态
僵尸进程
耗CPU最多进程
耗内存最多进行
环境变量
路由表
监听端口
网络连接
开机启动服务
1.4.3、系统用户情况
检测条目 命令 备注
活动用户
系统所有用户
系统所有组
当前用户的计划任务
1.4.4、身份鉴别安全
检测条目 命令 备注
密码复杂度
可疑账户
密码过期天数
登入失败处理
1.4.5、访问控制安全
检测条目 命令 备注
非系统默认用户
系统特权用户
系统空口令账户
1.4.6、安全审计
检测条目 命令 备注
本机用户登入历史记录
syslog日志服务状态
syslog日志服务外发状态
syslog审计要素和日志
系统文件文件修改时间
重要日志文件状态
1.4.7、剩余信息保护
检测条目 命令 备注
分区情况
可用块设备信息
文件系统信息
1.4.8、入侵防范安全
检测条目 命令 备注
系统入侵行为
用户错误登入列表
ssh暴力登入信息
1.4.9、恶意代码防范
检测条目 命令 备注
clamav杀毒软件状态
1.4.10、资源控制安全
检测条目 命令 备注
xinetd服务状态
ssh服务状态
telnet-server服务状态
防火墙状态
hosts.deny策略
hosts.allow
登入超时限制

二、Linux加固脚本


2.1、脚本文件

Linux加固脚本文件:Protective_Script.sh


2.2、脚本操作说明

sudo sh CentOS_Protective_Script.sh

如果ostype是unknow,请不要继续执行


2.3、脚本简介

一键加固脚本为linux系统提供基础安全加固,包括以下几块内容加固:

2.3.1、简介
image.png

首次运行脚本,会检测当前系统类型,以及备份重要系统配置文件,包括system-auth、authorized_keys、sshd、sudoers、sshd_config、profile、su。通过选择加固编号进行相应的内容进行加固,也可以选择编号1,将所有内容都进行加固。

2.3.2、密码复杂度设置[Set Password Complexity Requirements ]
image.png
选择编号2,脚本会自动进行密码复杂度配置,配置内容为:密码修改重试3次机会,新密码与老密码必须有3字符不同,最小密码长度12个字符,包含大写字符至少一个小写字母至少一个数字至少一个特殊字符至少一个
配置成功,会提示[Password complexity set success],失败会提示[Password complexity set failed],重复执行脚本选择此编号,脚本每次都会配置,不会提示已配置过。
2.3.3、新增管理员账号[Create eproot account]

禁止使用root登入系统,需要创建eproot账号,授予管理员权限,并且保证运行命令时无需输入root密码。

image.png

选择编号3,会提示是否创建eproot账号,确认后,请输入密码,回车,脚本会自行创建eproot账号,并且授予管理员权限。重复执行脚本,选择编号3,如果已经创建过eproot账号,会列出创建的信息,并提示已创建。

image.png
2.3.4、远程登入账户设置[Set Remote Login Configuration(SSH)]
image.png

选择编号‘4’进行SSH远程登录相关安全配置,脚本会自动配置SSH协议为2,然后提示是否禁止root账号远程登入,并确定已经有其余可远程登入的账号。输入y,确认后回车关闭root远程登入。

image.png

重复执行脚本,选择编号4,会提示已经禁止root远程。

2.3.5、账户登入安全设置[Set Shell History and TMOUT]
image.png
2.3.6、远程登入端口设置[Set SSH Port]
image.png
2.3.7、账户登入失败处理[Set Logon failure handling]
image.png
#使用一下命令查看指定账户的失败次数
pam_tally2 --user=root
Login           Failures Latest failure     From
root                4    03/20/19 16:57:09  192.168.149.9
#以下命令可以立马重置账户的失败次数,解除限制(前提是已经进入系统)
pam_tally2 --user=root  --reset
2.3.8、配置备份与恢复[Recover Configuration]
image.png

执行脚本,选择编号8,脚本会将保存于所在backup目录下的系统配置还原。

无法还原以下配置

2.3.9、全部加固[ALL protective]

选择标号1,脚本会按[2-7]顺序自动执行脚本加固,部分参数需要手动输入。

上一篇下一篇

猜你喜欢

热点阅读