国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SSH安全通信與端口轉(zhuǎn)發(fā)(二)

hidogs / 3190人閱讀

摘要:但是,還能夠?qū)⑵渌丝诘木W(wǎng)絡(luò)數(shù)據(jù)通過鏈接來轉(zhuǎn)發(fā),并且自動(dòng)提供了相應(yīng)的加密及解密服務(wù)。而與此同時(shí),如果工作環(huán)境中的防火墻限制了一些網(wǎng)絡(luò)端口的使用,但是允許的連接,也能夠通過將端口轉(zhuǎn)發(fā)來使用進(jìn)行通訊端口轉(zhuǎn)發(fā)能夠提供兩大功能加

博文參考
http://www.178linux.com/48542
https://segmentfault.com/a/1190000010279082
利用openssl建立私有CA,完成證書頒發(fā)和管理 openssl配置文件中關(guān)于CA的配置段介紹

openssl的配置文件為/etc/pki/tls/openssl.cnf,其中定義了openssl完成CA工作時(shí)的相關(guān)屬性定義

建立私有CA
在確定配置為CA的服務(wù)器上生成一個(gè)自簽證書,為CA提供所需的目錄及文件即可

        步驟:

        <1>生成CA自己的私鑰,而在openssl的配置文件中定義了私鑰存放的位置為/etc/pki/CA/private/cakey.pem
        <2>為CA提供工作所需要的目錄及文件:
`
            mkdir /etc/pki/CA/{certs,crl,newcerts}  注意:如果目錄不存在才創(chuàng)建

            touch /etc/pki/CA/{serial,index.txt}

            echo 01 >>/etc/pki/CA/serial

            創(chuàng)建兩個(gè)CA工作需要用到的文件,serial為存放證書編號(hào)的文件,并且要給該文件提供一個(gè)初始的編號(hào),標(biāo)號(hào)必須是2位數(shù)字。

index.txt文件用于存放簽署過的證書的索引

            (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048 )
             <3>生成CA自己的自簽證書,而在openssl的配置文件中,也定義了自簽證書的存放位置為/etc/pki/CA/cacert.pem

            發(fā)起簽署CA證書的請求

            openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem -days 3650  

                表示發(fā)起CA證書簽署請求,

                    -new表示這是一個(gè)新申請的簽署請求

                    -x509 表示這是自簽證書,該選項(xiàng)只有在CA為自己生成自簽證書時(shí)使用

                    -key指明私鑰的存放路徑

                    -out 標(biāo)明所生成的請求的文件存放路徑,如果是自簽證書,將直接生成簽署過的證書,如果不是自簽證書,則將生成的簽署請求文件發(fā)送給CA服務(wù)器,由CA服務(wù)器根據(jù)請求文件生成證書文件

                    -days 指明申請的證書的有效期限為多少天

            命令執(zhí)行后會(huì)要求填入一些信息:

                國家代碼:CN

                省份:beijing

                城市:beijing

                公司名:nwc

                部門:ops

                持有者名稱:ca.nwc.com(注意:此處最好與此CA服務(wù)器的主機(jī)名保持一致)

                管理員的郵件地址:nwc@nwc.com
另一個(gè)主機(jī)建立CA申請請求,CA進(jìn)行簽署頒發(fā)證書
    某服務(wù)器需要用到證書進(jìn)行安全通行時(shí),需要向CA服務(wù)器請求簽署證書:

        步驟:

        <1>在需要使用證書的服務(wù)器上建一個(gè)目錄,生成私鑰(真實(shí)環(huán)境中建議將該目錄建在需要用到證書的服務(wù)的相關(guān)目錄下,便于管理)

        <2>生成簽署請求

            openssl req -new -key /testdir/testssl/mykey.private -out /testdir/testssl/mykey.csr -days 365

            表示生成證書簽署請求,使用的私鑰文件路徑為/testdir/testssl/mykey.private,生成的簽署請求的文件為/testdir/testssl/mykey.csr,申請的證書有效期為365天

            執(zhí)行命令后會(huì)要求填入一些信息:

                國家、身份、城市、單位、部門、持有者、管理員郵箱等

            注意:持有者要寫成主機(jī)名, 否則可能造成后期用戶訪問時(shí),提示證書與訪問的主機(jī)名不一致,此處應(yīng)為www.nwc.com
            <3>將生成的請求文件拷貝到CA服務(wù)器上

            <4>在CA服務(wù)器上進(jìn)行簽署,生成證書,在openssl的配置文件中,定義了簽署完成的證書的存放位置為/etc/pki/CA/certs/目錄下

            openssl ca -in /tmp/mykey.csr -out /etc/pki/CA/certs/mykey.crt -days 365

            表示簽署證書,-in指明請求簽署文件的路徑,-out指明生成的證書的路徑,-days表示簽署多少天

            命令執(zhí)行后,會(huì)讓確認(rèn)兩次,確認(rèn)好了之后,即完成了簽署的動(dòng)作,生成了簽署過后的證書

        <5>將簽署的證書發(fā)給請求方        
證書的吊銷
      <1>在客戶端獲取要吊銷的證書的serial
            openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
        <2>在CA上,根據(jù)客戶提交的serial與subject信息,對比檢驗(yàn)是否與index.txt文件中的信息一致
            吊銷證書:
                openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

        <3>生成吊銷證書的編號(hào)(第一次吊銷一個(gè)證書時(shí)才需要執(zhí)行)
                echo 01 > /etc/pki/CA/crlnumber
        <4>更新證書吊銷列表
            openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl
            查看crl文件:
            openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text
利用gpg實(shí)現(xiàn)加解密 gpg實(shí)現(xiàn)對稱加密
    <1>對稱加密file文件
            gpg -c file
            ls file.gpg
        <2>在另一臺(tái)主機(jī)上解密file
            gpg -o file -d file.gpg
gpg實(shí)現(xiàn)公鑰加密
 在hostB主機(jī)上用公鑰加密,在hostA主機(jī)上解密
        <1>在hostA主機(jī)上生成公鑰/私鑰對
            gpg –gen-key
        <2>在hostA主機(jī)上查看公鑰
            gpg –list-keys
        <3>在hostA主機(jī)上導(dǎo)出公鑰到nwckey.pub

            gpg -a –export -o nwckey.pub
        <4>從hostA主機(jī)上復(fù)制公鑰文件到需加密的B主機(jī)上
            scp nwckey.pub HOST_B:/PATH/TO/SOMEWHERE

        <5>在需加密數(shù)據(jù)的hostB主機(jī)上生成公鑰/私鑰對
            gpg –list-keys
            gpg –gen-key
        <6>在hostB主機(jī)上導(dǎo)入公鑰
            gpg –import nwckey.pub
            gpg –list-keys
        <7>用從hostA主機(jī)導(dǎo)入的公鑰,加密hostB主機(jī)的文件file,生成file.gpg
            gpg -e -r nwc file
            file file.gpg

        <8>復(fù)制加密文件到hostA主機(jī)
            scp file.gpg HOST_A:/PATH/TO/SOMEWHERE
        <9>在hostA主機(jī)解密文件
            gpg -d file.gpg
            gpg -o file -d file.gpg
        <10>刪除公鑰和私鑰
            gpg –delete-keys nwc
            gpg –delete-secret-keys nwc
ssh服務(wù) SSH協(xié)議的基本概念
    SSH:Secure Shell

        監(jiān)聽在TCP協(xié)議的22號(hào)端口

        SSH協(xié)議版本:

            sshv1:基于CRC-32做MAC,因此不安全,建議勿用

            sshv2:基于雙方主機(jī)協(xié)商選擇最安全的MAC實(shí)現(xiàn)機(jī)制,建議使用。

                    sshv2基于DH實(shí)現(xiàn)秘鑰交換,基于RSA或DSA實(shí)現(xiàn)身份認(rèn)證

                    客戶端通過檢查服務(wù)器端的主機(jī)秘鑰來判定是否與其進(jìn)一步通信

        服務(wù)端程序?yàn)椋簅penssh-server,配置文件為/etc/ssh/sshd_config

        客戶端程序?yàn)椋簅penssh-client,配置文件為/etc/ssh/ssh_config`
SSH服務(wù)器端的相關(guān)配置
       配置文件:/etc/ssh/sshd_config

        服務(wù)腳本:/etc/rc.d/init.d/sshd

        服務(wù)腳本配置文件:/etc/sysconfig/sshd

        獲取關(guān)于服務(wù)配置文件的幫助:man sshd_config

        /etc/ssh/sshd_config配置文件中相關(guān)指令說明:(#開始的相關(guān)選項(xiàng)表示使用的是默認(rèn)值)

                Port 22  指明ssh服務(wù)監(jiān)聽的端口

                ListenAddress IP_ADDR  表示監(jiān)聽的地址,可出現(xiàn)多次

                        0.0.0.0表示當(dāng)前主機(jī)的所有地址

                Protocol 2  表示支持的ssh協(xié)議版本,建議是2

                SyslogFacility AUTHPRIV  表示日志記錄的設(shè)施,要想知道該設(shè)置的具體日志放在哪里,則查看rsyslog的配置文件/etc/rsyslog.conf文件中的相關(guān)定義,此處相當(dāng)于日志存在/var/log/secure日志中

                LogLevel INFO  表示定義記錄的日志級(jí)別

                PermitRootLogin yes|no  是否允許管理員以ssh登錄

                MaxAuthTries 6  表示認(rèn)證時(shí)的重試次數(shù),為此數(shù)字的一半,超過次數(shù)后會(huì)被鎖定一定時(shí)間

                MaxSessions 10 表示支持的最大的ssh會(huì)話的個(gè)數(shù)

                AcceptEnv  接受的環(huán)境變量參數(shù)

                AllowUsers  接受那些用戶使用ssh,做用戶白名單,只要不在此名單內(nèi)的用戶,都不允許登錄

                        如:AllowUsers nwc1 nwc2 nwc3 root

                AllowGroups  接受那些用戶組使用ssh,組的白名單

                DenyUsers  不允許那些用戶使用ssh,用戶黑名單

                DenyGroups  不允許那些用戶組使用ssh,組黑名單

                        白名單和黑名單不要同時(shí)使用

                X11Forwarding yes|no  是否轉(zhuǎn)發(fā)圖形窗口

                #KeyRegenerationInterval 1h  密鑰的使用時(shí)間

                #ServerKeyBits 1024 密鑰長度

                #LoginGraceTime 2m 登陸寬限期

                #PermitRootLogin yes root是否可以登錄

                #StrictModes yes 嚴(yán)格模式,家目錄 屬主 屬組

                PasswordAuthentication yes 是否使用用戶名和密碼的方式

                Kerberos集中認(rèn)證管理

        使用SSH服務(wù)的最佳配置方案:

            1)僅適用sshv2版本

            2)限定僅允許哪些用戶訪問ssh服務(wù)

                Allowusers root vivek jerry

                白名單

                DenyUser saroj anjali foo

                黑名單

            3)配置空閑會(huì)話超時(shí)長

                ClientAliveCountMax  0 

                ClientAliveInterval  300

            4)使用iptables設(shè)置ssh服務(wù)安全訪問策略

            5)改變默認(rèn)的端口和監(jiān)聽的IP

                port 300

                ListenAddress 192.168.1.5

                ListenAddress 202.54.1.5

                勿使用默認(rèn)22端口

            6)使用強(qiáng)密碼

                生成隨機(jī)密碼的函數(shù)示例:

                genpasswd(){

                    local 1=$1

                    [ "$1" == "" ]&& 1=20

                    tr -dc A-Za-z0-9_
用戶登錄信息的獲取
        /var/log/wtmp  用戶成功登錄的日志信息,也可直接用last命令顯示

        /var/log/btmp  用戶失敗登錄的日志信息,也可用lastb命令顯示

        lastlog 每個(gè)用戶最近一次成功登錄的信息
基于SSH的客戶端相關(guān)工具
     客戶端的命令:ssh

        ssh [OPTIONS] USERNAME@HOST [COMMAND]

        常見選項(xiàng):(如果不提供USERNAME,則會(huì)以當(dāng)前系統(tǒng)上的用戶,作為登錄遠(yuǎn)程主機(jī)的用戶,如果遠(yuǎn)程主機(jī)上的用戶不存在,則無法連接)

            -p PORT  指定登錄的端口(如果遠(yuǎn)程主機(jī)的ssh服務(wù)修改了默認(rèn)監(jiān)聽的端口,則需要用-p指定端口),在生產(chǎn)環(huán)境中建議將SSH監(jiān)聽的端口改掉

            COMMAND  表示不登錄對方主機(jī),在遠(yuǎn)程主機(jī)執(zhí)行命令,然后結(jié)果返回本機(jī)后退出

            -b:指定連接的源IP
            -v:調(diào)試模式
            -C:壓縮方式
            -X: 支持x11轉(zhuǎn)發(fā)
            -Y:支持信任x11轉(zhuǎn)發(fā)
                ForwardX11Trusted yes
            -t: 強(qiáng)制偽tty分配
                ssh -t remoteserver1 ssh remoteserver2
配置基于秘鑰方式進(jìn)行SSH登錄
 SSH的認(rèn)證機(jī)制:

            基于口令

            基于秘鑰:

                客戶端在本地生成一對秘鑰,客戶端將公鑰復(fù)制到服務(wù)器端,要登錄的用戶的家目錄下的隱藏目錄.ssh目錄下一個(gè)名為authorized_keys或authorized_keys2文件中,這樣即可實(shí)現(xiàn)無需密碼登錄ssh服務(wù)端

        配置過程:

            <1>生成秘鑰對

                ssh-keygen -t rsa -P ""

                生成的秘鑰默認(rèn)保存至當(dāng)前用戶家目錄下的.ssh目錄的id_rsa文件中,公鑰在id_rsa.pub文件中

                -P 表示不指定使用秘鑰文件時(shí)的密碼,否則以后每次使用秘鑰登錄時(shí),都要輸入秘鑰文件的密碼

            <2>復(fù)制秘鑰至遠(yuǎn)程主機(jī)

                ssh-copy-id -i /PATH/TO/公鑰文件 USERNAME@HOST

                表示將本機(jī)的公鑰文件復(fù)制到哪個(gè)遠(yuǎn)程主機(jī)的哪個(gè)用戶
基于ssh的復(fù)制文件命令:scp
     scp SRC1 SRC2 … DEST

        常用選項(xiàng)有:

            -r 當(dāng)源是目錄時(shí),實(shí)現(xiàn)遞歸復(fù)制

            -p 復(fù)制時(shí),保留源文件的復(fù)制和修改時(shí)間戳以及權(quán)限

            -q 復(fù)制時(shí)靜默模式

            -C: 壓縮數(shù)據(jù)流

            -P PORT  指定服務(wù)器端的端口(如果遠(yuǎn)程主機(jī)的ssh服務(wù)修改了默認(rèn)監(jiān)聽的端口,則需要用-P指定端口)

        分兩種情況:

            <1>源文件在本機(jī),目標(biāo)為遠(yuǎn)程:

                scp /PATH/TO/FILE1… USERNAME@HOST:/PATH/TO/SOMEWHERE

                注意:源文件為目錄時(shí),要使用-r 選項(xiàng),實(shí)現(xiàn)遞歸復(fù)制;多個(gè)源時(shí),目標(biāo)要是目錄

            <2>源文件在遠(yuǎn)程,目標(biāo)為本機(jī):

                scp USERNAME@HOST:/PATH/TO/FILE… /PATH/TO/SOMEWHERE

                注意:源文件為目錄時(shí),要使用-r 選項(xiàng),實(shí)現(xiàn)遞歸復(fù)制,多個(gè)源時(shí),目標(biāo)要是目錄
基于ssh的ftp協(xié)議的命令:sftp
    查看openssh是不是支持sftp,查看openssh的配置文件/etc/ssh/sshd_config里面,是否有

            Subsystem sftp /usr/libexec/openssh/sftp-server

        這一行的定義,如果有,則證明支持sftp

        用法:sftp USERNAME@HOST  指明以哪個(gè)用戶登錄哪個(gè)主機(jī)的ftp服務(wù)器,登錄后可利用help獲取ftp命令的使用格式
rsync命令(比scp更快,只復(fù)制不同的文件,對于相同的文件不復(fù)制)
 基于ssh和rsh服務(wù)實(shí)現(xiàn)高效率的遠(yuǎn)程系統(tǒng)之間復(fù)制文件

        使用安全的shell連接做為傳輸方式

            rsync –av /etc server1:/tmp 復(fù)制目錄和目錄下文件(源路徑后面沒有/)

            rsync –av /etc/ server1:/tmp 只復(fù)制目錄下文件(原路徑后面有/)

        常見選項(xiàng):

            -n 模擬復(fù)制過程

            -v 顯示詳細(xì)過程

            -r 遞歸復(fù)制目錄樹

            -p 保留權(quán)限

            -t 保留時(shí)間戳

            -g 保留組信息

            -o 保留所有者信息

            -l 把符號(hào)鏈接文件做為符號(hào)文件進(jìn)行復(fù)制(默認(rèn))

            -L 將軟鏈接文件指向文件復(fù)制

            -a 存檔模式,相當(dāng)于 –rlptgoD,但不保留ACL( -A)和SELinux屬性(-X)
SSH的端口轉(zhuǎn)發(fā)
 <1>什么是SSH端口轉(zhuǎn)發(fā)?
            SSH 會(huì)自動(dòng)加密和解密所有 SSH 客戶端與服務(wù)端之間的網(wǎng)絡(luò)數(shù)據(jù)。但是, SSH 還能夠?qū)⑵渌?TCP 端口的網(wǎng)絡(luò)數(shù)據(jù)通過 SSH 鏈接來轉(zhuǎn)發(fā),并且自動(dòng)提供了相應(yīng)的加密及解密服務(wù)。這一過程也被叫做“隧道”( tunneling),這是因?yàn)?SSH 為其他 TCP 鏈接提供了一個(gè)安全的通道來進(jìn)行傳輸而得名。例如, Telnet, SMTP, LDAP 這些 TCP 應(yīng)用均能夠從中得益,避免了用戶名,密碼以及隱私信息的明文傳輸。而與此同時(shí), 如果工作環(huán)境中的防火墻限制了一些網(wǎng)絡(luò)端口的使用,但是允許SSH 的連接,也能夠通過將 TCP 端口轉(zhuǎn)發(fā)來使用 SSH 進(jìn)行通訊

        <2>SSH 端口轉(zhuǎn)發(fā)能夠提供兩大功能:
            加密 SSH Client 端至 SSH Server 端之間的通訊數(shù)據(jù)
            突破防火墻的限制完成一些之前無法建立的 TCP 連接

        <3>本地轉(zhuǎn)發(fā)
            ssh -L localport:host:hostport sshserver
            ssh –L 9527:telnetsrv:23 -N sshsrv
            telnet 127.0.0.1 9527
                當(dāng)訪問本機(jī)的9527的端口時(shí),被加密后轉(zhuǎn)發(fā)到sshsrv的ssh服務(wù),再解密被轉(zhuǎn)發(fā)到telnetsrv:23
                data–>localhost:9527–>localhost:XXXXX–>sshsrv:22–>sshsrv:YYYYY–>telnetsrv:23
            選項(xiàng):
                -f 后臺(tái)啟用
                -N 不開遠(yuǎn)程shell
                -g 啟用網(wǎng)關(guān)功能

        <4>遠(yuǎn)程轉(zhuǎn)發(fā):
            -R sshserverport:host:hostport sshserver
            ssh –R 9527:telnetsrv:23 –N sshsrv
                讓sshsrv偵聽9527端口的訪問,如有訪問,就加密后通過ssh服務(wù)轉(zhuǎn)發(fā)請求到本機(jī)ssh客戶端, 再由本機(jī)解密后轉(zhuǎn)發(fā)到telnetsrv:23
                Data–>sshsrv:9527–>sshsrv:22–>localhost:XXXXX–>localhost:YYYYY–>telnetsrv:23

        <5>動(dòng)態(tài)端口轉(zhuǎn)發(fā):
            當(dāng)用firefox訪問internet時(shí),本機(jī)的1080端口做為代理服務(wù)器, firefox的訪問請求被轉(zhuǎn)發(fā)到sshserver上,由sshserver替之訪問internet
            在本機(jī)firefox設(shè)置代理socket proxy:127.0.0.1:1080
            #ssh -D 1080 root@sshserver
dropbear提供ssh服務(wù)

ssh協(xié)議的另一個(gè)實(shí)現(xiàn): dropbear

編譯安裝dropbear準(zhǔn)備:
    <1>安裝開發(fā)包組:yum groupinstall "Development Tools" -y
    <2>下載源碼包,假設(shè)為dropbear-2013.58.tar.bz2

安裝:
    <3> 解壓:tar xf dropbear-2013.58.tar.bz2
    <4> 查看安裝的幫助手冊:less INSTALL
    <5> 切換到解壓后的目錄,并執(zhí)行./configure
    <6> make,指定要安裝那些工具:make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
    <7> make install,指定安裝的工具:make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install

啟動(dòng)ssh服務(wù):
    <8> ls /usr/local/sbin/ /usr/local/bin/
    <9> /usr/local/sbin/dropbear -h
    <10> mkdir /etc/dropbear
    <11> dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
    <12> dropbearkey -t dss -f /etc/dropbear/dropbear_dsa_host_key
    <13> dropbear -p :2222 -F –E #前臺(tái)運(yùn)行(因?yàn)楸緳C(jī)有SSH,為了避免端口沖突,手動(dòng)指定其運(yùn)行在2222端口)
            dropbear -p :2222 #后臺(tái)運(yùn)行
客戶端訪問:
    <14> ssh -p 2222 root@127.0.0.1
    <15> dbclient -p 2222 root@127.0.0.1
aide監(jiān)控文件安全性 aide是什么
    AIDE(Advanced Intrusion Detection Environment高級(jí)入侵檢測環(huán)境)是一個(gè)入侵檢測工具,主要用途是檢查文件的完整性,審計(jì)計(jì)算機(jī)上的那些文件被更改過了。
    AIDE能夠構(gòu)造一個(gè)指定文件的數(shù)據(jù)庫,它使用aide.conf作為其配置文件。 AIDE數(shù)據(jù)庫能夠保存文件的各種屬性,包括:權(quán)限(permission)、索引節(jié)點(diǎn)序號(hào)(inode number)、所屬用戶(user)、所屬用戶組(group)、文件大小、最后修改時(shí)間(mtime)、創(chuàng)建時(shí)間(ctime)、最后訪問時(shí)間(atime)、增加的大小以及連接數(shù)。 AIDE還能夠使用下列算法: sha1、 md5、 rmd160、 tiger,以密文形式建立每個(gè)文件的校驗(yàn)碼或散列號(hào).
    這個(gè)數(shù)據(jù)庫不應(yīng)該保存那些經(jīng)常變動(dòng)的文件信息,例如:日志文件、郵件、 /proc文件系統(tǒng)、用戶起始目錄以及臨時(shí)目錄
AIDE安裝及其配置文件
    安裝:yum install aide

    其配置文件為/etc/aide.conf (指定對哪些文件進(jìn)行哪些種類的檢測)

    配置文件相關(guān)的定義:
[root@localhost ~]# cat /etc/aide.conf
@@define DBDIR /var/lib/aide    //定義aide的數(shù)據(jù)庫文件
@@define LOGDIR /var/log/aide   //定義aide的日志文件
database=file:@@{DBDIR}/aide.db.gz   //定義aide比對時(shí)使用的數(shù)據(jù)庫文件
database_out=file:@@{DBDIR}/aide.db.new.gz    //定義aide創(chuàng)建數(shù)據(jù)庫時(shí)的數(shù)據(jù)文件
//創(chuàng)建好比對數(shù)據(jù)庫后,數(shù)據(jù)庫的名稱默認(rèn)就是new,如果要比對,需要將new去掉,然后利用去掉new后的數(shù)據(jù)進(jìn)行驗(yàn)證
#p:      permissions  //定義文件權(quán)限的檢測
#i:      inode:     //定義文件inode號(hào)的檢測
#n:      number of links  //定義文件鏈接數(shù)的檢測
#u:      user   //定義文件所屬主的檢測
#g:      group  //定義文件所屬組的檢測
#s:      size   //定義文件大小的檢測
#b:      block count   //定義文件占用塊數(shù)量的檢測
#m:      mtime   //定義文件內(nèi)容修改時(shí)間的檢測
#a:      atime   //定義文件訪問時(shí)間的檢測
#c:      ctime   //定義文件修改時(shí)間的檢測
#S:      check for growing size  
#acl:           Access Control Lists   //定義文件acl權(quán)限的檢測
#selinux        SELinux security context   //定義selinux的檢測
#xattrs:        Extended file attributes   //定義文件xattrs屬性的檢測
#md5:    md5 checksum  //定義MD5校驗(yàn)檢測
#sha1:   sha1 checksum  //定義SHA1校驗(yàn)檢測
#sha256:        sha256 checksum   //定義SHA256校驗(yàn)檢測
#sha512:        sha512 checksum
#R:             p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5   //定義一個(gè)檢測項(xiàng)目的組,組名為R,檢測的內(nèi)容為后面各個(gè)多帶帶屬性的集合
#L:             p+i+n+u+g+acl+selinux+xattrs             //支持自定義的檢測項(xiàng)目組
#E:             Empty group
#>:             Growing logfile p+u+g+i+n+S+acl+selinux+xattrs
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
NORMAL = R+rmd160+sha256
/opt    NORMAL   //定義檢測的文件路徑,及對其采用哪種方式的檢測,后面NORMAL為定義的一個(gè)檢測項(xiàng)目的集合
/usr    NORMAL
/root   NORMAL
!/usr/src   //路徑前面帶!表示不檢測
!/usr/tmp
使用流程
    初始化默認(rèn)的AIDE的庫:
        /usr/local/bin/aide –init
    生成檢查數(shù)據(jù)庫(建議初始數(shù)據(jù)庫存放到安全的地方)
        cd /var/lib/aide
        mv aide.db.new.gz aide.db.gz
    檢測:
        /usr/local/bin/aide –check
    更新數(shù)據(jù)庫
        aide –update 
   


[root@centos7 ~]# echo aa > /testdir/file1
[root@centos7 ~]# echo cc > /testdir/file2

sudo相關(guān)內(nèi)容 sudo的基礎(chǔ)概念
    <1> sudo能夠授權(quán)指定用戶在指定主機(jī)上運(yùn)行某些命令。 如果未授權(quán)用戶嘗試使用 sudo,會(huì)提示聯(lián)系管理員
    <2>sudo可以提供日志,記錄每個(gè)用戶使用sudo操作
    <3>sudo為系統(tǒng)管理員提供配置文件,允許系統(tǒng)管理員集中地管理用戶的使用權(quán)限和使用的主機(jī)
    <4>sudo使用時(shí)間戳文件來完成類似“檢票”的系統(tǒng),默認(rèn)存活期為5分鐘的“入場券”
    <5>通過visudo命令編輯配置文件,具有語法檢查功能,用visudo -c 可檢查配置文件語法
sudo命令本身:
    sudo [-u user] COMMAND
        -V 顯示版本信息等配置信息
        -u user 默認(rèn)為root
        -l,ll 列出用戶在主機(jī)上可用的和被禁止的命令
        -v 再延長密碼有效期限5分鐘,更新時(shí)間戳
        -k 清除時(shí)間戳,下次需要重新輸密碼(當(dāng)用戶使用sudo時(shí),會(huì)要求輸入用戶密碼,用戶密碼默認(rèn)5分鐘內(nèi)有效,如果使用sudo -k則可以讓密碼立即失效,下次使用sudo又要使用密碼)            

        -K 與-k類似,還要?jiǎng)h除時(shí)間戳文件
        -b 在后臺(tái)執(zhí)行指令
        -p 改變詢問密碼的提示符號(hào)
            如 -p ”password on %h for user %p

        sudo –i –u nwc切換身份
sudo的配置文件(/etc/sudoers)
    配置文件: /etc/sudoers, /etc/sudoers.d/
    時(shí)間戳文件: /var/db/sudo
    日志文件: /var/log/secure

配置文件支持使用通配符glob:

        ? :前面的字符或詞可出現(xiàn)一次或無
        * :前面的字符或詞出現(xiàn)零次或多次
        [nwc]:匹配其中一個(gè)字符
        [^nwc]:除了這三個(gè)字符的其它字符
        x : 轉(zhuǎn)義
        [[alpha]] :字母 示例: /bin/ls [[alpha]]*

配置文件規(guī)則有兩類;

        別名定義:不是必須的
        授權(quán)規(guī)則:必須的

一個(gè)sudo條目:

            who  which_host=(runas)  command

            在命令前可以使用標(biāo)簽NOPASSWD:就可以讓用戶在使用該命令時(shí)不用輸入密碼

        格式說明:
            user: 運(yùn)行命令者的身份
            host: 通過哪些主機(jī)
            (runas):以哪個(gè)用戶的身份
            command: 運(yùn)行哪些命令

別名機(jī)制:類似組的概念,組里面多個(gè)角色

            who:User_alias

            which_host:Host_alias

            runas:Runas_alias

            command:Cmnd_alias

            別名必須全部而且只能全部使用大寫英文字母的組合

        用戶別名:User_alias 別名 =

            后面可以是:

                用戶名

                用戶UID,用#引用

                組名,用%引用

                組的GID,用%#引用

                還可以包含其他已經(jīng)定義的用戶別名

        主機(jī)別名:Host_Alias 別名 =

            后面可以是:

                    主機(jī)名

                    IP

                    網(wǎng)絡(luò)地址

                    其他已經(jīng)定義的主機(jī)別名

        以哪個(gè)身份運(yùn)行:Run_Alias 別名 =

            后面可以是:

                    用戶名

                    %組名

                    其他已經(jīng)定義的runas別名

        命令別名:Cnmd_Alias 別名 =

            后面可以是:

                    命令路徑(一般為絕對路徑)

                    目錄(此目錄內(nèi)的所有命令)

                    其他已定義的命令別名
sudo示例:

例如:以nwc用戶以root身份運(yùn)行useradd,usermod命令

           先visudo

           nwc ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod

           當(dāng)nwc用的時(shí)候格式為:sudo /usr/sbin/useradd newbee

例如:nwc ALL=(root)NOPASSWD:/usr/sbin/useradd,/usr/sbin/usermod

           表示nwc在使用useradd和usermod時(shí)都不需要輸入密碼

例如:nwc ALL=(root) NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/usermod

           表示nwc在使用useradd時(shí)不要密碼,usermod要密碼

例如:

         定義一個(gè)用戶組別名

             User_Alias USERADMIN = nwc,%newbee,%nwc

             組內(nèi)包含nwc用戶,newbee組和nwc組內(nèi)的所有用戶

         定義一個(gè)命令組別名

             Cmnd_Alias ADMINCOMMAND = /usr/sbin/useradd,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root

             表示定義useradd、userdel命令,passwd命令后必須跟字符,且不能對root進(jìn)行passwd命令。

         添加條目:

             USERADMIN  ALL=(root)  NOPASSWD:ADMINCOMMAND

             表示USERADMIN別名內(nèi)的所有用戶,在所有主機(jī)上,以root身份,不需要密碼,執(zhí)行ADMINCOMMAND內(nèi)的所有命令

例如:

        nwc ALL=(ALL) ALL
        %wheel ALL=(ALL) ALL

        表示nwc用戶可以在任意主機(jī)上,以任意身份運(yùn)行任意命令,wheel組類的用戶可以在任意主機(jī)上,以任意身份運(yùn)行任意命令?                 例如:
        nwc ALL=(root) /sbin/pidof,/sbin/ifconfig
        %wheel ALL=(ALL) NOPASSWD: ALL

        表示nwc用戶可以在任意主機(jī)上以root身份運(yùn)行/sbin/pidof,/sbin/ifconfig命令

        wheel組類的用戶可以在任意主機(jī)上,以任意身份無需密碼運(yùn)行任意命令

例如:

        User_Alias NETADMIN=user1,user2
        Cmnd_Alias NETCMD = /usr/sbin/ip
        NETADMIN ALL=( root) NETCMD

        表示定義一個(gè)用戶別名NETADMIN,該別名內(nèi)包含用戶user1,user2

        定義一個(gè)命令別名NETCMD,包含命令/usr/sbin/ip

        NETADMIN內(nèi)的用戶能夠在任意主機(jī)上,以root身份,運(yùn)行NETCMD定義的命令,也就是user1和user2能在任意主機(jī)上以root身份運(yùn)行ip命令

例如:

        User_Alias SYSADER=nwc,user1,%admins
        User_Alias DISKADER=tom
        Host_Alias SERS=www.nwc.com,10.1.32.0/24
        Runas_Alias OP=root
        Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod
        Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk
        SYSADER SERS=(OP) SYDCMD,DSKCMD

        表示定義一個(gè)用戶別名SYSADER,包含用戶nwc,user1,和admins組內(nèi)的所有用戶

        定義一個(gè)用戶別名DISKADER,包含用戶tom

        定義主機(jī)別名SERS包含主機(jī)名為www.nwc.com的這臺(tái)主機(jī)和10.1.32.0/24這個(gè)網(wǎng)絡(luò)內(nèi)的所有主機(jī) 

        定義一個(gè)運(yùn)行身份的別名OP,包含身份是root

        定義一個(gè)命令別名SYDCMD,包含命令/bin/chown,/bin/chmod

        定義一個(gè)命令別名DSKCMD,包含命令/sbin/parted,/sbin/fdisk

        定義SYSADER用戶別名的用戶,在SERS定義的主機(jī)上,以root身份,運(yùn)行SYDAMD和DSKCMD定義的命令,也就是nwc、user1和admins組內(nèi)的所有用戶,能夠在www.nwc.com這臺(tái)主機(jī)和10.1.32.0/24這個(gè)網(wǎng)絡(luò)內(nèi)的所有主機(jī)上,以root身份運(yùn)行/bin/chown,/bin/chmod,/sbin/parted,/sbin/fdisk命令

        

例如:

        User_Alias ADMINUSER = adminuser1,adminuser2
        Cmnd_Alias ADMINCMD = /usr/sbin/useradd,/usr/sbin/usermod, /usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root
        ADMINUSER ALL=(root) NOPASSWD:ADMINCMD,PASSWD:/usr/sbin/userdel

        表示定義一個(gè)ADMINUSER的用戶別名,包括adminuser1和adminuser2

        定義一個(gè)ADMINCMD命令別名,包括useradd、usermod命令,passwd命令后面跟字母開頭的字符串,但不能執(zhí)行passwd root,也就是不能對root改密

        定義允許adminuser1和adminuser2用戶能夠在所有主機(jī)上,不用輸入密碼執(zhí)行useradd、usermod、和passwd定義的相關(guān)命令,但是需要密碼執(zhí)行userdel命令

例如

        Defaults:nwc runas_default=tom
        nwc ALL=(tom,jerry) ALL

        表示授權(quán)nwc用戶在所有主機(jī)上以tom或Jerry身份,運(yùn)行所有命令

        上面的Defaults 表示當(dāng)nwc用sodu執(zhí)行命令時(shí),如果不用-u指明以誰的身份,則默認(rèn)以tom的身份執(zhí)行命令

例如

        nwc 10.1.32.68,10.1.32.22 = (root)  /usr/sbin/,!/usr/sbin/useradd

        表示授權(quán)nwc用戶在10.1.32.68和10.1.32.22主機(jī)上以root身份執(zhí)行/user/sbin/下的所有命令,但是不包括useradd命令

例如

        nwc ALL=(ALL) /bin/cat /var/log/message*

        表示授權(quán)nwc用戶在所有主機(jī)上,以任意身份,運(yùn)行cat /var/log/message*命令

        注意,此種方式是非常危險(xiǎn)的,因?yàn)橛脩艨梢岳妹?cat /var/log/message  /etc/shadow ….因?yàn)?代表任意字符,故后面可以跟上任何文件

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40654.html

相關(guān)文章

  • SSH安全通信端口轉(zhuǎn)發(fā)

    摘要:但是,還能夠?qū)⑵渌丝诘木W(wǎng)絡(luò)數(shù)據(jù)通過鏈接來轉(zhuǎn)發(fā),并且自動(dòng)提供了相應(yīng)的加密及解密服務(wù)。而與此同時(shí),如果工作環(huán)境中的防火墻限制了一些網(wǎng)絡(luò)端口的使用,但是允許的連接,也能夠通過將端口轉(zhuǎn)發(fā)來使用進(jìn)行通訊端口轉(zhuǎn)發(fā)能夠提供兩大功能加 博文參考 http://www.178linux.com/48542 https://segmentfault.com/a/1190000010279082 利用op...

    BicycleWarrior 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<