您好,登錄后才能下訂單哦!
安裝chrony
#yum install chrony -y
修改配置文件
vim /etc/chrony.conf
server 0.centos.pool.ntp.org iburst
allow 172.20.10.0/24
server來指定上一級時間同步服務器,allow表示允許那個IP段以本機為時間服務器同步時間。這里指定 192.168.184.0/24網段配置完重啟chrony服務
#systemctl? restart? chronyd.service
#ss -tunlp? ?查看端口323
B機:
安裝chrony
yum install chrony -y
修改配置文件
#vim/etc/chrony.conf
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 172.20.10.5 iburst
注釋掉其他的server,配置以A機為時間服務器
然后重啟客戶端的chrony服務
#systemctl? restart? chronyd.service
#systemctl enable chronyd.service 開機自啟動服務
查看同步源(時間服務器)
chronyc sources
查看同步狀態
#chronyc sourcestats
2.日志服務器
(1)為了更好的管理應用程序和操作系統的日志,使用日志服務器進行管理,我們需要用到rsyslog,它是由早期的syslog的升級版。它可以收集系統引導啟動、應用程序啟動、應用程序(尤其是服務類應用程序)運行過程中的事件。
記錄的格式為:事件產生日期和時間? 主機? 進程PID? 事件內容。
rsyslog的特性:多線程,支持TCP、UDP、SSL、TLS、RELP協議。可存儲信息于日志、mysql等數據庫管理系統。可以對日志信息進行過濾,可以自定義輸出格式。
(2)安裝rsyslog
yum install rsyslog
它的主程序是rsyslogd
它的配置文件是/etc/rsyslog.conf,? /etc/rsyslog.d/*.conf
主配置文件rsyslog.conf?主要由三個部分組成:?
MODULES? 表示加載的模塊列表
GLOBAL DIRECTIVES? ?表示全局的配置
RULES? ?表示日志記錄規則(重點)
其中:
MODULES段的格式為
$ModLoad? 模塊名稱
如果模塊名稱為im開起表示輸入模塊,如果以om開頭表示輸出模塊
GLOBAL DIRECTIVES?段主要定義一些常用設置,比如:
$WorkDirectory? 表示工作目錄
RULES?段的格式為:
facility.priority? target
其中
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:此級別以及高于此級別的所有級別)
=priority:僅此級別;
一般要求日志級別為warn,即warn以及warn以上級別的日志要記錄。
生產上一般不會開debug級別的日志,因為日志記錄太多會導致io繁忙。
target:日志寫入目標
文件:把日志事件寫入到指定的文件中,日志文件通常位于/var/log目錄下,
文件路徑前面加"-"表示異步寫入文件;
用戶:將日志事件通知給指定的用戶,通過將信息發送給登錄到系統上的用戶的終端進行的;
日志服務器:@host ,把日志發送到指定的服務器主機,
要保證host日志服務器在tcp或udp協議的514端口有監聽并提供日志服務。
管道:? | COMMAND? 送到某一命令進行處理
(3)實驗:
A機:172.20.10.5(日志服務器),B機:172.20.10.6(客戶端)
A機器上:
#?yum install rsyslog
修改配置文件
vim /etc/rsyslog.conf
#Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
$Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
以上配置行的注釋去掉后就會開啟對tcp和udp協議的514端口進行監聽。
重啟rsyslog服務
#systemctl restart rsyslog.service
#ss -tunl? 查看有514端口監聽。
B機器上:
#?yum install rsyslog
修改配置文件
# vim? /etc/rsyslog.conf
#*.info;mail.none;authpriv.none;cron.none? ? ? ? ? ? ? ?/var/log/messages
*.info;mail.none;authpriv.none;cron.none? ? ? ? ? ? ? ? @172.20.10.5
把它的target?改為? @日志服務器IP
然后重啟客戶端的rsyslog服務
#systemctl restart rsyslog.service
這樣就不會有日志記錄到B機的/var/log/message中了。而是記錄到日志服務器A上,由日志服務器上的配置文件決定日志記錄到哪里。由我們沒有改為A機上RULES?日志規則所以是寫入到日志服務器上的/var/log/message(為了較好的看出效果,需要事先設置不同的主機名)
把日志保存的mysql設備中(A):
安裝rsyslog-mysql的模塊
# yum install rsyslog-mysql
查看安裝文件位置
#? rpm -ql rsyslog-mysql
安裝mariadb數據庫
# yum install mariadb-server??mariadb
# vi? /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON
啟動數據庫并導入數據
systemctl start mariadb.service
#? mysql?
mysql>GRANT ALL ON Syslog.* TO 'rsyslog'@'192.168.184.%' IDENTIFIED BY 'rsyspass';
mysql>?flush privileges;
mysql>quit;
修改日志服務器上的rsyslog配置文件
# vi /etc/rsyslog.conf
#### MODULES ####
$ModLoad ommysql
#### RULES ####
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.184.136,Syslog,rsyslog,rsyspass
加載ommysql模塊,并配置target為ommysql ,
后面這串內容為:ommysql:數據庫主機,數據庫名,數據庫用戶,數據庫密碼。
然后重啟rsyslog.service
# systemctl restart rsyslog.service
在B機上登錄用戶和登出用戶操作,再查一下A機的數據庫發現有新的記錄產生。
web展示接口:loganalyzer
配置lamp組合
httpd, php, php-mysql, php-gd
安裝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
3.sudo安全切換
sudo?能夠讓獲得授權的用戶以另外一個用戶(一般為root用戶)的身份運行指定的命令
授權配置文件/etc/sudoers,但是一般使用visudo命令進行編輯。因為誤操作引起系統異常。
授權配置文件的格式:
users? hosts=(runas)? ?commands
含義是,users列表中的用戶(組),可以在hosts列表的位置上,以runas用戶的身份來運行commands命令列表中的命令。
各個字段可能的值?為:
users:? sudo命令的發起用戶
用戶名?或uid
%用戶組名? 或%gid? ?(這里要注意用戶需把基本組切換為該用戶組,才能使用sudo)
User_Alias 用戶別名
hosts:? 允許的地址
ip地址
主機名
NetAddr
Host_Alias?主機別名
runas:? ?以某一用戶的身份執行
用戶名?或uid
Runas_Alias 用戶別名
commands:?指定的命令列表
command(命令建議使用完整的絕對路徑)
!command?表示禁止某一命令
directory
sudoedit:特殊權限,可用于向其它用戶授予sudo權限
Cmnd_Alias? ? 命令別名
這幾個字段中hosts,runas, commands都可以用ALL來表示所有。
定義別名的方法:
ALIAS_TYPE NAME=item1,item2,item3,...
NAME:別名名稱,必須使用全大寫字符
ALIAS_TYPE :User_Alias,Host_Alias,Runas_Alias ,Cmnd_Alias
sodu命令執行時會要求用戶輸入自己的密碼,為了避免頻繁驗密與安全其見,能記錄成功認證結果一段時間,默認為5分鐘,即5分鐘內不需要再驗證用戶密碼。
以sudo的方式來運行指定的命令
sudo? ?[options]? COMMAND
-l? 列出sudo配置文件中用戶能執行的命令
-k? 清除此前緩存用戶成功認證結果,之后再次運行sudo時要驗證用戶密碼。
如果想要讓用戶輸入部分命令時不需要進行密碼驗證,在sudo配置文件中commands列表部分,可以在命令列表前面加上"NOPASSWD",則其后的命令不需要密碼,如果某些命令又需要密碼就在前面加上“PASSWD”,所以commands列表可以為這種格式:
NOPASSWD? 不需要密碼的命令列表??PASSWD? 需要密碼的命令列表
安全提示:在sudo配置文件中
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
上面配置中root用戶這行沒有問題,但是%wheel這行要注意,如果把某用戶加入到%wheel組,當用戶把基本組切換為wheel組時就可以像root用戶一樣運行命令,較有風險的命令舉例如下:
sudo su - root? ? 不需要密碼就可以切換到root用戶
sudo? passwd? root? ? 修改root用戶密碼,不需要輸入原密碼。
建議把%wheel改為
%wheel ALL=(ALL)? ?ALL,!/bin/su,!/usr/bin/passwd root
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。