SmbFTPD 使用手冊

上一頁
安裝
  下一頁
關於

第三章 smbftpd.conf

內容列表

系統區段

選項名稱: ServerName

語法:

ServerName "Server Name"

說明:

這個選項可以用來定義您的伺服器名稱,當使用者登入後將看到:

Connected to localhost.com.
220 Server Name FTP server (SmbFTPD Ver 0.9) ready.
Name (localhost:alex):

如果您沒有設定 ServerName,則 SmbFTPD 將顯示系統的 Hostname。

預設值:

無 (系統的 Hostname)


選項名稱: ListenOnAddress

語法:

ListenOnAddress 192.168.0.1

說明:

當使用 -D 模式 (standalone) 啟動 FTP 時,您可以指定只接受連到這個位址的連線。例如,假設您有二張網路卡,一個 IP 是 172.16.1.1,另一個是 61.62.63.64,您可以設定 ListenOnAddress 172.16.1.1 以表示只接受連到這個 IP 的連線。

如果您要接受所有連線,則請移除這個選項。

預設值:

無 (接受所有連線)


選項名稱: Port

語法:

Port prot_num|service

說明:

當使用 -D 模式 (standalone) 啟動 FTP 時,您可以指定 SmbFTPD 所要使用的 Port。一般的 FTP port 為 21,您也可以使用 ftp 這個字串表示,系統會自動去 /etc/service 中查到相對的 port。

預設值:

Port ftp


選項名稱: Umask

語法:

Umask umask

說明:

當使用者建立檔案或目錄時,所要使用的 umask。例如,您想要讓使用者新增檔案時的權限為 644,則設 umask 為 022。詳細關於 umask 的設定請 man 2 umask。這個選項的值必須為 8 進位的數字,如 022、027 等。

預設值:

Umask 022


選項名稱: PidFile

語法:

PidFile /some/where/file

說明:

這是您要存放 smbftpd pid 檔的地方,當使用 daemon 模式時,我們會將 smbftpd 的 process id 寫到這個檔案中。

預設值:

PidFile "/var/run/smbftpd.pid"


選項名稱: DebugMode

語法:

DebugMode Yes|No

說明:

是否要用 syslog 記錄更多除錯用的訊息。

預設值:

DebugMode No


選項名稱: LogCommand

語法:

LogCommand Yes|No

說明:

是否要使用 syslog 的 LOG_FTP 記錄使用者執行過的 FTP 指令。如果您將這個指令設為 Yes, 則使用者所執行的 retrieve(get)、store(put)、append、delete、mkdir、rmdir、rename 等都會被選錄下來,並用記錄該指令的檔名參數。在 FreeBSD 中,syslogd 會將這些記錄在 /var/log/xferlog 中。

預設值:

LogCommand No


選項名稱: DoWtmpLog

語法:

DoWtmpLog Yes|No

說明:

是否要將 ftp 連線記錄在 /var/log/wtmp 中。

預設值:

DoWtmpLog No


選項名稱: DisableEPSV

語法:

DisableEPSV Yes|No

說明:

是否要停用 EPSV 這個指令。如果您的伺服器位於一些舊的防火牆後面,而一直無法連線,您可以設著停用 EPSV。

預設值:

DisableEPSV No


選項名稱: ShowSymlink

語法:

ShowSymlink Yes|No

說明:

當 ShowSymlink 為 No ,我們在使用者 ls 時不會列出 symbolic link 的檔案或目錄。

預設值:

ShowSymlink No


選項名稱: RestrictedPorts

語法:

RestrictedPorts Yes|No

說明:

檔這個選項設為 No 時,smbftpd 將不檢查限制使用者使用的連結埠。我們預設限制使用者在使用 PORT 命令時,只能使用 unprivileged ports (> 1024),不過這樣將違反 FTP protocol。

預設值:

RestrictedPorts Yes


選項名稱: RestrictedDataPorts

語法:

RestrictedDataPorts Yes|No

說明:

這個指令設成 NO 時,smbftpd 將只使用 port 定義範圍在 IP_PORTRANGE_DEFAULT 的 port,而非 IP_PORTRANGE_HIGH 的 port。這個選項對於某些特殊的防火牆設定蠻有用的。請 man 4 ip 以得到更多資訊。

預設值:

RestrictedDataPorts Yes


使用者登入控制

選項名稱: MaxConnection

語法:

MaxConnection number

說明:

這個選項可以讓您控制最多同時連線的數量。如果 MaxConnection 大於 0,則在連線數目到達您所設定的值時,使用者就無法再登入。如果值為 0,則表示不做任何限制。

預設值:

MaxConnection 0


選項名稱: RequireValidShell

語法:

RequireValidShell Yes|No

說明:

當 RequireValidShell 為 Yes 時,使用者必須有合法的 shell 才可以登入。合法的 shell 是以 getusershell(3) 這個函數取得,大多數的作業系統中,合法的 shell 都被定義在 /etc/shells 中。

預設值:

RequireValidShell No


選項名稱: EmptyPasswdLogin

語法:

EmptyPasswdLogin Yes|No

說明:

是否允許空密碼的使用者登入。

預設值:

EmptyPasswdLogin No


選項名稱: NoLoginList

語法:

NoLoginList user1,user2,@group1,@group2

說明:

設定您不想讓其登入的使用者,在 NoLoginList 中的使用者或群組不可以登入。

NoLoginList 的參數可以是使用者或是群組,如果是設定群組,請在群組名稱前加上 @。當要設定多個使用者或群組時,請使用逗號 , 分開。 匿名使用者「ftp」及「anonumous」會被對映到真實的使用者「ftp」,如果您要設定的是匿名的使用者「ftp」及「anonymous」,請使用「ftp」這個使用者。

例如:

NoLoginList user1,@group1,user2

表示不允許使用者 user1, user2 及群組 group1 登入。

預設值:


選項名稱: TimeOut

語法:

TimeOut seconds

說明:

當使用者超過這個時間沒有任何動作時,則中斷連線。單位為秒。

預設值:

TimeOut 900


選項名稱: MaxTimeOut

語法:

MaxTimeOut seconds

說明:

使用者可以自行設定 timeout 的時間,但我們可以在這裡設定最長 timeout 的時間。預設是 2 小時。

預設值:

MaxTimeOut 7200


FTP 目錄權限控制

選項名稱: DefaultMode

語法:

DefaultMode SMB|Normal

說明:

SmbFTPD 有二種模式,一個是 SMB mode,另一個是 Normal mode。在 SMB 模式中,SmbFTPD 會使用類似 Samba 的共用資料夾權限設定,系統會讀取 ShareConfPath 中的使用者目錄權限控制來設定他對於資料夾的存取權限。而 Normal 模式中,SmbFTPD 就像一般 FTP Daemon 一樣。

預設值:

DefaultMode Normal


選項名稱: ExceptionList

語法:

ExceptionList user1,user2,@group1,@group2

說明:

您可以在 ExceptionList 中設定不要使用 DefaultMode 的使用者及群組。例如,您如果希望所有人都使用 SMB 模式,但群組 wheel 要使用一般模式,則請將 DefaultMode 設為 SMB,再在 ExceptionList 中設定 @wheel 即可。

ExceptionList 的參數可以是使用者或群組,如果是群組的話,請在群組名稱前加上 @。例如:

ExceptionList user1,user2,@group1,@group2

預設值:


選項名稱: ShareConfPath

語法:

ShareConfPath /some/where/smbftpd_share.conf

說明:

設定資料夾設定的 smbftpd_share.conf 所在路徑。如果您設定 DefaultMode 為 SMB,或是 DefaultMode 為 Normal 但有 ExceptionList,則一定要指定 smbftpd_share.conf 的所在路徑。

我們會檢查 smbftpd_share.conf 中的下列關鍵設定:

範例一:

這個範例是有一個資料夾名為 public,其所在目錄為 /home/public,在 samba 群組中的使用者可以有唯讀的權限,而 root 可以有寫入的權限。

[public]
	path = /home/public
	rw = root
	ro = @samba

範例二:

資料夾名稱為 private,只有 wheel 群組的人可以寫入,而且這個資料夾是隱藏的,wheel 群組的人登入後使用 ls 看不到這個資料夾,但是可以 cd 進去資料夾中。

[private]
	path = /root/ftp
	rw = @wheel
	browseable = no

範例三:

資料夾名稱為 upload, 使用者「ftp」及「anonymous」只能上傳檔案或建立新目錄,但是無法看到該資料夾中的內容,也不可以下載或是修改現有的檔案。但在使用者「wheel」群組中的使用者可以具有全部的讀寫權限。

[upload]
	path=/home/upload"
	rw=ftp,@wheel
	disable_ls=ftp
	disable_modify=ftp
	disable_download=ftp

請注意,匿名使用者「ftp」及「anonumous」會被對映到真實的使用者「ftp」,如果您要設定的是匿名的使用者「ftp」及「anonymous」,請使用「ftp」這個使用者。

如果您設定某個使用者對於某個資料夾有寫入的權限,但該使用者卻無法寫入,因為除了 SmbFTPD 的權限控制外,您還必須對資料夾的 UNIX 權限做一些設定,讓該資料夾的 UNIX 權限允許該使用者寫入。

預設值:


選項名稱: ChrootSet

語法:

ChrootSet user path

ChrootSet @group path

ChrootSet @ path

說明:

在這個列表中的使用者或群組會被 chroot 到您所指定的路徑中,也就是讓它將您所設定的路徑做為根目錄,使用者無法到該路徑以外的地方。如果有需要,您可以同時設定多條 ChrootSet 的規則。

這個參數的第一個欄位是使用者名稱或群組,如果在名稱之前加上 @,表示是群組,所有在該群組中的使用者都會被套用到群組的設定中。而另一個特別的用法是只有一個 @ 符號,表示所有使用者都會被套用到這個設定中。

請注意,被設定為 chroot 的使用者就算 DefaultMode 被歸類為 SMB mdoe 也一定會被強制使用 Normal mode。

這裡有幾個設定的範例:

範例一:

使用者 anonymous 登入時,將它 chroot 到 /var/spool/ftp

ChrootSet anonymous /var/spool/ftp

範例二:

所有群組為 ftpgroup 的使用者都使用他們的家目錄 (home) 做為根目錄。例如,使用者 alex 的家目錄為 /home/alex,則其根目錄為 /home/alex,而 jack 則是 /home/jack。我們以 ~ 符號表示家目錄,系統會自動轉換為真正的路徑。

ChrootSet @ftpgroup ~

範例三:

所有 webusers 這個群組的人都以其家目錄下的 public_html 為根目錄。這對於您要開放 FTP 給某些使用者,但又不想讓他們去存取系統中其它路徑時十分有用。

ChrootSet @webusers ~/public_html

範例四:

所有使用者都必須以其家目錄為根目錄。

ChrootSet @ ~

預設值:


匿名使用者控制

選項名稱: AnonymousLogin

語法:

AnonymousLogin Yes|No

說明:

是否允許匿名使用者登入。匿名的使用者帳號為 ftp 或 anonymous。如果您要允許匿名使用者登入,您必須先新增一個 ftp 的系統使用者。

預設值:

AnonymousLogin No


選項名稱: AnonymousOnly

語法:

AnonymousOnly Yes|No

說明:

是否只允許匿名使用者登入。

預設值:

AnonymousOnly No


檔案傳輸控制

選項名稱: TransferLog

語法:

TransferLog /var/run/smbftpd.log

說明:

這個選項用來設定使用者上傳及下載的檔案記錄。您可以設定當使用者下載或上傳檔案時,將它所上傳或下載的檔名、傳輸時間、大小等資料寫在這個檔案中。

預設值:

無記錄


選項名稱: MaxDownloadRate

語法:

MaxDownloadRate @grou|user rate

說明:

您可以針對使用者及群組設定最大的下載頻寬。頻寬 rate 的單為是 KB/s。您也可以設定多條 MaxDownloadRate 規則。

這個選項的第一個參數可以是使用者或群組,如果是群組,則名稱開頭必須加上 @。而若只有一個 @ 符號,表示所有使用者都要套用到該規則。例如:

MaxDownloadRate @group100 100
MaxDownloadRate anonymous 20
MaxDownloadRate @friends 1000

預設值:

無限制


選項名稱: MaxUploadRate

語法:

MaxUploadRate @grou|user rate

說明:

您可以針對使用者及群組設定最大的上傳頻寬。頻寬 rate 的單為是 KB/s。您也可以設定多條 MaxDownloadRate 規則。

這個選項的第一個參數可以是使用者或群組,如果是群組,則名稱開頭必須加上 @。而若只有一個 @ 符號,表示所有使用者都要套用到該規則。例如:

MaxUploadRate @group100 100
MaxUploadRate anonymous 20
MaxUploadRate @friends 1000

預設值:

無限制


SSL/TLS 控制

選項名稱: SecurityPolicy

語法:

SecurityPolicy secure|nosecure|both

說明:

這個選項可以讓您設定是否要啟用 SSL/TLS 加密。您可以 強制一定要使用加密連線,或是關閉加密功能,或是同時允許加密及非加密模式。各種模式的說明如下:

預設值是同時允許加密及非加密連線。

預設值:

SecurityPolicy both


選項名稱: EncryptionType

語法:

EncryptionType tls|ssl|both

說明:

當您要使用加密連線時,您可以選擇要支援哪一種加密模式。SmbFTPD 支援二種模式:SSL 及 TLS,您可以使用下列設定值以選擇要使用另一種模式:

預設值是同時支援 SSL 及 TLS。

預設值:

EncryptionType both


選項名稱: NormalUserMustSecure

語法:

NormalUserMustSecure Yes|No

說明:

當 NormalUserMustSecure 設為「Yes」時,表示一般使用者登入時一定要使用加密的連線,否則無法登入。

我們在 FTP 服務中使用 SSL/TLS 的目的是為了避免使用者的機密資料在網路上以明碼流傳,為了強制所有使用者都使用比較安全的模式連線,您可以將這個選項設為「Yes」。

預設值:

NormalUserMustSecure No


選項名稱: AnonymDisableSecure

語法:

AnonymDisableSecure Yes|No

說明:

當 AnonymDisableSecure 設為「Yes」時,系統將不允許匿名的使用者使用加密的連線。

既然 SSL/TLS 的目的是避免使用者資料在網路上流傳,而匿名使用者是任何人都可以使用,保護匿名使用者的資料似乎比較不需要。所以您可以將這個選項設為「No」,以避免匿名使用者也使用加密連線登入,徒然耗費 CPU 的資源。

預設值:

AnonymDisableSecure No


選項名稱: SSLCertFile

語法:

SSLCertFile /path/to/server.crt

說明:

設定所要使用的憑證,這個憑證會被送到客戶端做為加密用。如果您沒有設定這個選項,預設會使用 /usr/local/etc/smbftpd/ssl.crt/server.crt。

您也可以和 Apache+SSL 共用憑證,Apache 的 SSL 憑證通常位於 /usr/local/apache/conf/ssl.crt/server.crt。

預設值:

SSLCertFile /usr/local/etc/smbftpd/ssl.crt/server.crt


選項名稱: SSLKeyFile

語法:

SSLKeyFile /path/to/server.key

說明:

這個選項是用來設定您上述設定的憑證所對映的 private key。這個 private key 和憑證是成對的,預設是在 /usr/local/etc/smbftpd/ssl.key/server.key。

如果您使用 Apache SSL 憑證,則這裡也必須設定使用 Apache 的 key,通常位於 /usr/local/apache/conf/ssl.key/server.key。

預設值:

SSLKeyFile /usr/local/etc/smbftpd/ssl.key/server.key


選項名稱: SSLDebugMode

語法:

SSLDebugMode Yes|No

說明:

設定是否要啟動 SSL 的除錯模式,常設為「Yes」時,您還必須要設定記錄檔位置 SSLDebugLog。

預設值:

SSLDebugMode No


選項名稱: SSLDebugLog

語法:

SSLDebugLog /var/log/smbftpd-ssl.log

說明:

設定 SSL 除錯模式的記錄檔要放在什麼地方。

預設值:


上一頁
安裝

索引
您可以在 http://www.twbsd.org 取得本文件

下一頁
關於