基於文件方式的proftpd 用戶密碼在那裡設置?
我的FTP是基於文件方式的,大部分網上的教程都是用MYSQL來做認證的,很鬱悶
我參考:http://www.yaoge123.com/blog/archives/127
./configure –with-modules=mod_quotatab:mod_quotatab_file&&make
但是這樣我不知道怎麼添加一個虛擬用戶並設置他的密碼(注意:是FTP用戶,而不是linux里的用戶)。
《解決方案》
這裡有篇教材是編譯安裝proftpd的,啟動腳本都有,可以按照上面的來做
http://www.saunix.cn/viewthread.php?tid=81&pid=90&page=1&extra=page%3D1#pid90
《解決方案》
原帖由 yyrjw 於 2008-9-19 13:05 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
這裡有篇教材是編譯安裝proftpd的,啟動腳本都有,可以按照上面的來做
http://www.saunix.cn/viewthread.php?tid=81&pid=90&page=1&extra=page%3D1#pid90
暈,又是MYSQL,,,裝個FTP還要裝個MYSQL啊/
《解決方案》
換vsftp吧,安全穩定
虛擬用戶是一個在系統中並不作為一個登錄實體而存在的用戶。使用虛擬用戶比使用真實的用戶更安全,因為這個賬號只能用於FTP伺服器。
虛擬用戶經常用來提供給不大可信任的用戶訪問某些資源,而這些資源通常是其他普通用戶不能訪問的。
1)創建虛擬用戶資料庫
我們將使用pam_userdb來認證虛擬用戶。這需要提供一個「db\"格式(一種通用資料庫格式)的用戶名/密碼文件。
創建一個\"db\"格式的文件,首先要創建一個標準文本文件,並把用戶名,密碼以豎直排列方式輸入。如logins.txt:
tom
foo
fired
bar
這個例子中,tom用戶的密碼是foo.fired用戶的密碼是bar.
以ROOT登錄,創建一個資料庫文件,如下:
db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
(這要求berkeley db程序已經安裝)
(註:一些系統也許安裝了多個版本的\"db\",所以某些情況下你可能使用\"db3_load\"才是正確的。對於一些 Debian系統就是這樣。
關鍵在於要讓pam_userdb相信它的登錄資料庫是哪一個db版本所產生(一般都是db3,儘管你的系統里可能安裝的是db4).)
這將創建/etc/vsftpd_login.db文件。顯然,你希望設定這個文件的許可權:
chmod 600 /etc/vsftpd_login.db
要了解更多關於維護你的登錄資料庫的信息,請在\"berkeley DB\"察看相關文檔:
http://www.sleepycat.com/docs/utility/index.html
2)用你的新資料庫創建一個PAM文件
請參考範例vsftpd.pam,它包含2行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
這是告訴PAM用新的資料庫去驗證用戶。把這個PAM文件拷貝到PAM目錄,一般是/etc/pam.d
cp vsftpd.pam /etc/pam.d/ftp
3)為虛擬用戶設置home目錄
useradd -d /home/ftpsite virtual
ls -ld /home/ftpsite
(which should give):
drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite
我們已經創建了一個名叫\"virtual\"的用戶,home目錄是\"/home/ftpsite\".
我們拷貝一些東西到這個下載目錄:
cp /etc/hosts /home/ftpsite
chown virtual.virtual /home/ftpsite/hosts
4)創建你的vsftpd.conf配置文件
請參考這個目錄下的例子。讓我們一行行地看一看這些配置:
anonymous_enable=NO
local_enable=YES
安全起見,屏蔽了匿名用戶,只啟用了非匿名用戶(即虛擬用戶使用的賬號)
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
為了安全請確認這幾個配置,這將關閉寫的許可權。
chroot_local_user=YES
這將把虛擬用戶鎖定在我們在以上設置的/home/ftpsite目錄內。
guest_enable=YES
guest_username=virtual
guest_enable非常重要-它激活了虛擬用戶!而guest_username說明所有的虛擬用戶都對應我們在上面設置的真實用戶:「virtual\".
這同時確定了虛擬用戶在文件系統中的位置,也就是說,虛擬用戶的home目錄即\"virtual\"用戶的home目錄:/home/ftpsite。
listen=YES
listen_port=10021
這讓VSFTPD以獨立模式(standalone)運行,而不是從inetd方式啟動。也就是說,你運行VSFTPD可執行文件就啟動了FTP服務。
同時也讓VSFTPD啟用非標準埠10021來監聽FTP請求(FTP一般使用21埠)。
pasv_min_port=30000
pasv_max_port=30999
這設定了被動模式的FTP請求埠。當你配置了一個防火牆的時候,這個配置就很好用。
拷貝範例配置文件到/etc
cp vsftpd.conf /etc/
(daidong註:也可能是/etc/vsftpd)
5)啟動VSFTPD
到VSFTPD二進位文件所在的目錄,輸入:
./vsftpd
如果一切正常,這個命令將生效。否則,你將會看到一些錯誤信息的反饋。
6)測試
啟動另一個會話。(或者ctrl-z,再輸入\"bg\",讓VSFTPD在後台運行)。
這是一個FTP會話的例子:
ftp localhost 10021
Connected to localhost (127.0.0.1).
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
Name (localhost:chris): tom
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 \"/\"
ftp> ls
227 Entering Passive Mode (127,0,0,1,117,135)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).
ftp> size hosts
213 147
ftp>
註釋:
密碼是\"foo\"
出現」failed to open directory「的話,別擔心。這是因為/home/ftpsite目錄不容許被任意瀏覽。
(我們可以更改anon_world_readable_only=NO以消除告警,但為了安全,還是保留這個配置)。
我們能通過size命令看到我們已經訪問了被我們拷貝到這裡的\"hosts\"文件。
vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
listen_port=10021
pasv_min_port=30000
pasv_max_port=30999
詳細可參照http://bbs.chinaunix.net/viewthread.php?tid=561183
[ 本帖最後由 劍次狼 於 2008-9-19 20:51 編輯 ]