作者 主題: 剛剛翻譯好的 vsftp How To ....  (閱讀 9588 次)

0 會員 與 1 訪客 正在閱讀本文。

adersun

  • 懷疑的國中生
  • **
  • 文章數: 34
    • 檢視個人資料
剛剛翻譯好的 vsftp How To ....
« 於: 2003-04-15 08:49 »
今天把我老舊的機器由 Red Hat 7.3 給他升級到 Red Hat 9 , 小弟跟他奮鬥了一下午.... 上網找了一些 documents , 順手就把他翻了
一下, 提供給各位參考, 這是小弟第一次翻譯 document, 有任何不妥懇請各位賜教 ..... :D

===============================================

EnGarde Linux vsFTP HowTo

( 原文出處 : http://www.engardelinux.org/howto/vsftp_howto.html )
譯者 : adersun

前言 :

本文件提供使用者安裝及設定 EnGarde Secure Linux 1.0.1 (Finestra) ftp daemon(ftpd).我們在此假設您非常熟悉如何在
Linux 下以 root 身分執行及操作作業系統, 以及熟知如何使用文字編輯軟體, 如 vi 或 pico 等.

如果您在設置 ftpd 時有任何問題要發問, 最好的地方是 "EnGarde Mailing Lists" ( 列在最下方的 "參考資料" ) , 您可以利用這個
mailing list 寄信給 EnGarde developers 尋求他們的協助.

設置步驟 :

要讓您系統上的 ftpd 按照您的期望正常工作, 以下是您必須要做的步驟, 我們強烈的建議您雖然有些步驟並不是必要的選項, 但還是按步
就班一一做完所有的步驟.

第一步 : 權限控制 ( Access Control )

在任何人連到您的 ftpd 之前, 您首先要做的是編輯 /etc/hosts.allow 檔, 您必須新增 "vsftpd:" 並按照 /etc/hosts.allow 檔的格式
來管制哪些 IP 可以進入您的 FTP 主機, 以下為一些範例 :

允許 localhost 使用該主機 :
vsftpd: 127.0.0.1

允許 192.168.1.0 /24 整個子網路可以使用該主機 :
vsftpd: 192.168.1.

允許兩個特殊的 IP 位置才能使用該主機  :
vsftpd: 192.168.1.100 192.168.5.53

允許所有人使用該主機 :
vsftpd: ALL

第二步 :  設定 vsftpd ( vsftpd Configuration ) :

vsftpd 有三個設定檔 :
/etc/vsftpd.banned_emails -- 列出無法使用某些 email address 使用匿名 FTP login ( List of denied anonymous
addresses )
/etc/vsftpd.chroot_list -- 列出本機使用者在登入後所到達的根目錄 ( List of local users to chroot )
/etc/vsftpd.conf -- 一般的設定選項 ( General configuration options )

要禁止使用者使用某個 email address 以匿名登入, 例如 "mozilla@", 您只需要將其放入 /etc/vsftpd.banned_emails 中就可以達
到該目的, 每行一個 mail address.

要限制某些本機使用者帳號登入後, 即進入他們的 家目錄 ( home directory )為 ftp 的根目錄, 您只需要將其 user name 放
入 /etc/vsftpd.chroot_list 檔中即可達成該目的, 每行一個 user name. 請記住, 此選項只有在下列條件成立時才有效 :

a) 您允許本機帳號的使用者登入.  
b) 在 /etc/vsftpd.conf 裡將"chroot_local_user=" 設為 "chroot_local_user=NO" .

在 vsftpd.conf 設定檔中已有非常詳盡的說明, 在此不在闡述, 這裡只注意幾項 default 值 :

a) 預設值已經 enabled anonymous logins.  
b) 預設值已將 anonymous users chrooted 到 '/home/ftpsecure'  // 譯者 : 在 Red Hat 9 裡是在 /var/ftp
c) 預設值是使用 'ftpsecure' 這個 user run 該 daemon // 譯者 : 在 Red Hat 9 裡預設是使用 root

第三步 : 啟用及重新啟動 xinetd ( Enable and Restart xinetd ) :  // 譯者 : 在 Red Hat 9 裡預設是使用 standalone

首先您要做的是讓 linux 在重新開機後能讓 xinetd 啟動 vsftpd :
# chkconfig --add xinetd

接下來我們要讓 xinetd 不須重新開機而起動 vsftpd :
# /etc/init.d/xinetd start

現在您的 vsftpd 應該開始接受您剛剛在 "第一步" 中所定義的 IP 連線了, 並且也會在重新開機後自動起動服務.

第四步 : 將檔案放入您的匿名 ftp 目錄裡 ( Populate the Tree ) :

我們剛剛在 " 第二步" 中所定義所有的匿名使用者登入都會 chroot 到 "/home/ftpsecure ( 在 Red Hat 9 中是 /var/ftp )" 裡, 意即
所有的匿名使用者登入後只能 access 該目錄下的檔案, 而無法看到其他目錄中的東西, 所以我們要把所有要分享給匿名使用者的檔案放
入該目錄中.

雖然已下所列不是必須的, 但我們建議您加入下列兩個檔案供 vsftpd 使用 :
/home/ftpsecure/etc/passwd   // 譯者 : 在 Red Hat 9 裡是在 /var/ftp/etcc/passwd
/home/ftpsecure/etc/group      // 譯者 : 在 Red Hat 9 裡是在 /var/ftp/etcc/grooup

這是為了: 當匿名使用者下 "ls" 指令時, ftpd 會搜尋所有檔案的 userid 對應到其 username, 如果您沒有上述的檔案存在, 使用者可能
會看到類似下面的結果 :
ftp> ls -la  
227 Passive mode engaged (127,0,0,1,30,4)  
150 Here comes the directory listing.  
-rw-r--r-- 1 0 0 0 Apr 13 20:03 that  
-rw-r--r-- 1 0 0 0 Apr 13 20:03 this  
226 Directory send OK.

如果我們不希望如此, 我們可以將系統中的 /etc/passwd copy 到 /home/ftpsecure/etc/passwd, 及 /etc/group copy
到 /home/ftpsecure/etc/group, 在您複製這兩個檔完成後, 您需要將 ftpd 不會用到的 user 及 group 刪除, 例
如 : 'webd', 'halt', 'sync', 等這些 user.

/home/ftpsecure/etc/passwd 檔範例 :

root::0:0:root:/root:/dev/null  
nobody:*:99:99:Nobody:/:  
rwm:x:501:502:Ryan W. Maple:/home/rwm:/dev/null
ben:x:500:502:Ben Thomas:/home/ben:/dev/null  
dave:x:502:502:Dave Wreski:/home/dave:/dev/null
nick:x:503:502:Nick DeClario:/home/nick:/dev/null  
pete:x:504:502:Pete O'Hara:/home/pete:/dev/null  

/home/ftpsecure/etc/group 檔範例 :

root::0:root  
nobody::99:  
gdftp::502:dave,nick,pete,ben,rwm  

完成了這些後, 現在當使用者下達 "ls" 指令時, 他們將會看到如下所示 :
ftp> ls -la  
227 Passive mode engaged (127,0,0,1,109,222)  
150 Here comes the directory listing.  
drwxr-xr-x 2 root root 4096 Apr 13 20:07 etc  
-rw-r--r-- 1 root root 0 Apr 13 20:03 that  
-rw-r--r-- 1 root root 0 Apr 13 20:03 this  
226 Directory send OK.

參考資料( Resources ) :

EnGarde Mailing Lists:  
http://www.engardelinux.org/support.html

EnGarde Linux Support FAQ
http://www.engardelinux.org/engardefaq.html

Acknowledgements :

This document was written by Ryan W Maple
Published by Jeff Baldwin
Translated by Adersun

================================================================================

附上我自己的 vsftpd.conf, 請配合您的需求自行斟酌及搭配其他如 vsftpd.user_list, vsftpd.ftpusers...等檔

# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are very paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
#
# Allow anonymous FTP?
anonymous_enable=YES <=== 是否允許匿名 FTP 使用者登入
#
# Uncomment this to allow local users to log in.
local_enable=YES <=== 是否允許本機使用者登入
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022 <=== FTP umask port
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES <=== 是否允許匿名使用者上傳資料
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES <=== 是否允許匿名使用者建立目錄
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES <=== 當使用者切換目錄時是否秀出一段該目錄的訊息
#
# Activate logging of uploads/downloads.
xferlog_enable=YES <=== 是否紀錄 uploads/downloads 到 log
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES <=== FTP port
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log <=== log 存放的位置
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
idle_session_timeout=600 <=== 如果停滯 600 sec 不動作即斷線
#
# You may change the default value for timing out a data connection.
data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=ftpsecure <=== run vsftpd 的使用者, 建議是與系統帳號完全無關的使用者帳號.
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
async_abor_enable=YES <=== 是否接受 asynchronouse ABOR 訊號, 一些 ftp client 軟體需要此訊號
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
ascii_upload_enable=YES <=== 是否接受純文字 upload 傳輸
ascii_download_enable=YES <=== 是否接受純文字 download 傳輸
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to Ader's UNIX FTP service. <==== 使用者登入時所秀出的訊息
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
deny_email_enable=YES <=== 是否開啟過濾 email address
# (default follows)
banned_email_file=/etc/vsftpd.banned_emails <=== 過濾 email address 檔放置位置
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES <=== 是否開啟本機使用者帳號 chroot 模式
chroot_list_enable=YES <=== 是否使用檔案控制本機使用者帳號 chroot 模式
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list <=== 本機使用者帳號 chroot 模式檔存放位置
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES

pam_service_name=vsftpd <=== pam 認證名稱
userlist_enable=YES <=== 是否使用 userlist 檔案控制使用者登入, 開啟此項則在該檔裡的 user 無法登入.
#enable for standalone mode
listen=YES <=== 使用 standalone
tcp_wrappers=YES <=== 使用 tcp_wrappers 監控

================================================================================

Adersun 於 2003-4-14  Am 5:46

shengeih

  • 鑽研的研究生
  • *****
  • 文章數: 970
    • 檢視個人資料
剛剛翻譯好的 vsftp How To ....
« 回覆 #1 於: 2003-04-15 10:55 »
這篇文章可以轉貼嗎!?(詢問徵求作者同意!) 8)

adersun

  • 懷疑的國中生
  • **
  • 文章數: 34
    • 檢視個人資料
剛剛翻譯好的 vsftp How To ....
« 回覆 #2 於: 2003-04-15 21:46 »
請任意轉貼 ^_^....

shengeih

  • 鑽研的研究生
  • *****
  • 文章數: 970
    • 檢視個人資料
剛剛翻譯好的 vsftp How To ....
« 回覆 #3 於: 2003-04-18 11:40 »
想請問一點....!

我在 RH9 下面使用 vsftpd 我需要設限使用者帳號進來之後就只能在他的目錄裡遊蕩而已....而不能離開自己的 User Directory!

請問,要如何設定呢!?

rondo

  • 榮譽博士
  • 懷疑的國中生
  • **
  • 文章數: 53
    • 檢視個人資料
剛剛翻譯好的 vsftp How To ....
« 回覆 #4 於: 2003-04-18 12:45 »
引述: "shengeih"
想請問一點....!

我在 RH9 下面使用 vsftpd 我需要設限使用者帳號進來之後就只能在他的目錄裡遊蕩而已....而不能離開自己的 User Directory!

請問,要如何設定呢!?


試看看

chroot_local_user=YES
best regards

RONDO

shengeih

  • 鑽研的研究生
  • *****
  • 文章數: 970
    • 檢視個人資料
剛剛翻譯好的 vsftp How To ....
« 回覆 #5 於: 2003-04-18 13:52 »
果真可以了....謝謝指導!

yoshen

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
剛剛翻譯好的 vsftp How To ....
« 回覆 #6 於: 2003-04-21 16:16 »
請問一下, vsftpd是否不支援中文的目錄與檔名啊?有辦法修正嗎??

yoshen

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
剛剛翻譯好的 vsftp How To ....
« 回覆 #7 於: 2003-04-21 16:30 »
引述: "yoshen"
請問一下, vsftpd是否不支援中文的目錄與檔名啊?有辦法修正嗎??


歹勢,自問自答,是我搞錯了.....有支援中文,不過用gFTP就沒辦法cd中文目錄,或下載中文檔案了....