我的问题是:
>如何执行服务器的“审核”以确定其当前状态,确保正确配置,没有不必要的用户帐户,我们没有运行不必要的服务等等.
>我不确定如何备份我们的生产网站.除了实际的CMS文件和db之外,还有apache配置,邮件数据库以及需要备份的更多内容.关于如何自动化这个的任何建议?
>我绝对必须执行的linux管理员最重要的日常职责是什么?我知道,这是个大问题.
解决方法
这就是我会做的,但希望其他人会提出更多/更好的建议.
首先不要惊慌.我假设你现在是根.您现在是目前服务器面临的最危险的威胁,因为您拥有强大的功能并且不知道如何处理它.
记下服务器应该运行的服务.你知道apache,MysqL和postfix是必需的.我想你可能有一个ftp服务器,你可以ssh in所以你需要运行sshd.
记下安装的服务.查找最快捷的方法可能是列出/etc/init.d/*.
然后,您需要找出正在运行的内容.我不知道Red Hat chkconfig的等价物是什么,但是如果没有替代的ps -ef会列出当前正在运行的进程.
还要了解是否安装了防火墙(例如iptables)以及如何配置防火墙.
接下来获取所有运行的cronjobs列表.您可能不需要过多担心他们现在所做的事情,但您应该大致了解服务器在不同时间所做的事情.
我再次写下这一切.
现在写下谁应该有权访问服务器以及谁可以拥有root访问权限.
获取/ etc / passwd中拥有帐户的用户列表.
为FTP访问和其他服务(如Subversion或远程MySQL连接)做类似的事情.
现在您已经了解了服务器正在做什么以及谁可以访问它,您应该继续了解它的运行情况.
检查/ var / log中的日志文件,尤其是/ var / log / messages,并花一些时间查找任何错误.
检查是否有任何未完成的更新要使用
apt-get update&& apt-get升级
提示更新时,立即选择“否”.
到目前为止,你应该没有做任何改变.
您现在需要查看收集的信息并确定需要修复的内容(如果有的话).
优先考虑尝试破解/var/log/auth.log中的尝试,关闭不必要的服务并收紧防火墙.
在编辑所有文件之前复制它们并经常测试更改,以便在出现问题时可以轻松退出.
备份
您需要确定需要备份的内容.
明显的候选者是数据库,/ home / / etc / / var / log / / var / spool / cron / / var / www /以及crontabs调用的任何自定义脚本.
然后大多数人编写一个shell脚本来在本地备份它,然后使用类似rsync的东西将文件复制到另一台机器USB驱动器.
日常工作将包括,检查日志文件是否存在任何问题(查看logwatch以帮助您),执行安全更新,检查备份并开始设置监控,如MRTG和Nagios,最终将重担放在管理员身上.
我不会太担心.这可能看起来令人生畏,但那是因为你要一气呵成.服务器可能很好,注意日志并在发布时应用更新,计划你想做的事情并努力工作,采取一些步骤并尝试享受它.