利用rpm的校驗功能實現
入侵檢測分析
rpm的校驗功能
rpm除了可以安裝軟體包以外,還可以對已經安裝好的軟體包進行校驗。使用這種功能可以很好的對計算機上已經安裝的軟體進行監控。下面我們就來研究一下rpm的校驗功能。
功能簡介
rpm的校驗功能可以比較現在已經安裝的檔案與未安裝的檔案之間的屬性差別。如檔案的大小、md5 值、許可權、型別、所有者、以及所屬組。可以用它來判斷系統是否受到
入侵,特定檔案是否被修改過。
使用方法
rpm -v 軟體包名稱 #可檢查對應軟體包安裝的檔案是否有變化
rpm –vf 檔案路徑 #可檢查某一檔案是否有變化
rpm –va #顯示所有已經安裝的檔案是否有變化
rpm –vp rpm包名.rpm #根據 rpm 軟體包檔案來校驗安裝了的軟體包
這裡要說明的是如果檔案測試通過,就是說沒有任何改變的話,那麼將不會有任何輸出。如果檢測有變化,那麼就會輸出。輸出的格式包括九個字元的字串(如果有c 代表是配置檔案),然後是檔名稱。這九個字元的每個字元都代表一種檔案屬性的比較結果,所比較的是檔案的屬性和 rpm 資料庫中記錄的屬性。單用乙個 .(點)意味著測試通過。出現下列某字元代表某類測試失敗:
5 — md5 校驗和檢查失敗
s — 檔案大小檢查失敗
l — 符號鏈結檢查失敗
t — 檔案修改時間檢查失敗
d — 裝置檢查檢失敗
u — 使用者檢查失敗
g — 組檢查失敗
m — 模式檢查失敗(包括許可權和檔案型別)
? — 不可讀檔案
如果出現以上輸出,你就需要判斷一下是什麼原因引起的變化。如果是非正常原因的話,就需要採取一些措施了。
rpm的簽名功能
gnupg 是安全通訊工具;它是 pgp(一種電子隱私程式)加密技術的完全和免費的替換品。使用 gnupg,你可以驗證文件的有效性,在其它通訊者之間加密或解密資料。gnupg 還具有解密和校驗 pgp 5.x 檔案的能力。
在redhat安裝過程中,gnupg 被預設安裝。這樣,你便可以立即開始使用 gnupg 來校驗來自紅帽的軟體包。首先,你需要匯入的公鑰。
公鑰的匯入
可以用命令:
rpm –import /path/to/the/rpm-gpg-key
這個檔案可以從安裝光碟上找到,如果是紅帽系統的話,這個檔案放在/usr/share/rhn目錄下。
公鑰匯入之後可以用如下命令顯示鑰匙列表:
rpm -qa gpg-pubkey*
顯示資訊如下:
gpg-pubkey-db42a60e-37ea5438
要顯示鑰匙詳細資訊,可以用:
rpm –qi gpg-pubkey-db42a60e-37ea5438
簽名的查詢
鑰匙匯入以後,我們就可以來查詢軟體包了。
rpm –k 《需要檢查的rpm包》
要顯示更詳細的資訊:
rpm –kvv 《需要檢查的rpm包》
rpm工具使用起來方便,但是卻是非常不錯的檢測方法。如果想要得到更詳細的幫助資訊的話,可以查詢rpm命令的幫助手冊。
此文件的pdf版本可在本人cublog裡得到~~
利用位操作實現簡單的功能
位操作雖然會降低程式的可讀性,但是我想,熱衷於位操作的人大概都是被它的效率所吸引了。如果某些簡單但常用的功能可以利用位操作實現,且用位操作實現的 量相同或更少,我希望讓這些位操作得到普及。在介紹之前,先列舉一下位操作符 a b 按位與 a b 按位或 a b 按位異或 a 按位取反 aa b 有符號...
利用Redis的GEO功能,實現位置查詢
業務需求 專案中有需求要根據圖上繪製的路徑搜尋某半徑範圍內所有的裝置。解決思路 利用高德地圖繪製的路線,可以取得路線上所有點位的經緯度。根據redis的geo功能,將所有裝置的經緯度寫入redis,然後根據點位經緯度和搜尋半徑,通過redis提供的方法即可查詢出在此範圍內的所有裝置。1 redis ...
利用ashx檔案實現檔案的上傳功能
原來以為檔案上傳是乙個比較簡單的功能,結果搞了乙個晚上才搞定 這裡主要介紹兩種方法實現。方法一 form表單提交 html charset utf 8 上傳檔案title src scripts jquery 1.11.3.min.js script head action uploadhandle...