2022年远程服务器的配置 2.pdf
,远程服务器的配置修改 /etc/sysconfig/syslog 文件 :# vi /etc/sysconfig/syslog 将 SYSLOGD_OPTIONS=-m 0 修改成: SYSLOGD_OPTIONS=-r -m 0 -r 表示启用记录远程主机的日志。2,本机的配置修改 /etc/syslog.conf 文件# vi /etc/syslog.conf authpriv.* 192.168.0.1 表示将本机的登录日志记录到192.168.0.1 这台服务器上。要记录其它类型的日志类似3,分别重启日志服务/etc/init.d/syslog restart 日前,在测试系统时涉及到syslog 转发的问题, 按照 syslog 服务相关的配置进行配置后,始终在接收服务器上没有收到转发过来的 syslog信息。经过查找资料及自己核查定位,发现还是少配置了一个参数(-h),配置完此参数后,问题得以解决。现将配置的整个过程记录如下:情景模拟:计划将A服务器上所有接收到的syslog 信息转发到 B服务器的syslogd 上1)确认 A服务上的 /etc/syslog.conf相关配置信息【在配置文件中增加红色部分内容】# Dont log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages *.info;mail.none;authpriv.none;cron.none B_hostname 注: 后面可以跟 B服务器的主机名或者B服务器的 IP 地址,当配置为主机名时,应该在 A服务器的 /etc/hosts文件里面配置对应的主机名与IP 地址的映射 (通过 hosts 进行解析)2)修改 A服务器的 /etc/sysconfig/syslog中 SYSLOGD_OPTIONS=-m 0为SYSLOGD_OPTIONS=-f /etc/syslog.conf -r -h -m 0 ;KLOGD_OPTIONS=-x为 KLOGD_OPTIONS=-2 注:SYSLOGD_OPTIONS=-f /etc/syslog.conf -r -h -m 0中的-h 参数一定要添加,因为默认情况下,syslog 不会发送从远端接受过来的消息到其他主机,而使用该选项, 则把该开关打开, 所有接受到的信息都可根据syslog.conf中定义的 主机转发过去。(此点尤其要注意,开始我就是没加这个参数,导致信息一直不转发的)3)修改 A服务器的 /etc/init.d/syslog中 SYSLOGD_OPTIONS=-m 0为SYSLOGD_OPTIONS=-f /etc/syslog.conf -r -h -m 0;KLOGD_OPTIONS=-x为 KLOGD_OPTIONS=-2 注:说明同 2)中叙述4)修改 B服务器的 /etc/sysconfig/syslog中 SYSLOGD_OPTIONS=-m 0为SYSLOGD_OPTIONS=-f /etc/syslog.conf -r -m 0 ;KLOGD_OPTIONS=-x为名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - KLOGD_OPTIONS=-2;以及 /etc/init.d/syslog中 SYSLOGD_OPTIONS=-m 0为SYSLOGD_OPTIONS=-f /etc/syslog.conf -r -m 0;KLOGD_OPTIONS=-x为KLOGD_OPTIONS=-2 注:这里因为不需要再转发就不用加-h 参数了,但一定要加 -r 参数(即:打开接受外来日志消息的功能,其监控514 UDP端口)5)确认 /etc/services中“syslog514/udp”没有注释调more /etc/services | grep syslog 6)重启 syslog (A服务器和 B服务器的 syslog 服务最要重启, 因为都修改了各自的相关配置),重启命令如下:/etc/init.d/syslog restart # /etc/init.d/syslog restart 关闭内核日志记录器: 确定 关闭系统日志记录器: 确定 启动系统日志记录器: 确定 启动内核日志记录器: 确定 注:最好不要用 syslogd restart来启动 , 可以用 /sbin/syslogd -rm 0手工启动如此配置后,转发信息问题迎刃而解系统日志 (本文参考了ibm 网站的 linux 安全第二卷 ) 在 Linux 下使用各种日志文件,有些用于某些特殊用途,例如:/var/log/xferlog 用于记录文件传输协议FTP 的信息。 其他日志文件, 例如 /var/log/messages 文件通常包含许多系统和内核工具的输入项。这些日志文件为系统的安全状态提供了信息。我们主要讲解两个日志守护程序-syslog 和 klogd- 并且简要叙述了由Linux 操作系统生成的其他其他日志文件。目的是提供基本的配置情况。syslog 系统日志工具大部分的Linux 系统中都要使用syslog 工具,它是相当灵活的,能使系统根据不同的日志输入项采取不同的活动。 下面将详细讨论syslog 的工作机制以及在配置文件/etc/syslog.conf 中的配置,还将论述利用syslog 灵活性和功能性进行工作的各种方法。1) 概述非常简单,syslog 工具由一个守护程序组成。它能接受访问系统的日志信息并且根据/etc/syslog.conf 配置文件中的指令处理这些信息。程序, 守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向syslog 接口呼叫生成该信息。通常, syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知syslogd 如何根据设备和信息重要级别来报告信息。2) etc/syslog.conf /etc/syslog.conf 文件使用下面的形式facility.level action 空白行和以 #开头的行可以忽略。Facility.level 字段也被称做seletor。应该使用一次或多次tab 键分隔facility 和action。大部分Linux 使用这些空格为分隔符。现在分析一下/etc/syslog.conf 中的三个要素。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - facility 指定syslog 功能,主要包括以下这些:auth 由 pam_pwdb 报告的认证活动。authpriv 包括特权信息如用户名在内的认证活动cron 与 cron 和 at 有关的信息。daemon 与 inetd 守护进程有关的信息。kern 内核信息,首先通过klogd 传递。lpr 与打印服务有关的信息。mail 与电子邮件有关的信息mark syslog 内部功能用于生成时间戳news 来自新闻服务器的信息syslog 由 syslog 生成的信息user 由用户程序生成的信息uucp 由 uucp 生成的信息local0-local7 与自定义程序使用,例如使用local5 做为ssh 功能* 通配符代表除了mark 以外的所有功能与每个功能对应的优先级是按一定顺序排列的,emerg 是最高级,其次是alert,依次类推。缺省时,在/etc/syslog.conf 记录中指定的级别为该级别和更高级别。如果希望使用确定的级别可以使用两个运算符号!(不等 )和=。user.=info 表示告知syslog 接受所有在info 级别上的user 功能信息。syslog 级别如下 : emerg 或 panic 该系统不可用alert 需要立即被修改的条件crit 阻止某些工具或子系统功能实现的错误条件err 阻止工具或某些子系统部分功能实现的错误条件warning 预警信息notice 具有重要性的普通条件info 提供信息的消息debug 不包含函数条件或问题的其他信息none 没有重要级,通常用于排错* 所有级别,除了none action 字段所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使syslogd 生成后处理信息。syslog 主要支持以下活动file 指定文件的绝对路径terminal 或 print 完全的串行或并行设备标志符host 远程的日志服务器username 发送信息到使用write 的指定用户中named pipe 指定使用mkfifo 命令来创建的FIFO 文件的绝对路径。3) 调用syslogd 守护程序syslog 守护程序是由/etc/rc.d/init.d/syslog 脚本在运行级2 下被调用的,缺省不使用选项。但有两个选项-r 和 -h 很有用。如果将要使用一个日志服务器,必须调用syslogd -r。缺省情况下syslog 不接受来自远程系名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 统的信息。当指定-r 选项, syslogd 将会监听从514 端口上进来的UDP 包。如果还希望日志服务器能传送日志信息,可以使用-h 标志。缺省时,syslogd 将忽略使其从一个远程系统传送日志信息到另一个系统的/etc/syslog.conf 输入项。上面所述即将 /etc/sysconfig/syslog 中将 Syslogd_Options 中加入 -r h 参数。4) klogd 守护进程klogd 守护进程获得并记录Linux 内核信息。通常, syslogd 会记录klogd 传来的所有信息,然而,如果调用带有-f filename 变量的klogd 时, klogd 就在 filename 中记录所有信息,而不是传给syslogd。当指定另外一个文件进行日志记录时,klogd 就向该文件中写入所有级别或优先权。Klogd 中没有和/etc/syslog.conf 类似的配置文件。使用klogd 而避免使用syslogd 的好处在于可以查找大量错误。如果有人入侵了内核,使用klogd 可以修改错误。5) 其他日志在 /var/log 和不同版本的系统中以及自己配置的应用程序中都可以找到其他日志文件。当然,/etc/syslog.conf 列出了由syslogd 管理的所有日志文件名和位置。其他日志由其他应用程 序 管 理 。 apache server 生 成/var/log/htmlaccess.log 文 件 记 录 客 户 访 问 , 生 成/var/log/httpd/error.log 文件在syslog 以外查找错误。cron 工具维护的信息日志文件/var/log/cron 。当Linuxconf 工具记录系统重新配置信息时,将生成日志文件如/var/log/nerconf.log 。samba 在 /var/log/samba 中维护其日志信息。/var/run/utmp 记录所有当前登录到系统的用户,使用w 或 who 命令来查看。/var/log/wtmp 记录所有用户的登陆和注销,使用last 命令来查看。/var/log/lastlog 中记录所有用户最后一次的登陆时间,使用lastlog 命令来查看。6) 手工操作日志可以使用logger 命令来手工操作记录,logger xxx /var/log/messages 7) 使用 logrotate 对日志文件转储(本文转载 ) 对于 Linux 的系统安全来说, 日志文件是极其重要的工具。系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。对于 Linux 的系统安全来说,日志文件是极其重要的工具。系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。logrotate 还可以用来备份日志文件,本篇将通过以下几部分来介绍日志文件的管理:1、logrotate 配置2、缺省配置logrotate 3、使用 include 选项读取其他配置文件4、使用 include 选项覆盖缺省配置5、为指定的文件配置转储参数一、 logrotate 配置logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储” 。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过cron 程序来执行。logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。logrotate 的配置文件是/etc/logrotate.conf。主要参数如下表:参数功能compress 通过 gzip 压缩转储以后的日志nocompress 不需要压缩时,用这个参数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - copytruncate 用于还在打开中的日志文件,把当前日志备份并截断nocopytruncate 备份日志文件但是不截断create mode owner group 转储文件,使用指定的文件模式创建新的日志文件nocreate 不建立新的日志文件delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩nodelaycompress 覆盖delaycompress 选项,转储同时压缩。errors address 专储时的错误信息发送到指定的Email 地址ifempty 即使是空文件也转储,这个是logrotate 的缺省选项。notifempty 如果是空文件的话,不转储mail address 把转储的日志文件发送到指定的E-mail 地址nomail 转储时不发送日志文件olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统noolddir 转储后的日志文件和当前日志文件放在同一个目录下prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行daily 指定转储周期为每天weekly 指定转储周期为每周monthly 指定转储周期为每月rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留 5 个备份tabootext + list 让 logrotate 不转储指定扩展名的文件,缺省的扩展名是: .rpm-orig, .rpmsave, v, 和 size size 当日志文件到达指定的大小时才转储,Size 可以指定bytes (缺省 )以及 KB (sizek)或者 MB (sizem). 二、缺省配置logrotate logrotate ?/etc/logrotate.conf 。Red Hat Linux 缺省安装的文件内容是:# see man logrotate for details# rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # send errors to root errors root # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress 1 # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own lastlog or wtmp -well rotate them here /var/log/wtmp monthly 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - create 0664 root utmp rotate 1 /var/log/lastlog monthly rotate 1 # system-specific logs may be configured here 缺省的配置一般放在logrotate.conf 文件的最开始处,影响整个系统。在本例中就是前面12行。第三行 weekly 指定所有的日志文件每周转储一次。第五行rotate 4 指定转储文件的保留4 份。第七行errors root 指定错误信息发送给root。第九行 create 指定logrotate 自动建立新的日志文件,新的日志文件具有和原来的文件一样的权限。第 11 行#compress 指定不压缩转储文件,如果需要压缩,去掉注释就可以了。三、使用include 选项读取其他配置文件include 选项允许系统管理员把分散到几个文件的转储信息,集中到一个主要的配置文件。当logrotate 从 logrotate.conf 读到 include 选项时,会从指定文件读入配置信息,就好像他们已经在/etc/logrotate.conf 中一样。第 13行include /etc/logrotate.d 告诉logrotate 读入存放在 /etc/logrotate.d 目录中的日志转储参数,当系统中安装了RPM 软件包时,使用include 选项十分有用。RPM 软件包的日志转储参数一般存放在/etc/logrotate.d 目录。include 选项十分重要,一些应用把日志转储参数存放在/etc/logrotate.d 。典型的应用有:apache, linuxconf, samba, cron 以及 syslog。这样,系统管理员只要管理一个/etc/logrotate.conf 文件就可以了。四、使用include 选项覆盖缺省配置当 /etc/logrotate.conf 读入文件时, include 指定的文件中的转储参数将覆盖缺省的参数,如下例:# linuxconf 的参数/var/log/htmlaccess.log errors jim notifempty nocompress weekly prerotate /usr/bin/chattr -a /var/log/htmlaccess.log endscript postrotate /usr/bin/chattr +a /var/log/htmlaccess.log endscript /var/log/netconf.log nocompress 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - monthly 在 这 个 例 子 中 , 当/etc/logrotate.d/linuxconf 文 件 被 读 入 时 , 下 面 的 参 数 将 覆 盖/etc/logrotate.conf 中缺省的参数。Notifempty errors jim 五、为指定的文件配置转储参数经常需要为指定文件配置参数,一个常见的例子就是每月转储/var/log/wtmp 。为特定文件而使用的参数格式是:# 注释/full/path/to/file option(s) 下面的例子就是每月转储/var/log/wtmp 一次:#Use logrotate to rotate wtmp /var/log/wtmp monthly rotate 1 六、其他需要注意的问题1、尽管花括号的开头可以和其他文本放在同一行上,但是结尾的花括号必须单独成行。2、使用prerotate 和 postrotate 选项下面的例子是典型的脚本/etc/logrotate.d/syslog ,这个脚本只是对/var/log/messages 有效。/var/log/messages prerotate /usr/bin/chattr -a /var/log/messages endscript postrotate /usr/bin/kill -HUP syslogd /usr/bin/chattr +a /var/log/messages endscript 第一行指定脚本对/var/log messages 有效花哦阅诓康慕疟驹诵杏? /var/log/messages prerotate 命令指定转储以前的动作/usr/bin/chattr -a 去掉 /var/log/messages 文件的“只追加”属性endscript 结束prerotate 部分的脚本postrotate 指定转储后的动作/usr/bin/killall -HUP syslogd 用来重新初始化系统日志守护程序syslogd /usr/bin/chattr +a /var/log/messages 重新为/var/log/messages 文件指定“只追加”属性,这样防治程序员或用户覆盖此文件。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 最后的endscript 用于结束postrotate 部分的脚本3、logrotate 的运行分为三步:判断系统的日志文件,建立转储计划以及参数,通过cron daemon 运行下面的代码是Red Hat Linux 缺省的 crontab 来每天运行logrotate。#/etc/cron.daily/logrotate #! /bin/sh /usr/sbin/logrotate /etc/logrotate.conf 4、/var/log/messages 不能产生的原因:这种情况很少见,但是如果你把/etc/services 中的514/UDP 端口关掉的话,这个文件就不能产生了名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -