在 CentOs 5.8 Web/数据库服务器上应禁用哪些服务?

在 CentOs 5.8 Web/数据库服务器上应禁用哪些服务?

我刚刚将我的 CentOS 5.8 64 [最终] 服务器设置为 Web 服务器。

规格:2x E5620 Intel CPU、DDR3 RAM、硬件 Adaptec RAID 10、4x SAS 驱动器。

我自己安装的:

 Nginx
 PHP-FPM
 MySQL [ourdelta.org version]
 Sphinx
 Vsftpd
 Fail2ban
 Citadel [ddos flood protection]
 Munin
 NTP
 Htop
 Iptraf

这些都是我用来运营我的网站的东西。

现在我的问题是:

我找到了这篇文章:http://www.vr.org/kb/1002/Optimize-and-disable-default-CentOS-services.html

其中谈到了您可以禁用的完整服务列表。

这是他们建议的清单:

chkconfig anacron off
chkconfig apmd off
chkconfig atd off
chkconfig autofs off
chkconfig cpuspeed off
chkconfig cups off
chkconfig cups-config-daemon off
chkconfig gpm off
chkconfig isdn off
chkconfig netfs off
chkconfig nfslock off
chkconfig openibd off
chkconfig pcmcia off
chkconfig portmap off
chkconfig rawdevices off
chkconfig readahead_early off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig smartd off
chkconfig xfs off
chkconfig ip6tables off
chkconfig avahi-daemon off
chkconfig firstboot off
chkconfig yum-updatesd off 
chkconfig sendmail off
chkconfig mcstrans off
chkconfig pcscd off
chkconfig bluetooth off
chkconfig hidd off

现在我确实使用sendmail、和smartd,所以我会保留它们。

但大多数其他进程我都无法识别。禁用时我应该注意什么?

答案1

小心使用其他人的“列表”,因为您可能会禁用您真正需要的东西。

我发现该列表存在一些明显的问题:

  • anacron确保由于停机而错过的 cron 作业在系统重新启动时运行。
  • smartd监视磁盘的运行状况,并可设置为在磁盘出现故障时向您发送电子邮件(但由于您有一个硬件 RAID,因此您应该使用供应商提供的工具)。
  • ip6tablesIPv6 防火墙真的有用吗?有人建议关闭防火墙?!?这确实让他们的信誉大打折扣。
  • yum-updatesd提供自动更新。如果您不想要此功能,请将其关闭,尽管在某些情况下它很有用。

我也同意@aairey 的建议,进行最小安装。在 CentOS 5 中,这需要使用 kickstart 文件;CentOS 6 有一个特殊的最小安装 CD。

答案2

虽然禁用/卸载某些软件是强化系统的一种非常有效的方法,但在许多情况下它是过度的 - 特别是当像您一样不确定要禁用哪些服务时。

更好的方法是使用最小安装并结合限制性防火墙。由于这将是一个 Web 服务器,因此规则集应该非常容易定义。

要执行最小安装,请浏览 CentOS 安装程序,当您看到列出角色的屏幕时,取消选中所有角色。然后,选择“立即自定义”。

您将看到一个屏幕,左侧有各种类别,右侧有软件包组。浏览每个类别并取消选中所有软件包组。在根据类别,点击可选包按钮。我通常会取消选中以下所有选项,但以下选项除外:

  • 阿纳克隆允许作业调度并确保即使由于停机而错过调度的作业也能运行。
  • 须藤允许您从非特权帐户执行具有提升权限的命令。在我看来,这个实用程序必不可少的适用于任何 Linux 系统。

安装完成并重新启动后,您可以安装 Web 服务器和任何其他必要的软件包(httpd、PHP、MySQL 等)。Yum 将自动为您解决依赖关系,并且只安装您选择的服务正常运行所需的软件包。

完成后,编辑您的 iptables 规则以仅允许必要的服务:SSH,HTTP,HTTPS,SMTP 出站等。有许多教程可以解释如何执行此操作。这个问题及其公认的答案是一个很好的起点。

不要阻止 SSH!如果您无法通过控制台访问服务器,请务必注意不要在任何时候阻止 SSH,否则您将无法访问系统。修改防火墙规则时,我总是打开一个新的 SSH 会话而不关闭现有的(正在运行的)会话,只是为了验证我是否仍然可以连接。一旦您退出已建立的会话,如果 SSH 被阻止,那么您将陷入困境。

答案3

您是从最小安装开始的吗?如果没有,我建议从那里开始,因为anacron开始时甚至还没有安装任何东西。

相关内容