所以我们的Linuxpipe理员离开了我们的项目,突然我(负责基本的Linux /服务器知识的networking编码器)负责我们专门的服务器(Ubuntu服务器),主要运行一个网站(apache / mysql / php)和邮件(Postfix)。 我们的pipe理员并不是一个真正的Linuxpipe理员,而是一些拥有基本Linux知识的人,他一直在想办法。 所以我期望时髦的configuration,不安全的服务等
我的问题是:
如何对服务器执行“审计”以确定其当前状态,确保正确configuration,没有不必要的用户帐户,我们没有运行不必要的服务等等。
我不确定如何备份我们的生产网站。 除了实际的CMS文件和数据库外,还有一些需要备份的apacheconfiguration,邮件数据库等等。 任何有关如何自动化这个build议?
什么是我必须执行的Linuxpipe理员最重要的日常职责? 巨大的问题,我知道。
哇。 从哪儿开始。
这是我会做的,但希望其他人会提出更多/更好的build议。
首先不要惊慌。 我假设你现在是根。 你现在是服务器上最危险的威胁,因为你有很多的权力,而不知道该怎么做。
写下服务器应该运行的服务。 你知道apache,mysql和postfix是必需的。 我想你可能有一个ftp服务器,你可以在ssh中,所以你需要sshd运行。 写下哪些服务安装。 找出最快的方法可能是列出/etc/init.d/*。 然后你需要找出正在运行的东西。 我不知道什么等同于红帽chkconfig,但是如果没有其他ps -ef会列出当前正在运行的进程。 还要了解是否安装了防火墙(如iptables)以及如何configuration防火墙。
接下来获得所有运行的cronjob的列表。 你可能不需要太担心他们马上做什么,但是你应该对服务器在不同的时间做什么有一个大概的了解。
再次,我会写下所有这一切。
现在写下谁应该有权访问服务器,谁可以拥有root权限。 从/ etc / passwd获取具有帐户的用户列表。
为FTP访问做类似的事情,如果Subversion或远程MySQL连接相关的其他服务。
现在你更了解你的服务器在做什么以及谁可以访问它,你应该转到它做得如何。 检查/ var / log中的日志文件,特别是/ var / log / messages,花一些时间寻找任何错误。
检查是否有使用apt-get update && apt-get升级的未完成更新
当提示更新时,现在selectno。
到目前为止,你应该没有改变。
您现在需要查看收集的信息并确定需要修复的内容(如果有的话)。 优先尝试在/var/log/auth.log中尝试破解尝试,closures不必要的服务并收紧防火墙。
在编辑所有文件之前制作所有文件的副本,并经常testing更改,以便在出现故障时轻松退出。
备份
您需要决定需要备份的内容。 明显的候选人是数据库,/ home / / etc / / var / log / / var / spool / cron / / var / www /和crontabs调用的任何自定义脚本。 然后大多数人写一个shell脚本来备份本地,然后使用像rsync这样的文件复制到另一台机器的USB驱动器。
日常工作将包括:检查日志文件是否有问题(检查logwatch来帮助你),执行安全更新,检查备份和goinf设置像MRTG和Nagios监控,最终将成为一个pipe理员。
我不会太担心。 这可能看起来令人生畏,但那是因为你一口气要求这一切。 服务器可能没问题,请关注日志并在发布时应用更新,计划您想要做的事情并努力工作,采取一些措施并尝试享受它。
有些事情让你开始:
找一个已经做过这种审计的人 – 或者至less对维护服务器的常见错误有一些了解。 认真 – 它回报。
备份尽可能好,并尝试重build一个备用服务器 – 可能是一个虚拟的实例 – 直到你确信:a)你已经备份了所有重要的东西,b)你能够重build备用服务器您的备份只需要很短的时间。 要增加业力:用备用服务器交换当前的生产服务器。 只要你没有certificate你可以从你的备份中重build,就好像你没有。
更新,阅读安全公告,注意日志文件,并自动化出来,一旦你知道该找什么。
为了更容易地获得日志文件的句柄,你可以考虑安装(或激活..我不知道,如果Ubuntu有这在默认安装)LOGWATCH。 每天给你发送邮件总结是非常好的。 它通常拿起一些时髦的东西,一目了然@configuration可能不会发现。
如果你重视你的服务器,并且它的数据得到帮助。 让人来审计它。
如果你不知道什么是“正确的”,那么就很难发现什么是“错误”的东西(或者你把它称为“时髦的”)。 一旦某人服务器处于已知状态。
使用像VMWare的转换器来创build服务器的分段虚拟机是一个伟大的想法,你应该看看。
然后,您可以在分阶段虚拟机(服务器的副本)上进行尝试,然后尝试在生产服务器之前首先执行VM分段服务器上要求执行的所有操作。
理查德·霍洛维说完之后, 然后对系统进行networking扫描,以检查服务器提供的服务,并根据目前的数据进行检查。 有可能用linux做很有趣的事情,很难find日志。
我build议从同一networking上的另一个系统使用Zenmap,并首先从您的老板那里获得所需的任何许可。 Zenmap安装简单,有/有一个graphics用户界面,不会尝试利用任何find的东西。