/etc/syslog.conf ----syslogd这支程序的配置文件(规定了什么服务的什么等级的讯息被记录在什么位置)
/etc/init.d/syslogd
/etc/sysconfig/syslog
/etc/cron.daily/logrotate ----规范登录档轮替行为的cron文件
/etc/logorate.config ----logorate的主要参数档案
/etc/logorate.d/ ----该目录里的所有档案都会被主动读入到/etc/logrotate.config执行
-
什么是登录档:登录档的重要性、常见档名、服务与程序
1.1用途:
1.1.1解决系统方面的错误
1.1.2解决网络服务的问题
1.1.3过往事件记录簿
1.2常见档名【1-0】
注意:不同发行版会有些许不同
/var/log/cron ----crontab排程问题
/var/log/dmesg ----开机时核心侦测硬件信息
/var/log/lastlog ----所有账号最近一次登入系统的相关信息
/var/log/maillog或者/var/log/mail/* ----邮件往来信息
/var/log/messages ----系统错误信息
/var/log/wtmp,/var/log/faillog ----登入系统的账户信息
/var/log/httpd/*,/var/log/news/*,/var/log/samba/* ----个别网络服务制定的登录档
1.3服务与程序
syslogd:主要记录登录系统与网络等服务的讯息
klogd:主要记录核心产生的各种信息
logrotate:登录档的轮替功能
-
syslogd:记录登录文件的服务
# ps aux |grep syslogd ----看看是否启动了syslogd这个服务
# chkconfig --list syslog ----看看syslogd在哪些run level下开机启动
2.1登录档内容的一般格式【1-1,2,3】
# vim /etc/syslog.config ----查看系统预设该文件的内容(可以知道syslogd管理的一些服务的登录档的位置)【1-10】
2.2syslog的配置文件:/etc/syslog.config,预设的syslog.conf内容
2.2.1 规范每条信息分为三个部分:服务名称【1-4】[.|.=|.!]信息等级【1-5】 讯息记录的文件名或装置或主机【1-6】
# vim /etc/syslog.conf ----几个案例
mail .info /var/log/maillog ----mail所有登录信息都写入/var/log/maillog【1-7】
new.*;cron.* /var/log/cronnews ----新闻资料组(news)及例行性工作排程(cron)的讯息都写入 到/var/log/cronnews中
*.*;news,cron,mail.none /var/log/messages <==> *.*;news.none;cron.none;mail.none /var/log/messages ----除了news,mail,cron,所有syslog管理的服务的信息都写到/var/log/messages【1-9】
2.2.2自行增加文件记录软件运行信息
案例:所有的信息额外记录到/var/log/admin.log
# vim /etc/syslog.config
# Add by nemo 2013/12/12
*.info /var/log/admin.log
# /etc/init.d/syslogd restart
# ll /var/log/admin.log ----这个文件被自动建立起来了
2.3登录档的安全性设置
注意:如果登录档被vi或vim编辑并:wq离开,那么syslogd将无法再写入信息,因为这样子导致文档保持已更新状态
# chattr +a /var/log/messages ----添加只能添加不能做其他更动的属性(可以防止黑客擦除登陆信息)
# lsattr /var/log/messages ----查看这个属性
# chaatr -a /var/log/messages ----root身份可以再将这个属性去掉
2.4登录档服务器的设定【1-11】
注意:登录档服务器会启动514端口
serveer端
# vim /etc/sysconfig/syslog ----修改syslog的启动配置文件
SYSLOGD_OPTIONS="-m 0" ==》SYSLOGD_OPTIONS="-m 0 -r" ----修改这一行
# /etc/init..d/syslogd restart ----重启syslogd服务
# netstat -lunp | grep syslog ----查看514端口是否已经开启
client端
# vim /etc/syslog.conf
*.* @192.168.1.100 ----假设登录档服务器ip为192.168.0..100
# /etc/init..d/syslogd restart ----重启syslogd服务
-
登录档的轮替(logrotate)
注意:logrotate是挂在cron下进行的(查看/etc/cron.daily/logrotate)
3.1ogrotate的配置文件
# vim /etc/logrotate.conf ----【1-12】
# vi /etc/logrotate.d/syslog ----查看logrotate程序对syslogd这支程序的轮转设定【1-13,14】
3.2实际测试logrotate的动作【1-15 】
# logorate -v /etc/logorate.conf ----实际执行一遍logorate并观察整个流程(因为时间没到可能不会执行)
# logorate -vf /etc/logorate.conf ----强行进行logorate动作
# ll /var/log/messages;lsattr /var/log/messages ----观察一下/var/log/messages文件的变化
3.3自定义登录文件的轮替功能【1-16】
第一步:先建立+a这个属性
# chattr +a /var/log/admin.log ----添加+a这个属性
# lsattr /var/log/admin.log ----查看这个属性
# mv /var/log/admin.log /var/log/admin.log.1 ----因为+a属性无法进行这个操作
第二步:建立logorate的配置文件
# vim /etc/lograte.d/admin
# This configration iss from nemo 2013.12.12
/var/log/admin.log{
monthly ----每个月进行一次轮换
size=10M ----档案容量大于10M时不论是否到时间都进行轮换
rotate 5 ----最多保留最近5次备份
compress ----进行压缩
sharescripts
prerotate ----下面是每次轮换前执行的脚本
/usr/bin/chattr -a /var/log/admin.log ----去掉+a属性
endscript
sharedscripts
postrotate ----下面的脚本每次轮换操作结束后执行
/usr/bin/killall -HUP syslogd ----重启syslogd程序
/usr/bin/chattr +a /var/log/admin.log ----加上+a属性
endscript
}
# logrotate -v /etc/lograte.conf ----这个配置文件会呼叫/etc/logrorate.d/下的所有配置文件,包括上面编辑的admin
# logrotate -vf /etc/lograte.d/admin ----强制执行试试
-
分析登录档
4.1centos预设提供的logwatch
4.2鸟哥自己写的登录档分析工具
# mkdir /usr/local/virus
# tar -zxvf logfile-0.1-4-2.tgz -C /usr/local/virus
# cd /usr/local/virus/logfile
# vim logfile.sh ----对源脚本文件做些修改
email="root@localhost" ----这一行可以修改成自己的email地址
basedir="/usr/local/virus/logfile.sh" ----默认的logfile.sh脚本的位置
# sh logfile.sh
# vim /etc//crontab
10 0 * * * root /usr/local/virus/logfile/logfile.sh ----设置工作排程
-
重点回顾【1-17】
-
本章习题练习
-
针对本文的建议