<加强安全(二)>Linux可疑日志分析整理,linux日志分析

<加强安全(二)>Linux可疑日志分析整理,linux日志分析

Hello,大家好,我是Lionel,距离2018还不到10天了,回忆起2017公司的大事件深有感慨。年底了,小偷也要挣钱回家过年了。网络中黑客也在蠢蠢欲动,为了防止公司的服务器被入侵,我还是一个一个上去看看有没有可疑的问题吧。让同事踏踏实实的过个好年。

分几个思路来查服务器是否有被入侵的嫌疑。
1.查看系统用户
2.查看用户登录时间和IP
3.查询使用过的命令
4.分析登录IP
5.分析命令中是否有敏感命令

OK,我们现在开始。

1.首先查看系统中的用户

cat /etc/passwd | grep /bin/bash

这个命令运行出来,一般都是root用户,你要是有别的用户,除了你自己加的,别的就有些可疑了,虽然没有最高权限,但是也要看看是什么问题。

2.登录用户和登录时候用的IP

一般这个日志有很多行,要一行一行的看,所以我选择导出这个log文件。

who /var/log/wtmp > /root/name.txt

导出wtmp文件到root目录下的name.txr文件。

这个目的只是方便看。

嗯,数据量有点大,我们有几百个CDN节点,看吧。累死我了。

3.查询历史命令

这个很简单

history

除非黑客把你历史命令删了。

4.分析登录IP

这个在上面打码的,就是登录的IP。在ipip.net或ip138.com查查是不是自己用的IP,或者记得登录IP的一对就知道了。数据量有点大,累死我了。

5.分析历史命令

看看是不是自己或者同事输入过的命令,如果有可疑下载文件那就要小心了。

这个就是基本查询的方式,如果黑客把这些清除了,还是很难查的。历史命令被清了肯定是可疑机器。

好了,我继续忙了,这个就是基本查询Linux是否被入侵的方法。

你会喜欢

<加强安全> 一键防止SSH密码被暴力破解

经过长时间学习,Linux系统正式版已经发行,下面就这就来讲术Linux系统日志。Linux发行版Fedora
Core Linux,而Red Hat公司原来Red Hat
Linux的开发团队也将继续参与这一发行版本的开发工作。Red Hat公司把Fedora
Project看作一个新技术的开发园地,鼓励有兴趣的自由软件开发人员参与此项项目的开发,希望这一发行版本真正成为以自由软件开发为模式的操作系统。

Linux系统中的日志子系统对于系统安全来说非常重要,它记录了系统每天发生的各种各样的事情,包括那些用户曾经或者正在使用系统,可以通过日志来检查错误发生的原因,更重要的是在系统受到黑客攻击后,日志可以记录下攻击者留下的痕迹,通过查看这些痕迹,系统管理员可以发现黑客攻击的某些手段以及特点,从而能够进行处理工作,为抵御下一次攻击做好准备。

在Linux系统日志中,有三类主要的日志子系统:
◆连接时间日志:
由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
◆进程统计:
由系统内核执行,当一个进程终止时,为每个进程往进程统计文件pacct或acct)中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。
◆错误日志:
由syslogd8)守护程序执行,各种系统守护进程、用户程序和内核通过syslogd3)守护程序向文件/var/log/messages报告值得注意的事件。另外有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的Linux系统日志。

在Linux系统中,有三类主要的日志子系统:

Linux系统日志的使用 基本日志命令的使用

● 连接时间日志:
由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

utmp、wtmp日志文件是多数Linux系统日志子系统的关键,它保存了用户登录进入和退出的记录。有关当前登录用户的信息记录在文件utmp中;
登录进入和退出记录在文件wtmp中;
数据交换、关机以及重启的机器信息也都记录在wtmp文件中。所有的记录都包含时间戳。时间戳对于Linux系统日志来说非常重要,因为很多攻击行为分析都是与时间有极大关系的。这些文件在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改,这些脚本重新命名并循环使用wtmp文件。utmp文件被各种命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。
但它们都是二进制文件,不能被诸如tail命令剪贴或合并使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。具体用法如下:
who命令:
who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。例如:
运行who命令显示如下:
[[email protected]]#
who
root pts/0 May 9 21:11 (10.0.2.128)
root pts/1 May 9 21:16 (10.0.2.129)
lhwen pts/7 May 9 22:03 (10.0.2.27)
如果指明了wtmp文件名,则who命令查询所有以前的记录。例如命令who
/var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。
Linux系统日志使用注意事项

● 进程统计:
由系统内核执行,当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。

系统管理人员应该提高警惕,随时注意各种可疑状况,并且按时和随机地检查各种Linux系统日志文件,包括一般信息日志、网络连接日志、文件传输Linux系统日志以及用户登录日志等。在检查这些日志时,要注意是否有不合常理的时间记载。例如:
◆用户在非常规的时间登录;
◆不正常的日志记录,比如日志的残缺不全或者是诸如wtmp这样的日志文件无故地缺少了中间的记录文件;
◆用户登录系统的IP地址和以往的不一样;
◆用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录;
◆非法使用或不正当使用超级用户权限su的指令;
◆无故或者非法重新启动各项网络服务的记录。

● 错误日志:
由syslogd(8)守护程序执行,各种系统守护进程、用户程序和内核通过syslogd(3)守护程序向文件/var/log/messages报告值得注意的事件。另外有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

另外, 尤其提醒管理人员注意的是:
Linux系统日志并不是完全可靠的。高明的黑客在入侵系统后,经常会打扫现场。所以需要综合运用以上的系统命令,全面、综合地进行审查和检测,切忌断章取义,否则很难发现入侵或者做出错误的判断。
users命令:
users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。运行该命令将如下所示:
[[email protected]]#
users
root root //只登录了一个Root权限的用户
last命令:
last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核,从而发现其中存在的问题,确定不法用户,并进行处理。运行该命令,如下所示:
[[email protected]]#
last
devin pts/1 10.0.2.221 Mon Jul 21 15:08-down (8+17:46)
devin pts/1 10.0.2.221 Mon Jul 21 14:42 – 14:53 (00:11)
changyi pts/2 10.0.2.141 Mon Jul 21 14:12 – 14:12 (00:00)
devin pts/1 10.0.2.221 Mon Jul 21 12:51 – 14:40 (01:49)
reboot system boot 2.4.18 Fri Jul 18 15:42 (11+17:13)
reboot system boot 2.4.18 Fri Jul 18 15:34 (00:04)
reboot system boot 2.4.18 Fri Jul 18 15:02 (00:36)

Linux下日志的使用

读者可以看到,使用上述命令显示的信息太多,区分度很小。所以,可以通过指明用户来显示其登录信息即可。例如:
使用last devin来显示devin的历史登录信息,则如下所示:
[[email protected]]#
last devin
devin pts/1 10.0.2.221 Mon Jul 21 15:08 – down (8+17:46)
devin pts/1 10.0.2.221 Mon Jul 21 14:42 – 14:53 (00:11)
ac命令:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间小时),如果不使用标志,则报告总的时间。另外,可以加一些参数,例如,last
-t 7表示显示上一周的报告。
lastlog命令
lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号tty)和上次登录时间。如果一个用户从未登录过,lastlog显示“**Never
logged**”。注意需要以root身份运行该命令。运行该命令如下所示:
[[email protected]]#
lastlog
Username Port From Latest
root pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005
opal pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

1.基本日志命令的使用

使用Syslog设备

utmp、wtmp日志文件是多数Linux日志子系统的关键,它保存了用户登录进入和退出的记录。有关当前登录用户的信息记录在文件utmp中;
登录进入和退出记录在文件wtmp中;
数据交换、关机以及重启的机器信息也都记录在wtmp文件中。所有的记录都包含时间戳。时间戳对于日志来说非常重要,因为很多攻击行为分析都是与时间有极大关系的。这些文件在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改,这些脚本重新命名并循环使用wtmp文件。

Syslog已被许多日志函数采纳,被用在许多保护措施中,任何程序都可以通过syslog
记录事件。Syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。
Syslog设备核心包括一个守护进程/etc/syslogd守护进程)和一个配置文件/etc/syslog.conf配置文件)。通常情况下,多数syslog信息被写到/var/adm或/var/log目录下的信息文件中messages.*)。一个典型的syslog记录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围。
系统管理员通过使用syslog.conf文件,可以对生成的Linux系统日志的位置及其相关信息进行灵活配置,满足应用的需要。例如,如果想把所有邮件消息记录到一个文件中,则做如下操作:
#Log all the mail messages in one place
mail.* /var/log/maillog
其他设备也有自己的Linux系统日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志/var/log/spooler)中并把级别限为”err”或更高。例如:
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
当一个紧急消息到来时,可能想让所有的用户都得到。也可能想让自己的Linux系统日志接收并保存。
#Everybody gets emergency messages, plus log them on anther machine
*.emerg *
*.emerg @linuxaid.com.cn
用户可以在一行中指明所有的设备。下面的例子把info或更高级别的消息送到/var/log/messages,除了mail以外。级别”none”禁止一个设备:
#Log anythingexcept mail)of level info or higher
#Don’t log private authentication messages!
*.info:mail.none;autHPriv.none /var/log/messages
在有些情况下,可以把Linux系统日志送到打印机,这样网络入侵者怎么修改Linux系统日志都不能清除入侵的痕迹。因此,syslog设备是一个攻击者的显著目标,破坏了它将会使用户很难发现入侵以及入侵的痕迹,因此要特别注意保护其守护进程以及配置文件。

utmp文件被各种命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。但它们都是二进制文件,不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。具体用法如下:

  1. 深入讨论Linux系统日志管理
  2. 详细讲解Linux系统VPN服务器配置
  3. 简介运用光盘安装Linux系统
  4. Fedora Linux系统下操作实现虚拟文件
  5. 详细介绍Linux系统安装与GNOME桌面

who命令:
who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。例如:
运行who命令显示如下:

Core Linux,而Red Hat公司原来Red Hat Linux的开发团…

[root@working]# who

root pts/0 May 9 21:11 (10.0.2.128)

root pts/1 May 9 21:16 (10.0.2.129)

lhwen pts/7 May 9 22:03 (10.0.2.27)

如果指明了wtmp文件名,则who命令查询所有以前的记录。例如命令who
/var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。

日志使用注意事项

系统管理人员应该提高警惕,随时注意各种可疑状况,并且按时和随机地检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时,要注意是否有不合常理的时间记载。例如:

■ 用户在非常规的时间登录;


不正常的日志记录,比如日志的残缺不全或者是诸如wtmp这样的日志文件无故地缺少了中间的记录文件;

■ 用户登录系统的IP地址和以往的不一样;

■ 用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录;

■ 非法使用或不正当使用超级用户权限su的指令;

■ 无故或者非法重新启动各项网络服务的记录。