溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

時間服務(wù)器、日志服務(wù)器、sudo

發(fā)布時間:2020-07-11 09:21:56 來源:網(wǎng)絡(luò) 閱讀:290 作者:不會運維 欄目:系統(tǒng)運維

時間服務(wù)器、日志服務(wù)器、sudo

  1. 時間服務(wù)器
    centos7以后開始使用chrony做時間服務(wù)器,chrony兼容NTP服務(wù)。監(jiān)聽123(傳統(tǒng)NTP服務(wù)端口)和323(chrony服務(wù)端口),這樣客戶端既可以是ntp也可以是chrony。
    接下來以服務(wù)端和客戶端都是chrony來說明時間同步,
    A機:172.20.10.5(時間服務(wù)器),B機:172.20.10.6(客戶端)
    A機:
    安裝chrony
    #yum install chrony -y
    修改配置文件
    vim /etc/chrony.conf
    server 0.centos.pool.ntp.org iburst
    allow 172.20.10.0/24
    server來指定上一級時間同步服務(wù)器,allow表示允許那個IP段以本機為時間服務(wù)器同步時間。這里指定 192.168.184.0/24網(wǎng)段配置完重啟chrony服務(wù)
    #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機為時間服務(wù)器
    然后重啟客戶端的chrony服務(wù)
    #systemctl? restart? chronyd.service
    #systemctl enable chronyd.service 開機自啟動服務(wù)
    查看同步源(時間服務(wù)器)
    chronyc sources
    查看同步狀態(tài)
    #chronyc sourcestats

    2.日志服務(wù)器
    (1)為了更好的管理應(yīng)用程序和操作系統(tǒng)的日志,使用日志服務(wù)器進行管理,我們需要用到rsyslog,它是由早期的syslog的升級版。它可以收集系統(tǒng)引導(dǎo)啟動、應(yīng)用程序啟動、應(yīng)用程序(尤其是服務(wù)類應(yīng)用程序)運行過程中的事件。
    記錄的格式為:事件產(chǎn)生日期和時間? 主機? 進程PID? 事件內(nèi)容。
    rsyslog的特性:多線程,支持TCP、UDP、SSL、TLS、RELP協(xié)議??纱鎯π畔⒂谌罩?、mysql等數(shù)據(jù)庫管理系統(tǒng)。可以對日志信息進行過濾,可以自定義輸出格式。
    (2)安裝rsyslog

    yum install rsyslog
    它的主程序是rsyslogd
    它的配置文件是/etc/rsyslog.conf,? /etc/rsyslog.d/*.conf
    主配置文件rsyslog.conf?主要由三個部分組成:?
    MODULES? 表示加載的模塊列表
    GLOBAL DIRECTIVES? ?表示全局的配置
    RULES? ?表示日志記錄規(guī)則(重點)
    其中:
    MODULES段的格式為
    $ModLoad? 模塊名稱
    如果模塊名稱為im開起表示輸入模塊,如果以om開頭表示輸出模塊
    GLOBAL DIRECTIVES?段主要定義一些常用設(shè)置,比如:
    $WorkDirectory? 表示工作目錄
    RULES?段的格式為:
    facility.priority? target
    其中
    facility:設(shè)施,從功能上或程序上對日志收集進行分類,如:auth,authpriv,cron,daemon,kern,lpr,mail,mark,news,security,user,uucp,local0~local7,syslog
    priority:優(yōu)先級,日志級別,如下(從左到右,由低到高):debug,info,notice,warn(warning),err(error),crit(critical),alert,emerg(panic)
    指定級別的方式:
    *:所有級別;
    none:沒有級別;
    priority:此級別以及高于此級別的所有級別)
    =priority:僅此級別;
    一般要求日志級別為warn,即warn以及warn以上級別的日志要記錄。
    生產(chǎn)上一般不會開debug級別的日志,因為日志記錄太多會導(dǎo)致io繁忙。
    target:日志寫入目標(biāo)
    文件:把日志事件寫入到指定的文件中,日志文件通常位于/var/log目錄下,
    文件路徑前面加"-"表示異步寫入文件;
    用戶:將日志事件通知給指定的用戶,通過將信息發(fā)送給登錄到系統(tǒng)上的用戶的終端進行的;
    日志服務(wù)器:@host ,把日志發(fā)送到指定的服務(wù)器主機,
    要保證host日志服務(wù)器在tcp或udp協(xié)議的514端口有監(jiān)聽并提供日志服務(wù)。
    管道:? | COMMAND? 送到某一命令進行處理

    (3)實驗:
    A機:172.20.10.5(日志服務(wù)器),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協(xié)議的514端口進行監(jiān)聽。
    重啟rsyslog服務(wù)
    #systemctl restart rsyslog.service
    #ss -tunl? 查看有514端口監(jiān)聽。

    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?改為? @日志服務(wù)器IP
    然后重啟客戶端的rsyslog服務(wù)
    #systemctl restart rsyslog.service
    這樣就不會有日志記錄到B機的/var/log/message中了。而是記錄到日志服務(wù)器A上,由日志服務(wù)器上的配置文件決定日志記錄到哪里。由我們沒有改為A機上RULES?日志規(guī)則所以是寫入到日志服務(wù)器上的/var/log/message(為了較好的看出效果,需要事先設(shè)置不同的主機名)

    把日志保存的mysql設(shè)備中(A):

    安裝rsyslog-mysql的模塊
    # yum install rsyslog-mysql
    查看安裝文件位置
    #? rpm -ql rsyslog-mysql
    安裝mariadb數(shù)據(jù)庫
    # yum install mariadb-server??mariadb
    # vi? /etc/my.cnf.d/server.cnf
    [mysqld]
    skip_name_resolve=ON
    innodb_file_per_table=ON
    啟動數(shù)據(jù)庫并導(dǎo)入數(shù)據(jù)
    systemctl start mariadb.service
    #? mysql?
    mysql>GRANT ALL ON Syslog.* TO 'rsyslog'@'192.168.184.%' IDENTIFIED BY 'rsyspass';
    mysql>?flush privileges;
    mysql>quit;
    修改日志服務(wù)器上的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 ,
    后面這串內(nèi)容為:ommysql:數(shù)據(jù)庫主機,數(shù)據(jù)庫名,數(shù)據(jù)庫用戶,數(shù)據(jù)庫密碼。
    然后重啟rsyslog.service
    # systemctl restart rsyslog.service
    在B機上登錄用戶和登出用戶操作,再查一下A機的數(shù)據(jù)庫發(fā)現(xiàn)有新的記錄產(chǎn)生。

    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?能夠讓獲得授權(quán)的用戶以另外一個用戶(一般為root用戶)的身份運行指定的命令
    授權(quán)配置文件/etc/sudoers,但是一般使用visudo命令進行編輯。因為誤操作引起系統(tǒng)異常。
    授權(quán)配置文件的格式:
    users? hosts=(runas)? ?commands
    含義是,users列表中的用戶(組),可以在hosts列表的位置上,以runas用戶的身份來運行commands命令列表中的命令。
    各個字段可能的值?為:

    users:? sudo命令的發(fā)起用戶
    用戶名?或uid
    %用戶組名? 或%gid? ?(這里要注意用戶需把基本組切換為該用戶組,才能使用sudo)
    User_Alias 用戶別名
    hosts:? 允許的地址
    ip地址
    主機名
    NetAddr
    Host_Alias?主機別名
    runas:? ?以某一用戶的身份執(zhí)行
    用戶名?或uid
    Runas_Alias 用戶別名
    commands:?指定的命令列表
    command(命令建議使用完整的絕對路徑)
    !command?表示禁止某一命令
    directory
    sudoedit:特殊權(quán)限,可用于向其它用戶授予sudo權(quán)限
    Cmnd_Alias? ? 命令別名

    這幾個字段中hosts,runas, commands都可以用ALL來表示所有。
    定義別名的方法:

    ALIAS_TYPE NAME=item1,item2,item3,...
    NAME:別名名稱,必須使用全大寫字符
    ALIAS_TYPE :User_Alias,Host_Alias,Runas_Alias ,Cmnd_Alias
    sodu命令執(zhí)行時會要求用戶輸入自己的密碼,為了避免頻繁驗密與安全其見,能記錄成功認證結(jié)果一段時間,默認為5分鐘,即5分鐘內(nèi)不需要再驗證用戶密碼。

    以sudo的方式來運行指定的命令
    sudo? ?[options]? COMMAND

    -l? 列出sudo配置文件中用戶能執(zhí)行的命令
    -k? 清除此前緩存用戶成功認證結(jié)果,之后再次運行sudo時要驗證用戶密碼。
    如果想要讓用戶輸入部分命令時不需要進行密碼驗證,在sudo配置文件中commands列表部分,可以在命令列表前面加上"NOPASSWD",則其后的命令不需要密碼,如果某些命令又需要密碼就在前面加上“PASSWD”,所以commands列表可以為這種格式:
    NOPASSWD? 不需要密碼的命令列表??PASSWD? 需要密碼的命令列表
    安全提示:在sudo配置文件中
    root ALL=(ALL) ALL
    %wheel ALL=(ALL) ALL
    上面配置中root用戶這行沒有問題,但是%wheel這行要注意,如果把某用戶加入到%wheel組,當(dāng)用戶把基本組切換為wheel組時就可以像root用戶一樣運行命令,較有風(fēng)險的命令舉例如下:
    sudo su - root? ? 不需要密碼就可以切換到root用戶
    sudo? passwd? root? ? 修改root用戶密碼,不需要輸入原密碼。
    建議把%wheel改為
    %wheel ALL=(ALL)? ?ALL,!/bin/su,!/usr/bin/passwd root
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI