在Linux系统中,有三类主要的日志子系统:
1.连接时间日志: 由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
2.进程统计: 由系统内核执行,当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。
3.错误日志: 由syslogd守护程序执行,各种系统守护进程、用户程序和内核通过syslogd(3)守护程序向文件/var/log/messages报告.像HTTP和FTP这样提供网络服务也保持详细日志。
Linux下日志的使用
1.基本日志命令的使用
utmp、 wtmp日志文件保存用户登录进入和退出记录。有关当前登录用户的信息记录在文件utmp中; 登录进入和退出记录在文件wtmp中。utmp文件被各种命令文件使用,包括who、w、users和finger。不能被诸如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)
命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。
users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。
[[email protected]]# users
root root //只登录了一个Root权限的用户
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)
可通过指明用户来显示其登录信息。例如: 使用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命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间.
lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。需要以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
/var/log/dmesg
可以快速查看最后一次系统引导的引导日志.
/var/log/xferlog
该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。
该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型(a:ASCII,b:二
进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务器而言:i代表进,o代表出)、访问模式(a:匿名,g:输入口
令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或0),认证用户的ID或"*"。
/var/log/syslog
默认不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。要让系统生成该日志文件,在/etc/syslog.conf文件中加
上:*.warning /var/log/syslog 该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。
/var/log/maillog
该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。
/var/log/cron
该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的一个动
作是cron派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。
/var/log/boot.log
该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/secure
记录系统相关账户安全,是不是又不明IP地址尝试使用root用户登录系统。
linux系统强制踢掉登录用户
linux系统root用户可强制踢掉其它登录用户
1. w命令查看登录用户信息
# w 16:15:11 up 210 days, 12:17, 2 users, load average: 0.13, 0.15, 0.10 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT liu pts/1 IPADDRESS 16:14 0.00s 0.04s 0.03s sshd: liu [priv] fmd001_c pts/2 IPADDRESS 16:13 52.00s 0.03s 0.02s sshd: fmd001_cleaning [priv]
2. 踢除指定用户
# pkill -kill -t tty //-t指定要踢的用户的TTY,如上要踢除liu用户的命令: pkill -kill -t pts/1
只有root用户才能踢人,如果同时有二个人用root用户登录,任何其中一个可以踢掉另一个。
3. 屏蔽IP
# iptables -I INPUT -s 123.45.6.7 -j DROP //屏蔽单个IP # iptables -I INPUT -s 123.0.0.0/8 -j DROP //屏蔽123.0.0.1-123.255.255.254段 # iptables -I INPUT -s 124.45.0.0/16 -j DROP //#屏蔽123.45.0.1-123.45.255.254 IP段 # iptables -I INPUT -s 123.45.6.0/24 -j DROP //#屏蔽123.45.6.1-123.45.6.254 IP段