歡迎您光臨本站 註冊首頁

基於文件方式的proftpd 用戶密碼在那裡設置?

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

基於文件方式的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 編輯 ]

[火星人 ] 基於文件方式的proftpd 用戶密碼在那裡設置?已經有769次圍觀

http://coctec.com/docs/service/show-post-27471.html