2.4. 加强Xinetd的安全
Xinetd是Linux系统一个传统的网络服务守护进程,它可以同时监听多个制定的端口,在接收到用户请求时,根据用户请求端口的不同,启动相应的网络服务进程来处理这些用户请求。因此,Xinetd也常被称为“超级服务器”。像Telnet、rlogin、rcp、rsh等不安全网络服务就是通过Xinetd进行启动的。为了减少系统潜在漏洞,应该关闭Xinetd中无需使用的网络服务。
可在xinetd的配置文件进行服务的禁用。
如果所有的Xinetd服务都已经禁用,那么就没有必要再运行Xinetd。要禁止Xinetd启动运行,可执行:chkconfig –level 345 xinetd off。
3. 文件系统的安全
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。Linux文件系统的权限必须进行严格的控制,一个配置文件上的配置错误,比如不正确的文件权限,就可能会导致整个系统受到危害。
3.1. 全局可读/写文件
所谓全局可读写文件,是指所有用户都有权限查看和修改的文件。如果这些文件中保存有重要的机密信息,如用户口令,那么将可能会为系统带来严重的后果。因为入侵者在获得本地用户权限之后,往往会去搜索系统中包含有某些关键信息的全球可读文件以扩大他们的访问权限。用户用find命令可以搜索全球可读写文件#FormatImgID_20#。
管理员应定期使用find命令检查系统中的全局可读/写文件。对于一些保存有重要信息的文件是不应该设置全球可读/写的。
3.2. 无宿主的文件管理
正常情况下,系统中的每一个文件都会有自己的文件所有者和属组。如果系统中出现没有所有者或属组的文件,那么很可能是卸载程序后遗留或是由入侵者留下的。这些文件对于系统来说,是一个潜在的风险,所以应该及时把这些文件找出来,删除或者更改访问权限。
Linux的设备以文件的形式存放在/dev/目录下,所以这些文件的权限控制同样非常重要。例如,IDE硬盘在Linux中对应的设备文件为/dev/hdx,如果这些文件的权限被设置为全球可读,那么所有用户都可以通过一些命令读取硬盘中所有的内容。用户可以通过mount命令,查找出所有与目前挂载的文件系统相关的设备文件。此外,对于像/dev/console、/dev/dsp以及/dev/tty*等的设备文件也同样需要重点关注,并定期检查其权限设置。
3.4. 硬盘分区
恶意占用磁盘空间是造成拒绝攻击的一种形式。由于Linux应用系统在运行过程中都会产生新的数据或文件。如果磁盘空间不足,会造成这些新的数据或文件无法保存。最后导致服务挂起,达到拒绝服务的目的。磁盘分区的合理规划,可以有效的防止这种恶意攻击。
1) 利用Linux的磁盘配额管理,限制每个用户的磁盘空间大小。
2) 重要的文件系统挂载到单独的磁盘分区上。例如:/; /boot/; /var/; /hone/; /tmp/。
3) 划分单独的系统分区保存应用数据。
3.5. 设置grub密码
如果能接触到服务器主机,就算不知道root密码,攻击者可以重启机器通过单用户模式重置root密码。那么服务器中的数据就会完全暴露给攻击者。为了防止这种情况,可以考虑在grub上设置密码。Linux每次重启引导或更改grub配置时都要求输入正确的密码。
首先要生成MD5加密的密码信息。
3.6. 限制su切换
通过su命令,普通用户可以切换到其他用户的环境包括超级管理员root账户的环境。可以通过限制su命令执行权限的方式降低普通用户获得管理员权限的风险。需要su权限的用户,可以单独放到一个group里,例如wheel。
4. 系统日志的保存
日志对于安全来说非常重要。日志里面记录了系统每天发生的各种各样的事情。可以通过日志来检查系统发生错误的原因,或者系统遭受攻击时留下的痕迹。日志的功能主要有:审计和监测。日志也可以实时的监测系统状态,监测和追踪入侵者。
4.1. 账户登录记录
使用who命令可以查看当前已经登录操作系统的用户信息,这些信息包括用户名、登陆时间、客户端的IP地址等。管理员可以随时查看登录系统的用户是否合法、客户端的IP地址是否合法。
Linux系统的用户登录历史信息被分别保存在/var/log/wtmp和/var/log/btmp文件中,其中/var/log/wtmp保存了用户成功登录的历史信息,而/var/log/btmp则保存了用户登录失败的历史信息。这两个文件不是ASCII文件,所以必须分别要通过last和lastb命令来查看。
4.2. secure日志中的安全信息
该日志文件记录与安全相关的信息。用户验证、su切换以及与用户管理相关的日志信息都会写到/var/log/secure文件中。打开/etc/syslog.conf配置文件可以看到此日志文件的设置,如“authpriv.* /var/log/secure”。如果系统有非法用户登录,可以通过查看此日志文件跟踪非法用户的信息。
4.3. message日志中的安全信息
messages 日志是核心系统日志文件。它包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。其他信息,比如某个人的身份切换为 root,也在这里列出。如果服务正在运行,比如 DHCP 服务器,您可以在 messages 文件中观察它的活动。通常,/var/log/messages 是您在做故障诊断时首先要查看的文件。
4.4. cron日志中的安全信息
该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。
4.5. history日志中的安全信息
默认情况下,在每个用户的主目录下都会生成一个.bash_history的日志文件,在该文件中保存了用户输入的所有命令,管理员可以通过该文件查看某个用户登陆系统后进行了什么操作。
4.6. 日志文件的保存
日志文件是追踪黑客行为和取证的重要线索,一个有经验的黑客在入侵完系统后一般都会清除日志文件的内容,抹去自己的入侵痕迹。所以为了提供日志的安全性,可以定期对系统中重要的日志文件进行备份,并通过FTP或其他网络手段把备份文件上传到其他的备份服务器上保存,以作为日后跟踪和分析黑客行为的依据。
5. 内核更新及安全补丁安装
系统补丁,就是通过安装相应的补丁软件,补充系统中的漏洞,把“漏水”的地方补上,杜绝同类型病毒的入侵。作为系统管理员,及时发现并安装新的补丁对保证系统安全非常重要。对于redhat,用户可以在RHN上进行注册,注册后可以获得Red Hat最新的软件包和补丁。如果有公司内部的补丁源服务器,可以在目录/etc/yum.repos.d/添加相应的补丁源配置文件。用户可以执行yum update 命令升级安装补丁包。
6. 结语
要保证Linux系统的安全,系统管理员必须综合利用它提供的各种安全工具和技术,制定合理有效的安全策略。有效的安全策略应在安全成本、安全效益和本单位实际的安全需求之间实现平衡,在实际应用中制定严格的安全管理措施,按照安全管理措施和安全策略进行系统和安全的管理,才能保证系统的高可用性。
Linux系统安全工作是防守和进攻的博弈,是保证信息安全,工作顺利开展的奠基石。及时,准确的审视自己信息化工作的弱点,审视自己信息平台的漏洞和问题,才能在 这场信息安全战争中,处于先机,立于不败之地。只有做到自身的安全,才能立足本职,保证公司业务稳健的运行,这是信息时代开展工作的第一步。