APP下载

Linux系统安全与加固

2018-03-04刘仁维

网络安全技术与应用 2018年11期
关键词:系统安全访问控制内核

◆刘仁维 李 杜 翟 琛

Linux系统安全与加固

◆刘仁维 李 杜 翟 琛

(兰州职业技术学院 甘肃 730070)

本文从系统架构的视角出发对Linux的安全体系进行分析,以高效、够用和安全的标准探讨了Linux安全配置的原则,从不同层面提出了对Linux系统进行安全加固的具体方法。

信息安全技术;系统安全;Linux;安全配置

0 引言

Linux操作系统开源、免费、自由使用开发,稳定可靠。中央国家机关政府采购中心正版软件采购网推荐的桌面操作系统中80%以上是Linux内核的,Windows只有win7一家入选[1],据中国国家互联网信息办公室发布的《2017年我国互联网网络安全态势综述》统计,国家信息安全漏洞共享平台(CNVD)2017年所收录的安全漏洞共15955个,较2016年增长了47.4%,操作系统漏洞占所有收录漏洞的12.9%,Linux全年收录漏洞228个,占所有收录漏洞的1.4%,环比增长4.6%[2]。可见Linux安全可靠,在国内使用日趋广泛。本文探讨如何在高效、够用和安全的原则下选择和配置Linux安全工具,加固Linux系统安全。

1 Linux与其它操作系统的比较

Linux是类UNIX系统,其安全模型及实现本质与UNIX相同。Linux是完全多用户操作系统,核心区域与用户区域严格区分,在架构中采用了“最少特权”概念,具有以角色为基础的接近权控制,用户只能使用系统中他们需要的那部分资源。Windows用户程序和操作系统的核心集成在一起,某些第三方应用软件需要管理员权限才能正确运行,通过应用软件发起的攻击很可能直接取得管理员权限;Linux严格区分root和其它用户,应用软件无需特权权限即可正常运行,通过应用软件攻击系统直接获得管理员权限的可能性很小。微软每个月的第二个星期二发布Windows操作系统和其他应用软件的补丁程序;由于开源,Linux系统无休止地接受各方面的研究和改进,使安全漏洞更容易暴露,发现的漏洞能及时得到透彻的研究和修补,并把补丁程序发布给用户,基本上达到实时解决。比起Windows“以隐匿求安全”,Linux“以透明求安全”更为安全。

2 Linux的安全体系

Linux的核心安全机制是身份认证、授权与访问控制、安全审计三部分。一个新的安全机制,最先以第三方软件或补丁的形式进入Linux系统,经过广泛深入地测试,如果确认很优秀,就会被收集到某个发行版甚至内核之中,这种遴选机制使Linux安全之树常青。Linux不缺安全工具,难题是在众多的安全工具中做选择和正确配置。

Linux安全体系的结构性变革是在2.6及以后版本的内核集成Linux安全框架(Linux security module,LSM),为授权与访问控制提供统一管理的方法。LSM本身不提供任何安全策略,只为各种安全策略提供通用框架,用户根据自己的需求选择安全策略以安全模块的形式加载到内核上实现。LSM的安全域设计使第一个安全模块以主模块身份加载到LSM,起管理和综合作用,其余安全模块作为从属通过主安全模块加载到LSM。LSM不具有任何的决策综合能力,当有多个安全机制共同协调工作时,多个安全模块的决策结果由主模块综合后实施。

Linux系统安全大幅度提升的另一个因素是SELinux安全机制。SELinux是内核级的模块,基于域和类型增强(DTE)实现基于角色的访问控制,通过LSM框架合并到内核中。SELinux使用Linux本身文件系统来管理可执行程序,只有当标准Linux访问检查成功后SELinux才会生效。正确配置SELinux可使Linux的安全级别从自主访问控制(DAC)提高到强制访问控制(MAC)的B1级[3]。

3 Linux安全配置

3.1 配置原则

应用需求的多样性,决定配置的复杂性,Linux安全配置应遵循以下原则:

(1)使用最新的稳定版内核。

(2)关闭所有不需要的服务和程序。

(3)及时修补系统和服务漏洞。

(4)使用安全的服务器。可以使用现代虚拟技术,做到一机一服务。

(5)尽量少用root登录。.

3.2 安全配置

以下从12个方面讨论Linux系统安全配置。

(1)防止物理接触攻击,设置BIOS密码和屏幕保护口令,禁止U盘和光盘启动。

(2)确认启用栈上数据不可执行:sysctl -w kernel.exec-shield=1;地址空间随机化:sysctl -w kernel.randomize_va_space=2等内存保护,防缓冲区溢出攻击。

(3)系统和应用安装配置完成后,从黑客视角做一次强力的渗透测试并修补。对黑客的目标目录和文件建立数字指纹,生成文件完整性数据库,定期进行文件完整性检查。常用工具有md5sum、tripwire、AIDE、MD5DEEP等,后者能对整个文件系统递归验证。

(4)禁用或删除无用账号、空口令账号和非root但UID为零的账号,用密码策略强制密码达到要求强度,配置PAM限定登录次数预防无休止的登录攻击,尝试登录连续失败次数超过预定次数时账户将被锁定。配置root只能从控制台登录,如果确实需要从网络登录,用ssh+认证密钥文件登录。

(5)定期检查有SUID、SGID特性的程序和SBIT特性的目录,消除本地提权攻击入口。精心设置i,s等特殊权限。使用Wheel组,限制su范围。谨慎配置/etc/sudoers文件,限制sudo用户。

(6)环境变量越少越安全,环境变量中不要使用通配符,PATH路径要精心设计。

(7)各项服务尽量使用chroot机制安装,使用证书验证身份。

(8)Linux访问控制粒度太粗,只有所有者、组和其他人三个层,安装访问控制列表程序包(Access Control List,ACL),在/etc/fstab文件中配置磁盘分区支持ACL,为重点目标设置ACL权限细化。

(9)用命令setsebool精确设置SELinux,如果一定要关闭SELinux,在/etc/selinux/config中设置SELINUX=permissive,使SELinux在通过不符合策略的行为时,能继续发出警告,并保持变动的文件标签标志正确。

(10)配置Netfilter防火墙只允许需要的IP地址和端口通过。使用防火墙结合端口碰撞技术隐藏重要服务器[4]。安装使用Linux入侵检测系统(LIDS)或Linux恶意软件检测工具(Linux Malware Detect,LMD)可以检测和阻止已经穿透了防火墙的大部分攻击。

(11)Linux尽管稳定可靠,但高危漏洞时有发现,美国国家漏洞库(NVD)于2018年1月16日发布的CVE-2018-5703,是内核中IPV6堆栈组件漏洞,危险指数高达10分,攻击复杂度低,无需身份认证,无需内网或本地访问权,能导致完全的信息泄露、系统完整性完全破坏和特权提升。安装nessus并及时更新,可以查补最新漏洞,应对此类威胁。

(12)Linux使用日志系统和auditd程序组进行审计,设置日志文件对所有用户不能读写,不能删除,只能追加。注意防止日志因拒绝服务攻击填满,不能记录随之而来的真正攻击。使用aureport生成简要报告,使用ausearch查看审计报告,尽早发现系统异常。

4 结束语

配置的便利性和安全性不可同时满足。Linux访问控制粒度太粗,root用户权限太大,在配置方便的同时也留下了众多隐患,为消除这些隐患又开发了众多的安全机制,重复安装功能重叠的组件不但降低效率,而且会引入漏洞。如何将安全组件本身精简到够用并正确配置是本文的目标。

[1]http://www.zycg.gov.cn/rjcg/software_product_more_basics/2741.

[2]http://www.cac.gov.cn/2018-05/30/c_1122910613.htm.

[3]管华,崔家源.基于SELinux的强制访问控制机制分析与研究[J].数字技术与应用,2016.

[4]Chris.Binnie著,田洪译.服务器安全攻防[M].清华大学出版社,2017.

猜你喜欢

系统安全访问控制内核
新型电力系统安全稳定运行分析
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
铁路信号集中监测系统安全隔离机制研究
铁路信号系统安全输入输出平台
Linux内核mmap保护机制研究
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术