分类: LINUX
2008-05-04 21:28:36
系统安全的维护对计算机来说是极其重要的,一个重要的安全措施便是控制对计算机服务的访问。所有服务仅仅当它们是必不可少时才应该启动。对于不必要的服务都应该禁止,这可将把可能的漏洞攻击降到最低。 服务访问控制可有多种方法,具体采用什么方法决定于服务的类型、计算机的配置情况以及管理员的水平。 拒绝远程计算机访问某一服务的最简便方法是将其关闭。不论是由 xinetd(我们会在本节后面详细讨论)管理的服务,还是在 /etc/rc.d 中的服务,都可以用以下三种应用程序将其启动或停止: • 服务配置工具 — 图形化应用程序。它在窗口中显示每项服务的描述,以及每项服务是否在引导时启动(运行级别 3、4、5),并允许你启动、停止或重新启动每项服务。 • ntsysv — 基于文本的程序。允许为每个运行级别配置系统引导时启动的服务。ntsysv不能用来启动、停止或重新启动不属于 xinetd 管理的服务。 • chkconfig — 命令行工具。允许为每个运行级别配置系统引导时要启动的服务。但不能用来启动、停止或重新启动不属于xinetd管理的服务。 另外一种服务访问控制的方法是用iptables配置防火墙,对于新手来说iptables可能比较复杂,它更适合有经验的系统管理员。但是,iptables的优点在于它的灵活性,更详细的信息请参考iptables帮助。 作为一般性的选择,可以运行安全级别配置工具来配置系统,它可满足大多数常规的应用。
在配置服务访问控制之前,必须理解 Linux 系统的运行级别。运行级别是一种状态,或模式(mode),它由列在 /etc/rc.d/rc
许多 UNIX 系统管理员比较熟悉 TCP 包裹程序。xinetd管理的服务以及其它任何内建支持libwrap 的服务都能够通过 TCP 包裹程序来进行访问控制。TCP 包裹程序通过配置/etc/hosts.allow 和 /etc/hosts.deny文件来控制哪些网络上的其它计算机可以访问哪些服务。其中,hosts.allow是允许访问规则列表,hosts.deny是拒绝访问规则列表,具体格式请参考:man 5 hosts_access。
为了更好的保障计算机安全,xinetd已经替代了过去的xinetd服务程序。xinetd提供了访问控制功能、日志记录功能,同时也可以支持其它非标准服务。xinetd可以针对每一台计算机,每一时段作访问控制,限制incoming连接的频率,限制连接的负载。 启动时xinetd对管理的所有服务端口进行监听,当服务请求到达时,xinetd启动相应的服务程序进行处理。 启用或禁止xinetd服务时请修改/etc/xinetd.d目录中的相应文件。如果disable属性设置为yes,该服务将被禁用,设置为no时,该服务将被启用。当然也可通过服务配置工具,ntsysv, 或者 chkconfig对此进行修改。
服务配置工具是一个用来配置/etc/rc.d/init.d中SysV服务的图形化配置程序,启动该管理工具时,请按以下顺序点击桌面菜单:“系统 -> 管理->服务器配置->服务,或者在命令行敲入以下命令:system-config-services。在图形方式下,系统将显示如下界面:
图 3-14 服务配置工具
服务配置工具显示当前的运行级别和编辑中的运行级别。如要改变编辑运行级别,请从“编辑运行级别”菜单中选取。 服务配置工具在左边窗口同时显示/etc/rc.d/init.d和xinetd管理的服务列表,可单击服务名字来查看服务描述和状态信息。 如要启动,停止或重新启动服务,请点击工具条上的相应按钮。
ntsysv提供了一种启动或停止服务的简便方法,也可以用来配置系统运行级别,缺省时仅配置当前运行级别中的服务,加—level选项时可指明所配置的运行级别,例如: ntsysv –level 345
chkconfig 命令也可以用来启用或禁止服务。运行chkconfig –list 命令可以看到当前系统服务列表,以及它们在不同运行级别中的状态。列表后半部分是xinetd管理服务。 例如:命令 chkconfig –list anacron 返回下列输出: anacron 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 又如,命令 chkconfig –list finger 返回下列输出: finger 关闭 chkconfig 还能用来设置某一服务在某一指定的运行级别内被启动或禁止。譬如,要在运行级别 3、4、5 中禁止 nscd 服务,可使用下面的命令: chkconfig –level 345 nscd off