linux必備安全及加密小工具

   墨菲定律說如果有兩種或兩種以上的方式去做某件事情,而其中一種選擇方式將導致災難,則必定有人會做出這種選擇。所以也告誡我們做任何事都要確保它的正確性和安全性。接下來介紹幾種安全的linux小工具。

Aide 數據庫監控

配置文件:/etc/aide.conf

Aide的數據庫存儲在/var/lib/aide/下面,一旦初始化數據庫就會自動生成數據庫文件,然後檢查監控的數據是否發生了改變,如果發生了更改會檢查出來,但是這個數據庫不保存日誌類的經常變動的文件信息。

wKioL1nTkzyAjCW6AACjzXhUnds449.png

第一步:配置想要監控的參數,調用它自己定義的監控參數

例如: fn = p+u+acl+sha256

wKioL1nTkx7gGkKaAABhFqZUmo8858.png

第二步:寫入你自己想要監控的文件,不想要監控的文件,刪除掉它自己的定義的需要監控的文件。

例如 : /etc fn

!/etc f1

wKioL1nTkx-jdy18AABCbeyi2sY443.png

第三步:初始化數據庫  aide --init

如果想要檢查數據庫,就必須要把數據庫aide.db.new.gz 更改成aide.db.gz

wKiom1nTk2fw1AlFAABc_mCP4XA269.png

第四步: 修改監控 的文件的內容或者權限。

wKioL1nTkx_g0sVPAAA49n8_Nzk898.png

第五步:如果不想要對指定的文件監控,可以再次修改配置文件裏的監控文件。然後更新數據庫,再把數據庫的名字修改一就可以了。

wKiom1nTk2fTsGMdAABMDm57U6g001.png

wKioL1nTkx_jr7hYAABrQIpkT-8072.png

編譯安裝dropbear

dorpbear是一個使用ssh服務的小工具,裏面有服務端端裏面有dropbear服務,客戶端工具有dbclient,scp服務。是一個小型的服務連接的小工具。

1.安裝開發包組:

這一步一般只要源碼安裝過,所以不用安裝了。

2.下載源碼包dropbear-2017.75.tar.bz2

3.解包tar xvf dropbear-2017.75.tar.bz2

4.進入安裝的包的路徑下,查看安裝的幫助文檔INSTALL,README,裏面都有詳細的介紹。

wKiom1nTk2nRVu9uAADc9AZ3-Lc341.png

5.一般都是自己指定配置文件和安裝路徑,還有一些自己不想用的功能都可以查看./configure --help.

wKiom1nTk3PAXVQxAAAq285ZehU030.png

6.查看自己的安裝的目錄,裏面的文件是否都齊全。

wKioL1nTkzCBsUeKAABh75wGezE649.png

7.如果想要運行這個服務,還要查看路徑有沒有被包含,可以自己把路徑加入到PATH.

wKiom1nTk3iwHPk2AAA4WP036kI435.png

8.查看配置文件是否生成,在自己的指定目錄下,如果沒有就查看README。

wKioL1nTlZCCVa9sAABIQ2XjsUM955.png

9.在README中發現如果要啓用這個服務必須要激活配置文件

wKiom1nTldChyXN5AACVEVf29f8068.png

10.進入指定的配置文件/etc/dropbear這個目錄,激活密鑰。

wKiom1nTldGCsVSpAABeZo4MUsk561.png

11.開啓服務,首先開啓充當服務端的服務。指定端口號,並且-F後臺運行,自己還能做其他的事情

wKioL1nTlYmiB0HjAACLav_lg_4836.png12.測試服務是否啓動,查看端口號是否開啓

wKiom1nTmF2i8978AABN2OHShRQ545.png13.測試鏈接成功。

wKioL1nTlY-Rgm-5AACJ1tUdK8c393.png

14.查看客戶端的工具是否可以使用,dbclient發現連接別人也是可以的。

wKiom1nTldeB_uvBAABF0KHlPJs825.png

15.scp工具的使用,需要在指定的路徑下,創建一個軟鏈接就可以使用了。

wKioL1nTlY-jMkfcAAB76Oi3Er4782.png

創建CA和證書

第一步:查看openssl的配置文件 cat /etc/pki/tls/openssl.cnf

wKiom1nTldejO7hFAAC-3sccXvQ189.png

wKioL1nTlZDw0t7IAAD8hBxTBHE690.png

第二步:首先需要找兩個主機一個充當頒發證書的機構,一個是申請證書的機構。注意頒發的機構首先需要給自己認證就是自簽名。

第三步:CA自簽證書

生成私鑰

cd /etc/pki/CA/

(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem  -des 2048 )

wKioL1nTmabiy3v4AACQDiPGpDQ902.png

第四步:生成自簽名證書

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

wKiom1nTmeXwFcDCAAEv2fRNmdE451.png

第五步:頒發證書

1.在請求證書的主機上生成私鑰,可以不用加密。

wKiom1nTmeXQkTRVAABo1khJoXk816.png

2.生成證書申請文件,日期可寫可不寫,因爲CA決定期限

openssl req -new -key /etc/pki/tls/private/test.key  -days 365 -out etc/pki/tls/test.csr

wKioL1nTmZ7RtXRnAAEI6xs9kcY177.png3.將證書請求文件傳輸給CA

wKiom1nTmeewby1kAAA62bkkaGU177.png

4.CA簽署證書,並將證書頒發給請求者,證書的名字可以自己指定。

wKioL1nTmZ-guRw9AACh7eLgIGU040.png5.創建所需要的文件

touch /etc/pki/CA/index.txt 生成證書索引數據庫文件

echo 01 > /etc/pki/CA/serial 指定第一個頒發證書的序列號

wKioL1nTmaTjt-hzAADCe8WtJYQ370.png

6.生成兩個一樣的證書文件。

wKiom1nTme2gxu-NAABC_Te998k678.png

第六步:查看證書中的信息:

openssl x509 -in /PATH/FROM/CERT_FILE(證書所在路徑) -noout  -text|issuer|subject|serial|dates

wKiom1nTme2x362UAABxBg7XNcg713.png

wKioL1nTmaWBl6D8AAAwnPCzf4U000.png

第七步:CA把頒發的證書傳送回去。

wKiom1nTme7BKylsAAA2SGqnovQ180.png

第八步:如果想要一個申請頒發兩個證書,就要改數據庫文件。

wKioL1nTmaXzPCdIAACSKN2y8zk534.png

第九步:吊銷證書,首先查看吊銷的的證書編號,然後吊銷,再對外發布吊銷的證書。

wKiom1nTme6Qes5tAABmrOzZlIo286.png

ssh客戶端的X協議

wKioL1nTmabgAqE3AACF8ZhaMSg576.jpg

圖形解析:上圖可以看出當centos7連接6的時候走的是ssh協議,並且充當的是客戶端,並且是X協議的服務端。

驗證說明:xclock

wKioL1nTnPWB3lDkAAD8CGOUMmc606.png

wKioL1nTnOeSUmA9AACV0YpVxms473.png


解析:因爲7上並沒有這個小程序,xclock這個程序是X協議的圖形化程序,7打開這個程序的時候就是充當X協議的服務端,通過劃圖形,連接顯卡來顯示6上的程序,而6是X協議的客戶端。

基於key認證

實驗準備:準備三臺主機,一臺客戶端,一臺服務端,一臺盜取客戶端私鑰的主機

第一步:在客戶端上生成密鑰對

ssh-keygen -t rsa [-p ''] [-f "~/.ssh/id_rsa"]

wKioL1nTnO3ztvy0AACcuoYvoJI063.png

第二步:把公鑰文件傳輸給遠程服務器

ssh-copy-id [-i [identity_file]] [user@]host

wKiom1nTnTWTl3IFAABiygtEM9I373.png

wKioL1nTnO3g6aWJAACYPQI13W8127.png

第三步:測試登陸服務器

wKiom1nTnTbDmRf6AABGzOr7K3I747.png

第四步:把密鑰傳輸給其他的主機也可以,不用驗證。

wKiom1nTnTaRyPK4AABxmzSVJyc040.png

第五步:當客戶端私鑰被其他的主機盜走。

wKioL1nTnO7R5vdZAABCW1b_mN8993.png

第六步:就會出現盜走私鑰的主機通過客戶端的主機登陸服務器不需要驗證。

wKiom1nTnTbSAG4nAABCJBG-cUw774.png

第七步:爲了安全對私鑰加密一下比較好,生成私鑰的時候沒加密,可以後來加密(當然在沒有被盜走之前)

wKioL1nTnO6igG6LAABLtV1kojY067.png

第八步:爲了方便不想記住加密的密鑰密碼,可以交給代理記住密鑰的密碼。

wKioL1nTnO6xEAZRAACPSWFP-BY400.png

交給代理挺安全,如果你斷開連接,再次登錄需要密碼驗證,也就是再次重複第八步的動作。


sudo授權管理

配置文件/etc/sudoers,自己的配置可以寫在/etc/sudoers.d/下面,通過visudo命令編輯配置文件,具有語法檢查功能,所以建議用visudo編輯配置文件

visudo -f /etc/sudoers.d/test

visudo c 檢查語法

時間戳文件: /var/db/sudo

日誌文件: /var/log/secure

授權的規則格式:

授權規則格式:

用戶 登入主機=(代表用戶,有權限的用戶) 命令

示例:

root ALL=(ALL) ALL可以寫上路徑

示例:

wKiom1nTnTyQemiBAACrd1Ja1Rg709.png

sudo的小命令

sudo [-u user] COMMAND

-V 顯示版本信息等配置信息

-u user 默認爲root

wKiom1nTnTzAtx_aAAByTY2rDH8428.png

-l,ll 列出用戶在主機上可用的和被禁止的命令

-v 再延長密碼有效期限5分鐘,更新時間戳

-k 清除時間戳(1970-01-01),下次需要重新輸密碼

-K 與-k類似,還要刪除時間戳文件

-b 在後臺執行指令

-p 改變詢問密碼的提示符號

示例: -p ”password on %h for user %p:"

別名的定義和使用:

別名有四種類型: User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias

別名格式: [A-Z]([A-Z][0-9]_)*

別名定義:

Alias_Type NAME1 = item1, item2, item3 : NAME2 =item4, item5

例子:

wKioL1nTnPTRvQIoAABZy47GwGk910.png

例子2;NOPASSWD可以實現使用sudo的時候不用輸入用戶的口令

wKiom1nTnT2TY7jtAAANsERBkgc039.png

例3.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

wKioL1nTnPXQouETAABU3DrMFaM169.png

例4.Defaults:wang runas_default=tom

wang ALL=(tom,jerry) ALL

wKiom1nTnT3Blik7AABiENqME_E376.png

關於linux安全驗證問題就分享這麼多了,在linux系統中安全和加密是很重要的一環,所以在平時的工作學習中切記不能忽視!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章