linux里面sys日志服务器搭建,syslog搭建服务器登录日志系统

一、syslog服务器配置

首先,配置Red Hat上自带的syslog服务,使它能够记录来自其他服务器的log信息。

1、编辑/etc/sysconfig/syslog文件,修改SYSLOGD_OPTIONS选项,如下:

# Options to syslogd

# -m 0 disables 'MARK' messages.

# -r enables logging from remote machines

# -x disables DNS lookups on messages recieved with -r

# See syslogd(8) for more details

SYSLOGD_OPTIONS="-r -x -m 0"

2、修改后重启syslog 服务,使配置生效,如下:

[root@localhos t ~]# service syslog restart

3、如果启用了iptables防火墙,确保udp 514端口可以被访问。可以在etc/rc.local中增加如下脚本,开放udp 514端口

iptables -I RH-Firewall-1-INPUT -s 192.168.1.0/24 –p udp --dport 514 -j ACCEPT

其中,RH-Firewall-1-INPUT是Red Hat自带的chain,192.168.1.0/24网段是需要监控的服务器所在的网段。

4、/etc/syslog.conf 是syslog 的默认配置文件,它允许指定好的每种类型的系统日志存放到指定的存放点,由于只记录登录日志,只需指定authpriv.*项的存放点即可。

# The authpriv fi le has res t ricted access.authpriv.*|/var/log/syslog.pipe

/var/log/syslog.pipe是一个命名管道,使服务器接受的信息可以传给脚本处理。

二、配置Linux客户端

配置好服务器后,需配置客户端,使客户端的log信息可以发到服务器上。用户只需指定authpriv.*项的信息传到服务器,具体如下:

# The authpriv file has restricted access.authpriv.*@192.168.1.1

这里的192.168.1.1就是log服务器的IP,“@”符号表示发送到远程主机。重启客户端的syslog服务使配置生效。

用logger测试一下配置是否成功

[root@metalib ~]logger -p authpriv.notice "Hello,this is a test"

在服务器端监听管道

[root@localhost ~]# cat /var/log/syslog.pipe Sep9 18:35:21 202.192.155.20 root: Hello,this is a test

如上所示,则表示已成功。

三、配置Windows客户端

对于unix类主机之间的记录日志,由于协议、软件和日志信息格式都大同小异,因此实现比较简单,但是Windows系统则不同。因此,我们需要第三方软件来转换Windows的日志——evtsys (全称是evntlog to syslog)。

edu/ECN/Resources/Documents/UNIX/evtsys/

根据系统的版本下载32 位和64 位的程序。

解压后是evtsys.dll 和evtsys.exe。

把这两个文件拷贝到-c:\windows\system32目录下。

打开Windows命令提示符

C:\>evtsys -i -h 192.168.1.1

-i 表示安装成系统服务

-h 指定log服务器的IP地址

启动该服务

C:\>net start evtsys

如要卸载,则

C:\>net stop evtsys

C:\>evtsys u

打开Windows本地安全策略,修改本地策略中的审核策略,如下图所示:

用户只审核登录事件,所以只审核”审核登录事件”和”审核账户登录事件”即可。

Windows的配置完成,还需再配置一下服务器的syslog配置文件,因为evtsys是以daemon设备发送到服务器上的。因此,在/etc/syslog.conf中需加入以下配置:

#for windows syslog

daemon.notice |/var/log/syslog.pipe

关于syslog记录设备可以参考syslog文档。

四、分析处理接受的日志信息

现在,服务器和客户端的配置都已完成,所有客户端的登录日志都会发送到日志服务器上。但是Windows此时也会发送很多非登录日志,而且目前日志只是发送到命名管道上,所以还需再由一个脚本在后台不断分析管道中接收的日志。

下面是一个分析日志的流程图,当然读者可以根据自己的需求进行修改。

是否有两个IP:因为Windows会发送很多非登录日志,可以根据日志中是否含有两个不同的IP 地址来筛选。此判断比较简单,可以根据登录日志的格式再做进一步筛选。源IP是否信任:一般用户都有属于自己的工作网段,那么非工作网段都列为不信任网段,这样可以使用户在查询时比较方便。是否发邮件告警:如果非信息网段出现不断尝试登录的日志信息(可以设为5次),则发邮件告警。

具体的脚本如下:

[root@localhost ~]# cat /var/log/filter_log.sh

#! /bin/sh

if [ ! -p /var/log/syslog.pipe ]

then

mkfifo /var/log/syslog.pipe

fi

ip_temp="1.1.1.1"

ip_count=0

today=`date +%Y-%m-%d`

while read msg < /var/log/syslog.pipe

do

if [ ! "$msg" ]

then

continue

else

ips=`echo $msg | awk -v RS="[:= )]" '/[0-9]+\.[0-9]+\.

[0-9]+\.[0-9]/&&! a[$0]++'`

ip_d=`echo $ips | awk {'print $1'}`

ip_s=`echo $ips | awk {'print $2'}`

if [ ! "$ip_s" ]

then

continue

else

time=`echo $msg | awk {'print $3'}`

date=$today" "$time

log_event=`echo $msg | cut -d' ' -f5-`

temp=`echo $ip_s | cut -d'.' -f 1-3`

if [ "$temp" = "10.10.1" ] || [ "$temp" = "192.168.1" ]

then

`mysql -uroot -proot -D syslog -e "insert into syslog

(log_time,log_ip,log_event) values('$date','$ip_d',

'$log_event')"`

else

if [ $ip_s = $ip_temp ]

then

ip_count=`expr $ip_count + 1`

else

ip_count=0

ip_temp=$ip_s

fi

if [ "$ip_count" -lt "5" ]

then

`mysql -uroot -proot -D syslog -e "insert into syslog_warn

(log_time,log_ip,log_event) values('$date','$ip_d',

'$log_event')"`

elif [ "$ip_count" -eq "5" ]

then

`echo -e "From:Warning \nTo:test@stu.

edu.cn\nSubject:$ip_d warning\n$msg" | sendmail -t`

fi

fi

fi

fi

done

在数据库中,必须建立两个表,即上述所提的信任表和怀疑表。

mysql>create database syslog;

mysql> create table syslog( id int unsigned not null

auto_increment primary key, log_time datetime, log_ip

varchar(30), log_event varchar(512) );

mysql> create table syslog_warn( id int unsigned not null

auto_increment primary key, log_time datetime, log_ip

varchar(30), log_event varchar(512) );

然后执行脚本测试,如果登录受监控的服务器后,在数据库中可以看到新插入的日志记录,则表示已成功。

必须让脚本在服务器开机时执行,需修改/etc/rc.local脚本,增加如下指令即可:

./var/log/filter_log.sh &

五、后续处理及扩展

1.有了数据库的记录,可以写一个简单的网页来查询记录,方便监控和发现可以登录情况。

2.可以记录更多更全面的日志,并且利用脚本分析日志信息再插入相应的表,以达到监控服务器全部日志的目的,可以使管理人员更加了解服务器使用情况。

3.syslog也可以记录交换机设备的日志,如下所示是记录cisco交换机日志的配置:

logging trap warnings

logging source-interface Vlan1

logging 10.10.202.247

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值