linunx加固脚本限制超级管理员远程登录_技术干货 | 安全服务之安全基线及加固(二)Linux篇...

2021年9月13日 1点热度 0条评论 来源: weixin_39697143

欢迎各位添加微信号:qinchang_198231

加入安全+ 交流群 和大佬们一起交流安全技术

0x01 前言

安全服务工程师大家应该都知道,对于他的岗位职责你可能会说不就是渗透测试啊、应急响应嘛.....实际上正式一点的企业对于安服的要求是包括了漏洞扫描、安全基线检查、渗透测试、安全加固、日志分析、恶意代码检查、应急响应、安全加固等差不多十个方面的内容的。内容多吗?我也觉得多!

对于基线加固说,不管是对于安服还是安全运营人员来说都是被要求的!一起来看看呗!(全篇以CentOS 6.5为例)

0x02  身份鉴别

1、 检查是否存在除root之外UID为0的用户

安全基线项说明:因为UID为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0。需要检查是否存在除root之外UID为0的用户

检测操作步骤:执行:awk -F:  '($3 == 0) { print $1 }’  /etc/passwd

基线符合性判定依据:返回值包括“root”以外的条目,则低于安全要求;

2、用户口令设置(1)

安全基线项说明:对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。

检测操作步骤:    1.询问管理员是否存在如下类似的简单用户密码配置,比如:

root/root, test/test, root/root1234

基线符合性判定依据:不存在空口令帐号

3、用户口令设置(2)

安全基线项说明:对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。

检测操作步骤    

执行:more /etc/login.defs,检查PASS_MAX_DAYS/ PASS_MIN_DAYS/PASS_WARN_AGE参数

基线符合性判定依据:建议在/etc/login.defs文件中配置:

PASS_MAX_DAYS   90      #新建用户的密码最长使用天数

PASS_MIN_DAYS   0        #新建用户的密码最短使用天数

PASS_WARN_AGE   7       #新建用户的密码到期提前提醒天数

4. 用户口令设置(3)

安全基线项说明:对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。

检测操作步骤    

执行:awk -F: '($2 == "") { print $1 }' /etc/shadow, 检查是否存在空口令帐号

5、用户口令强度要求

安全基线项说明:对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

检测操作步骤:/etc/pam.d/system-auth文件中是否对pam_cracklib.so的参数进行了正确设置。

基线符合性判定依据:建议在/etc/pam.d/system-auth 文件中配置:

password  requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=1

至少8位,包含一位大写字母,一位小写字母和一位数字

6、用户锁定策略

安全基线项说明:对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过10次,锁定该用户使用的帐号。

检测操作步骤:/etc/pam.d/system-auth文件中是否对pam_tally.so的参数进行了正确设置。

基线符合性判定依据:设置连续输错10次密码,帐号锁定5分钟,

使用命令“vi /etc/pam.d/system-auth”修改配置文件,添加

auth required pam_tally.so onerr=fail deny=10 unlock_time=300

注:解锁用户 faillog  -u    -r

0x03  访问控制

1、用户的umask安全配置

安全基线项说明:帐号与口令-用户的umask安全配置

检测操作步骤:执行:

more /etc/profile  

more /etc/csh.login  

more /etc/csh.cshrc  

more /etc/bashrc

检查是否包含umask值且umask=027

基线符合性判定依据:umask值是默认的,则低于安全要求

2、重要目录和文件的权限设置

安全基线项说明:文件系统-重要目录和文件的权限设置

检测操作步骤:执行以下命令检查目录和文件的权限设置情况:

ls  –l  /etc/

ls  –l  /etc/rc.d/init.d/

ls  –l  /tmp

ls  –l  /etc/inetd.conf

ls  –l  /etc/passwd

ls  –l  /etc/shadow

ls  –l  /etc/group

ls  –l  /etc/security

ls  –l  /etc/services

ls  -l  /etc/rc*.d

对于重要目录,建议执行如下类似操作:

# chmod -R 750 /etc/rc.d/init.d/*

这样只有root可以读、写和执行这个目录下的脚本。

3、查找未授权的SUID/SGID文件

安全基线项说明:文件系统-查找未授权的SUID/SGID文件

检测操作步骤:用下面的命令查找系统中所有的SUID和SGID程序,执行:

for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do

find $PART ( -perm -04000 -o -perm -02000 ) -type f -xdev -print

Done

建议:经常性的对比suid/sgid文件列表,以便能够及时发现可疑的后门程序

基线符合性判定依据:若存在未授权的文件,则低于安全要求;

4、检查任何人都有写权限的目录

安全基线项说明:文件系统-检查任何人都有写权限的目录

检测操作步骤:在系统中定位任何人都有写权限的目录用下面的命令:

for PART in `awk '($3 == "ext2" || $3 == "ext3")

{ print $2 }' /etc/fstab`; do

find $PART -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -print

Done

基线符合性判定依据:若返回值非空,则低于安全要求;

5、查找任何人都有写权限的文件

安全基线项说明:文件系统-查找任何人都有写权限的文件

检测操作步骤:在系统中定位任何人都有写权限的文件用下面的命令:

for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do

find $PART -xdev -type f ( -perm -0002 -a ! -perm -1000 ) -print

Done

基线符合性判定依据:若返回值非空,则低于安全要求;

0x04  安全审计

1、 syslog登录事件记录

安全基线项说明:日志审计-syslog登录事件记录

检测操作步骤:执行命令:more /etc/rsyslog.conf

查看参数authpriv值

基线符合性判定依据:若未对所有登录事件都记录,则低于安全要求;

2、 Syslog.conf的配置审核

安全基线项说明:日志审计-Syslog.conf的配置审核

检测操作步骤:执行:more /etc/rsyslog.conf,查看是否设置了下列项:

kern.warning;*.err;authpriv.none @loghost

*.info;mail.none;authpriv.none;cron.none @loghost

*.emerg @loghost

local7.* @loghost

建议:配置专门的日志服务器,加强日志信息的异地同步备份

基线符合性判定依据:若未设置,则低于安全要求;

3、 设置history时间戳

在问题定位时,我们有时需要查看history命令记录,看是否有删除/移动文件、修改配置等误操作,为history命令添上时间记录,可便于分析、定位问题。默认如下:

执行:vim ~/.bash_profile

export HISTTIMEFORMAT="%F %T “

export HISTTIMEFORMAT=“%F %T ‘whoami’"

0x05  资源控制

1、登录超时

安全基线项说明:帐号与口令-检查登录超时设置

检测操作步骤:使用命令“vi /etc/profile”修改配置文件,添加“TMOUT=”行开头的注释,建议设置为“TMOUT=180”,即超时时间为3分钟。

基线符合性判定依据:返回值为空或值低于180,则低于安全要求

2、root远程登录限制

安全基线项说明:对SSH服务进行安全检查

检测操作步骤:使用命令“cat /etc/ssh/sshd_config”查看配置文件

1.检查是否允许root直接登录

检查“PermitRootLogin ”的值是否为no

2.检查SSH使用的协议版本

检查“Protocol”的值

基线符合性判定依据:使用命令“vi /etc/ssh/sshd_config”编辑配置文件

1.不允许root直接登录

设置“PermitRootLogin ”的值为no

2.修改SSH使用的协议版本

设置“Protocol”的版本为2

3、远程连接的安全性配置

安全基线项说明:帐号与口令-远程连接的安全性配置

检测操作步骤:执行:find  / -name  .netrc,检查系统中是否有.netrc文件,

执行:find  / -name  .rhosts ,检查系统中是否有.rhosts文件

基线符合性判定依据:返回值包含以上条件,则低于安全要求;

等级保护基本要求:7.1.3.7 主机:资源控制(A3),a)应通过设定终端接入方式、网络地址范围等条件限制终端登录。

4、 更改SSH服务端口

配置操作

/etc/ssh/sshd_config

0x06  入侵防范

1、操作系统Linux关闭不必要的服务

安全基线项说明:帐号与口令-关闭不必要的服务

检测操作步骤:

使用命令“who -r”查看当前init级别

使用命令“chkconfig --list ”查看所有服务的状态

基线符合性判定依据:若有不必要的系统在当前级别下为on,则低于安全要求

备注:需要手工检查。

使用命令“chkconfig --level on|off|reset”设置服务在个init级别下开机是否启动

0x07  后记

内容有点多,不明白的地方百度一下,查查资料应该是不难。本来就是之前学习的的笔记,说实话,本来我的记性就差,让我记忆我也不能的完全记住!(哈哈哈哈哈)

技术干货 | 安全服务之安全基线及加固(一)Windows篇

    原文作者:weixin_39697143
    原文地址: https://blog.csdn.net/weixin_39697143/article/details/110129702
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。