我們大家都知道 FTP 服務器 的口令驗證是基於明碼的,因此,很容易被嗅探到。本文介紹的虛擬 FTP 服務器采用 chroot 的辦法,雖然不能防止口令被嗅探,但是能保護你的系統在口令即使被嗅探到的情況下,仍然不能攻破。 虛擬 FTP 服務,除了 chroot 功能以外,
我們大家都知道 FTP
服務器的口令驗證是基於明碼的,因此,很容易被嗅探到。本文介紹的虛擬 FTP 服務器采用 chroot 的辦法,雖然不能防止口令被嗅探,但是能保護你的系統在口令即使被嗅探到的情況下,仍然不能攻破。
虛擬 FTP 服務,除了 chroot 功能以外,還采用了第二個口令
數據庫來驗證用戶,這樣你就不需要建立 FTP 用戶帳號,即使口令洩漏,用戶也不能登錄到系統。
我們采用一個叫作 vftpd 的守護程序來扮演虛擬 FTP 服務器的角色,主要的
安全特色包括:
- 始終采用 chroot 處理用戶的 home 目錄
- 允許用戶在沒有 shell 的情況下存取
- VFTPD 不允許用戶的 home 為:/, /etc, /bin, /sbin, /usr/bin, /usr/sbin, /dev/, /lib, /tmp.
- Home 目錄的路徑不能包含符號連接
- 除了 root 用戶具有 UID 0 以外,不允許其他用戶
- 不允許用戶的口令文件對組和其他有寫權限
安裝 vftpd 很簡單,目前最新的版本為 6.5.8 ,
下載後 tar xvfz ... ,make ,make install ,就這麼簡單。下載地址:
startup
linux.com/virtualftpd.html
大多數的配置工作都是自動完成的,唯一需要修改的是 /etc/ftppasswd 文件,這個文件包含了用戶真正的 FTP 帳號。這個文件的格式基本上 /etc/password 一樣,每行格式為:
login:encryptedpassword:uid:gid:description:ftppath:/no/shell
vftpd 提供了一個叫做 addvuser 的工具,能很方便的增加 FTP 用戶,修改當前用戶的口令是 "ftppasswd username"。
如果當前確有 shell 帳戶的用戶要增加,也需要在 ftppasswd 中添加該用戶,但是口令最好不要一樣。
對於不需要 ftp 的用戶,可以把帳號加入 /etc/ftpusers。
最後,為 /etc/ftpwelcome(連接後顯示)和 /etc/mo
td(成功登陸後顯示)增加 ftp 登陸信息。
現在可以啟動進程了:
vftpd -D -l -U
-D 使成為守護程序在後台運行
-l logs FTP 在 syslog 中登陸日志記錄 (失敗和成功的記錄) ,兩次 -l 記錄詳細信息
-U 允許你使用 who 命令查看當前激活的 ftp 會話
-A 只允許匿名用戶連接
-S 把匿名連接的日志記錄到 /var/log/ftpd
-p 端口號,缺省為 21
例如,我們可以在 rc.local 裡面寫入:
/usr/local/bin/vftpd -D -U -l -l