计算机安全性的基本原则之一是永远不要运行不需要的任何东西。
pgrep
今天,当我注意到我的Ubuntu 9.04(台式机)计算机正在运行git服务器守护程序时,我正在为一个进程执行ping操作。快速宣誓后,我发现该git-daemon-run
软件包已经安装(可能是无意间),并且删除了该软件包,从而摆脱了该过程(并确保以后不会重新启动该软件包)。
但是在其他情况下,我希望安装服务器软件包,但不希望服务器守护程序运行。例如,我lighttpd
用于内部测试(它由某些应用程序的特定测试脚本启动,并且仅在那些配置中侦听localhost),但我不希望它通过某些随机配置文件侦听外部连接。(如果我想运行一个监听外部连接,则可以自己配置并运行它。)
我真的不喜欢在暴露于Internet的计算机上运行不需要的各种随机服务器,因为谁知道它们会打开哪些安全漏洞。而且我不想不必为防火墙烦恼,因为那是错误和配置错误的另一个潜在来源,可能会打开安全漏洞。除非管理员明确要求,否则将Unix计算机配置为不启动任何服务器并不难。NetBSD(我想也是OpenBSD)默认情况下就是这种方式。
如何配置我的Ubuntu系统从不启动任何类型的服务器守护程序,除非我明确告诉我要启动它?
(在我的书中,要安装软件包并不是要求启动服务器。如果应该这样做,这是一个糟糕的用户界面,因为许多软件包安装甚至都没有要启动的服务器,所以它使在不自觉地启动服务器的情况下实在太容易了。)
编辑:只是要说清楚,问题不在于我希望能够停止现有服务器。问题是我不希望在没有明确请求的情况下启动新服务器。这意味着我应该能够执行任何sysadmin任务,例如安装软件包,并确信没有服务器启动。大多数答复都没有解决这一点。