RH133 单元3 系统服务和安全

一、监视系统日志

1. 集中式日志记录后台程序:syslogd(标准)、klogd(内核)和auditd(审计)

2. 日志文件示例:

/var/log/messages:标准系统错误消息

这是标准系统日志文件,它包含来自所有系统软件、非内核启动问题的消息以及转至dmesg的消息。仅可由root读取。

/var/log/dmesg:内核启动消息,查看硬件信息,命令dmesg

此日志文件在系统启动时编写,它包含来自内核的在启动过程中生成的消息。

/var/log/maillog:邮件系统消息

此日志文件包含来自邮件子系统的消息和错误。仅可由root读取。

/var/log/secure:安全、验证和xinetd消息

此日志文件包含来自与安全相关的系统(例如登录系统、tcp_wrapper和xinetd)的消息和错误。仅可由root读取,检测和调查网络资源滥用时非常有用。

/var/log/audit/audit.log:内核审核消息

此日志文件包含来自内核的审核消息,其中包括与SELinux相关的消息。使用ausearch和aureport查看。

3. 应用程序日志文件和目录也位于/var/log/中

二、syslogd和klogd配置

1. klogd将内核消息定向到syslogd

2. 这两个程序均由/etc/rc.d/init.d/syslog(rhel6为rsyslog)控制

脚本在/etc/sysconfig/syslog(rsyslog)中配置

SYSLOGD_OPTIONS=”-m 0”

3. 配置syslogd(rsyslogd)

/etc/syslog.conf (rsyslog.conf)

facility.prioritylog_location

*.info(日志等级);mail.none(除了mail);authpriv.none;cron.none  /var/log/messages

authpriv.*                                         /var/log/secure

mail.*                               (有短横线保存在内存中)-/var/log/maillog

4. logger从命令行生成定向到syslogd的消息。

EXAMPLES   logger System rebooted

logger -p local0.notice -t HOSTIDM -f /dev/idmc

日志level:

LOG_EMERG      system is unusable

LOG_ALERT      action must be taken immediately

LOG_CRIT       critical conditions

LOG_ERR        error conditions

LOG_WARNING    warning conditions

LOG_NOTICE     normal, but significant, condition

LOG_INFO       informational message

LOG_DEBUG      debug-level message

系统日志文件中的每个条目都包含以下四项主要内容:1.消息的日期和时间。2.消息来自的主机。3.消息来自的应用程序或子系统名称,例如内核、vsftpd等,其中可能包括进程标识符。4.行中的其余部分(冒号后面)是实际消息内容。

三、回顾:使用cron使任务实现自动化

1. 用于计划周期性事件

2. 使用crontab编辑、安装和查看作业计划

crontab[-u user] file

crontab [ -l|-r|-e]

echo ‘*/15 8-17 * * 1-5 echo Breaktime’| crontab

3. 限制/允许用户访问crond

/etc/cron.allow允许

/etc/cron.deny拒绝

cron表

在cron表格文件(crontab)中计划的所有事件均由crond后台程序运行(该后台程序必须正在系统中运行)

用户crontab存储在/var/spool/cron中,未授权用户不可访问此文件,并且通常具有root权限的那些用户不得访问此文件。问了访问当前的crontab,使用了crontab命令。可以在当前目录中编辑用户crontab,并通过将其用作crontab命令的参数安装用户crontab,也可以通过使用-e选项完成这些操作。

Crontab中的字段可以使用任意数目的制表符或空格分隔。有效字段值如下表示:

field          allowed values

-----          --------------

minute         0-59

hour           0-23

day of month   1-31

month          1-12 (or names, see below)

day of week    0-7 (0 or 7 is Sun, or use names)

诸如@reboot等特殊时间规格别名可以替换前五个字段,这种情况下,在重新启动后执行。

@reboot    :    Run once after reboot.

@yearly    :    Run once a year, ie.  "0 0 1 1 *".

@annually  :    Run once a year, ie.  "0 0 1 1 *".

@monthly   :    Run once a month, ie. "0 0 1 * *".

@weekly    :    Run once a week, ie.  "0 0 * * 0".

@daily     :    Run once a day, ie.   "0 0 * * *".

@hourly    :    Run once an hour, ie. "0 * * * *".

cron访问控制

1)如果既不在/etc/cron.allow也不在/etc/cron.deny,则仅允许root安装新crontab文件

2)如果仅存在/etc/cron.deny,则除/etc/cron.deny中列出的那些用户外的所有用户均可安装crontab文件

3)如果仅存在/etc/cron.allow,则root和列出的所有用户均可安装crontab文件

4)如果这两个文件都存在,则忽略/etc/cron.deny

四、系统crontab文件

1. 与用户crontab文件格式不同

2. 默认/etc/crontab在以下各项中运行可执行文件:

/etc/cron.hourly/、/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/

3. /etc/cron.d/包含其他系统crontab文件

/etc/crontab和/etc/cron.d/中文件的格式与用户crontab不同。第六个字段是用户名,将用于执行第七个字段中的命令。

这些文件中的通用命令是run-parts shell脚本。此脚本使用一个参数、一个目录名,可调用该目录中的所有程序。/usr/bin/run-parts脚本没有联机文档。

五、默认每日cron作业

1. tmpwatch

清楚特定目录中的旧文件

防止填充满/tmp

Tmpwatch可删除/tmp中在240小时内未访问的所有文件。它也可删除/var/tmp中在720小时内未访问的文件。

2. logrotate

防止日志文件太大

配置存储在/etc/logrotate.conf和/etc/logrotate.d/中

logrotate能以预定义的时间间隔,或当来自不同子系统的日志文件达到预定义的大小时轮换这些日志文件,并且可以压缩旧日志(可选)。

配置存储在/etc/logrotate.conf中,用于常规设置;配置存储在/etc/logrotate.d/subsystem(rhel5)中,用于特定于子系统的设置。特定于服务的轮换规则通常由服务的RPM安装。

3. logwatch

提供有关系统活动的摘要

报告可疑消息

配置存储在/etc/ logwatch/中

Logwatch高度可配置,可以将其配置为检测大多数任意类型的活动。有关日志的筛选器的信息,参阅/usr/share/doc/logwatch-version。

六. anacron系统

1. anacron在系统启动时运作作业

2. 配置文件:/etc/anacrontab

字段1:如果作业在这几天中未运行

字段2:等待这几分钟,然后再运行作业

字段3:作业标识符

字段4:要运行的作业

3. 默认为与/etc/crontab关联

运行“错过的”每日、每周和每月作业

对于并非一直运行的计算机而言至关重要

anacron命令的目的是运行本应运行的cron作业。anacron的工作方式如下所示:

如果cron为run-parts、/etc/crontab或cron.daily/从cron.weekly/运行cron.monthly/命令,则要运行的第一个命令为0anacron。此命令在/var/spool/anacron/的文件中设置时间戳,注明此命令上次运行的时间。

在系统启动后,anacron命令运行。Anacrontab文件可指定cron.daily/、cron.weekly/和cron.monthly/中的命令应多长时间运行一次。如果这些命令在这段时间内未运行,则anacron会等待几分钟,然后再运行这些命令,从而确保计算机在cron应运行这些命令期间停机时,这些命令仍得以运行。

七、网络时间协议的准确时间

1. 许多应用程序都要求准确安排时间

2. 工作站硬件时钟往往会出现偏差而不予以更正

3. NTP通过控制秒的长度消除偏差

4. NTP客户端应使用三个时间服务器

5. 配置工具:system-config-date

6. 配置文件:/etc/ntp.conf(5分钟后生效)

7. 使用ntpq测试

NTP通过修改秒的长度消除偏差,很像调整老式钟表的摆钟。如果系统的时间晚于时间服务器的组合参考时间,会将秒的时间调短,以便系统时钟显示正确时间。这样就轻微地缩小了时间差异,而不会干扰其他应用程序。但是时间差异太大,NTP就会停止工作。在这种情况下,必须使用ntpdate手动重置时间。

如果具有三个集中式时间服务器,客户端就可以在服务器的其中一个NTP后台程序或时钟出现故障时拒绝假同步消息。如果需要,客户端可以与少数几个时间服务器同步,但是这样不***全。

[[email protected] ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==================================================================
*133.100.11.8    133.100.53.51    2 u   24   64  377  185.457   33.177 173.298

remote:响应这个请求的NTP服务器的名称。

refid:NTP服务器使用的上一级ntp服务器。

st :remote远程服务器的级别.由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端.所以服务器从高到低级别可以设定为1-16.为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.

when: 上一次成功请求之后到现在的秒数。

poll : 本地机和远程服务器多少时间进行一次同步(单位为秒).在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小

reach:这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加

delay:从本地机发送同步要求到ntp服务器的round trip time

offset:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。offset越接近于0,主机和ntp服务器的时间越接近

jitter:这是一个用来做统计的值.它统计了在特定个连续的连接数里offset的分布情况.简单地说这个数值的绝对值越小,主机的时间就越精确

八、SELinux

1. 强制访问控制与自主访问控制

默认情况下,拒绝未明确允许的任何操作

2. 二进制策略可定义

安全上下文(凭证)

规则,以允许特定操作

布尔值,以有条件地启用或禁用规则

审核要求(日志记录)

3. 默认策略为targeted

防止系统服务受影响,而不阻止本地用户访问

大多数本地进程为unconfined_t

九、SELinux策略:故障排除

1. 模式:Enforcing、Permissive或Disabled

持续性:/etc/sysconfig/selinux

system-config-securitylevel

运行时:getenforce和setenforce  0|1

内核参数:selinux=0|1或enforcing=0|1

2. 日志:/var/log/{messages,audit/audit.log}

3. 一般建议

man -k selinux

setroubleshootd,sealert -b和sealert -a

建议如何避免错误,不确保安全!

/etc/sysconfig/selinux可以定义使用哪个SELinux策略以及以哪种模式运行。Disabled意味着完全忽略策略,Permissive模式用于故障排除或开发,它可记录策略违规,但是不阻止程序运行。Enforcing是默认模式。

getenforce命令可显示系统的当前SELinux模式。Targeted策略允许使用setenforce命令在Enforcing(1)和Permissive(0)模式之间切换。

内核参数可覆盖SELinux模式。

应用程序尝试执行策略未授权的某些操作时,如果正在运行auditd,SELinux会阻止访问,并在/var/log/audit/audit.log中记录错误(这是默认设置),如果auditd未运行,则SELinux会记录到/var/log/messages。应用程序通常不知道发生故障的原因。这会是故障排除非常困难。为了帮助进行故障排除,setroubleshootd后台程序将通过在警告面板中放置警告图标警告发生了错误。单击此图标,系统将显示可能会更正错误的方法。建议的解决方案可能并非问题的最佳解决方案,了解这一点很重要。如果GUI不可用,请使用sealert -a。

通过GUI工具(system-config-selinux,包policycoreutils-gui的一部分),可以更改其他一些SELinux选项。为了查看哪些布尔值、文件上下文和/或端口适用于限制的进程,大多数情况下会有一个相应的man page,如named_selinux或httpd_selinux。

时间: 2024-10-24 03:28:28

RH133 单元3 系统服务和安全的相关文章

RH133 单元2 包管理

一.软件包 1. package-version-release.arch.rpm version-上游开发商版本 release-包程序更改(修正/向后移植记录在"更改日志"中) arch-二进制处理器架构 noarch 无架构 2. 包含: 文件存档:二进制.文档."默认"配置文件 摘要.说明.更改日志 说明:依赖项.安装/卸载前/后 签名 3. 升级将用新版本进行替换 .rpmsave与.rpmnew 二.启用专有yum仓库 1. 针对仓库在/etc/yum.

Linux - ArchLinux Notes

Arch Linux Notes ////////////////////////////////////////////// Author: Created by Nixawk Time:   2014-12-17 1. Install Arch Linux https://wiki.archlinux.org/index.php/Beginners%27_guide_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) -------- Install Awesome

跟后台打印程序系统服务通讯时出现错误。请打开服务管理单元,确认后台打印程序服务是否在运行。

一: 问题描述: [错误] 事件类型:警告事件来源:TermServDevices事件种类:无事件ID:1114日期:2013-10-16事件:0:06:41用户:N/A计算机:VPS描述:    跟后台打印程序系统服务通讯时出现错误.请打开服务管理单元,确认后台打印程序服务是否在运行.    有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心.数据: 二:问题原图: 三:解决方法: [解决方法一]    出现这个错误,一

CentOS 7 系列(二)系统服务配置--单元(Unit)

systemd.unit 单元(Unit) Systemd由一个叫做单元(Unit)的概念,它保存了服务.设备.挂载点和操作系统其他信息的配置文件,并能够处理不同单元之间的依赖关系.大部分单元都静态的定义在单元文件中,也有一些是动态生成的.单元有多种状态: 处于活动的则是(active),当前正在运行 停止的则是(inactive),当前已经停止 启动中的则是(activing),当前正在启动 停止中的则是(deactiving),当前正在停止 失败的则是(failed)状态,意思说单元启动过程

CentOS 7 系列(四)系统服务配置 服务(Service)

System.service: 服务单元,你可以理解为系统服务和原来的init.d下面的服务一样,只是比它更加丰富.每一个服务都是以.service进行标识的,如下图: systemctl list-unit-files --type=service 我们看看一个服务包含哪些内容: systemctl cat sshd.service 通过这个图是不是可以看出一些联系呢?和之前说的单元概念中包括的[Unit]段和[Install]段,这里还多了一个[Service]段,这个段就是用来定义服务的.

CentOS7中将Mysql添加为系统服务

如果是自己通过tar包安装的Mysql,不会自动添加到系统服务中,可通过如下方式,自己添加. 在/usr/lib/systemd/system目录下增加mysql.service,内容如下 [Unit] Description=Mysql After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/mysql/data/XXX.pid

常见系统服务及进程

电脑中打开服务窗口命令:services.msc:启动.关闭服务也在服务窗口中 进程查看在任务管理窗口中,在此可以关闭.启动进程 常见的系统服务: Automatic Update:开启确保Windows Update的正常使用 COM+Event System:禁用此选项会造成网络连接菜单无法进入 Computer Browser:禁用此选项会造成无法被局域网中的电脑访问 Cryptographic Service:禁用此选项会造成很多问题,包括:Windows Update无法继续.驱动程序

第十单元 系统日志

第十单元 系统日志 每个程序都会产生日志,采集管理日志的服务是rsyslog,采集来的日志会存放在/var/log/下的文件里 一 系统日志默认分类 /var/log/messages:系统服务及日志,包括服务的信息,报错等等 /var/log/secure:系统认证信息日志 /var/log/maillog:系统邮件服务信息 /var/log/cron:系统定时任务信息 /var/log/boot.log:系统启动信息 二 日志管理服务 :rsyslog 1 rsyslog :负责采集日志和分

关于进程和系统服务的控制(七八章),本章没有详细说明top命令

第七单元--关于进程 1.进程定义 进程就是cpu未完成的工作 2.进程的状态 运行(running)  休眠(sleeping)  停止(stopped)  继续  结束  僵尸进程(zombie) 3.图形中如何查看进程 gnome-system-monitor 4.如何用命令查看进程 ps   a    /*关于当前环境的所有进程 x    /*与当前环境无关的所有进程 f    /*显示进程从属关系 e    /*显示当前用户环境中的所有进程 l    /*长列表显示进程的详细信息 u