龙空技术网

Linux安全加固

合天网安实验室 334

前言:

现在朋友们对“ubuntu系统加固”大约比较重视,姐妹们都需要剖析一些“ubuntu系统加固”的相关内容。那么小编同时在网络上收集了一些对于“ubuntu系统加固””的相关资讯,希望大家能喜欢,小伙伴们快快来学习一下吧!

原创: 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服务器通用安全加固指南:学习如何对我们的服务器进行安全加固,点击开始操作

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

标签: #ubuntu系统加固