我有一台运行桌面Ubuntu发行版的家庭服务器。 我在我的crontab中find了这个
* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1
而当在这个目录(用户名/是一个目录名后的空间)时,我发现很多脚本显然正在做一些他们不该做的事情。
在我擦除电脑并重新安装之前,我想找出是什么原因导致了安全漏洞以及何时完成。 所以我不再打开同一个洞。
我应该看什么日志文件? 我知道的只有在计算机上运行的服务器是sshd和lighttpd。
我应该做些什么来检测这样的事情是否再次发生?
首先,确保计算机与任何networking断开连接。
其次,在再次启动被黑客入侵的操作系统之前,确保你从驱动器获取了重要数据。
首先检查相关文件的时间戳。 通常他们是准确的。
交叉引用那些与httpd日志和auth日志,如果他们没有被擦除。 如果另一个人被抹去,你可以打赌这是进入的手段。 如果他们仍然保持机智,你可能能够从日志中获得更多关于他们如何进入的信息。
如果他们都被擦掉了,你真的很烦。 这可能需要更多的时间来弄清楚发生了什么,而不是值得。
你提到这两个服务正在运行,是否有一个好的防火墙来防止其他一切被访问? 你有没有在端口22上允许SSH? 你的login是否合理易于猜测? 你是否允许密码login; 你有没有任何forms的密码login实际速率限制? 你有没有使用lighttpd安装任何额外的软件; perl的; PHP的; CGI; 一个CMS或类似的? 你是否运行所有软件的更新版本; 您是否订阅了您运行的所有软件的安全通知,并仔细评估所有通知,看看它们是否适用于您运行/暴露给公众的软件?
这本身就是一个话题。 你可以谷歌的Linux取证的更多信息。 基本上,你必须首先制作你的驱动器的图像进行离线分析,然后擦拭计算机,并从干净的石板安装。
并记住所有的杂项。 任何使用电脑的人都可能被盗用。 更改密码,保持离线状态等等,直到你进入“洁净室”(独立的虚拟机)。
否则,它是很多检查日志(这可能是假的),并检查您的应用程序(PHP脚本?数据库?更新最新的修复?其他用户发出密码?)
由于您需要在服务器上进行取证工作并检查漏洞,因此从字面上来说,没有简单的方法可以回答您的问题。 您可以使用一些自动化工具,但请记住,如果攻击者拥有Root权限,则您不能再信任系统二进制文件,并且您不能相信这些日志。
至于未来的攻击,根据你想要的安全性,你可以开始把你的日志redirect到一个只用于保存系统日志的系统。 没有其他访问权限,以减less攻击足迹。
您也可以在您的系统上运行校验和软件(如Tripwire)来检查文件的完整性。
当然,不断更新更新并运行扫描软件来检查rootkit。
再一次,安全并不是一件轻而易举的事情。 它本身也可以是一个专业。 分层安全可以像检查不属于您的networking的主机/ IP一样紧密,encryption对系统的所有访问,每天发送系统中发现的更改日志以及在您的networking上设置一个蜜jar寻找奇怪的活动(为什么我的服务器试图连接到蜜jar计算机上的端口25?)
首先,如果要检查活动,请获取磁盘映像并重新安装服务器软件。 从头开始。 服务器的二进制文件不能被信任。
编辑 – 一些其他的事情,因为你运行的SSH发生在我身上 – 安装denyhosts。 可以进行configuration,以便在经过多次尝试后,系统对SSHD的自动攻击将被locking。 它也可以configuration为从“云”中的其他denyhost服务器更新以共享locking的IP,以帮助最大限度地减less自动攻击。 你也可以移动它正在监听的端口; 很多人指出这只是默默无闻的安全,但是由于机器人的扫描次数,