安全性是网络服务器可靠运行的基础。随着">通信技术和 Internet的广泛应用,服务器被攻击的情况可能经常发生,来自网络上的安全威胁是 Linux服务器安全问题的主要来源。
本章介绍如何在 Red Flag Asianux Server 3构建的服务器平台上,利用系统提供的安全工具,达到有效保护系统安全、减少成功入侵数量、检测和追踪入侵日志、降低危害程度并快速从攻击中恢复的策略。
有关物理和文件系统安全的知识请参考第 6章系统安全。
7.1Xinetd
7.1.1简介
xinetd提供了访问控制,改进的日志功能和资源管理,是 Red Flag Asianux Server 3系统中的 Internet标准超级守护进程。
Inetd被称作超级服务器,用来实现对主机网络连接的控制。当一个请求到达由 Inetd管理的服务端口, Inetd将该请求转发给名为 tcpd的程序。tcpd根据配置文件/etc/hosts.allow和/etc/hosts.deny来判断是否允许服务响应该请求。如果请求被允许则相应的服务器程序(如: telnetd)将被启动。这个机制也被称作 tcp_wrapper。
xinetd(eXtended InterNET services daemon)提供类似于 inetd + tcp_wrapper的功能,但是更加强大和安全。它具有以下特色:
支持对 tcp、udp、RPC 服务(但是当前对RPC 的支持不够稳定,可以启动protmap 与xinetd共存来解决这个问题)。
基于时间段的访问控制。
功能完备的 log 功能,即可以记录连接成功也可以记录连接失败的行为。
能有效的防止 DoS 攻击(Denial of Services)。
能限制同时运行的同一类型的服务器数目。
能限制启动的所有服务器数目。
能限制 log 文件大小。
将某个服务绑定在特定的系统接口上,从而能实现只允许私有网络访问某项服务。
能实现作为其他系统的代理。如果和 IP 伪装结合,可以实现对内部私有网络的访问。
7.1.2 Xinetd的配置
Xinetd的配置文件是/etc/xinetd.conf与/etc目录下的一个名为 xinetd.d的网络连接配置文件目录。配置文件中的语法和 /etc/inetd.conf完全不同且不兼容。它本质上是 /etc/inetd.conf和 /etc/hosts.allow, /etc/hosts.deny功能的组合。
以下所示为/etc/xinetd.d目录下的文件
其中每个文件代表一种网络服务器程序,文件中一般具有下列形式。
service service-name {
……
…….
}
其中 service是必需的关键字,每一项都定义了由 service-name定义的服务。例如下面给出的是文件 /etc/xinetd.d/telnet的内容;
Service-name是任意的,但通常是标准网络服务名,也可以增加其他非标准的服务,只要它们能通过网络请求激活,包括 localhost 自身发出的网络请求。
操作符可以是=,+=,或-=。所有属性都可以使用 =,其作用是分配一个或多个值,某些属性可以使用+=或-=形式,其作用分别是将该值增加到某个现存的值表中,或将其从现存值表中删除。