一、方便将服务器安全状况经过检测脚本直接输出txt文件,同时便于检查出安全隐患。 二、缩短安全检查和防御时间,提升安全检查和防御效率 github地址
https://github.com/xiaoyunjie/Shell_Script.git
linux
压缩包包含2个文件:git
CentOS_Check_Script.sh
: 脚本文件README.txt
: 说明文件Linux检测脚本:Check_script.shgithub
执行CentOS_Check_Script.sh
脚本文件进行检查,每次体检生成文件都是惟一的,命令格式以下:shell
sudo sh CentOS_Check_Script.sh | tee check_`date +%Y%m%d_%H%M%S`.txt
按三级等保要求,编写的一键检查脚本,此脚本只适合linux分支中的redhat、centos
,运行脚本将结果输出到自定义的文件中,脚本结果须要管理员人为检查,脚本结果中有相应提示检测内容是否须要整改。centos
警告:本脚本只是一个检查的操做,未对服务器作任何修改,管理员能够根据此报告进行相应的安全整改安全
管理员须要根据检测报告进行安全加固,须要加固的条目都会标记 [需调整]
bash
脚本捞取主机的基本信息,包含如下内容:服务器
基本信息名 | 命令 | 备注 |
---|---|---|
主机名 | ||
系统名称 | ||
系统版本 | ||
内核版本 | ||
系统类型 | ||
本机IP地址 | ||
CPU型号 | ||
CPU核数 | ||
机器型号 | ||
系统时间 |
检测条目 | 命令 | 备注 |
---|---|---|
总内存大小 | ||
已使用内存大小 | ||
可以使用内存大小 | ||
系统运行时间 | ||
系统负载 | ||
内存状态 | ||
僵尸进程 | ||
耗CPU最多进程 | ||
耗内存最多进行 | ||
环境变量 | ||
路由表 | ||
监听端口 | ||
网络链接 | ||
开机启动服务 |
检测条目 | 命令 | 备注 |
---|---|---|
活动用户 | ||
系统全部用户 | ||
系统全部组 | ||
当前用户的计划任务 |
检测条目 | 命令 | 备注 |
---|---|---|
密码复杂度 | ||
可疑帐户 | ||
密码过时天数 | ||
登入失败处理 |
检测条目 | 命令 | 备注 |
---|---|---|
非系统默认用户 | ||
系统特权用户 | ||
系统空口令帐户 |
检测条目 | 命令 | 备注 |
---|---|---|
本机用户登入历史记录 | ||
syslog日志服务状态 | ||
syslog日志服务外发状态 | ||
syslog审计要素和日志 | ||
系统文件文件修改时间 | ||
重要日志文件状态 |
检测条目 | 命令 | 备注 |
---|---|---|
分区状况 | ||
可用块设备信息 | ||
文件系统信息 |
检测条目 | 命令 | 备注 |
---|---|---|
系统入侵行为 | ||
用户错误登入列表 | ||
ssh暴力登入信息 |
检测条目 | 命令 | 备注 |
---|---|---|
clamav杀毒软件状态 |
检测条目 | 命令 | 备注 |
---|---|---|
xinetd服务状态 | ||
ssh服务状态 | ||
telnet-server服务状态 | ||
防火墙状态 | ||
hosts.deny策略 | ||
hosts.allow | ||
登入超时限制 |
CentOS_Protective_Script.sh
: 脚本文件README.txt
: 说明文件Linux加固脚本文件:Protective_Script.sh网络
CentOS_Protective_Script.sh
脚本文件进行加固,命令格式以下sudo sh CentOS_Protective_Script.sh
若是ostype是unknow,请不要继续执行ssh
一键加固脚本为linux系统提供基础安全加固,包括如下几块内容加固:
12个字符
,包含大写字符至少一个
,小写字母至少一个
,数字至少一个
,特殊字符至少一个
。root
帐号,新增管理员eproot
帐号,用于命令执行,远程登入。root
帐号远程登入SSH
端口root
帐号锁定5分钟backup
目录下,以便后续须要恢复配置时使用。再次运行脚本时,将不会再进行备份,除非原备份目录被删除。首次运行脚本,会检测当前系统类型,以及备份重要系统配置文件,包括system-auth、authorized_keys、sshd、sudoers、sshd_config、profile、su
。经过选择加固编号进行相应的内容进行加固,也能够选择编号1
,将全部内容都进行加固。
选择编号
2
,脚本会自动进行密码复杂度配置,配置内容为:密码修改重试3次机会,新密码与老密码必须有3字符不一样,最小密码长度12个字符
,包含大写字符至少一个
,小写字母至少一个
,数字至少一个
,特殊字符至少一个
。 配置成功,会提示[Password complexity set success]
,失败会提示[Password complexity set failed]
,重复执行脚本选择此编号,脚本每次都会配置,不会提示已配置过。
禁止使用root
登入系统,须要建立eproot
帐号,授予管理员权限,而且保证运行命令时无需输入root密码。
选择编号3
,会提示是否建立eproot
帐号,确认后,请输入密码,回车,脚本会自行建立eproot
帐号,而且授予管理员权限。重复执行脚本,选择编号3
,若是已经建立过eproot帐号,会列出建立的信息,并提示已建立。
选择编号‘4’进行SSH远程登陆相关安全配置,脚本会自动配置SSH
协议为2,而后提示是否禁止root
帐号远程登入,并肯定已经有其他可远程登入的帐号。输入y
,确认后回车关闭root
远程登入。
重复执行脚本,选择编号4
,会提示已经禁止root
远程。
5
帐户登入安全设置,输入y
回车,设置history
命令保存行数以及打印history
命令时间。shell
环境超时时间,选择区间为300~600秒,若是不输入任何值,脚本默认设置为600秒。5
,会从新设置history
和TMOUT
6
进行SSH
服务端口配置,输入y
,回车输入端口号,脚本会根据用户输入的端口号,配置更改相应的端口1024<port<65535
6
,修改ssh
端口,没法经过脚本改回端口22。7
,设置帐户登入失败处理,输入y
确认回车,脚本会自动进行配置。root
帐号锁定5分钟,超过限制时间,才能够从新登入。#使用一下命令查看指定帐户的失败次数 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
执行脚本,选择编号8
,脚本会将保存于所在backup
目录下的系统配置还原。
没法还原如下配置
选择标号1
,脚本会按[2-7]顺序自动执行脚本加固,部分参数须要手动输入。