服务的启动和停止可以通过以下三种应用程序进行配置,除了以上几种工具之外,通过手动编辑 /etc/xinetd.d 目录下的 xinetd 配置文件,或者 /etc/rc.d/ 目录下的符号链接,也能够实现对服务的配置。
当别人能够访问你的系统服务时,对于服务的访问控制是相当重要的。如果你不需要提供某项服务,最好将它关闭,因为你所启用的服务越多,系统中存在的漏洞就可能越多。
对于系统服务的管理可以通过多种方式实现,至于使用哪一种,则需要根据服务的类型、系统配置和你的 Linux 应用水平来决定了。
拒绝别人访问某项服务的最简单方法就是将服务关闭掉。由 xinetd 和 /etc/rc.d/init.d/ 目录结构(常称为 SysV 服务) 管理的服务,它们的启动和停止可以通过以下三种应用程序进行配置:
图形界面的服务管理工具,它包含对每个服务的描述,运行状态和启动状态。用户可以使用这个工具启动、重启动和停止服务。
命令行文字界面的服务管理工具,使用它能够配置服务在不同运行级别 (runlevel) 的启动状态。使用这个程序,无法启动、重启动和停止非 xinetd 服务
命令行的服务管理工具,使用它能够启动和停止各个运行级别的服务。与 ntsysv 命令相同,chkconfig 工具无法启动、停止和重启非 xinetd 服务
管理他人对服务的访问,还可以通过 iptables 配置 IP 防火墙,如果你还是 Linux 新手,这个方法则不太适合你。iptables 的配置十分复杂,最好让经验丰富的 Linux 系统管理员来执行这项工作。
使用 iptables 控制服务访问的优点是灵活性,即使你需要自定义特定主机访问特定服务的解决方案,iptables 也能够轻易地实现你的要求。更多信息请参考《iptables》
另外,如果你在找一个为家用机器设置访问规则的工具,或者你对 Linux 不太熟悉,则可以图形界面的“防火墙配置”工具 (system-config-firewall) 对系统的防火墙策略进行配置。
在配置服务访问控制之前,需要先对 Fedora/Linux 的运行级别 (runlevels) 有所了解。在不同的运行级别下,系统所启用的服务也不相同,每个运行级别对应的 /etc/rc.d/rc[x].d 目录下包含了此运行级别下的服务。
在配置服务访问控制之前,需要先对 Fedora/Linux 的运行级别 (runlevels) 有所了解。在不同的运行级别下,系统所启用的服务也不相同,每个运行级别对应的 /etc/rc.d/rc[x].d 目录下包含了此运行级别下的服务。
如果使用命令行界面的登录框,说明系统的运行级别为 3,如果使用图形界面的登录窗口,则说明系统的运行级别为 5。
通过编辑 /etc/inittab 文档,可以更改系统的默认运行级别,只需要将指定的运行级别替换下面这一行中的数字 5 (运行级别 5) 即可:
通过编辑 /etc/inittab 完成对默认运行级别的更改之后,新配置会在重新启动系统时后生效。
使用 TCP Wrapper 能够管理对特定服务的访问,任何由 xinetd 管理的网络服务都能够使用 TCP Wrapper 实现对它的访问控制。
使用 TCP Wrapper 能够管理对特定服务的访问,任何由 xinetd 管理的网络服务都能够使用 TCP Wrapper 实现对它的访问控制。
在 Linux 中,xinetd 能够通过 /etc/hosts.allow 和 /etc/hosts.deny 配置文件,实现对用户的服务访问控制。/etc/hosts.allow 与 /etc/hosts.deny 是可自定义的访问控制列表 (ACL),顾名思义,hosts.allow 文件包含了允许访问网络服务的规则,而 hosts.deny 包含了拒绝访问的规则,并且 hosts.allow 文件的优先级高于 hosts.deny 文件。用户可以定义基于 IP 地址、主机名或匹配字段的访问控制规则。
xinetd 是 inetd 的安全升级版本。xinetd 一直保持运行状态,监听所有由它管理的服务的端口,当一个连接请求访问由它管理的服务时,xinetd 都会为那个服务启动相应的服务器。
xinetd 守护程序具有以下功能:
xinetd 的配置文件是 /etc/xinetd.conf,但这个文件中只包含了一些默认配置,和一条包含 /etc/xinetd.d/ 目录的指令。要启用或禁用一个 xinetd 服务,只需编辑 /etc/xinetd.d/ 目录中的配置文件即可。如果配置文件中的 disable 属性被设置为 yes,这个服务则被禁用,设置为 no,则表示启用。你可以手动编辑 xinetd 文件来更改服务的启动状态,也可以使用服务配置工具、ntsysv 和 chkconfig 工具来管理服务的运行状态。
如果想要知道 xinetd 守护进行控制着哪些服务,只需要使用 ls /etc/xinetd.d 命令查看 /etc/xinetd.d/ 目录下的内容即可。
“服务配置”工具是由 Red Hat 开发的一款图形化的服务配置工具,它能够用于管理 /etc/rc.d/init.d/ 目录下的 SysV 服务,以及 xinetd 服务。使用服务配置工具,能够启动、停止、重启动 SysV 服务,以及重载 xinetd 服务。
“服务配置”工具是由 Red Hat 开发的一款图形化的服务配置工具,它能够用于管理 /etc/rc.d/init.d/ 目录下的 SysV 服务,以及 xinetd 服务。使用服务配置工具,能够启动、停止、重启动 SysV 服务,以及重载 xinetd 服务。
可以使用桌面主菜单“系统->管理->服务”,或者在命令行输入 system-config-services 命令来打开“服务配置工具”。
“服务配置”工具中会列出 /etc/rc.d/init.d/ 目录中的服务,以及 xinetd 控制的所有服务。从左侧窗口的列表中点击服务的名称,即可从右则看到服务的状态和描述信息。对于非 xinetd 服务,状态窗口显示服务是否正在运行,对于 xinetd 服务,状态窗口通常显示为“通常在系统引导时启动,在后台运行,并在需要时醒来。”
使用“服务配置”工具启动、停止和重启动某个服务,首先从左侧列表中选中那个服务,然后通过点击上方工具栏相应的动作按钮(开始、停止、重启),或者通过菜单栏“服务”的下拉菜单执行这些操作。对于 xinetd 服务,以上按钮和菜单则是禁用的。
使用工具栏的“定制”按钮,或者“服务->定制”菜单栏,可以实现对服务运行级别的控制。
ntsysv 是 Linux 下文字模式的服务管理工具,它为启用和禁用服务提供了简单的文字界面。使用 ntsysv,能够管理及由 xinetd 守护程序所控制的服务,以及 SysV 服务的启动状态。
ntsysv 是 Linux 下文字模式的服务管理工具,它为启用和禁用服务提供了简单的文字界面。使用 ntsysv,能够管理及由 xinetd 守护程序所控制的服务,以及 SysV 服务的启动状态。
默认情况下,ntsysv 工具配置的是系统当前运行级别,要对其它运行级别进行配置,需要使用 --level 选择,例如 ntsysv --level 345 命令对运行级别 3、4 和 5 进行配置。
ntsysv 的界面看起来有点像 Fedora/Linux 在文字模式下的安装程序,使用上下箭头移动光标在列表中的位置,空格用于更改当前选中服务的状态(启动/禁用),方括号有 * 的服务表示开机时自动启动,使用 F1 按可以看到有关服务的描述信息
ntsysv 所做的更改会立即对 xinetd 服务生效,其它服务的则不会产即生效果。如果你希望马上更改某个服务的运行状态,可以使用 service <daemon> <action> 命令,其中 <daemon> 为服务的名称,如 httpd,<action> 则为希望执行的操作,如 start/stop/restart (启动/停止/重启)
chkconfig 是 Linux 中基于命令行的服务管理工具,chkconfig 可以用于启用和禁用系统服务。执行 chkconfig --list 命令能够得到所有系统服务的列表,以及它们在每个运行级别的启动状态(启用/关闭)。输出结果中不包含 xinetd 服务。
chkconfig 是 Linux 中基于命令行的服务管理工具,chkconfig 可以用于启用和禁用系统服务。执行 chkconfig --list 命令能够得到所有系统服务的列表,以及它们在每个运行级别的启动状态(启用/关闭)。输出结果中不包含 xinetd 服务。
虽然在列表中不会显示 xinetd 服务,但使用 chkconfig --list <xinetd_service> 命令,则可能查看 xinetd 服务的运行状态
输出结果显示 rsync 服务为停止,如果 rsync 服务处于运行状态,输出结果则显示为 rsync 启用
如果在 chkconfig --list 命令后面添加 sysv 服务(位于/etc/rc.d/ 目录下的服务)名称,则会显示服务在所有运行级别下的启动状态,而不是像 xinetd 服务那样显示当前运行状态。
除了查看服务状态信息外,chkconfig 命令还能够配置 sysv 服务在不同运行级别下的启动状态。如希望在 3, 4, 5这三个运行级别上禁用 nscd 服务,则可以执行以下命令