IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 操作系统 > LINUX > 明明白白你的Linux服务器—日志篇

明明白白你的Linux服务器—日志篇

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

  日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和追踪侵入者等等。正因为如此,抚琴煮酒特的将它整理成一篇比重跟硬件篇、网络篇并列的文章,希望大家能从中学习到对自己有用的东西。

  一、配置syslog(gyl4802959同学撰写)

  目前,linux依旧使用syslogd作为日志监控进程,对其进行必要的配置能减少很多麻烦,并且可更有效的从系统日志监控到系统的状态。理解并完善一个syslog的配置,对于系统管理员来说显得尤为重要。

  /etc/syslog.conf根据如下的格式定义规则: facility.level action

  设备.优先级 动作facility.level 字段也被称为seletor(选择条件),选择条件和动作之间用空格或tab分割开。

  #号开头的是注释,空白行会自动跳过。

  1、facility

  facility定义日志消息的范围,其可使用的key有: auth -由 pam_pwdb 报告的认证活动。

  authpriv -包括特权信息如用户名在内的认证活动

  cron -与 cron 和 at 有关的计划任务信息。

  daemon -与 inetd 守护进程有关的后台进程信息。

  kern -内核信息,首先通过 klogd 传递。

  lpr -与打印服务有关的信息。

  mail -与电子邮件有关的信息

  mark - syslog内部功能用于生成时间戳

  news -来自新闻服务器的信息

  syslog -由 syslog 生成的信息

  user -由用户程序生成的信息

  uucp -由 uucp 生成的信息

  local0-local7 -与自定义程序使用

  * 通配符代表除了 mark 以外的所有功能除mark为内部使用外,还有security为一个旧的key定义,等同于auth,已经不再建议使用。

  2、level级别

  level定义消息的紧急程度。按严重程度由高到低顺序排列为: emerg -该系统不可用,等同panic

  alert -需要立即被修改的条件

  crit -阻止某些工具或子系统功能实现的错误条件

  err -阻止工具或某些子系统部分功能实现的错误条件,等同error

  warning -预警信息,等同warn

  notice -具有重要性的普通条件

  info -提供信息的消息

  debug -不包含函数条件或问题的其他信息

  none -没有重要级,通常用于排错

  * 所有级别,除了none其中,panic、error、warn均为旧的标识符,不再建议使用。

  在定义level级别的时候,需要注意两点: 1)优先级是由应用程序在编程的时候已经决定的,除非修改源码再编译,否则不能改变消息的优先级;

  低的优先级包含高优先级,例如,为某个应用程序定义info的日志导向,则涵盖notice、warning、err、crit、alert、emerg等消息。(除非使用=号定义)

  3、selector选择条件

  通过小数点符号&.&把facility和level连接在一起则成为selector(选择条件)。

  可以使用分号&;&同时定义多个选择条件。也支持三个修饰符: * - 所有日志信息

  = - 等于,即仅包含本优先级的日志信息

  ! - 不等于,本优先级日志信息除外

  4、action动作

  由前面选择条件定义的日志信息,可执行下面的动作: file-指定日志文件的绝对路径

  terminal 或 print -发送到串行或并行设备标志符,例如/dev/ttyS2

  @host -远程的日志服务器

  username -发送信息本机的指定用户信息窗口中,但该用户必须已经登陆到系统中

  named pipe -发送到预先使用 mkfifo 命令来创建的 FIFO 文件的绝对路径※注意,不能通过&|/var/xxx.sh&方式导向日志到其他脚本中处理。

  5、举例

  例如: *.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages

  #把除邮件、新闻组、授权信息、计划任务等外的所有通知性消息都写入messages文件中。

  mail,news.=info /var/adm/info

  #把邮件、新闻组中仅通知性消息写入info文件,其他信息不写入。

  mail.*;mail.!=info /var/adm/mail

  #把邮件的除通知性消息外都写入mail文件中。

  mail.=info /dev/tty12

  #仅把邮件的通知性消息发送到tty12终端设备

  *.alert root,joey

  #如果root和joey用户已经登陆到系统,则把所有紧急信息通知他们

  *.* @finlandia

  #把所有信息都导向到finlandia主机(通过/etc/hosts或dns解析其IP地址)※注意:每条消息均会经过所有规则的,并不是唯一匹配的。

  也就是说,假设mail.=info信息通过上面范例中定义的规则时,/var/adm/info、/var/adm/mail、/dev/tty12,甚至finalandia主机都会收到相同的信息。这样看上去比较烦琐,但可以带来的好处就是保证了信息的完整性,可供不同地方进行分析。

#p#副标题#e#

  二、messages日志

  首先说下我们最关注的系统/var/log/messages,这东东不仅是咱们服务器的系统日志,很多时候它也做了许多服务的日志,这也是它被称为杂货铺的原因,值得重点关注,大家一般都喜欢用以下命令看最后十条日志

  tail -n10 /var/log/messages

  其实还可以将一段日志保存成文件,正用练下自己的awk、sed和grep水平;或者直接用vim来查看,这也是算是一种经验之谈吧。我以前配置bind的主从复制,有时因为权限的原因报错;这时可以在一台报错的服务器上用命令tail -f /var/log/messages实时查看服务器的变化情况,从中查找错误的蛛丝马迹;事实证明,效果很好,而且用于lvs+keepalived的排错效也不错,其它事例依此类推。

  三、secure的用法

  /var/log/secure:记录登入系统存取数据的文件,例如 pop3, ssh, telnet, ftp 等都会被记录,我们可以利用此文件找出不安全的登陆IP。

  四、记录登陆者的数据

  /var/log/wtmp:记录登入者的讯息数据,由于本文件已经被编码过(为二进制文件),所以必须使用 last指令来取出文件的内容,你用cat等命令直接查看此文件是不行的。

  五、lastlog记录系统时间

  /var/log/lastlog : 记录每个使用者最近签入系统的时间, 因此当使用者签入时, 就会显示其上次签入的时间,您应该注意一下这个时间, 若不是您上次签入的时间, 表示您的帐号可能被人盗用了。 此档可用 /usr/bin/lastlog 指令读取(Freebsd下为/usr/sbin/lastlogin)。

  六、用dmesg查看启动消息

  dmesg提供了一个简单的方法查看系统启动信息。当Linux启动的时候,内核的信息被存入内核ring缓存当中,dmesg可以显示缓存中的内容。默认情况下,dmesg打印内容到屏幕上面,当然你可以重定向输出到一个文件。如果硬件损坏的话,在dmesg日志里是有显示的,可用以下命令来查看dmesg | grep error

  七、服务器的邮件日志

  服务器的邮件为/var/log/messages,如果要用专业的日志分析工具来分析的话,我推荐用Awstats;由于公司的开发对邮件的要求比较低,所以我帮他们配置的就是最简单的sendmail,有时看看邮件日志里的status状态来判断邮件到底有没有正确发送;在配置Nagios服务器,我也习惯用此日志来判断报警邮件到底有没有发送,如果对自己的shell水平足够自信,也可以写脚本来收集邮件服务器的返回状态等,但专业的事情,建议还是由专业的工具来做,特别是邮件负载比较大时,每天几百万条日志或上千万条日志不是开玩笑的。

  八、日志文件的专业工具

  像系统的一些服务,比如Apache、Nginx、Squid、还有mysql,都有自己的特定的日志文件,由于格式比较复杂,也推荐用专业工具,如Awstats、Cacti来分析,现在用cacti用得比较多是用它分析Nginx负载均衡器的一段时间的并发情况。

  九、输出Iptables日志到一个指定的文件(logboy同学撰写)

  Iptables的man参考页中提到: 我们可以使用Iptables在Linux内核中建立, 维护和检查IP包过滤规则表。几个不同的表可能已经创建, 每一个表包含了很多内嵌的链, 也可能包含用户自定义的链。Iptables默认把日志信息输出到/var/log/messages文件。不过一些情况下你可能需要修改日志输出的位置。下面向大家介绍如何建立一个新的日志文件/var/log/iptables.log。通过修改或使用新的日志文件, 你可以创建更好的统计信息或者帮助你分析网络攻击信息。

  (1). Iptables默认的日志文件

  例如, 如果你输入下面的命令, 屏幕将显示/var/log/messages文件中的Iptables日志信息:

  # tail -f /var/log/messages

  输出:

  Oct 4 00:44:28 debian gconfd (vivek-4435):Resolved address &xml:readonly:/etc/gconf/gconf.xml.defaults&to a read-only configuration source at position 2Oct 4 01:14:19 debian kernel:IN=ra0 OUT= MAC=00:17:9a:0a:f6:44:00:08:5c:00:00:01:08:00SRC=200.142.84.36 DST=192.168.1.2LEN=60 TOS=0x00 PREC=0x00 TTL=51 ID=18374DF PROTO=TCP SPT=46040 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0

  (2).输出Iptables日志信息到一个指定文件的方法

  打开你的/etc/syslog.conf文件:

  # vi /etc/syslog.conf

  在文件末尾加

关键词标签:Linux,服务器

相关阅读 安装红帽子RedHat Linux9.0操作系统教程 Tomcat9.0如何安装_Tomcat9.0环境变量配置方法 多种操作系统NTP客户端配置 Linux操作系统修改IP Linux实现SCSI硬盘热插拔及在线识别 Linux下用CDMA modem拨号上网

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程 安装红帽子RedHat Linux9.0操作系统教程 Linux服务器:设计高性能网站架构-LLMP Linux服务器:设计高性能网站架构-LLMP 使用Clonezilla迁移到虚拟Linux环境 使用Clonezilla迁移到虚拟Linux环境 Linux上的MRTG流量监控中心 Linux上的MRTG流量监控中心 Linux 双网卡绑定一个IP原理及实现 Linux 双网卡绑定一个IP原理及实现 linux和windows等系统远程控制ubuntu桌面 linux和windows等系统远程控制ubuntu桌面

相关下载

人气排行 Linux下获取CPUID、硬盘序列号与MAC地址 dmidecode命令查看内存型号 linux tc实现ip流量限制 安装红帽子RedHat Linux9.0操作系统教程 linux下解压rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 关机、重启、注销 命令 查看linux服务器硬盘IO读写负载 linux命令行浏览器的使用方法 Linux NFS服务固定端口及防火墙配置 U盘安装Ubuntu 10.04 Linux清除用户登录记录和命令历史方法