以下几种方法检测linux服务器是否被攻击:1、
检查系统密码
文件 首先从明显的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。 2、查看一下进程,看看有没有奇怪的进程 重点查看进程: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权限起了一个简单的后门。3、检查系统守护进程 检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep –v “^#”,输出的信息就是这台机器所开启的远程服务。 一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh 替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。4、检查网络连接和监听端口 输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。 输入netstat –rn,查看本机的路由、网关设置是否正确。 输入 ifconfig –a,查看网卡设置。 5、检查系统日志 命令last | more查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现syslog被非法动过,那说明有重大的入侵事件。 在linux下输入ls –al /var/log 检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。 6、检查系统中的core文件 通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说并不能100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core –exec ls –l {} \依据core所在的目录、查询core文件来判断是否有入侵行为。7、检查系统文件完整性 检查文件的完整性有多种方法,通常通过输入ls –l 文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm –V `rpm –qf 文件名` 来查询,查询的结果是否正常来判断文件是否完整。在LINUX下使用rpm来检查文件的完整性的方法也很多,这里不一一赘述,可以man rpm来获得更多的格式。当然会,所谓重大的黑客案子,一般都是linux或unix服务器被攻击。
防火墙嘛,系统是自带的,当然,为了安全,也可以安装别的,但是一般情况下是没有必要的。
现在linux出了防火墙以外,还提供SELinux,基本上已经足够了。
对于linux来说,作为服务器一般都是只提供某一项服务,而不会同时提供多项服务。例如如果一台机器是做为邮件服务器的,那么它一般不会提供www服务。这是因为提供较少的服务,打开较少的端口,可以减少被攻击的危险。同时,对系统日志进行检查的时候也更为方便,日志会记录服务的状态,如果遭到攻击,可以检查出来,但是当多项服务并存的时候,日志会十分杂乱(没有进行有效设置的话)。
如果是有经验的管理员,可以尝试提供多项服务。
评论列表(0条)