摘要:但是,還能夠?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.gpggpg實(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 nwcssh服務(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ù)制文件命令:scpscp 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@sshserverdropbear提供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.1aide監(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 –updatesudo相關(guān)內(nèi)容 sudo的基礎(chǔ)概念
[root@centos7 ~]# echo aa > /testdir/file1
[root@centos7 ~]# echo cc > /testdir/file2<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
摘要:但是,還能夠?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...
閱讀 3026·2021-11-24 10:32
閱讀 681·2021-11-24 10:19
閱讀 5119·2021-08-11 11:17
閱讀 1463·2019-08-26 13:31
閱讀 1264·2019-08-23 15:15
閱讀 2290·2019-08-23 14:46
閱讀 2273·2019-08-23 14:07
閱讀 1092·2019-08-23 14:03