时间:2024-07-28
谭仁龙
(广东省技师学院 广东 惠州 516100)
Linux 操作系统的特点是安全性较高、运行状态稳定、资源占用率较低,是目前常用的服务器平台,但是Linux操作系统面临的安全问题也日益严重,要积极分析Linux系统中各种风险形成的原因,并制定合理的防护措施。 本文针对Linux 操作系统中存在的安全问题,分析了问题形成的原因以及攻击的常见手段,制定针对性的防护对策,这也是目前计算机维护与管理人员关注的重点问题。
采用扫描技术来检查服务器中是否存在安全问题,因此黑客能够借此采用爆破注入的方式对服务器产生攻击。例如,Web 服务器接口经常使用80、443、2222、2223 等接口,而关系型数据库管理系统(my structured query language, MySQL)数据库接口经常使用3306 等接口。
口令是系统安全的第一步,最简单有效的方法是用暴力拆解,该方法的成本比较低,很多系统管理人员则采用root、admin、shell 等默认的用户名,用户口令为默认密码,比如system、root、1234 等。 如果攻击者使用的是高速的电脑,再加上密码词典,那么很容易就会被攻破。
随着智能手机的应用,基于Linux 内核的Android 手机正面临着不断增多的木马、病毒等威胁。 在1996 年,Staog 病毒系统出现,是第一个以Linux 系统为基础的病毒程序,Staog 的病毒体系存在着提权的危险,Staog 预示着系统存在着被病毒侵袭的风险,各种类型的挖矿木马也在不断增加,特别是针对Linux 操作系统的更是如此。
拒绝服务作为近几年来计算机网络中常用的、预防难度大的攻击手段,由于传输控制协议(transmission control protocol, TCP)的限制,TCP 连接请求容易被伪造或更改,若是Syn 半连接的数目达到了基线,那么系统很容易因为用尽所有资源而崩溃,会导致系统不能对正当的连接请求做出反应。 通常情况下,此攻击并不会影响到系统的数据,而是会让系统失去反应能力,导致计算机或者网络已经无法提供相应的服务。
Linux 是一款免费的开源软件,在系统的二次开发过程中,不同的程序员都能参与到系统的优化中,因此会导致黑客通过系统开发的源代码进行木马病毒的传播与攻击,常见问题包括:第一,Linux 系统账号发生漏洞,远程攻击人员采用获取服务器的root 超级管理员账号来进行木马病毒的传播,并且获取操作服务器的可执行权限,可进行增删改查等各种操作,进入系统根目录下获取企业或用户的文档信息以及数据信息。 第二,Linux 系统中的内核系统发生漏洞,远程攻击者可以利用内核的漏洞,绕过Linux 系统本身的安全保护体系进入到核心区域内,然后对系统中内核参数进行篡改,导致系统交互服务发生问题,从而造成服务终止并且直接造成系统瘫痪。 第三,因为Linux 系统具有经济性、兼容性的特点,很多企业都采用Linux 作为企业服务器系统。 各个企业部署在服务器中的广域网服务(world electronic broadcast, WEB)、数据库服务、网络服务等都会面临安全漏洞问题。 (1)WEB 服务。 不法分子会盗取用户WEB 页面中的配置信息和其他数据库中的信息,发生文件描述符泄露、日志记录失败等问题。 (2)数据库服务。 常见的数据库包括MySQL、远程字典服务(remote dictionary server, REDIS)、橡树岭自动化计算机和逻辑引擎(oak ridge automated computer and logical engine, ORACLE)等。 因此数据库的漏洞修复、账号管理授权都是容易被黑客攻击的地方。 (3)文件传输协议(file transfer protocol, FTP)文件服务。 常见的FTP文件系统中保存了网站和用户大量的数据、图片信息等。一旦发生数据和信息的泄露,用户隐私、身份信息都会被攻击者有偿贩卖[1]。 黑客利用Linux 的协议漏洞,能够明确获取服务器IP 流向,也可以通过对服务器端口的分析来获取端口占用状况,进而快速定位到平台的工作流程中。
2.2.1 Linux 服务器中有不同类型的漏洞
Linux 服务器中的常见漏洞为:涉及提权漏洞,该弱点很大程度上是通过系统daemon 获取用户权限的;分布式拒绝服务攻击(distributed denial of service,DDoS)漏洞,此漏洞会在短时间内对服务器端传送非法链接,导致服务器无法对正常的请求做出回应。
2.2.2 Linux 系统中开源软件存在缺陷
开源软件包括信息服务块(server messages block,SAMBA)、开源数据库软件(open source database software,OSDS)、安全的文件传输协议守护进程(very secure FTP daemon, VSFTPD)、 修补服务器( a patched server,APACHE)等,开放源码软件自身也有许多缺陷。 VSFTPD软件对FTP 服务器进行了配置,如果使用了缺省配置,那么用户就有可能在登录之后浏览全部文件。 BIND 也隐含着严重的安全性缺陷,攻击人员可以通过它来实现TKEY的查询,对DNS 服务器进行DoS 的攻击,造成服务器无法完成域名解析的服务[2]。
3.1.1 保证用户账号管理的合理性
账户作为用户使用系统的条件,对账号进行科学合理的规划是确保计算机系统安全的关键。 具体步骤如下:(1)避免root 用户远程登录。 因为root 用户拥有最高的权限,可以通过远程登录,所以很容易被人攻破密码。 通过修改配置文件能够约束root 远程登录系统。 见图1,将PermitRootLongin 更换为no 则完成设置。 若是需要root 权限才可以远程操作,那么可以先通过普通用户登录以后再转为root 用户,进行远程操作,能够先采用普通用户登录系统后再转换为root 用户,使用ssh 与身份验证文件相结合的方法来执行登录操作是最好的方法。 (2)停止使用多余的账户。 在应用Linux 系统中,会默认对所有用户开放权限,但是账号数量越多则风险系数就越高,因此可以删除一些账户来保证服务器的安全。 对于某些危险账户,可以改变默认的shell 变量,来确保安全性,比如FTP 账户,就不能设置/bin/bash 或bin/sh 等shell 变量[3]。(3)su、sudo 命令必须合理选择。 Linux 系统中的普通用户没有足够的权限,也无法对系统进行修改,但是普通用户需要系统的使用权限,那么就必须通过su 或sudo 命令来实现。 su 命令在切换用户时,需要将根的密码与别人共享,该做法有很大的风险,sudo 命令仅需一般的用户口令即可运行,所以要尽量避免使用su,而选择sudo 命令。
图1 禁止远程登录
3.1.2 确保用户口令的正规化
(1)设置密码对策。 不能设定较简单的密码,比如,攻击者可以轻松地破解弱口令的密码从而获取应用权限,通过设置密码的默认参数可以避免弱口令的形成,通过修改/etc/login. defs 配置文件中的PASS-MIN-LEN、PASSMAX-DAYS 等字段,可以通过减少密码的长度从而符合最小长度的要求来进行设计。 如图2 所示。 (2)空口令使用者要添加新密码。 空口令用户因为在创建的时候没有设置密码所以有极大的风险。 要先找到系统中的空口令用户,通过空口令用户的查找,为用户设定符合复杂度要求的密码。 (3)注意控制用户的登录次数。 可以将用户的多次登录视为错误,当输入的口令超出了设定值时,将会自动锁定使用者的登录,并会重新设定上锁的时间,才会重新允许使用者登录。 通过修改/etc/pam.d/login 的配置文件,可以设置错误的登录次数和锁定的时间。
图2 设置口令策略
设置后的用户连续输入5 次错误密码后,系统会自动锁定600 s,可避免字典被暴露破解,同时用户采用SSH 方式登录系统的时候也能够通过修改/etc/pam.d/sshd 文件来锁定账户。
3.1.3 文件权限设置合理性
(1)对于敏感文件,属性是不能改变的,比如passwd、阴影文件,而对于日志文件来说,附加属性是可以被设置的。 (2)保存临时文件的文件夹要注意权限设置,向用户提供读取、写入和执行的权限时要确保安全。 (3)文件特殊权限设置,例如sid、 sgid、 sbit 三种许可。 比如当某个可执行程序设置用户标识符(set user identifier, SUID)权限时,其他用户就可获取临时权限。 黑客就是利用SUID与根账户结合在一起,让普通的使用者临时获得拥有者的权限,为了避免该问题,则需要从一些系统文件中移除SUID 和SGID 权限[4]。
3.1.4 做好补丁并保持更新
不管是Windows 还是Linux 系统,都要重视系统安全,尽早地打好补丁并准备好更新,在更新和补丁未公布之前,要先制定安全提议。
3.1.5 设置好用户账号的安全等级
Linux 的每个账号都有不同的权限,在构建一个新的ID 后,管理人员要赋予账号相关权限并且归并到不同用户组中。 在Linux 系统中的tcpd 上设置允许上机和不允许上机的人员名单,允许上机名单放置在/etc/hosts.allow文件中,不允许上机名单则放置在/etc/hosts. deny 中,完成后要重新启动inetd 程序,Linux 系统可以自动将允许和不允许进入的结果记录在rar/log/secure 文件中,系统管理员可以在此文件中查看可以的登录记录。 每个账号由单人负责,若是某个负责ID 的员工离开那么就要立刻删除账号。 以往黑客常用具有root 权限的账号,超级用户有权修改、删除各种系统设置从而可以随意侵袭系统,因此在赋予账号root 权限前必须做好慎重的考虑和检查。
3.2.1 采取远程管理保障网络安全
管理员通常使用远程登录方法来维护和管理服务器,常使用的工具有Struts、Spring、Hibernate、安全外壳协议(secure shell, SSH)等。 由于telnet 是以明文传输协议为基础的,所以它极易被入侵,因此若是需要远程登录,要采用SSH 的方式,取消telnet。 SSH 协议可以实现对数据流的加密,从而保障了数据的安全性,保证了网络安全。 一般SSH允许根用户登录,但是登录方式也有一定的风险,需要对sshd 服务进行修改,才能让用户登录,例如远程使用管理权限则需要用普通用户身份登录,登录后转变为根用户。 同时,用5 位以上的不知名端口号来代替默认的sshd 侦听端口号22,比如12345,避免服务器受到暴露攻击。
3.2.2 不定期监测端口
管理员要针对系统开放的端口进行明确,通过netstat命令可以知道哪些是开放的、哪些是在运行中的。 关闭不使用的端口,从而可以减少被攻击的可能性,关闭端口可以使用/ect/sysconfig/iptables 配置文件[5]。
3.2.3 资源限制
为了解决DoS 类的攻击,系统对用户使用资源的权限来进行控制,比如管理用户创建的最大数量、内存量、文件数量等,通过修改profile/ect/security/limits. co nf 就可以限制用户资源。 设定后,最多只能有20 个用户和5 M 的内存。
3.2.4 安装防火墙
防火墙主要用于管理网络流量,保证局域网安全性,Linux 自带Firewalld 防火墙,在此基础上,提出了一种基于网络的多个分区的接入控制策略,以保证各分区间的数据流量的精确流动。 Firewalld 防火墙具有拒绝和管理服务器访问、自动断开端口连接、控制主机访问权限等作用,因此防火墙对保证服务器的安全有重要意义。
综上所述,由于攻击Linux 的手段越来越多,为了能够预防各种风险因素的形成,制定有效的保护措施是维管人员重点关注的问题。 通过研究,Linux 系统遇到的安全问题,无论是系统账号安全问题,还是内核系统安全问题都影响着Linux 系统用户的体验感。 因此,本文从系统安全和网络安全两个方面细化解决对策,来保证Linux 系统的安全性。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!