我刚刚将我的 CentOS 5.8 64 [最终] 服务器设置为网络服务器。
规格:2 个 E5620 英特尔 CPU、DDR3 内存、硬件 Adaptec RAID 10、4 个 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
, 所以我会保留这些。
但是我不认识大多数其他过程。禁用时有什么我应该注意的吗?
使用其他人的“列表”时要小心,因为您可能会禁用您实际需要的东西。
我在该列表中看到的一些明显问题是:
anacron
确保在系统恢复时运行因停机而错过的 cron 作业。smartd
监控磁盘的健康状况,并且可以设置为在磁盘出现故障时向您发送电子邮件(尽管由于您有硬件 RAID,因此您应该改用供应商提供的工具)。ip6tables
是 IPv6 防火墙……真的吗?有人建议关闭防火墙?!?这真的把他们的信誉打入地狱。yum-updatesd
提供自动更新。如果您不想这样做,请将其关闭,尽管它在某些情况下很有用。我还必须同意@aairey 的建议进行最小安装。在 CentOS 5 中,这需要使用 kickstart 文件;CentOS 6 有专门的最小化安装光盘。
虽然禁用/卸载某些软件是加固系统的一种完全有效的方法,但在许多情况下它是矫枉过正的——尤其是当您像您一样不确定要禁用哪些服务时。
更好的方法是结合使用最小安装和限制性防火墙。由于这将是一个 Web 服务器,因此规则集应该很容易定义。
要执行最小安装,请通过 CentOS 安装程序,当您到达列出角色的屏幕时,取消选中所有角色。然后,选择“立即自定义”。
您会看到一个屏幕,左侧有各种类别,右侧有包组。浏览每个类别并取消选中所有包组。在Base类别中,单击Optional packages按钮。我通常取消选中所有内容,除了:
安装完成并重新启动后,您可以根据您的情况安装 Web 服务器和任何其他必要的包(httpd、PHP、MySQL 等)。Yum 会自动为您解决依赖关系,并且应该只安装您选择的服务正常运行所必需的那些包。
完成后,编辑您的 iptables 规则以仅允许必要的服务:SSH、HTTP、HTTPS、SMTP 出站等。有许多教程可以解释如何执行此操作。这个问题及其公认的答案是一个很好的起点。
你是从最小安装开始的吗?如果不是,我建议从那里开始,因为
anacron
甚至没有安装之类的东西。