监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 签约案例 | 购买价格 | 在线试用 | 手机APP | 产品资料
X 关闭

使用日志子系统保护Linux安全

申请免费试用、咨询电话:400-8352-114

文章来源:泛普软件 Linux系统中的日志子系统对于系统安全来说非常重要,它记录了系统每天发生的各种各样的事情,包括哪些用户曾经或者正在使用系统,可以通过日志来检查错误发生的原因,更重要的是在系统受到黑客攻击后,日志可以记录下攻击者留下的痕迹,通过查看这些痕迹,系统管理员可以发现黑客攻击的某些手段以及特点,从而能够进行处理工作,为抵御下一次攻击做好准备。   Linux日志简介   日志主要的功能有:审计和监测。它还可以实时的监测系统状态,监测和追踪侵入者等等。在Linux系统中,有三类主要的日志子系统:   ·连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。 ·进程统计:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。 ·错误日志:由syslogd(8)守护程序执行,各种系统守护进程、用户程序和内核通过syslog   (3)守护程序向文件/var/log/messages报告值得注意的事件。另外有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。   表 常用日志文件
选项 注释
access-log 记录HTTP/web的传输
acct/pacct 记录用户命令
boot.log 记录Linux系统开机自检过程显示的信息
lastlog 记录最近几次成功登录的事件和最后一次不成功的登录
messages 从syslog中记录信息(有的链接到syslog文件)
sudolog 记录使用sudo发出的命令
sulog 记录使用su命令的使用
syslog 从syslog中记录信息
utmp 记录当前登录的每个用户信息
wtmp 一个用户每次登录进入和退出时间的记录
xferlog 记录FTP会话信息
maillog 记录每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统
  Linux下日志的使用   1.基本日志命令的使用   utmp、wtmp日志文件是多数Linux日志子系统的关键,它保存了用户登录进入和退出的记录。有关当前登录用户的信息记录在文件utmp中;登录进入和退出记录在文件wtmp中;数据交换、关机以及重启的机器信息也都记录在wtmp文件中。所有的记录都包含时间戳。时间戳对于日志来说非常重要,因为很多攻击行为分析都与时间有极大的关系。这些文件在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常,wtmp在第一天结束后命名为wtmp.1;第二天后wtmp.1变为wtmp.2等等,用户可以根据实际情况来对这些文件进行命名和配置使用。   utmp文件被各种命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。具体用法如下:   who命令:who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。例如:运行who命令显示如下:   [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文件创建或删改以来的每一次登录。例如:运行该命令如下所示:   [root@working]# who /var/log/wtmp liujun   pts/4    Sep 16 21:22 (10.0.2.231) root     pts/1    Sep 16 23:13 (10.0.2.246) yzh      pts/0    Sep 17 12:03 (eagle) ltb      pts/0    Sep 17 17:06 (10.0.2.148) ltb      pts/0    Sep 18 09:10 (10.0.2.148) ltb      pts/1    Sep 18 10:24 (10.0.2.148) ltb      pts/0    Sep 18 11:22 (10.0.2.148) devin    pts/2    Sep 18 16:23 (10.0.2.211)   users命令:users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。运行该命令将如下所示: [root@working]# users root root  //只登录了一个Root权限的用户   last命令:last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核,从而发现起中存在的问题,确定不法用户,并进行处理。运行该命令,如下所示:   [root@working]# 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)      读者可以看到,使用上述命令显示的信息太多,区分度很小。所以,可以通过指明用户来显示其登录信息即可。例如:使用last devin来显示devin的历史登录信息,则如下所示:   [root@working]# 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身份运行该命令。运行该命令如下所示:
[root@working]# lastlog Username         Port     From             Latest root             pts/1    10.0.2.129       二  5月 10 10:13:26 +0800 2005 opa·    pts/1    10.0.2.129       二  5月 10 10:13:26 +0800 2005   2.使用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设备是一个攻击者的显著目标,破坏了它将会使用户很难发现入侵以及入侵的痕迹,因此要特别注意保护其守护进程以及配置文件。   3.程序日志的使用   许多程序通过维护日志来反映系统的安全状态。su命令允许用户获得另一个用户的权限,所以它的安全很重要,它的文件为sulog。同样的还有sudolog。另外,诸如Apache等Http的服务器都有两个日志:access_log(客户端访问日志)以及error_log(服务出错日志)。 FTP服务的日志记录在xferlog文件当中,Linux下邮件传送服务(sendmail)的日志一般存放在maillog文件当中。 程序日志的创建和使用在很大程度上依赖于用户的良好编程习惯。对于一个优秀的程序员来说,任何与系统安全或者网络安全相关的程序的编写,都应该包含日志功能,这样不但便于程序的调试和纠错,而且更重要的是能够给程序的使用方提供日志的分析功能,从而使系统管理员能够较好地掌握程序乃至系统的运行状况和用户的行为,及时地采取行动,排除和阻断意外以及恶意的入侵行为。   Linux日志使用注意事项   系统管理人员要应该提高警惕,随时注意各种可疑状况,并且按时和随机地检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时,要注意是否有不合常理的时间记载。例如:   ·用户在非常规的时间登录; ·不正常的日志记录,比如日志的残缺不全或者是诸如wtmp这样的日志文件无故地缺少了中间的记录文件; ·用户登录系统的IP地址和以往的不一样; ·用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录; ·非法使用或不正当使用超级用户权限su的指令; ·无故或者非法重新启动各项网络服务的记录。   另外尤其提醒管理人员注意的是:日志并不是完全可靠的。高明的黑客在入侵系统后,经常会打扫现场。所以需要综合运用以上的系统命令,全面、综合的进行审查和检测,切忌断章取义,否则很难发现入侵或者做出错误的判断。  
发布:2007-04-22 10:09    编辑:泛普软件 · xiaona    [打印此页]    [关闭]
沈阳OA系统
联系方式

成都公司:成都市成华区建设南路160号1层9号

重庆公司:重庆市江北区红旗河沟华创商务大厦18楼

咨询:400-8352-114

加微信,免费获取试用系统

QQ在线咨询

泛普沈阳OA快博其他应用

沈阳OA软件 沈阳OA新闻动态 沈阳OA信息化 沈阳OA快博 沈阳OA行业资讯 沈阳软件开发公司 沈阳门禁系统 沈阳物业管理软件 沈阳仓库管理软件 沈阳餐饮管理软件 沈阳网站建设公司