freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Linux安全加固
2019-05-06 09:26:30
所属地 湖南省

原创: kid 合天智汇

上次整理了 基于等保三级的win server 2012的加固方案(Windows安全加固

这次是基于等保三级的Linux方案

众所周知,Linux有很多版本,就目前我看到的,大部分用的是centos6.5 到7

其次是Ubuntu16.5和14等

命令及部分文件都有差异,所以方案的具体实施会不同。

因此,这里列出的没那么细致,但包含基本的方向。

方案分为身份鉴别、访问控制、安全审计、资源控制和入侵防范5个方面。

有些依然需要根据业务需求来确定是否执行。

01身份鉴别

《信息系统等级保护基本要求》

主机安全---身份鉴别

b)应对登录操作系统和数据库系统的用户进行身份标识和鉴别;

c)操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,系统的静态口令应在8位以上并由字母、数字、符号等混合组成并每三个月更换口令。

口令复杂度策略

口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

/etc/security/pam_pwcheck.conf

Minlen //密码最小长度要求;

Lcredit //小写字符数量

Ocredit //特殊字符数量

多次登录失败锁定策略

系统应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号,root用户不适用该项配置。

修改/etc/pam.d/sshd文件,添加如下两行:

auth requiredpam_tally.so no_magic_root #此行的位置需要在该文件的第一行。

account requiredpam_tally.so deny=6 no_magic_root

重启sshd服务:/etc/init.d/sshdrestart

不同版本可尝试:

设置连续登陆6次后帐号锁定:

修改/etc/pam.d/sshd文件,添加如下两行:

auth requiredpam_tally.so deny=6

account requiredpam_tally.so

重启sshd服务:/etc/init.d/sshdrestart

解锁方法:以root用户登录,执行如下操作:

查看哪些用户被锁定:pam_tally

为用户解锁:pam_tally--user username --reset=0

口令最长生存期策略

要求操作系统的账户口令的最长生存期不长于90 天。

/etc/login.defs

PASS_MAX_DAYS 90//密码最长使用期限为90天

PASS_MIN_DAYS 10//密码最短使用期限为10天

PASS_WARN_AGE 7//密码到期10天前提醒

修改Banner信息

修改回显信息/etc/issue和/etc/issue.net

#echo "Authorized users only. All activity may be monitored and reported "> /etc/issue

#echo "Authorized users only. All activity may be monitored and reported "> /etc/issue.net

02访问控制

《信息系统等级保护基本要求》

主机安全---访问控制

e)应及时删除多余的、过期的账户,避免共享账户的存在。

多余账户锁定策略

应锁定与设备运行、维护等工作无关的账号。

/etc/password以root账户登录Linux系统

锁定用户方法一:

修改/etc/password文件,将需要锁定的用户的shell域后添加nologin;

test:x:1000:100:-LINUX:/home/test:/bin/bash/nologin

锁定用户方法二:

在超级权限的账户下使用”passwd”命令

#passwd –lusername //锁定账户;

#passwd –dusername//解锁用户;

解锁用户后需重新设置密码,且/etc/passwd文件内容不会发生变化。该操作比较麻烦,不推荐使用。

一般情况下,需要锁定的用户:lp,nuucp,hpdb,sync,adm

共享账号检查

系统需按照实际用户分配账号;

应按照不同的用户分配不同的账号,避免不同用户间共享账号,避免用户账号和服务器间通信使用的账号共享。

如需建立用户,参考如下:

useradd username//创建账号

passwd username//设置密码

《信息系统等级保护基本要求》

主机安全---访问控制

应启用访问控制功能,依据安全策略控制用户对资源的访问。

《信息系统等级保护基本要求》

主机安全---访问控制

b)应根据管理用户的角色(如:系统管理员、安全管理员、安全审计员等)分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限。

关键目录权限控制

根据安全需要,配置某些关键目录其所需的最小权限;

重点设置password、shadow、group、service、login.defs、xinetd.conf、security、ssh_config文件权限。

其实很多版本都默认设置了一些。

ls –l /etc/passwd//查看passwd文件是否为644权限

ls –l /etc/shadow//查看shadow文件是否为600权限

ls –l /etc/group//查看group文件是否为644权限

ls –l /etc/service//查看service文件是否为644权限

ls –l/etc/login.defs //查看login.defs是否为644权限

ls –l/etc/xinetd.conf //查看xinetd.conf文件是否为600权限

ls –l/etc/security //查看security文件是否为600权限

ls -l/ssh/ssh_config //查看ssh_config文件是否为600权限

用户缺省权限控制

umask值应为027或更小权限

/etc/profile

在文件末尾增加一条行:umask027

需要说明下:

/etc/profile和/etc/bashrc都可以用于设置用户登录系统时自动执行某些操作,他们的区别是/etc/profile只在用户第一次登录时被执行,而/etc/bashrc则在用户每次登录加载BashShell时都会被执行。

因而,修改/etc/profile文件,将只对新创建的用户生效;修改/etc/bashrc文件,则对所有用户都生效。

禁止Control-Alt-Delete键盘关闭命令

禁止Control-Alt-Delete键盘关闭命令,使得在控制台直接按ctl-alt-del不能重新启动计算机。

如下文件也可能没有。

在“/etc/inittab”文件中注释掉下面这行(使用#):ca::ctrlaltdel:/sbin/shutdown -t3 -r now 改为:#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

日志文件权限

只能追加数据,不能删除日志文件

chattr +a/var/log/messages       #如果不存在则忽略

历史命令设置

限制命令记录大小

/etc/profile,在文件中加入如下(存在则修改):

HISTSIZE=50

执行以下命令让配置生效

source /etc/profile

更改主机解析地址的顺序

防止ip欺骗

/etc/host.conf文件在空白处加入下面三行:

order hosts,bind#第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。

multi on#第二项设置检测是否"/etc/hosts"文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。

nospoof on#第三项设置说明要注意对本机未经许可的IP欺骗。

03安全审计

主机安全---安全审计

b)审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用、账号的分配、创建与变更、审计策略的调整、审计系统功能的关闭与启动等系统内重要的安全相关事件。

c)审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等

安全日志完备性要求

安全日志完备性要求(如果没有相关命令及文件,则不执行)

系统应配置完备日志记录,记录对与系统相关的安全事件。

/etc/syslog.conf

配置如下类似语句:

*.err/var/log/errors

authpriv.info/var/log/authpriv_info

*.info /var/log/info

auth.none/var/log/auth_none

/etc/login.defs

修改LASTLOG_ENAB的属性:

LASTLOG_ENAB yes

/usr/lib/acct/accton/var/adm/pact

开启acct服务:chkconfigacct on

执行读取命令lastcomm[user name]

主机安全---安全审计
f)应保护审计记录,避免受到未预期的删除、修改或覆盖等,保存时间不少于半年。

统一远程日志服务器配置

当前系统应配置远程日志功能,将需要重点关注的日志内容传输到日志服务器进行备份。

/etc/syslog.conf,

增加syslog服务器配置:*.*@logserver

保存退出后重新启动syslog服务:servicessyslogd restart

日志文件权限控制

系统应合理配置日志文件权限,控制对日志文件读取、修改和删除等操作。

chmod 600/var/log/authpriv_info

chmod 644 //var/log/errors

chmod 644/var/log/info

chmod 644/var/log/auth_none

配置NTP服务器,保证时间同步。

04资源控制

主机安全---资源控制

b)应根据安全策略设置登录终端的操作超时锁定。

字符操作界面账户定时退出

对于具备字符交互界面的系统,应配置定时帐户自动登出,超时时间为300秒。如不使用字符交互界面,该配置可忽略。

/etc/profile中增加exportTMOUT=300

/etc/profile

export TMOUT=300

主机安全---资源控制

a)应通过设定终端接入方式、网络地址范围条件限制登录;

root账户远程登录账户限制(一般不做)

/etc/ssh/sshd_config

PermitRootLogin no

重启sshd服务:servicesshd restart

主机安全---资源控制

d)应限制单个用户对系统资源的最大或最小使用限度;

防止堆栈溢出

/etc/security/limit.conf增加如下一行

*  hard core 0

保存文件后退出,重启系统生效

05入侵防范

主机安全---入侵防范

c)操作系统应遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器、系统软件预防性维护服务等方式保持系统补丁及时得到更新。

关闭不必要的网络和系统服务

根据每台机器的不同角色,关闭不需要的系统服务。如无特殊需要,应关闭lpd,telnet,routed,sendmail,

bluetooth,identd,xfs,rlogin,rwho,rsh,rexec服务。

相关操作学习:

Linux服务器通用安全加固指南:学习如何对我们的服务器进行安全加固,点击http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015070311360700001开始操作!

image.png

本文为合天原创,未经允许,严禁装载。

# 合天智汇
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
渗透测试和实践
  • 0 文章数
  • 0 关注者