syslog服务器 python 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. \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.247rsyslog服务器template syslog服务器配置
windows下搭建syslog服务器及基本配置windows搭建syslog服务器
docker部署 syslog服务器 docker服务器搭建
Windows环境下搭建MosQuitto服务器windows搭建syslog服务器
Windows 10 搭建Python开发环境(PyCharm )pycharm是python的集成开发环境
FTP pyqt5 python 服务器 python ftp客户端
Windows10,python3.8安装scrapypython3.8安装