如何将Linux主机设置成syslog服务器

鸟哥在书中介绍了这样的一种环境。

 

办公室内有10台Linux主机,每一台负责一个网络服务。为了无需登录每台主机去查看登录文件,需要设置一台syslog服务器,其他主机的登录文件都发给它。这样做的话,只需要登录到syslog服务器上就能查看所有主机的登录文件。

 

RedHat上的设置方法,鸟哥已经介绍了。

 

【服务器端】

step 1:查看服务器是否开启了UDP 514端口

             grep '514' /etc/services

 

step 2:修改syslogd的启动设置文件/etc/sysconfig/syslog

             将SYSLOGD_OPTIONS="-m 0"修改成SYSLOGD_OPTIONS="-m 0 -r"

 

step 3:重启syslogd服务

             /etc/init.d/syslog restart

 

重启后,你会发现UDP 514端口已经打开。

 

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
udp        0      0 0.0.0.0:514                 0.0.0.0:*                               5628/syslogd       

 

【客户端】

step 1:在/etc/syslog.conf中,添加下行。

     user.*     @192.168.0.Y                  # syslog服务器的IP地址

 

在Ubuntu中配置syslogd服务器的方法类似。

 

step 1:查看服务器是否开启了UDP 514端口,有下面一行说明端口514被打开,没有需要加入

             # grep '514' /etc/services

             184:shell               514/tcp         cmd             # no passwords used
             185:syslog            514/udp

 

step 2: 修改/etc/init.d/sysklogd,将SYSLOGD=""修改成SYSLOGD=" -r"

 

step 3: 修改/etc/default/syslogd,将SYSLOGD=""修改成SYSLOGD=" -r"

 

step 4: 重启服务  /etc/init.d/sysklogd restart

 

step 5: 验证

              在/var/log/messages中找到

              May  1 23:31:59 flagonxia-desktop syslogd 1.5.0#5ubuntu3: restart (remote reception)

              # netstat -tlunp

              得到syslogd服务正在监听端口514

              udp        0      0 0.0.0.0:514             0.0.0.0:*                           3912/syslogd

 

step 6: 假设syslog服务器的IP地址:192.168.1.25,在其他主机上的/etc/syslog.conf中加入

              *.*         @192.168.1.25

 

注:/etc/syslog.conf文件的解析

日志文件按/etc/syslog.conf 配置文件中的描述进行组织。下图是/etc/syslog.conf 文件的内容:
[root@localhost ~]# cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
syslog.conf
 行的基本语法是: 
[
 消息类型][ 处理方案] 
注意:中间的分隔符必须是Tab 字符!
消息类型是由" 消息来源" " 紧急程度" 构成,中间用点号连接。例如上图中,news.crit 表示来自news  关键 状况。在这里,news是消息来源,crit 代表关键状况。通配符* 可以代表一切消息来源。 

说明:
第一条语句*.info ,将info 级以上(notice,warning,err,crit,alert emerg )的所有消息发送到相应日志文件。
日志文件类别(按重要程度分类)日志文件可以分成八大类,下面按重要性从大到下列出:emerg  emergency ,紧急alert 警报crit critical ,关键errerror ,错误warning  警告notice 通知info  信息debug  调试
简单列一下消息来源
auth
     认证系统,如login su ,即询问用户名和口令
cron
     系统执行定时任务时发出的信息
daemon
    某些系统的守护程序的 syslog ,如由in.ftpd 产生的log
kern
     内核的信息
lpr
      打印机的信息
mail
     处理邮件的守护进程发出的信息
mark
     定时发送消息的时标程序
news
     新闻组的守护进程的信息
user
     本地用户的应用程序的信息
uucp
     uucp 子系统的信息
*
      表示所有可能的信息来源

处理方案
"
 处理方案" 选项可以对日志进行处理。可以把它存入硬盘,转发到另一台机器或显示在管理员的终端上。
处理方案一览:
文件名  写入某个文件,要注意绝对路径。 
@
 主机名 转发给另外一台主机的syslogd 程序。
@IP
 地址 同上,只是用IP 地址标识而已。
/dev/console 
发送到本地机器屏幕上。
* 
发送到所有用户的终端上。 
|
 程序 通过管道转发给某个程序。
例如:
kern.emerg /dev/console(
 一旦发生内核的紧急状况,立刻把信息显示在控制台上) 
说明: 
如果想修改syslogd 的记录文件,首先你必须杀掉syslogd 进程,在修改完毕后再启动syslogd 。攻击者进入系统后通常立刻修改系统日志,因此作为网管你应该用一台机器专门处理日志信息,其他机器的日志自动转发到它上面,这样日志信息一旦产生就立刻被转移,这样就可以正确记录攻击者的行为。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值