如何判断 Linux 服务器是否被入侵了,该怎么对服务器进行安全加固
随着互联网的发展,各种线上程序普及,用户对服务器的安全性也愈加重视。服务器被侵入可能导致严重的数据泄露、系统瘫痪等问题,因此及时排查服务器是否被侵入,成为了保障信息安全的重要环节。德迅云将给大家介绍服务器是否被侵入的排查方案,并采取相应措施对服务器进行安全加固。那在我们日常使用服务该如何判断自己的服务器是否被入侵了呢?
被入侵服务器的一些常见症状:
1、资源消耗异常:入侵者可能会消耗大量的 CPU、内存等资源,导致服务器性能下降。一般出现服务器响应缓慢,甚至出现卡顿或死机的情况。
2、网络连接异常:如果发现服务器的网络连接出现异常,如大量不正常的网络请求或数据传输,这可能是入侵的迹象。
3、系统日志异常:服务器的系统日志(如/var/log/messages、/var/log/syslog 等)可以反映服务器的活动。如果日志中出现了异常的登录记录、异常的命令执行等,可能是有被入侵情况。
4、文件或目录异常:如果发现服务器上的某些文件或目录被修改、删除或新增,尤其是与系统安全相关的文件或目录,这可能是入侵的迹象。
5、服务异常:如果服务器的某个或多个服务出现异常,如无法正常启动或运行,或者出现了未知的服务,这可能是入侵的迹象。
6、安全软件异常:如果服务器的安全软件(如防火墙、杀毒软件等)出现异常,如未正常运行或报错,这也可能是入侵的迹象。
如果有发现了异常情况,我们该怎么处理:
1 、 检查都有哪些 IP 在登录?
首先查看当前都有谁登录在服务器上。发现攻击者登录到服务器上进行操作并不复杂。在 Linux 服务器上,可以使用 last 命令来检查用户的登录信息,包括登录的 IP 地址、登录时间以及登录时长等。
2、检查系统密码文件
首先从明显的入手,查看一下 passwd 文件,ls –l /etc/passwd 查看文件修改的日期。
检查一下 passwd 文件中有哪些特权用户,系统中 uid 为 0 的用户都会被显示出来。awk –F:’$3==0 {print $1}’ /etc/passwd
顺便再检查一下系统里有没有空口令帐户:awk –F: ‘length($2)==0 {print $1}’ /etc/shadow
3、检查进程
重点查看进程:ps –aef | grep inetd
inetd 是 UNIX 系统的守护进程,正常的 inetd 的 pid 都比较靠前,如果我们看到输出了一个类似 inetd –s /tmp/.xxx 之类的进程,着重看 inetd –s 后面的内容。在正常情况下,LINUX 系统中的 inetd 服务后面是没有-s 参数,也没有用 inetd 去启动某个文件;而 solaris 系统中也仅仅是 inetd –s,同样没有用 inetd 去启动某个特定的文件;如果你使用 ps 命令看到 inetd 启动了某个文件,而自己又没有用 inetd 启动这个文件,那就说明已经有人入侵了系统,以 root 权限起了后门。
输入 ps –aef 查看输出信息,尤其注意有没有以./xxx 开头的进程。一旦发现异样的进程,经检查为入侵者留下的后门程序,立即运行 kill –9 pid 开杀死该进程,然后再运行 ps –aef 查看该进程是否被杀死;一旦此类进程出现杀死以后又重新启动的现象,则证明系统被人放置了自动启动程序的脚本。这个时候要进行仔细查找:find / -name 程序名 –print,假设系统真的被入侵者放置了后门,根据找到的程序所在的目录,就会有所发现。
4、 检查哪些进程在消耗 CPU?
ps 命令:这个命令可以显示当前进程的状态信息,包括进程 ID、CPU 占用率等。可以使用以下命令来查看 CPU 占用率最高的进程:
一般入侵者也不会掩盖问题,有时候会运行一些特别消耗 CPU 的进程,我们可以输入 ps 或者 top。top 是比较常用的,可以实时显示系统的运行状态,包括各个进程的 CPU 占用情况。在默认情况下,进程按照 CPU 占用率的降序排列,最占用 CPU 的进程会显示在列表的最上方。这就很容易发现这些进程了,只需要运行 top 然后看最前的那几个进程就行了。
5、检查进程的网络使用情况
可以使用 iftop ,这个命令可以用来监控网络流量,显示每个进程的网络流量使用情况。在使用之前,需要先安装 iftop 工具。安装完成后,iftop -F -i eth0 启动,功能类似 top,它会排列显示收发网络数据的进程以及它们的源地址和目的地址。类似 DoS 攻击或垃圾机器人这样的进程很容易显示在列表的最顶端。
检查 7 - 哪些进程在监听网络连接?
通常攻击者会安装一个后门程序专门监听网络端口接受指令。该进程等待期间是不会消耗 CPU 和带宽的,因此也就不容易通过 top 之类的命令发现。
lsof 和 netstat 命令都会列出所有的联网进程。留意那些处于 LISTEN 和 ESTABLISHED 状态的进程,这些进程要么正在等待连接(LISTEN),要么已经连接(ESTABLISHED)。如果遇到不认识的进程,使用 strace 和 lsof 来看看它们在做什么。
确定被入侵之后该怎么办呢?
以上是针对一些入侵的一些安全措施,其实在我们确定了服务器有被入侵的情况后,最好的方法就是备份好数据重装系统,不要抱着修复这台服务器,接着就放心使用了,我们无法知道入侵者做过什么,因此是无法保证这台服务器完全安全。
那在日常使用中,我们该怎么对服务器进行安全加固,避免再出现这类入侵问题。目前,针对 Linux 服务器进行安全加固,我们可以从以下几个方面考虑:
1、系统用户优化:用户是 Linux 中安全加固的第一关,如果系统中本身就存在有安全隐患的用户,那么再安全策略也无法起到加固的效果。在 Linux 系统中可以使用命令查看系统中的用户信息,例如 cat /etc/passwd。此外,还可以使用命令来有针对性的查看具有超级权限的用户和具有登录 shell 的用户。如果除了 root 还有其他的超级用户,那就要非常小心了。
2、系统服务优化:对于不必要的服务,应当禁用或删除,以减少可能的攻击面。可以使用 chkconfig --list 命令查看所有服务的启动状态,然后根据需要关闭不必要的服务。
3、SSH 访问策略:SSH 是远程登录服务器的常用方式,因此需要配置好 SSH 的访问策略。建议使用强密码,禁用 root 直接登录,限制登录 IP,启用公钥验证等方式增强 SSH 的安全性。
4、及时更新系统补丁:定期检查并安装系统补丁和安全更新,以修复已知的安全漏洞。可以使用 yum update 或 apt-get update 等命令进行更新。
5、数据备份和恢复:定期备份重要数据,并确保备份数据存储在安全的地方。同时,应制定详细的恢复计划,以便在发生安全事件时能够快速恢复数据和系统。
6、限制物理访问:确保服务器存放在安全可靠的环境中,限制未经授权的人员接触服务器。
7、防火墙配置:防火墙是服务器安全的重要屏障,应正确配置防火墙规则以防止未授权的访问和攻击。可以使用 iptables 等工具进行防火墙配置,只允许必要的网络流量通过,禁止其他所有流量。
8、主机安全软件:启用主机安全软件,监控系统的运行状态和用户的活动,以便及时发现异常行为和安全事件。可以使用德迅卫士等主机安全软件进行审计和监控。
以上是针对 Linux 服务器进行安全加固的一些具体步骤,这些步骤可以增强服务器的安全性,减少被攻击的风险。但需要注意的是,安全加固是一个持续的过程,需要定期检查和更新安全策略和配置,以应对不断变化的安全威胁。
评论