0570syslog.htm

来自「鸟哥LINUX 学习课本」· HTM 代码 · 共 956 行 · 第 1/5 页

HTM
956
字号
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; ">   <meta name="Author" content="VBird">   <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">   <meta name="Description" content="登錄檔的分析啦!">   <title>鸟哥的 Linux 私房菜 -- log files 的分析</title><!-- saved from url=(0022)http://internet.e-mail --><style>   <!--   body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED}   --></style></head><body nosave="" background="0570syslog_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0570syslog_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0570syslog_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0570syslog_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0570syslog_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0570syslog_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0570syslog_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff" face="SimSun"><a href="http://linux.vbird.org/linux_basic/0570syslog.php" target="_self">认识与分析登录档</a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2003/02/11</font></div><font size="+1" color="#000099"><a href="#whatis_syslog">什么是登录档、干嘛要分析登录档</a></font><br><font color="#000099"><font size="+1"><a href="#RedHatSys">Linux 登录档的规划</a></font>:<a href="#syslogd">syslogd</a>,<a href="#logfile_security">登录文件的安全属性设定</a>,<a href="#logrotate">logrotate</a>,</font><br><font color="#000099"><font size="+1"><a href="#analyze">登录档分析</a></font>:<a href="#dmesg">dmesg</a>,<a href="#last">last</a>,</font><br><font color="#000099"><a href="#VBird"><font size="+1">VBird 写的</font>logfile.sh</a></font><br><font size="+1" color="#000099"><a href="#FAQ">本章习题练习</a></font><br><hr width="100%"><a name="whatis_syslog"></a><font size="+1" color="#000099">什么是登录档、干嘛要分析登录档</font><blockquote>这部分是最容易被新手所忽略的,那就是<font color="#000066">详细而确实的纪录或者是备份系统的登录文件</font>。什么是登录档呢?简单的说,就是<font color="#000066">记录系统活动记录的几个档案,例如:何时、何地(来源IP )、何人( login name )、做了什么动作,另外就是系统在什么时候做了什么样的行为时,发生了什么样的事件等等</font>,要知道的是,我们的Linux 主机在背景之下,有相当多的 daemons 在工作着,那么这些工作中的程序总是会有一些讯息显示,这些显示的讯息就是给记录在登录文件当中啦,也就是说,记录这些系统的重要讯息,就是登录文件所进行的纪录工作的内容了。而<font color="#000066">由于这些记录的工作内容对于系统的信息太详细了,若被取得将可能影响到系统的安全性,因此,通常这些登录档只有root 可以进行视察的功能</font>!</blockquote><blockquote>那么为何要记录与解析登录文件呢?这是由于记录文件有几个重要的功能:<ul><li><b><font color="#000099">解决系统的错误</font></b>:这个对于系统管理员来说是很重要的信息,例如:开机的过程当中侦测到的硬件讯息数据会记录到内存当中,由于这些侦测的信息可以提供我们了解硬件信息,所以如果你的系统发生问题时,可以下达dmesg 看看硬件的侦测有没有发生错误呢!另外,如果系统资源被耗尽、核心活动发生错误等等事件发生的时候,则系统登录文件亦会将错误的讯息记录在登录文件中(通常是/var/log/messages ),这些都可以藉以取得错误发生时的信息,并加以克服问题!!</li></ul><ul><li><b><font color="#000099">解决网络服务的问题</font></b>:在安装或设定新服务的套件时,最常使用到这个功能了!例如在安装启动sendmail 时,如果 sendmail 无法提供服务的时候,那么无法提供服务的问题则会被纪录到登录文件当中去,则只要分析登录档就可以了解问题点,并藉以解决问题啦!(所以我们常说『天助自助者』是真的啦!察看(1)屏幕上面的错误讯息与(2)登录文件的错误信息,几乎可以解决大部分的Linux 问题! )</li></ul><ul><li><b><font color="#000099">记录登录信息</font></b>:这个东西相当的重要!例如:有天您的apache 这个 WWW 服务挂了,你怎么知道何时挂掉的?而最后登入者是谁?!这都可以藉由分析apache 的登录文件来取得信息;此外,万一有一天您的系统被入侵,并且被利用来攻击他人的主机,这个时候对方的主机查出是您的Linux 在进行攻击的行为,这个时候你要如何告知对方您的主机是由于被入侵所导致的问题,并且协助对方继续往来源追查呢?!呵呵!此时登录档可是相当重要的呢!</li></ul>因此,一个有经验的主机管理员,会随时随地查阅一下自己的登录文件,以随时掌握系统的最新脉动!那么见的几个登录档有哪些呢?一般而言,有下面几个:<ul><li><font face="SimSun"><font color="#000066">/var/log/secure</font>:记录登入系统存取数据的档案,例如pop3, ssh, telnet, ftp 等都会记录在此档案中;</font></li><li><font face="SimSun"><font color="#000066">/var/log/wtmp</font>:记录登入者的讯息数据,由于本档案已经被编码过,所以必须使用last 这个指令来取出档案的内容;</font></li><li><font face="SimSun"><font color="#000066">/var/log/messages</font>:这个档案相当的重要,几乎系统发生的错误讯息(或者是重要的信息)都会记录在这个档案中;</font></li><li><font face="SimSun"><font color="#000066">/var/log/boot.log</font>:记录开机或者是一些服务启动的时候,所显示的启动或关闭讯息;</font></li><li><font face="SimSun"><font color="#000066">/var/log/maillog 或 /var/log/mail/*</font>:纪录邮件存取或往来(sendmail 与 pop3 )的使用者记录;</font></li><li><font face="SimSun"><font color="#000066">/var/log/cron</font>:这个是用来记录crontab 这个例行性服务的内容的!</font></li><li><font face="SimSun"><font color="#000066">/var/log/httpd, /var/log/news,/var/log/mysqld.log, /var/log/samba, /var/log/procmail.log</font>: 分别是几个不同的网络服务的记录文件啦!</font></li></ul>好了,那么记录了这些登录文件之后,我要做什么分析呀!?基本上,一个好的系统管理员大概都知道『<b><font color="#000066">一部主机负责的服务最好能少尽量少</font></b>』,这是什么意思呢?也就是说,这部主机为邮件主机那么就专门负责邮件工作,不要还搞WWW 服务!这样有几个好处,除了系统的安全性较佳之外(因为开的 port 变少了!),记录文件的解析也会比较简单!因为我们的/var/log/secure记录的登入者信息就会比较有一致性!那么我们就可以查询一下每日登入的使用者账号啦与错误讯息啦等等的!(当然啰,如果你的频宽够、经验丰富的话,那么一部主机上面安装所有的网络服务也是可以的啦!)基本上,检查/var/log/messages、/var/log/secure这些个档案也就相当够了!因为系统发生的错误或者是警告讯息通常都会写入这个档案中。<br> <br>但是,如果我手边有数十部主机怎么办?我要不要一部一部去察看 log file呢?呵呵!那样察看会死人ㄋㄟ?因此,我们底下也使用一个简易的登录档来分析Red Hat 或 Mandrake 这两种 Linux distribution 的登录档吧!</blockquote><hr width="100%"><a name="RedHatSys"></a><font color="#000099"><font size="+1">Linux登录档的规划</font>: syslogd, logrotate,</font><ul>在系统的登录文件系统当中,大多以一支常驻程序来进行写入这些讯息的这个工作,那就是syslogd 这支程序啦!另外,由于登录档如果一直长大的话,那么这些登录档的写入动作将会很没有效率,这是因为档案太大时,ASCII格式码的数据文件写入比较麻烦的缘故!那么怎么进行登录文件数据的备份工作呢?呵呵!那就使用logrotate 吧!将数据进行轮转( rotate )?什么是轮转?!(我ㄌㄟ台语不轮转呦!?)其实也可以称为轮替啦!基本上,就是将旧的log 档案更改名称,然后建立一个空的 log 档案,如此一来,新的 log 档案将从零开始记录,然后只要将旧的log 档案留下一阵子,嗯!那就可以达到将登录档『轮转』的目的啦!此外,如果旧的纪录(大概要保存几个月吧!)保存了一段时间没有问题,那么就可以让系统自动的将他砍掉,免得占掉很多宝贵的硬盘空间说!(举个例子来说,我的WWW 网站一个月的登录档,所占掉的硬盘空间大小,大概就有 1GB 这么多....而且都是纯文字文件....很可怕吧!)<br> <br>所以说,基本上,针对 log 档案来设计的服务有这两支:<ul><li><b><font color="#000099">syslogd</font></b>:进行系统或者是网络服务的登录文件记录工作;</li></ul><ul><li><b><font color="#000099">logrotate</font></b>:将旧的数据更名,并且建立新的登录档,以保持登录档的『新鲜』,并视设定将最旧的登录档删除。</li></ul>所以,接着下来我们来谈一谈怎么样规划这两支程序呢?!就由 syslogd 这支程序先谈起吧!毕竟得先有登录档,才可以进行logrotate 呀!您说是吧!?<ul><hr width="100%"><li><a name="syslogd"></a><b><font color="#000099" face="SimSun">syslogd</font></b>:</li><br>我们在Linux里面预设就已经使用了syslogd这支程序来记录系统的登入数据,不相信的话,你可以使用ps来查询一下:<br> <table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root @testroot]# </font><font color="#ffff00">ps -aux|grep syslog</font></font><br><font size="-1" color="#ffffff" face="SimSun">root&#160;&#160;&#160;&#160;&#160;&#160;782&#160; 0.0&#160; 0.8&#160; 1340&#160; 508 ?&#160;&#160;&#160;&#160;&#160;&#160;&#160;S&#160;&#160;&#160; Oct30&#160;&#160; 0:00 syslogd -m 0</font><br><font size="-1" color="#ffffff" face="SimSun">root&#160;&#160;&#160;&#160;11044&#160; 0.0&#160; 1.1&#160; 2408&#160; 732 pts/1&#160;&#160;&#160;S&#160;&#160;&#160; 00:03&#160;&#160; 0:00 grep syslog</font></td></tr></tbody></table> <br>看到syslog这个服务名称了吧?!呵呵!所以知道他已经在背景底下工作啰!syslog这支程序可以提供『系统登入信息记录』及『Kernel错误或警示信息记录』等功能,此外,他还提供了『本地端与远程计算机的登录信息记录』功能,所以,可以将远程的主机登入信息同时记录在本地端呢!很不错的功能吧!!此外,目前正规使用的系统服务中,大都预设支持以syslog 这一个服务来记录他的登录档案数据,例如apache, samba, sendmail 等等。而通常syslog提供的记录参数主要有:<br> <ul><li><font color="#000066">事件发生时间;</font></li><li><font color="#000066">主机名称;</font></li><li><font color="#000066">启动此事件的服务名称(例如 httpd, samba...)</font></li><li><font color="#000066">讯息数据内容</font></li></ul> <br>等等这些信息,当然,这些信息的详细度是可以修改的,此外,这些信息可以作为系统除错之用呢!我们先来看一下/var/log/secure的内容显示些什么呢?<br> <table bgcolor="#000000" border="1" cols="1" width="800"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root @testroot]# </font><font color="#ffff00">vi /var/log/secure</font></font><br><font size="-1" color="#ffffff" face="SimSun">Nov&#160; 416:28:35 test xinetd[7831]: START: telnet pid=7841 from=192.168.1.11</font><br><font size="-1" color="#ffffff" face="SimSun">Nov&#160; 416:28:35 test xinetd[7841]: FAIL: telnet address from=192.168.1.11</font><br><font size="-1" color="#ffffff" face="SimSun">Nov&#160; 423:41:17 test sshd[10803]: Accepted password for test from 192.168.1.11port 3117 ssh2</font><br><font size="-1" color="#ffffff" face="SimSun">Nov&#160; 423:41:17 test sshd(pam_unix)[10805]: session opened for user test by (uid=500)</font><br><font size="-1" color="#ffffff" face="SimSun">Nov&#160; 423:41:29 test su(pam_unix)[10838]: authentication failure; logname=testuid=500 euid=0 tty= ruser=test rhost=&#160; user=root</font><br><font size="-1" color="#ffffff" face="SimSun">Nov&#160; 4

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?