我使用的是多用戶系統,大部分的用戶通過ssh客戶端訪問他們的資源。我如何(怎么樣)避免泄露進程信息給他們?如何(怎么樣)在Debian/Ubuntu/RHEL/CentOS linux服務器器上阻止/避免他們看到不屬于他們的進程?對linux上的其他用戶隱藏進程的方法
解決方法/方案:
如果你使用的linux kernel(內核)是3.2以上的版本(或者使用的RHEL/CentOS是6.5以上的版本),你就可以對其他用戶隱藏進程。只有root用戶可以看到所有的進程,而非root用戶,只能看到屬于自己的進程信息。你所需要做的僅僅是開啟linux kernel加固選項 "hidepid "來重新掛載 /proc文件系統。
認識 hidepid 選項
這個選項定義了我們想讓非進程的所有者能看到多少這些進程信息。
hidepid的值代表的意義如下:
1. hidepid=0 ———默認的模式(經典模式),任何人都可以查看 /proc/PID/* 中的world-readable文件
解釋:world-readable files:指linux中的我們把文件權限分成user,group和other三組,other又被叫做world。所以world-readables表示other這組有-r權限。
2. hidepid=1 ———表示用戶不能進入/proc/下的,而只能進入屬于自己的目錄。所以一些敏感文件,如cmdline,sched*,status被保護起來了。當用戶輸入ps,top等命令,用戶是看不到那些不屬于自己的進程的!!不過還是能夠看到/proc下的process IDs
3. hidepid=2 ———表示對hidepid=1的文件訪問權限加強限制,這種設定下,/proc/PID/ 對于任何用戶都是不可見的——哪怕是入侵到/proc 目錄下,也看不到process IDs。無論是否有部分守護進程是以提升的權限運行,是否有其他用戶運行一些敏感程序,是否有其他用戶運行任何程序等,這個參數的設定都使得入侵者收集系統運行進程信息變得更復雜,難度加大。
Linux kernel protection(linux內核保護):對linux上的其他用戶隱藏進程的方法
輸入下面的命令來設置hidepid選項的值,以重新掛在/proc
編輯 /etc/fstab 文件,在系統重啟后依然按上面那樣來掛在/proc:
將 proc掛載的那一行改成下面的樣子:
然后保存關閉文件。
接下來是演示“對linux上的其他用戶隱藏進程的方法”是否有效
在這個例子中,我分別以dabu和root同時登陸vps,只需在xshell開連個窗口或者是直接在命令行下ssh命令登陸。這里假設我dabu和root已經同時登陸了,那么,此時hidepid=0是默認的。
先在root中打開一個a.txt文件
同樣,執行:
接著,繼續用root執行下面的命令:
還有,如果你想ls /proc ,會提示你不能進入。
gid=xxx的配合hidepid使用:
如果我們設置了hidepid=2,就使得只能root看到所有的進程信息,有的情況下,我們還希望某個管理組也可以看到所有進程信息。
假設我們這里這個組是admin組,它的gid是1001 :我們可以講/etc/fstab文件中的proc那行改成;
查看某個組的id,執行命令:
新聞熱點
疑難解答