1、方便将服务器安全情况通过检测脚本直接输出txt文件,同时便于检查出安全隐患。
2、缩短安全检查和防护时间,提高安全检查和防护效率
github地址https://github.com/xiaoyunjie/Shell_Script.git
一、Linux检测脚本
1.1、文件
压缩包包含2个文件:
-
CentOS_Check_Script.sh
: 脚本文件 -
README.txt
: 说明文件
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、脚本文件
-
CentOS_Protective_Script.sh
: 脚本文件 -
README.txt
: 说明文件
Linux加固脚本文件:Protective_Script.sh
2.2、脚本操作说明
- 执行
CentOS_Protective_Script.sh
脚本文件进行加固,命令格式如下
sudo sh CentOS_Protective_Script.sh
- 执行完成后,请按脚本提示重启相应服务
如果ostype是unknow,请不要继续执行
2.3、脚本简介
一键加固脚本为linux系统提供基础安全加固,包括以下几块内容加固:
- 口令复杂度:密码修改重试3次机会,新密码与老密码必须有3字符不同,最小密码长度
12个字符
,包含大写字符至少一个
,小写字母至少一个
,数字至少一个
,特殊字符至少一个
。 - 新增管理员账号:不直接使用
root
账号,新增管理员eproot
账号,用于命令执行,远程登入。 - 远程登入账户设置:限制
root
账号远程登入 - 账号登入安全设置:配置系统历史命令操作记录和定时帐户自动登出时间
- 远程登入端口设置:修改默认
SSH
端口 - 账户登入失败处理:限制登入失败三次,普通账号锁定5分钟,
root
账号锁定5分钟 - 系统配置文件备份还原:脚本在首次执行时会将系统配置保存于脚本所在目录下的
backup
目录下,以便后续需要恢复配置时使用。再次运行脚本时,将不会再进行备份,除非原备份目录被删除。
2.3.1、简介
![](https://img.haomeiwen.com/i9860291/9219bc2b1ee98cc6.png)
首次运行脚本,会检测当前系统类型,以及备份重要系统配置文件,包括system-auth、authorized_keys、sshd、sudoers、sshd_config、profile、su
。通过选择加固编号进行相应的内容进行加固,也可以选择编号1
,将所有内容都进行加固。
2.3.2、密码复杂度设置[Set Password Complexity Requirements ]
![](https://img.haomeiwen.com/i9860291/5a973cf5fcecf824.png)
选择编号
2
,脚本会自动进行密码复杂度配置,配置内容为:密码修改重试3次机会,新密码与老密码必须有3字符不同,最小密码长度12个字符
,包含大写字符至少一个
,小写字母至少一个
,数字至少一个
,特殊字符至少一个
。配置成功,会提示
[Password complexity set success]
,失败会提示[Password complexity set failed]
,重复执行脚本选择此编号,脚本每次都会配置,不会提示已配置过。
2.3.3、新增管理员账号[Create eproot account]
禁止使用root
登入系统,需要创建eproot
账号,授予管理员权限,并且保证运行命令时无需输入root密码。
![](https://img.haomeiwen.com/i9860291/10eb18f15f650505.png)
选择编号3
,会提示是否创建eproot
账号,确认后,请输入密码,回车,脚本会自行创建eproot
账号,并且授予管理员权限。重复执行脚本,选择编号3
,如果已经创建过eproot账号,会列出创建的信息,并提示已创建。
![](https://img.haomeiwen.com/i9860291/ce214903ae17aef2.png)
2.3.4、远程登入账户设置[Set Remote Login Configuration(SSH)]
![](https://img.haomeiwen.com/i9860291/bbc6c870bb24f6c1.png)
选择编号‘4’进行SSH远程登录相关安全配置,脚本会自动配置SSH
协议为2,然后提示是否禁止root
账号远程登入,并确定已经有其余可远程登入的账号。输入y
,确认后回车关闭root
远程登入。
![](https://img.haomeiwen.com/i9860291/503010a41ee4de44.png)
重复执行脚本,选择编号4
,会提示已经禁止root
远程。
2.3.5、账户登入安全设置[Set Shell History and TMOUT]
![](https://img.haomeiwen.com/i9860291/98df2bafbd7a0978.png)
- 选择编号
5
账户登入安全设置,输入y
回车,设置history
命令保存行数以及打印history
命令时间。 - 设置
shell
环境超时时间,选择区间为300~600秒,如果不输入任何值,脚本默认设置为600秒。 - 重复执行脚本,选择编号
5
,会重新设置history
和TMOUT
2.3.6、远程登入端口设置[Set SSH Port]
![](https://img.haomeiwen.com/i9860291/0389ab15dfa6d642.png)
- 选择编号
6
进行SSH
服务端口配置,输入y
,回车输入端口号,脚本会根据用户输入的端口号,配置更改相应的端口 - 脚本会对输入的端口进行判断是否满足要求,如果满足要求会进行设置,如果不满足要求脚本会给出提示,并要求用户重新输入确认更改端口,并输入端口号。
- 端口号规则: 输入端口号区间
1024<port<65535
- 重复执行脚本,选择编号
6
,修改ssh
端口,无法通过脚本改回端口22。
2.3.7、账户登入失败处理[Set Logon failure handling]
![](https://img.haomeiwen.com/i9860291/32541144aa76651c.png)
- 执行脚本,选择编号
7
,设置账户登入失败处理,输入y
确认回车,脚本会自动进行配置。 - 登入失败处理内容:登入失败三次后账号会被限制登入,普通账号锁定5分钟,
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
2.3.8、配置备份与恢复[Recover Configuration]
![](https://img.haomeiwen.com/i9860291/9882ad79cb749f49.png)
执行脚本,选择编号8
,脚本会将保存于所在backup
目录下的系统配置还原。
无法还原以下配置
- 新增的eproot账户不删除,防止误删。(eproot权限为修改前的状态)
2.3.9、全部加固[ALL protective]
选择标号1
,脚本会按[2-7]顺序自动执行脚本加固,部分参数需要手动输入。
网友评论