前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安全服务之安全基线及加固(二)Linux篇

安全服务之安全基线及加固(二)Linux篇

作者头像
Power7089
发布2020-07-27 16:28:04
8.2K0
发布2020-07-27 16:28:04
举报

此文章为原创连载文章,关注公众号,持续更新。

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" ||

{ 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 <init级别> <服务名> on|off|reset”设置服务在个init级别下开机是否启动

0x07 后记

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员阿甘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01 前言
  • 0x02 身份鉴别
  • 0x03 访问控制
  • 0x04 安全审计
  • 0x05 资源控制
  • 0x06 入侵防范
  • 0x07 后记
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档