默认计划
930人加入学习
(23人评价)
Linux安全基础
价格 ¥ 399.00
该课程属于 高校公益行 | 网络安全实践训练营 请加入后再学习

配置日志服务器

     一、设置系统环境如下:

                 日志服务去器:

                         IP地址:172.16.8.100/24

                          主机名;LServ.sevenwin.org

                日志客户端;

                       IP地址:127.16.8.101/24

                       主机名:LCli.sevenwin.org

二、构建LAMP

三、配置日志服务器数据库

四、配置服务器rsyslogd的主配置文件/etc/rsyslog.conf

五、配置防火墙,开放TCP与UDP 514端口、TCP 3306端口、TCP 80端口;配置SELinux

[展开全文]

日志的作用

  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障
  • 是审计的基础

日志文件的分类

  • 内核及系统日志
    • 由系统服务rsyslogd统一进行管理,日志格式基本相似
    • 主要程序:/sbin/rsyslogd
    • 配置文件:/etc/rsyslog.conf
    • grep -v "^$" /etc/rsyslog.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 //设备类型,日志级别 消息发送的位置

    • 日志级别
      • 0 EMERG(紧急):导致主机系统不可用的情况
      • 1 ALERT(警告):必须马上采取措施解决的问题
      • 2 CRIT(严重):比较严重的情况
      • 3 ERR(错误):运行出现错误
      • 4 WARNING(提醒):可能会影响系统功能的事件
      • 5 NOTICE(注意):不会影响系统但值得注意
      • 6 INFO(信息):一般信息
      • 7 DEBUG(调试):程序或系统调试信息等
    • 一般格式
      • 时间戳 主机名 子系统 消息级别 消息字段内容
      
       

      Jan 4 11:21:29 localhost NetworkManager[1038]: <info> parsing /etc/sysconfig/network- scripts/ifcfg-lo ... Jan 4 11:21:29 localhost ModemManager[905]: <warn> Couldn't find support for device at '/sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0': not supported by any plugin Jan 4 11:21:30 localhost NetworkManager[1038]: <info> (eno16777728): Activation: Stage 3 of 5 (IP Configure Start) scheduled.

  • 用户日志
    • 记录系统用户登录及退出系统的相关信息
  • 程序日志
    • 由各种应用程序独立管理的日志文件,记录格式不统一
    • Web服务:/var/log/httpd/
      • access_log、error_log
    • 代理服务:/var/log/squid/
      • access.log、cache.log、squid.out、store.log
    • FTP服务:/var/log/xferlog
    • 分析工具
      • 文本查看、grep过滤检索、Webmin管理套件中查看
      • awk、sed等文本过滤、格式化编辑工具
      • Webalizer、Awstats等专用日志分析工具

Linux主要日志子系统

  • 连接时间日志
    • 由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmplogin等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统
    • 所有的记录都包含时间戳。时间戳对于日志来说非常重要,因为很多攻击行为分析都是与时间有极大关系的。
  • 进程统计
    • 由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个记录。
    • 进程统计的目的是为系统中的基本服务提供命令使用统计
  • 错误日志
    • 由rsyslogd守护程序执行,各种系统守护进程、用户程序和内核通过rsyslogd守护程序向文件/var/log/messages报告值得注意的事件
    • 另外有许多Linux程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志

日志保存位置

  • 默认位于:/var/log 目录下
  • 内核及公共消息日志:/var/log/messages
  • 计划任务日志:/var/log/cron
  • 系统引导日志:/var/log/dmesg
  • 邮件系统日志:/var/log/maillog
  • 用户登录日志:
    • /var/log/lastlog (最近的用户登录事件)
    • /var/log/secure (用户验证相关的安全性事件)
    • /var/log/wtmp (当前登录用户详细信息,被命令last和ac使用)
      • 二进制文件,不能用诸如tail、cat之类的命令来进行访问、操作
    • /var/run/utmp (用户登录、注销及系统开、关机等事件,被who、w、users和finger命令使用)
      • 二进制文件,不能用诸如tail、cat之类的命令来进行访问、操作
      • who命令: 访问utmp记录,显示当前正在登录的用户
      • last命令:访问wtmp文件,显示自从文件第一次创建以来登录过的用户
      • last root:查看root累次登录记录
      • ac root :统计root登录总的时间
      • lastlog :统计用户最后登录的时间,记录在/var/log/lastlog文件中

注意事项

  • 周期性检查日志文件
  • 随时注意各种可疑状况
    • 用户在非常规的时间登录;
    • 不正常的日志记录,比如日志的残缺不全或者是诸如wtmp这样的日志文件无故地缺少了中间的记录;
    • 用户登录系统的IP地址和以往的不一样;
    • 用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录;
    • 非法使用或不正当使用超级用户权限su的指令;
    • 无故或者非法重新启动各项网络服务的记录

日志管理策略

  • 及时作好备份和归档
  • 延长日志保存期限
  • 控制日志访问权限
    • 日志中可能会包含各类敏感信息,如账户、口令等
  • 集中管理日志
    • 将服务器的日志文件发到统一的日志文件服务器
    • 便于日志信息的统一收集、整理和分析
    • 杜绝日志信息的意外丢失、恶意篡改或删除

配置日志服务器

  1. 设置系统环境如下:
  2. 在日志服务器上,构建LAMP
    • yum -y install httpd*
      • 安装Apache
    • yum -y install mariadb*
      • 安装MariaDB数据库
    • yum -y install php php-gd php-xml php-mysqlnd rsyslog-mysql libcurl-devel net-snmp-devel
      • 安装PHP与其它相关软件包
    • systemctl enable mariadb.service
      • 设置数据库开机运行
    • systemctl start mariadb.service
    • mysqladmin -u root password 9865321
      • 设置数据库管理员root的密码。
    • systemctl enable httpd.service
    • systemctl start httpd.service
    • cd /var/www/html/
    • vim test.php
      
       

      <?php phpinfo(); ?>

    • firefox http://127.0.0.1/test.php
      • 创建测试页,并测试
  3. 配置日志服务器数据库
    • cd /usr/share/doc/rsyslog-7.4.7/
    • mysql -u root -p < mysql-createDB.sql
      • 导入日志文件到数据库
    • mysql -u root -p
    • show databases;
    
     

    +--------------------+ | Database | +--------------------+ | information_schema | | Syslog | | mysql | | performance_schema | | test | +--------------------+

    • grant all on Syslog.* to rsyslog@localhost identified by '1357900';
      • 给Syslog数据库下的所有对象赋予全部的本地权限
    • flush privileges;
  4. 配置服务器rsyslogd的主配置文件
  • vim /etc/rsyslog.conf
    
     

    //在#### MODULES ####下面添加两行: $ModLoad ommysql *.* :ommysql:localhost,Syslog,rsyslog,1357900 //localhost表示本机,Syslog为数据库名,rsyslog为数据库帐号,1357900为密码。 $ModLoad immark //immark是模块名,支持日志标记。 $ModLoad imudp //imupd是模块名,支持udp协议。 $UDPServerRun 514 //允许514端口接收使用UDP和TCP协议转发过来的日志。

  • systemctl restart rsyslog.service
  1. 配置防火墙

    • 开放TCP与UDP 514端口、TCP 3306端口、TCP 80端口、http服务
    • setenforce 0
      • 设置SELinux在警告模式下运行
  2. 配置日志客户端

    • vim /etc/rsyslog.conf
      
       

      //在文档末尾添加: *.* @172.16.8.100:514

    • systemctl restart rsyslog.service
    • vim /etc/bashrc
      
       

      //将客户端执行的所有命令写入系统日志/var/log/messages中 //在文档尾部追加: export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

    • source /etc/bashrc
  3. 在日志服务器上查看

  • tail /var/log/messages
[展开全文]

授课教师

高级讲师

课程特色

视频(35)
下载资料(3)