Quanyin 说

Linux 安全运维系列之五:服务器遭受攻击后的处理

安全总是相对的,再安全的服务器也有可能遭受到攻击。作为一个安全运维人员,要把握的原则是:尽量做好系统安全防护,修复所有已知的危险行为,同时,在系统遭受攻击后能够迅速有效地处理攻击行为,最大限度地降低攻击对系统产生的影响。

Quanyin: 对于大多数的用户而言,直接重装系统就行了

处理服务器遭受攻击的一般思路

系统遭受攻击并不可怕,可怕的是面对攻击束手无策,下面就详细介绍下在服务器遭受攻击后的一般处理思路。

检查并锁定可疑用户

当发现服务器遭受攻击后,首先要切断网络连接,但是在有些情况下,比如无法马上切断网络连接时,就必须登录系统查看是否有可疑用户,如果有可疑用户登录了系统,那么需要马上将这个用户锁定,然后中断此用户的远程连接。

查看系统日志

查看系统日志是查找攻击源最好的方法,可查的系统日志有 /var/log/messages/var/log/secure 等,这两个日志文件可以记录软件的运行状态以及远程用户的登录状态,还可以查看每个用户目录下的 .bash_history 文件,特别是 /root 目录下的 .bash_history 文件,这个文件中记录着用户执行的所有历史命令。

检查并关闭系统可疑进程

检查可疑进程的命令很多,例如 ps、top 等,但是有时候只知道进程的名称无法得知路径,此时可以通过如下命令查看:
首先通过 pidof 命令可以查找正在运行的进程 PID,例如要查找 sshd 进程的 PID,执行如下命令:

[root@server ~]# pidof sshd
13276 12942 4284

然后进入内存目录,查看对应 PID 目录下 exe 文件的信息:

[root@server ~]# ls -al /proc/13276/exe 
lrwxrwxrwx 1 root root 0 Oct  4 22:09 /proc/13276/exe -> /usr/sbin/sshd

这样就找到了进程对应的完整执行路径。如果还有查看文件的句柄,可以查看如下目录:

[root@server ~]# ls -al /proc/13276/fd

通过这种方式基本可以找到任何进程的完整执行信息.

检查文件系统的完好性

检查文件属性是否发生变化是验证文件系统完好性最简单、最直接的方法,例如可以检查被入侵服务器上 /bin/ls 文件的大小是否与正常系统上此文件的大小相同,以验证文件是否被替换,但是这种方法比较低级。此时可以借助于 Linux 下 rpm 这个工具来完成验证,操作如下:

[root@server ~]# rpm -Va
....L...  c /etc/pam.d/system-auth
S.5.....  c /etc/security/limits.conf
S.5....T  c /etc/sysctl.conf
S.5....T    /etc/sgml/docbook-simple.cat
S.5....T  c /etc/login.defs
S.5.....  c /etc/openldap/ldap.conf
S.5....T  c /etc/sudoers

重新安装系统恢复数据

很多情况下,被攻击过的系统已经不再可信任,因此,最好的方法是将服务器上面数据进行备份,然后重新安装系统,最后再恢复数据即可。

数据恢复完成,马上对系统做上面介绍的安全加固策略,保证系统安全。

其他未尽事项

Linux 安全运维系列文章:

本系列文章系转载

  • 来自:马哥 Linux 运维,
  • 作者:高俊峰,Linux 资深技术专家,畅销书籍《循序渐进 Linux 》、《高性能 Linux 服务器构建实战》作者

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »