你首先要查看当前都有谁登录在服务器上。发现攻击者登录到服务器上进行 *** 作并不复杂。
其对应的命令是 w。运行 w 会输出如下结果:
08:32:55 up 98 days, 5:43, 2 users, load average: 0.05, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0113.174.161.108:260.00s 0.03s 0.02s ssh root@
coopeaa12
root pts/178.31.109.1 08:260.00s 0.01s 0.00s w
第一个 IP 是英国 IP,而第二个 IP 是越南 IP。这个不是个好兆头。
停下来做个深呼吸, 不要恐慌之下只是干掉他们的 SSH 连接。除非你能够防止他们再次进入服务器,否则他们会很快进来并踢掉你,以防你再次回去。
请参阅本文最后的“被入侵之后怎么办”这一章节来看找到了被入侵的证据后应该怎么办。
whois 命令可以接一个 IP 地址然后告诉你该 IP 所注册的组织的所有信息,当然就包括所在国家的信息。
检查 2 - 谁曾经登录过?
Linux 服务器会记录下哪些用户,从哪个 IP,在什么时候登录的以及登录了多长时间这些信息。使用 last 命令可以查看这些信息。
输出类似这样:
root pts/178.31.109.1 Thu Nov 30 08:26 still logged in
root pts/0113.174.161.1Thu Nov 30 08:26 still logged in
root pts/178.31.109.1 Thu Nov 30 08:24 - 08:26 (00:01)
root pts/0113.174.161.1Wed Nov 29 12:34 - 12:52 (00:18)
root pts/014.176.196.1 Mon Nov 27 13:32 - 13:53 (00:21)
这里可以看到英国 IP 和越南 IP 交替出现,而且最上面两个 IP 现在还处于登录状态。如果你看到任何未经授权的 IP.
可以看看 chkrootkit lsof 啥地一些工具. 详细分析一下系统的情况.一般都能找到与正常的系统不一样的地方. 如果能找到相同版本的另一台系统进行对比也是不错的办法.
对系统文件(可执行)进行md5,sha校验啥地. 安装了prelink环境的还不能直接用 md5sum这类的工具来查看.
现在被入侵的系统往往都会被篡改很多位置.被安装了 rootkit啥地. 发现被入侵的话建议原来的系统就不要用了. 找到存在的漏洞,问题后. 把应用迁移到没有问题的新系统上去.
一、服务器出去的带宽会跑高这个是中毒的一个特征。因为服务器中毒之后被别人拿去利用,常见的就是拿去当肉鸡攻击别人。另外的就是拿你的数据之类的。所以服务器带宽方面需要注意下,如果服务器出去的带宽跑很高,那肯定有些异常,需要及时检查一下
2
二、系统里会产生多余的不明的用户
中毒或者被入侵之后会导致系统里产生一些不明用户或者登陆日志,所以这方面的检查也是可以看出一些异常的。
3
三、开机是否启动一些不明服务和crond任务里是否有一些来历不明的任务?
因为中毒会随系统的启动而启动的,所以一般会开机启动,检查一下启动的服务或者文件是否有异常,一般会在/etc/rc.local 和 crondtab -l 显示出来。所以要注意检查一下,以上三点都是比较常见的特征,还会有些不明显的特征需要留意下。
END
实例讲解中毒的Linux系统解决过程
1
在工作中碰到一次客户反馈系统经常卡,而且有时候远程连接不上。于是我就跟进这位客户,从本地以及远程检查一下他的系统,他也发现有不明的系统进程。我脑子里初步判断就是可能中毒了。
2
首先,我在监控里检查一下这服务器的带宽,发现服务器出去的带宽跑很高,所以才会导致他远程不上的,这是一个原因。为什么服务器出去的带宽这么高且超出了开通的带宽值?这个原因只能进入服务器系统里检查了。
3
其次,我向客户询问了系统的账号密码,远程进入系统里检查了下,也看到了客户所说的不明进程。 ps -aux 命令可以查看到 ,客户反馈不是他的游戏进程,然后我使用命令进行关闭。
4
再接着,我检查一下开机启动项 chkconfig--list | grep 3:on
服务器启动级别是3的,我检查一下了开机启动项,没有特别明显的服务。然后检查了一下开机启动的一个文件,more /etc/rc.local
看到这个文件里被添加了很多项,询问客户,并非是他添加的,所以我也注释了它。如下图
5
在远程的时候,我觉得还是有些卡,检查了一下系统的计划任务crond,使用crondtab -l 命令进行查看,看到很多注释行,再认真查看,也有添加的计划任务与/etc/rc.local的内容差不多。如下图,不是显示全部
与客户沟通,也不是客户添加的,客户说他也不会这些。所以后来我备份了一个这个内容,就删除了,然后停止crond任务,并chkconfig crond off 禁用它开机启动。
6
最后为了彻底清除危害,我检查了一下系统的登陆日志,看到除了root用户还有其它的用户登陆过。检查了一下/etc/passwd ,看到有不明的用户,询问客户并非他添加,然后使用
usermod -L XXX 禁用这些用户。 然后更新了下系统的复杂密码,然后通知客户。附一些相关图片
END
如何保障linux系统的安全
一、从以上碰到的实例来分析,密码太简单是一个错
用户名默认,密码太简单是最容易被入侵的对象,所以切忌不要使用太过于简单的密码,先前碰到的那位客户就是使用了太简单的且规则的密码 1q2w3e4r5t, 这种密码在扫描的软件里是通用的,所以很容易被别人扫描出来的。
2
二、不要使用默认的远程端口,避免被扫描到
扫描的人都是根据端口扫描,然后再进行密码扫描,默认的端口往往就是扫描器的对象,他们扫描一个大的IP 段,哪些开放22端口的认为是ssh服务的linux系统,所以才会猜这机器的密码。更改远程端口也是安全的一个措施
3
三、使用一些安全策略进行保护系统开放的端口
可以使用到iptables或者简单的文件安全配置 /etc/hosts.deny 、/etc/hosts.allow等文件进行配置。经常维护也是必须的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)