Vsftpd服務(wù)器的概述
Vsftpd是什么?
vsftpd意思為“very secure FTP daemon(非常安全的FTP進(jìn)程)”,是一個(gè)基于GPL發(fā)布的類UNIX類操作系統(tǒng)上運(yùn)行的服務(wù)器的名字(是一種守護(hù)進(jìn)程),可以運(yùn)行在諸如Linux、BSD、Solaris、HP-UX以及Irix等系統(tǒng)上面。vsftpd支持很多其他傳統(tǒng)的FTP服務(wù)器不支持的良好特性。
為何使用 vsftpd?
為了建構(gòu)一個(gè)安全為主的 FTP 伺服器, vsftpd 針對(duì)作業(yè)系統(tǒng)的『程序的權(quán)限 (privilege)』概念來設(shè)計(jì), 如果你讀過基礎(chǔ)篇的程序與資源管理章節(jié)的話, 你應(yīng)該會(huì)曉得系統(tǒng)上面所執(zhí)行的程式都會(huì)引發(fā)一個(gè)程序,我們稱他為 PID (Process ID), 這個(gè) PID 在系統(tǒng)上面能進(jìn)行的任務(wù)與他擁有的權(quán)限有關(guān)。也就是說, PID 擁有的權(quán)限等級(jí)越高, 他能夠進(jìn)行的任務(wù)就越多。舉例來說,使用 root 身份所觸發(fā)的 PID 通常擁有可以進(jìn)行任何工作的權(quán)限等級(jí)。
不過,萬一觸發(fā)這個(gè) PID 的程式 (program) 有漏洞而導(dǎo)致被網(wǎng)路怪客 (cracker) 所攻擊而取得此 PID 使用權(quán)時(shí), 那么網(wǎng)路怪客將會(huì)取得這個(gè) PID 擁有的權(quán)限吶!所以,近來發(fā)展的套件都會(huì)盡量的將服務(wù)取得的 PID 權(quán)限降低,使得該服務(wù)即使不小心被入侵了,入侵者也無法得到有效的系統(tǒng)管理權(quán)限,這樣會(huì)讓我們的系統(tǒng)較為安全的啦。 vsftpd 就是基于這種想法而設(shè)計(jì)的。
除了 PID 方面的權(quán)限之外, vsftpd 也支援 chroot 這個(gè)函式的功能,chroot 顧名思義就是『 change root directory 』的意思,那個(gè) root 指的是『根目錄』而非系統(tǒng)管理員。 他可以將某個(gè)特定的目錄變成根目錄,所以與該目錄沒有關(guān)係的其他目錄就不會(huì)被誤用了。
舉例來說,如果你以匿名身份登入我們的 ftp 服務(wù)的話,通常你會(huì)被限定在 /var/ftp 目錄下工作, 而你看到的根目錄其實(shí)就只是 /var/ftp ,至于系統(tǒng)其他如 /etc, /home, /usr... 等其他目錄你就看不到了! 這樣一來即使這個(gè) ftp 服務(wù)被攻破了,沒有關(guān)係,入侵者還是僅能在 /var/ftp 裡面跑來跑去而已,而無法使用 Linux 的完整功能。自然我們的系統(tǒng)也就會(huì)比較安全啦!
sftpd 是基于上面的說明來設(shè)計(jì)的一個(gè)較為安全的 FTP 伺服器軟體,他具有底下的特點(diǎn)喔:
•vsftpd 這個(gè)服務(wù)的啟動(dòng)者身份為一般使用者,所以對(duì)于 Linux 系統(tǒng)的使用權(quán)限較低,對(duì)于 Linux 系統(tǒng)的危害就相對(duì)的減低了。此外, vsftpd 亦利用 chroot() 這個(gè)函式進(jìn)行改換根目錄的動(dòng)作,使得系統(tǒng)工具不會(huì)被 vsftpd 這支服務(wù)所誤用;
•任何需要具有較高執(zhí)行權(quán)限的 vsftpd 指令均以一支特殊的上層程序 (parent process) 所控制 ,該上層程序享有的較高執(zhí)行權(quán)限功能已經(jīng)被限制的相當(dāng)?shù)牡停⒁圆挥绊?Linux 本身的系統(tǒng)為準(zhǔn);
•絕大部分 ftp 會(huì)使用到的額外指令功能 (dir, ls, cd ...) 都已經(jīng)被整合到 vsftpd 主程式當(dāng)中了, 因此理論上 vsftpd 不需要使用到額外的系統(tǒng)提供的指令,所以在 chroot 的情況下, vsftpd 不但可以順利運(yùn)作,且不需要額外功能對(duì)于系統(tǒng)來說也比較安全。
•所有來自用戶端且想要使用這支上層程序所提供的較高執(zhí)行權(quán)限之 vsftpd 指令的需求, 均被視為『不可信任的要求』來處理,必需要經(jīng)過相當(dāng)程度的身份確認(rèn)后,方可利用該上層程序的功能。 例如 chown(), Login 的要求等等動(dòng)作;
•此外,上面提到的上層程序中,依然使用 chroot() 的功能來限制使用者的執(zhí)行權(quán)限。
由于具有這樣的特點(diǎn),所以 vsftpd 就會(huì)比較安全一些!
【編輯推薦】