rsyslog、nsswitch、pam

rsyslog:

日志:历史事件日志
历史事件:
时间,事件
事件级别(日志级别):事件的关键性程度;

事件:系统引导启动、应用程序启动、应用程序尤其是服务类应用程序运行过程中的一些事件;
系统日志服务:
syslog:
syslogd: system
klogd:kernel

事件格式较为简单时,可统一由syslog进行记录:
事件产生的日期时间 主机 进程[pid] :事件内容

支持C/S架构:可通过UDP或TCP协议提供日志记录服务;

rsyslog:
rsyslogd

特性:
多线程;
UDP,TCP,SSL,TLS,RELP;
存储日志信息于MySQL、PGSQL、Oracle等数据管理系统;
强大的过滤器,实现过滤日志信息中任何部分的内容;
自定义输出格式;

elk stack:elasticsearch, logstash, kibana

rsyslog日志收集器重要术语:
facility:设施,从功能或程序上对日志收集进行分类;
auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, user, uucp, local0-local7, syslog
priority:优先级,日志级别
debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

指定级别:
*:所有级别;
none:没有级别;
priority:此级别以高于此级别的所有级别;
=priorty:仅此级别;
……

程序环境:
主程序:rsyslogd
主配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
服务脚本(centos6):/etc/rc.d/init.d/rsyslog
Unit File(CentOS 7):/usr/lib/systemd/system/rsyslog.service

配置文件格式rsyslog.conf
主要由三部分组成:
MODULES
GLOBAL DRICTIVES
RULES

RULES:
facilty.priority target

target:用户:将日志事件通知给指定的用户;是通过将信息发送给登录到系统上的用户的终端进行的;
日志服务器:@host,把日志送往指定的服务器主机;
br/>文件:记录日志事件于指定的文件中;通常应该位于/var/log目录下;文件路径之前的"-"表示异步写入;
用户:将日志事件通知给指定的用户;是通过将信息发送给登录到系统上的用户的终端进行的;
日志服务器:@host,把日志送往指定的服务器主机;
host:即日志服务器地址,监听在tcp或udp协议的514端口以提供服务;
管道: | COMMAND

其它日志文件:
/var/log/wtmp:当前系统成功登录系统的日志;
需要使用last命令查看
/var/log/btmp:当前系统尝试登录系统失败相关的日志;
需要使用lastb命令查看

lastlog:显示当前系统上的所有用户最近一次登录系统的时间;

/var/log/dmesg:系统引导过程中的日志信息;
也可以使用dmesg命令进行查看;

rsyslog服务器:

Provides UDP syslog reception

$ModLoad imudp
$UDPServerRun 514

Provides TCP syslog reception

$ModLoad imtcp
$InputTCPServerRun 514

记录日志于mysql中:
(1) 于MySQL服务器:准备好MySQL服务器,创建用户,授权对Syslog数据库拥有全部访问权限;
(2) 于rsyslog主机:安装rsyslog-mysql程序包;
(3) 于rsyslog主机:通过导入createDB.sql脚本创建依赖到的数据库及表;
mysql ? ?-uUSER ?-hHOST ?-pPASSWORD ?< /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
(4) 配置rsyslog使用ommysql模块

MODULES

$ModLoad ?ommysql

RULES

facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS

注意:重启rsyslog服务;
(5) web展示接口:loganalyzer
(a) 配置lamp组合
httpd, php, php-mysql, php-gd
(b) 安装loganalyzer

tar ?xf ?loganalyzer-3.6.5.tar.gz

cp ?-r ?loganalyzer-3.6.5/src ?/var/www/html/loganalyzer

cp ?-r loganalyzer-3.6.5/contrib/*.sh ?/var/www/html/loganalyzer/

cd /var/www/html/loganalyzer/

chmod ?+x ?*.sh

./configure.sh

./secure.sh

chmod 666 config.php

通过URL访问
http://HOST/loganalyzer
nsswitch and pam:

nsswitch:name service switch
名称解析:用户名、组名、主机、服务名、...

解析:根据已知的信息(key)查找某存储库,获取其它信息的过程;
存储:文件、SQL、NoSQL、LDAP、dns、...
文件系统接口:系统调用
SQL:
NoSQL:

通用框架:承上启下
承上:提供统一的配置与调用接口;
启下:用于与各种存储进行交互;

实现:/usr/lib64/libnss, /lib64/libnss
框架:libnss
驱动:libnss_files-

为每一种用到解析库的应用通过配置定义其位置:
/etc/nsswitch.conf

文件格式:
db: ?store1 ?store2 ?...

例如:
passwd: files
hosts: files ?dns

解析库:
文件、关系型数据管理系统(MySQL)、NIS、LDAP、DNS

每种存储中根据查找键进行查找的结果状态:
STATSU => success | notfound | unavail | tryagain
对应于每种状态结果的行为(action):
return | continue

例子:
hosts: files ?nis [NOTFOUND=return] ?dns

getent命令:
getent ?DATABASE ?[key]

pam:pluggable ?authentication module

认证库:存储
多种类型的存储:文件、关系型数据管理系统、LDAP、NIS

pam:通用框架,提供了与各种类型存储进行交互的公共实现、以及多种辅助类的功能:
/lib64/security/*

配置文件:为各种调用了pam的应用提供其专用配置;
通用配置文件:/etc/pam.conf,可为每一种调用pam完成认证功能的应用程序提供配置;
专用配置文件:/etc/pam.d/*,通常专用于为某种特定的应用程序提供配置;

通常每个应用会使用一个单独的配置文件;

配置文件格式:
通用配置文件:
application ?typecontrol module-path module-arguments
专用配置文件:
typecontrol module-path module-arguments

type:检查的功能类别
auth:账号的认证和授权;
account:与账号管理相关的非认证类的功能;
password:用户修改密码时密码复杂度检查机制;
session:用户获取到服务之前或使用服务完成之后需要进行一些附加性操作;

control:同一种功能的多个检查之间如何进行组合;
两种实现机制:
(1) 简单机制:使用一个关键词来定义
(2) 详细机制:使用一个或多个“status=action”

简单机制:
required:必须成功通过检查;否则,即为失败;无论成功还是失败,都需继续由后续同种功能的其它模块进行检查;
requisite:一票否决;检测失败就直接返回失败;检测成功,则由由后续同种功能的其它模块进行检查;
sufficient:一票通过,检测成功就直接返回成功;检测失败,则由由后续同种功能的其它模块进行检查;
optional:可选的,参考性控制机制;
include:调用其它配置文件中的同种功能的检测机制;

详细机制:
[status1=action1, status2=action2, ...]
status:检查结果返回状态:
action:采取的行为,比如ok, done, die, bad, ignore,reset

module-path:模块文件路径;
相对路径:相对于/lib64/security/目录而言;
绝对路径:可位于任何可访问路径;

module-arguments:模块的专用参数;

模块示例:
pam_shells.so:检查用户的shell程序;
/etc/pam.d/sshd
在auth栈的第一行添加:

pam_limits.so:系统资源分配及控制的模块;
在用户级别实现对其可使用的资源的限制,例如可打开的文件数量,可同时运行的最大进程数,可用内存空间等等;

修改限制的实现方式:
(1) ulimit命令
(2) 配置文件:/etc/security/limits.conf, /etc/security/limits.d/*.conf

配置文件:每行一个定义;
<domain> ? ? ? ?<type> ?<item> ?<value>

domain>:应用于哪些对象
username:单个用户
@group:组内的所有用户
*:所有用户,设定默认值

<type>:限制的类型
soft:软限制,普通用户自己可以修改;
hard:硬限制,由root用户设定,且通过kernel强制生效;
-:软硬使用相同限制;

<item>:限制的资源类型
nofile:所能够同时打开的最大文件数量;默认为1024;
nproc:所能够同时运行的进程的最大数量;默认为1024;

ulimit命令:用于临时调整资源的软硬限制或查看,仅root用户能执行;
-a ? ? ? ?显示当前的所有限制
-n ? ? ? ?最多的打开的文件描述符个数
-u ? ? ? ?最大用户进程数
-S ? ? ? ?使用 soft‘(软)资源限制<br/>-H ? ? ? ?使用hard‘(硬)资源限制

rsyslog、nsswitch、pam

原文地址:http://blog.51cto.com/11476314/2159901

时间: 2024-11-10 13:10:59

rsyslog、nsswitch、pam的相关文章

tcp_wrapper、sudo、nsswitch、pam

下面介绍的是服务与安全管理的tcp_wrapper.sudo.nsswitch.pam 一.tcp_wrapper 1.tcp_wrapper基础 --------------------tcp封装器 tcp_wrapper依赖的库文件:libwrap.so (1).判断是否受tcp_wrapper访问控制:动态链接(libwrap.so库文件).静态链接(strings命令) 动态链接至libwrap.so库的应用程序:# ldd /PATH/TO/APP_FILE | grep libwra

rsyslog的安装、使用、详解

操作系统:CentOS release 6.7 download yum repo file:rsyslogall.repo [rsyslog-v8-stable] name=Adiscon Rsyslog v8-stable for CentOS-$releasever-$basearch baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch enabled=1 gpgcheck=0 protect=1 安装:

Sql Server 中 GAM、SGAM、PAM、IAM、DCM 和 BCM 的详解与区别

GAM.SGAM.PAM.IAM.DCM 和 BCM 都是 SQL Server 中用来管理空间分配的一些特殊分配映射表.理解他们的区别与作用,对于理解 Sql Server 物理数据库体系结构有着非常重要的作用. Sql Server 区的管理(GAM,SGAM) 全局分配映射表 (GAM) :统一盘区,GAM 页记录已分配的区.每个 GAM 包含 64,000 个区,相当于近 4 GB 的数据.GAM 用一个位来表示所涵盖区间内的每个区的状态.如果位为 1,则区可用:如果位为 0,则区已分配

马哥教育第十三天系统启动流程、grub、模块、bash函数

kernel的功能:进程管理.文件系统.硬件驱动.内存管理.安全功能:SELinux.网络子系统,标准库:glibc 进程是运行在cpu上但用户进程受控于内核,用户进程需要完成特权指令时将触发软中断由用户模式转为内核模式,由内核代为执行特权指令并把结果返回给用户进程. Linux为单内核体系结构但是它支持模块化,模块还可以动态装载或卸载,Linux内核:核心 + 外围模块 核心:/boot/vmlinux-VERSION-release 模块:/lib/modules/VERSION-relea

nsswitch与pam

nsswitch: Network Service Switch,网络服务转换,让多种应用程序能够灵活实现名称解析的通用框架 解析库: 文件.MySQL.NIS.LDAP.DNS 通用框架,与各存储交互的实现: /usr/lib64/libnss*,/lib64/libnss* 配置文件:/etc/nsswitch.conf db: store1,store2,... 每种存储中查找的结果状态:STATUS => success | not found | unavail | tryagain

Linux自学笔记——nsswitch and pam

nsswitch:name service switch 通用框架,与各种类型存储进行交互的公共实现: 实现:/usr/lib64/libnss*,/lib64/libnss* 框架:libnss 驱动:libnss_files- 为每一种用到解析库的应用通过配置定义其位置: /etc/nsswitch.conf db: store1   store2  - 例如: passwd:files hosts:files   dns 解析库: 文件.关系型数据管理系统(mysql).NIS.LDAP.

Google Earth数据存储、管理、表现及开发机制

一.    Google Earth(Map)介绍 1.1    Google Earth介绍 在众多的地理信息服务提供商中,Google是较早提供服务的一个,其他有如ESRI这样的巨头,也有中国的灵图.但凭借着提供优质.高效.高性价比服务的理念和Google自身的巨大影响力,Google推出的Google Earth和Google Map平台已经成为全球影响力最大的互联网空间信息服务平台. Google Earth具有十分突出的三个特点[1],一是可以显示矢量数据地标,包括点.线.面等几何类型

linux基础学习-第十五天 磁盘管理(SWAP、dd、quota、RAID、LVM)

2016-08-26: 授课内容: 1.SWAP交换分区的创建 2.dd命令的使用 3.设定文件系统配额 4.设定和管理软RAID设备 5.配置逻辑卷 1.swap (1)SWAP分区:模拟内存,当物理内存不足时,进程需要内存资源是,内存会把一部分没有在用的进程分页挪到硬盘的模拟内存中,腾出空间被现在需要使用内存资源的进程 即其作用是可以允许内存过载使用,windows系统也有类似的机制,由于虚拟内存空间是建立在硬盘之上,所以其速度和性能会大打折扣,所以适合临时使用 (2)创建SWAP分区: 相

Linux DNS acl、view、日志系统使用

本节以前面主.从DNS为实验环境,讲解DNS acl.view.日志系统相关使用 一.配置DNS acl访问控制列表 acl定义格式: acl string { address_match_element; ... }; 常用几钟类型格式: allow-transfer {}; 允许做区域传送主机 allow-query {};   允许做查询限定 allow-recursion {}; 允许做递归查询列表,通常只给本地客户端做递归 allow-update {}; 允许DNS动态更新,但只能由