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:
文件:記錄日志事件于指定的文件中;通常應該位于/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’(軟)資源限制
-H ? ? ? ?使用 `hard’(硬)資源限制

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/100532

(0)
N26-深圳-城市蝸牛N26-深圳-城市蝸牛
上一篇 2018-06-07
下一篇 2018-06-07

相關推薦

  • HAProxy反向代理

    HAProxy的簡單配置實現反向代理服務器的功能:(有自動的健康性檢查的功能) 程序環境:主程序:/usr/sbin/haproxy主配置文件:/etc/haproxy/haproxy.cfgUnit file:/usr/lib/systemd/system/haproxy.service 官網文檔: http://cbonte.github.io/hapr…

    2018-07-09
  • 文本處理三劍客:sed簡介

    文本處理三劍客:sed簡介 sed是一種流編輯器,處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。 處理過程 sed命令將當前處理的行讀入模式空間(pattern space)進行處理,sed在該行上執…

    Linux筆記 2018-04-03
  • 運維自動化之系統部署

    運維自動化之系統部署 安裝程序 ?CentOS系統安裝 系統啟動流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init   ?anaconda: 系統安裝程序 gui:圖形窗口 tui: 基于圖形庫curses的文本窗口   &nbs…

    Linux筆記 2018-05-27
  • cp 常用選項

    cp 選項:

    Linux筆記 2018-04-01
  • 系統啟動和內核管理之系統啟動實驗

    本文主要記錄:內核文件損壞導致系統無法啟動的修復過程

    2018-05-07
欧美性久久久久