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

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

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

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

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

Linux下日志的使用

1.基本日志命令的使用

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

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

  • who命令: who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。如果指明了wtmp文件名,则who命令查询所有以前的记录。例如命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。

  • s命令: s用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。

  • last命令: last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核,从而发现其中存在的问题,确定不法用户,并进行处理。

  • ac命令: ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间(小时),如果不使用标志,则报告总的时间。另外,可以加一些参数,例如,last -t 7表示显示上一周的报告。

  • lastlog命令: lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示“** Never logged **”。注意需要以root身份运行该命令。

2. 日志使用注意事项

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

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

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

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

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

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

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

另外, 尤其提醒管理人员注意的是: 日志并不是完全可靠的。高明的黑客在入侵系统后,经常会打扫现场。所以需要综合运用以上的系统命令,全面、综合地进行审查和检测,切忌断章取义,否则很难发现入侵或者做出错误的判断。

3. 使用Syslog设备

Syslog已被许多日志函数采纳,被用在许多保护措施中,任何程序都可以通过syslog 记录事件。Syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。

Syslog设备核心包括一个守护进程(/etc/syslogd守护进程)和一个配置文件(/etc/syslog.conf配置文件)。通常情况下,多数syslog信息被写到/var/adm或/var/log目录下的信息文件中(messages.*)。一个典型的syslog记录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围。

系统管理员通过使用syslog.conf文件,可以对生成的日志的位置及其相关信息进行灵活配置,满足应用的需要。例如,如果想把所有邮件消息记录到一个文件中,则做如下操作:

#Log all the mail messages in one place
mail.* /var/log/maillog

其他设备也有自己的日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志(/var/log/spooler)中并把级别限为"err"或更高。例如:

# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler

当一个紧急消息到来时,可能想让所有的用户都得到。也可能想让自己的日志接收并保存。

#Everybody gets emergency messages,plus log them on anther machine
*.emerg *
*.emerg @linuxaid.com.cn

用户可以在一行中指明所有的设备。下面的例子把info或更高级别的消息送到 /var/log/messages,除了mail以外。级别"none"禁止一个设备:

#Log anything(except mail)of level info or higher
#Don\′t log private authentication messages!
*.info:mail.none;autHPriv.none /var/log/messages

在有些情况下,可以把日志送到打印机,这样网络入侵者怎么修改日志都不能清除入侵的痕迹。因此,syslog设备是一个攻击者的显著目标,破坏了它将会使用户很难发现入侵以及入侵的痕迹,因此要特别注意保护其守护进程以及配置文件。

4.程序日志的使用

许多程序通过维护日志来反映系统的安全状态。su命令允许用户获得另一个用户的权限,所以它的安全很重要,它的文件为sulog,同样的还有sudolog。另外,诸如Apache等Http的服务器都有两个日志: access_log(客户端访问日志)以及error_log(服务出错日志)。FTP服务的日志记录在xferlog文件当中,Linux下邮件传送服务(sendmail)的日志一般存放在maillog文件当中。

程序日志的创建和使用在很大程度上依赖于用户的良好编程习惯。对于一个优秀的程序员来说,任何与系统安全或者网络安全相关的程序的编写,都应该包含日志功能,这样不但便于程序的调试和纠错,而且更重要的是能够给程序的使用方提供日志的分析功能,从而使系统管理员能够较好地掌握程序乃至系统的运行状况和用户的行为,及时采取行动,排除和阻断意外以及恶意的入侵行为。

Linux secure 日志分析相关推荐

  1. 业界重磅新书《UNIX/Linux网络日志分析与流量监控》首发

    <UNIX/Linux网络日志分析与流量监控> 出版社官网: http://www.cmpbook.com/stackroom.php?id=39384 每本图书附赠51CTO学院的价值1 ...

  2. 《UNIX/Linux网络日志分析与流量监控》实验环境下载

    <UNIX/Linux网络日志分析与流量监控>实验环境下载 1.Ossim 4.1 虚拟机下载  (适合2~4G内存的服务器运行),该虚拟机压缩包内包含系统登录密码,Web UI登录密码需 ...

  3. 《Unix/Linux网络日志分析与流量监控》2014年11月底出版

    2014年11月 <Unix/Linux网络日志分析与流量监控>重磅新书出版 近日,历时3年创作的75万字书稿已完成,本书目前正在出版社清样阶段即将出版发行.本书紧紧围绕网络安全的主题,对 ...

  4. 《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖

    <Unix/Linux网络日志分析与流量监控>获2015年度最受读者喜爱的IT图书奖 这3本原创Linux图书,全部收录于中国科学院图书馆.国图以及211.985高校图书馆,广获读者好评, ...

  5. linux awk 日志分析,Linux Awk使用案例总结 nginx日志统计

    文章目录 [隐藏] 一.Nginx日志分析 知识点: 数组 数组是用来存储一系列值的变量,可通过索引来访问数组的值. Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串. 下标通常 ...

  6. linux oom日志分析,oom killer理解和日志分析:知识储备

    oom killer日志分析,这是前篇,准备一些基础知识 带着问题看: 1.什么是oom killer 他是Linux内核设计的一种机制,在内存不足的会后,选择一个占用内存较大的进程并kill掉这个进 ...

  7. Linux下日志分析--Linux日志

    简介 我们在企业里面,当我们把服务器放到了互联网当中去了以后,我们的服务器就可能被入侵.这就需要服务器的运维人员定期的对企业的服务器做定期的入侵检测,排查服务器是否被入侵. 下面将介绍入侵检测所用到的 ...

  8. linux resin 查看日志命令,【转】linux:访问日志分析

    作为一个程序员或项目负责人,甚至运营人员,很多人都想知道: * 我们的项目访问量怎么样 * 用户访问高峰在什么时候 * 系统变慢的时候用户做了哪些操作 * 用户对哪些功能比较感兴趣 * 真实用户在服务 ...

  9. Linux下日志分析的几个常用命令

    有时候我们需要对线上的应用日志做一些分析和简单的统计工作,熟悉一下Linux下文本处理的几个命令,可能会有意想不到的收获: more /less   查看文件内容 head/tail     查看文件 ...

最新文章

  1. HSV的数据结构各分量H S V的直观理解其实就是对应图片位置的的像素一一对应的矩阵表示
  2. 微信好友大揭秘,使用Python抓取朋友圈数据,通过人脸识别全面分析好友,一起看透你的“朋友圈”...
  3. 常见测量矩阵的MATLAB实现
  4. 赛思互动:为什么越来越多的企业愿意接受SaaS服务?
  5. 已经人均5G了?5G手机没人买,iPhone 11没5G该不该被嘲讽?
  6. 26秒!全球销量第一的AI音箱就被腾讯黑掉了,然后变身窃听器
  7. 自定义beans.xml文件实现Spring框架
  8. jQuery-对标签元素 文本操作-属性操作-文档的操作
  9. 国外一些DICOM资源下载网址
  10. 论文解读:iDRNA-ITF:基于诱导和转移框架识别蛋白质中的DNA和RNA结合残基
  11. opencv3中的图像混合操作
  12. Android面部动态识别(眼睛+嘴巴+鼻子轮廓标记)
  13. COB--COF--COG--TAB--TCP
  14. Android Studio 布局 - ScrollView和HorizontalScrollView
  15. Python之输入一个年份判断该年是否是闰年
  16. 教学生用计算机画画,教师资格证美术面试真题《用电脑画画》
  17. 《4DenoiseNet: Adverse Weather Denoising from Adjacent Point Clouds》
  18. 导出导入数据库 (解决了MySQL Access denied for user 'root'@'IP地址'问题)
  19. 阿里高层大调整,集团CEO张勇兼任阿里云总裁,CTO鲁肃卸任
  20. ​Win10更新清理怎么做?

热门文章

  1. 360手机刷机救砖:QGDP360手机全支持;360手机N5、N5S、N6、N6Lite、N6PRO、N7、N7Lite、N7PRO
  2. CMMI 级别中和BUG率
  3. Vue 自定义音乐播放器组件为H5添加背景音乐
  4. Java多线程-Thread常用方法
  5. jmeter之Json断言使用方法
  6. 使用BC进行RSA加密与解密
  7. 实现抓娃娃游戏功能关键算法。Java使用数组、循环结构语句实现输入十个数字判断最大值,Java判断最大值。
  8. 城市划分出炉 客户等级划分好了吗?
  9. python封装线程类(启动、终止、查看线程状态)
  10. Mac 查询是否支持VT(Intel的Vanderpool的虚拟技术)