美文网首页
Linux系统检测和防护脚本

Linux系统检测和防护脚本

作者: 猪蹄胖 | 来源:发表于2019-11-08 18:00 被阅读0次

    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、简介
    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
    • 选择编号5账户登入安全设置,输入y回车,设置history命令保存行数以及打印history命令时间。
    • 设置shell环境超时时间,选择区间为300~600秒,如果不输入任何值,脚本默认设置为600秒。
    • 重复执行脚本,选择编号5,会重新设置historyTMOUT
    2.3.6、远程登入端口设置[Set SSH Port]
    image.png
    • 选择编号6进行SSH服务端口配置,输入y,回车输入端口号,脚本会根据用户输入的端口号,配置更改相应的端口
    • 脚本会对输入的端口进行判断是否满足要求,如果满足要求会进行设置,如果不满足要求脚本会给出提示,并要求用户重新输入确认更改端口,并输入端口号。
    • 端口号规则: 输入端口号区间 1024<port<65535
    • 重复执行脚本,选择编号6,修改ssh端口,无法通过脚本改回端口22。
    2.3.7、账户登入失败处理[Set Logon failure handling]
    image.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]
    image.png

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

    无法还原以下配置

    • 新增的eproot账户不删除,防止误删。(eproot权限为修改前的状态)
    2.3.9、全部加固[ALL protective]

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

    相关文章

      网友评论

          本文标题:Linux系统检测和防护脚本

          本文链接:https://www.haomeiwen.com/subject/sqywbctx.html