欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

FREEBSD6.0 架設(shè)FTP 服務(wù)器

  發(fā)布時(shí)間:2008-09-08 18:48:40   作者:佚名   我要評(píng)論
FTP (File Transfer Protocol) 是常用的網(wǎng)絡(luò)協(xié)議,主要的功能是用來傳輸檔案,我們時(shí)常從 FTP 站臺(tái)下載檔案。本章將介紹如何使用 FreeBSD 架設(shè) FTP 服務(wù)器,并說明各種 FTP 服務(wù)器的管理技巧。本章除了 FreeBSD 內(nèi)附的 FTP 服務(wù)器軟件外,并將介紹筆者開發(fā)的 SmbFTPD。

FTP (File Transfer Protocol) 是常用的網(wǎng)絡(luò)協(xié)議,主要的功能是用來傳輸檔案,我們時(shí)常從 FTP 站臺(tái)下載檔案。本章將介紹如何使用 FreeBSD 架設(shè) FTP 服務(wù)器,并說明各種 FTP 服務(wù)器的管理技巧。本章除了 FreeBSD 內(nèi)附的 FTP 服務(wù)器軟件外,并將介紹筆者開發(fā)的 SmbFTPD。讀完本章后,您將進(jìn)一步了解下列主題:

  • FTP 協(xié)定的運(yùn)作方法。
  • 如何使用 FreeBSD FTP。
  • 加強(qiáng)權(quán)限控制以建立安全的 FTP 服務(wù)器。
  • 安裝設(shè)定 SmbFTPD。
  • 如何使用具 SSL 加密的 FTP。
  • 如何進(jìn)行流量控制。

15.1 FTP 概論

FTP 是一個(gè)歷史悠久的網(wǎng)絡(luò)通訊協(xié)議,和大多數(shù)的網(wǎng)絡(luò)協(xié)議一樣,它采用 Client/Server 架構(gòu),各地的使用者可以經(jīng)由網(wǎng)絡(luò)連到服務(wù)器上傳或下載檔案。FTP 協(xié)議比較特別的地方在于它在使用時(shí)必須建立二個(gè)聯(lián)機(jī):一個(gè)用來傳輸指令、一個(gè)用來傳輸檔案。

圖 15-1

當(dāng)我們使用 FTP 軟件連到 FTP 服務(wù)器時(shí),客戶端會(huì)先連到服務(wù)器的連接埠 21,并建立一條「控制聯(lián)機(jī)」(Control Stream)。接下來,您會(huì)輸入賬號(hào)、密碼等指令,這些指令及 FTP 的響應(yīng)都是使用都是使用「控制聯(lián)機(jī)」。當(dāng)您要下載檔案時(shí),或者是執(zhí)行 ls 以列出目錄中的檔案時(shí),檔案或目錄列表的下載是經(jīng)另一個(gè)聯(lián)機(jī)「數(shù)據(jù)聯(lián)機(jī)」(Data Stream)?!笖?shù)據(jù)聯(lián)機(jī)」和「控制聯(lián)機(jī)」不同的是數(shù)據(jù)聯(lián)機(jī)所傳輸?shù)臄?shù)據(jù)比較大,而控制聯(lián)機(jī)只是用來傳輸指令及簡單的響應(yīng)。

基本上,一個(gè)完整的 FTP 聯(lián)機(jī)建立過程為:

  • 客戶端打開自已機(jī)器大于 1024 的連接埠,并連到服務(wù)器的連接埠 21,建立「控制聯(lián)機(jī)」。
  • 客戶端開始對(duì)服務(wù)器下指令,告訴服務(wù)器客戶端用來傳輸檔案的連接埠為何。
  • 服務(wù)器從連接埠 20 連到客戶端所開放的埠號(hào) (大于 1024),以建立「數(shù)據(jù)聯(lián)機(jī)」。

上述這種聯(lián)機(jī)建立的方式是由服務(wù)器主動(dòng)建立「數(shù)據(jù)聯(lián)機(jī)」,我們稱之為「主動(dòng)模式」(Active Mode)?;旧现鲃?dòng)模式的運(yùn)作在沒有防火墻或 NAT 的情形下沒有什么問題,但若客戶端有防火墻,則可能會(huì)無法建立聯(lián)機(jī)。

圖 15-2

因?yàn)椤缚刂坡?lián)機(jī)」是由客戶端主動(dòng)連到服務(wù)器,所以在客戶端有防火墻或 NAT 時(shí),還是可以連到服務(wù)器。接下來在建立「數(shù)據(jù)聯(lián)機(jī)」時(shí),客戶端會(huì)從「控制聯(lián)機(jī)」中告訴服務(wù)器它的 IP 及埠號(hào),請(qǐng)服務(wù)器連過來。但是由于客戶端有防火墻,所以服務(wù)器要連到客戶端時(shí)會(huì)失敗,而無法建立聯(lián)機(jī)。

基本上,如果客戶端使用的是 FreeBSD 的 NAT 不會(huì)有這種問題,F(xiàn)reeBSD 會(huì)自動(dòng)做轉(zhuǎn)換,但若是使用其它的防火墻就不一定可以支持 FTP 的 Active Mode。

何謂 Passive Mode

解決 FTP Active Mode 的問題,可以在聯(lián)機(jī)時(shí)改用「被動(dòng)模式」(Passive Mode)。所謂的被動(dòng)模式就是由服務(wù)器打開一個(gè)連接埠,被動(dòng)地等客戶端連過來建立「數(shù)據(jù)聯(lián)機(jī)」。被動(dòng)模式的聯(lián)機(jī)建立過程為:

  • 客戶端打開自已機(jī)器大于 1024 的連接埠,并連到服務(wù)器的連接埠 21,建立「控制聯(lián)機(jī)」。
  • 客戶端開始對(duì)服務(wù)器下指令,告訴服務(wù)器進(jìn)入「被動(dòng)模式」。
  • 服務(wù)器打開一個(gè)大于 1024 的連接埠,等待客戶端的聯(lián)機(jī)。
  • 客伺端打開自已機(jī)器大于 1024 的連接埠,并連到服務(wù)器以建立「數(shù)據(jù)聯(lián)機(jī)」。

圖 15-3

 

由于控制聯(lián)機(jī)及數(shù)據(jù)聯(lián)機(jī)都是由客戶端主動(dòng)連過去服務(wù)器,如此即可避開防火墻及 NAT 的問題。我們來看看如何判斷聯(lián)機(jī)失敗是否因?yàn)橹鲃?dòng)模式的原因:

#
		ftp ftp.freebsd.org
Trying 204.152.184.73...
Connected to ftp.freebsd.org (204.152.184.73).
220 Welcome to freebsd.isc.org.
Name (ftp.freebsd.org:alex): anonymous
331 Please specify the password.
Password:
230-
230-You have reached the freebsd.isc.org FTP server, serving the
230-full FreeBSD FTP archive over IPv4 (204.152.184.73) and IPv6
230-(2001:4f8:0:2::e) networks. This server is also known as:
230-
230- ftp.freebsd.org
230- ftp4.freebsd.org
230- ftp4.us.freebsd.org
230-
230-This server is operated by Internet Systems Consortium (ISC),
230-on behalf of the FreeBSD Project, with hardware donations from
230-Apple, Intel and Iron Systems.
230-
230-Questions about this service can be sent to: freebsd@isc.org.
230-
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
^C
ftp> passive
Passive mode on
ftp> ls
227 Entering Passive Mode (204,152,184,73,54,200)
150 Here comes the directory listing.
drwxrwxr-x 3 0 0 512 Apr 17 2003 pub
226 Directory send OK.
ftp>

當(dāng)您登入一臺(tái) FTP 服務(wù)器后,如果您輸入 ls,卻等了很久都沒有響應(yīng),您可以輸入 <Ctrl>+C 以中斷命令。接著輸入 passive 以進(jìn)入被動(dòng)模式,再打 ls 就可以看到目錄內(nèi)容,則無法聯(lián)機(jī)的問題一定是主動(dòng)模式的原故。

15.2 設(shè)定 FTP 服務(wù)

FreeBSD 內(nèi)建有 FTP 服務(wù)器的功能,如果您要使用內(nèi)建的 ftpd,我們不需要特別進(jìn)行任何安裝的動(dòng)作,只要做好設(shè)定即可。本小節(jié)中,我們將介紹如何設(shè)定啟動(dòng) FTP 服務(wù)器的功能,并進(jìn)行一些基本的配置。

15.2.1 啟動(dòng) FTP 服務(wù)

我們有二種方式啟動(dòng) ftpd,一種是使用 standalone daemon,另一種是使用 inetd。inetd 是 UNIX 系統(tǒng)中一個(gè)強(qiáng)大的「超級(jí)服務(wù)器」,我們可以使用它來管理許多系統(tǒng)服務(wù),例如 telnet、ssh、ftp 等。大部份的系統(tǒng)服務(wù)都是使用 inetd 來啟動(dòng),使用它的好處在于可以統(tǒng)一管理各種服務(wù),并經(jīng)由它來設(shè)定服務(wù)規(guī)則,例如是否要阻擋某些 IP 來源等。不過,使用 inetd 的方式缺點(diǎn)是每次有聯(lián)機(jī)要求時(shí),inetd 的 daemon 必須依聯(lián)機(jī)的種類去執(zhí)行相對(duì)映的指令,所以速度比較慢。

另一種啟動(dòng) FTP 的方式是使用 standalone daemon,也就是直接執(zhí)行 FTP daemon,當(dāng)它接收到新的聯(lián)機(jī)時(shí),就 fork() 出來處理,這種方式聯(lián)機(jī)建立的速度較快,比較適合專門的 FTP 服務(wù)器。

使用 inetd

我們先來介紹如何使用 inetd 的方式啟動(dòng) FTP 服務(wù)器。首先,請(qǐng)編輯 /etc/inetd.conf,將 ftp 設(shè)定開頭的 # 移除:

ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l
ftp     stream  tcp6    nowait  root    /usr/libexec/ftpd       ftpd -l

接下來,我們必須使用下列指令重跑 inetd:

#
		kill -1 `cat /var/run/inetd.pid`

現(xiàn)在您就可以開始使用 FreeBSD 的 FTP 服務(wù)了。

使用獨(dú)立 Daemon

如果您要以獨(dú)立的 daemon 方式啟動(dòng) FTP,請(qǐng)先確定在 inetd.conf 中沒有啟動(dòng) FTP 服務(wù)。接下來,請(qǐng)?jiān)谛略鲆粋€(gè)檔案 /usr/local/etc/rc.d/ftpd.sh 內(nèi)容如下:

#!/bin/sh

ftpd_program="/usr/libexec/ftpd"
ftpd_flags="-D -l"

case $1 in
start)
	echo "Starting FTPD"
	$ftpd_program $ftpd_flags
;;
stop)
	echo "Stopping FTPD"
	killall ftpd
;;
restart)
	$0 stop
	sleep 1
	$0 start
;;
esac

編輯完后,我們必須將該檔案變成可執(zhí)行:

#
		chmod 755 /usr/local/etc/rc.d/ftpd.sh

接下來,您就可以使用下列指令啟動(dòng) FTPD 了:

#
		/usr/local/etc/rc.d/ftpd.sh tart

如果您要停止 FTPD 服務(wù),則使用下列指令:

#
		/usr/local/etc/rc.d/ftpd.sh stop

15.2.2 編輯歡迎訊息

當(dāng)我們聯(lián)機(jī)到一個(gè) FTP 站臺(tái)時(shí),我們可以看到二個(gè)歡迎訊息,一個(gè)是登入前的訊息,另一個(gè)是登入后的訊息。以下列訊息為例:

#
		ftp localhost
Trying ::1...
Connected to localhost.alexwang.com.
220- Welcome to My FTP Server.
220-
220- This is a welcome message
220-
220- Nice to see you.
220 vmware.alexwang.com FTP server (Version 6.00LS) ready.
Name (localhost:alex):
331 Password required for alex.
Password:
230- This is the message of the day.
230-
230- It will be shown after user login.
230 User alex logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

開頭為 220- 的就是登入前的訊息,我們稱它為歡迎訊息。以 230- 為開頭的是登入后的訊息,我們稱它為本日訊息 (Message of the day)。這二種訊息我們都可以自行設(shè)定。

如果您要設(shè)定的是登入前的訊息,請(qǐng)新增一個(gè)檔案 /etc/ftpwelcome,并將您的訊息寫入該文件中。以下為上述范例中的訊息內(nèi)容:

Welcome to My FTP Server.

This is a welcome message

Nice to see you.

您不需要寫 220- 等數(shù)據(jù),F(xiàn)TP 服務(wù)器會(huì)自動(dòng)幫您加上這種代碼。而登入后的訊息是存放在 /etc/ftpmotd,您可以編輯該檔以進(jìn)行設(shè)定。

15.2.3 FTP 服務(wù)器管理

在啟動(dòng) FTP 服務(wù)器時(shí),我們可以加入一些參數(shù)以調(diào)整服務(wù)器的行為。例如,修改預(yù)設(shè)的連接端口、記錄使用者上傳、下載的檔案等等。有些參數(shù)必須要在使用獨(dú)立的 daemon 方式啟動(dòng)時(shí)才有用,而有的參數(shù)在 inetd 模式下也可以使用。

下表為我們常用的參數(shù):

參數(shù) 是否只能在 Daemon 模式下使用 意義
-a 當(dāng)您有二張網(wǎng)絡(luò)卡或是二個(gè) IP 時(shí),我們可以設(shè)定只接受聯(lián)機(jī)到某一個(gè) IP 的聯(lián)機(jī)要求。例如:

ftpd -D -a 192.168.0.1

此范例表示只接受使用者聯(lián)機(jī)到 192.168.0.1 這個(gè) IP。

-d 記錄 FTP 的除錯(cuò)訊息。除了加入這個(gè)參數(shù)外,您必須修改 /etc/syslog.conf,并加入下列內(nèi)容以記錄 FTP 的訊息。
!ftpd
*.*                    /var/log/ftpd.log
-h 不要顯示 FTP 服務(wù)器的主機(jī)名稱、軟件信息、版本等。
-l 記錄 FTP 登入成功及失敗的訊息。如果您使用二次 -l,則使用者上傳、下載、刪除、建立目錄時(shí)都會(huì)留下記錄。預(yù)設(shè)的記錄會(huì)留在 /var/log/xferlog 中。
-P 我們知道 FTP 預(yù)設(shè)會(huì)****連接埠 21,以接受客戶端的聯(lián)機(jī)要求。不過如果您是以獨(dú)立的 daemon 方式啟動(dòng) FTP,則 可以使用 -P 加上連接埠號(hào)以改變預(yù)設(shè)連接埠。

另外,還有很多用來控制使用者權(quán)限的參數(shù),我們會(huì)在下一小節(jié)中說明。您也可以使用 man ftpd 以查看更多關(guān)于 ftpd 的參數(shù)。

如果您要修改 ftpd 啟動(dòng)的參數(shù),在 inetd 模式下,您可以修改 /etc/inetd.conf,并在 ftp 設(shè)定的最后面加入?yún)?shù),如下列粗體字所示:

ftp  stream  tcp     nowait  root   /usr/libexec/ftpd    ftpd -l -l -d
ftp  stream  tcp6    nowait  root   /usr/libexec/ftpd    ftpd -l -l -d

上面的范例中,我們多加入了參數(shù) -l -d,以記錄更多 ftpd 的訊息。

如果您是以獨(dú)立的 Daemon 方式啟動(dòng) ftpd,則請(qǐng)修改 /usr/local/etc/rc.d/ftpd.sh

#!/bin/sh

ftpd_program="/usr/libexec/ftpd"
ftpd_flags="-D -l -l -d"
...

我們只要修改 ftpd_flags 的部份,加入您所要的參數(shù)即可。

15.3 FTP 權(quán)限控制

預(yù)設(shè)的 FTP 啟動(dòng)后,使用者可以上傳、下載任何他們有權(quán)存取的檔案。在登入后,使用者可以進(jìn)到任何系統(tǒng)中的目錄 (如果目錄權(quán)限允許的話)。本小節(jié)將告訴您一些 FTP 讀寫權(quán)限的控制,讓您可以更進(jìn)一步控制服務(wù)器的系統(tǒng)安全。

15.3.1 限制賬號(hào)與聯(lián)機(jī)來源

我們可以設(shè)定限制某些賬號(hào)不可以使用 FTP 登入。使用者在登入 FTP 服務(wù)器時(shí),有幾個(gè)規(guī)則會(huì)拒絕該賬號(hào)登入:

  • 如果 /var/run/nologin 存在,則所有賬號(hào)都不可以登入。這個(gè)檔案可以用來暫時(shí)停止 FTP 服務(wù)
  • 使用者一定要有密碼才能登入,沒有密碼的使用者無法登入。
  • 使用者名稱不可以出現(xiàn)在 /etc/ftpusers 中。
  • 使用者群組不可以出現(xiàn)在 /etc/ftpusers 中。
  • 使用者所使用的 shell 必須要時(shí)合法的 shell。合法的 shell 會(huì)被定義在 /etc/shells 中。
  • 除了匿名模式外,使用者名稱不可以是 ftp 或 anonymous。關(guān)于匿名模式,我們會(huì)在下一小節(jié)中說明。

/etc/ftpusers 定義了不可以使用 FTP 服務(wù)的使用者及群組。我們來看一下該檔案的內(nèi)容:

# $FreeBSD: src/etc/ftpusers,v 1.13 2004/06/30 16:47:08 maxim Exp $
#
# list of users disallowed any ftp access.
# read by ftpd(8).
root
toor
daemon
operator
bin
tty
kmem
games
news
@guest
...

我們可以看到該檔案中已經(jīng)有一些使用者不可以登入 FTP。這些使用者都是系統(tǒng)預(yù)設(shè)的賬號(hào),我們也可以經(jīng)由修改它來加入其它使用者。

/etc/ftpusers 中,如果開頭是 "@" 表示群組名稱。例如上述檔案內(nèi)容中的 @guest 表示群組 guest 不可以登入系統(tǒng)。

除了控制使用者賬號(hào)外,在「inetd」模式下,我們還可以控制聯(lián)機(jī)來源。所有 FreeBSD 中由 inetd 所啟動(dòng)的服務(wù)都可以經(jīng)由修改 /etc/hosts.allow 以使用 TCP Wrappd 來限制聯(lián)機(jī)來源。下列為預(yù)設(shè)的 /etc/hosts.allow 內(nèi)容:

# Provide a small amount of protection for ftpd
ftpd : localhost : allow
ftpd : .nice.guy.example.com : allow
ftpd : .evil.cracker.example.com : deny
ftpd : ALL : allow

如果我們要限制某幾個(gè) IP 或網(wǎng)域不能使用 FTP,可以使用下列范例:

# Provide a small amount of protection for ftpd
ftpd : localhost : allow
ftpd : 210.122.13.5 : deny
ftpd : .evil.cracker : deny
ftpd : ALL : allow

我們?cè)谏鲜龇独芯芙^ IP 210.122.13.5 及 evil.cracker 網(wǎng)域的主機(jī)使用 FTP,并在最后一行設(shè)定其它來源都許可。

如果您要設(shè)定只有某些來源可以使用 FTP,而拒絕大多數(shù)的主機(jī),則可以設(shè)定:

# Provide a small amount of protection for ftpd
ftpd : localhost : allow
ftpd : 192.168.0. : allow
ftpd : my.friend.com : allow
ftpd : ALL : deny

我們?cè)O(shè)定了只有本機(jī) (localhost)、192.168.0.x、及 my.friend.com 才可以使用 FTP,其它聯(lián)機(jī)都拒絕。

15.3.2 限制上傳下載權(quán)限

在使用者登入后,只要目錄、檔案權(quán)限許可,它們可以自由的上傳、下載檔案。如果您希望加以限制讀寫的權(quán)限,可以在啟動(dòng) FTP 時(shí)加上下列幾個(gè)參數(shù):

參數(shù) 意義
-o 限制所有使用者只能上傳檔案,而無法下載任何檔案。
-r 限制所有使用者對(duì)于服務(wù)器內(nèi)所有檔案只能只讀,不可以建立目錄、上傳、更改檔名、或任何會(huì)動(dòng)到檔案目錄的指令。

上述的參數(shù)必須在啟動(dòng) FTP 服務(wù)器時(shí)指定,請(qǐng)參考15.2.3 一節(jié),針對(duì) inetd 及獨(dú)立的 Daemon 有不同的設(shè)定方法

15.3.3 chroot

一般使用者登入后,預(yù)設(shè)會(huì)進(jìn)入自己的家目錄中。使用者可以改變工作路徑到系統(tǒng)的任何目錄中。如果您希望使用者登入后只能在自己的家目錄中活動(dòng),而不能進(jìn)入其它系統(tǒng)目錄中,可以使用 chroot 的功能。

所謂的 chroot 就是將某一個(gè)目錄變成使用者看到的根目錄。例如,我們讓使用者 alex 登入后,將 /home/alex 變成根目錄。則 alex 在使用指令「cd /」時(shí),還是會(huì)停留在 /home/alex。如果他使用指令「pwd」查看目前所在路徑,則會(huì)顯示 /。如此一來,我們就可以確保使用者不會(huì)到處亂跑,進(jìn)入一些不該進(jìn)入的地方。這個(gè)功能對(duì)于提升 FTP 的安全性有莫大的助益。

設(shè)定 chroot 的方法很簡單,只要修改 /etc/ftpchroot 即可。chroot 的設(shè)定是以使用者、群組的基礎(chǔ),以下是幾個(gè)設(shè)定范例:

alex
@guest
john /var/ftp
@other /var/ftp

上述范例中的第一行是設(shè)定使用者 alex 登入后,以自己的家目錄為根目錄。第二行的 @guest 表示只要是群組為 guest 的使用者,都以自己的家目錄為根目錄。而第三、四行分別表示使用者 john 及群組 other 都以 /var/ftp 為根目錄。

只要我們善用 chroot 的功能,就可以加強(qiáng)保護(hù)系統(tǒng)其它目錄,讓沒有權(quán)利的使用者不可以進(jìn)入系統(tǒng)目錄中。建議您在開放 FTP 服務(wù)時(shí),將所有使用者都加入 /etc/ftpchroot 中。

15.3.4 匿名的 FTP

我們平常在登入 FreeBSD 的 FTP 站臺(tái)時(shí),可以使用 anonymous 或是 ftp 這二個(gè)使用者登入,而且在登入時(shí),任何密碼都可以通過。這種可以使用 anonymous 登入的 FTP 就叫作匿名 FTP。anonymous 及 ftp 這二個(gè)賬號(hào)是預(yù)設(shè)的匿名賬號(hào),當(dāng)使用者以匿名登入時(shí),服務(wù)器會(huì)將匿名賬號(hào)對(duì)映到系統(tǒng)內(nèi)的真實(shí)使用者 ftp。所以,如果您要提供匿名的 FTP 服務(wù),請(qǐng)使用下列指令新增使用者賬號(hào) ftp:

#
		pw adduser ftp
#
		mkdir /home/ftp
#
		chown ftp:ftp /home/ftp

我們建立了使用者 ftp 及其家目錄 /home/ftp。使用 pw 指令所建立的使用者在 /etc/master.passwd 中的密碼字段預(yù)設(shè)為 *,表示不可以登入。這個(gè)使用者除了匿名 FTP 外,將不可以使用 telnet、SSH、或是其它服務(wù)。

在新增了使用者 ftp 之后,我們就已經(jīng)支持匿名 FTP 的功能了?,F(xiàn)在您可以使用 anonymous 或 ftp 賬號(hào)登入,而且不需任何密碼。由于開放了匿名 FTP 后,任何人都可以登入系統(tǒng),所以匿名賬號(hào)登入后一定會(huì)使用 chroot,以將匿名使用者限制在家目錄中。

除了強(qiáng)制使用 chroot 外,我們還可以在啟動(dòng) FTP 時(shí)加上一些參數(shù),以針對(duì)匿名使用者進(jìn)行更多的限制。下表為啟動(dòng) FTP 服務(wù)時(shí)可以使用的參數(shù):

參數(shù) 意義
-M 禁止匿名使用者建立新的目錄。
-m 允許匿名使用者覆寫一個(gè)存在的檔案。預(yù)設(shè)啟動(dòng) FTP 時(shí),并不允許匿名使用者覆寫已經(jīng)存在的檔案。當(dāng)使用者上傳檔案時(shí),如果已經(jīng)有同檔名的檔案存在,系統(tǒng)會(huì)自動(dòng)為上傳的檔案改名。
-O 讓匿名使用者只能上傳檔案,下載檔案的功能會(huì)被取消。

匿名使用者權(quán)限除上表中的幾個(gè)參數(shù)外,一樣可以使用 -r、-o 等用來控制一般使用者權(quán)限的參數(shù)來控制匿名使用者。

匿名的 FTP 服務(wù)器可以說是危險(xiǎn)的開始,如果您沒有對(duì)匿名的使用者進(jìn)行權(quán)限控制,在開于匿名 FTP 后,將會(huì)產(chǎn)生許多安全性的問題。最常見的就是您的 FTP 服務(wù)器會(huì)被做為檔案交流的跳板或是病毒的集散地。例如,當(dāng)您的匿名 FTP 站臺(tái)允許使用者上傳、下載檔案時(shí),一定會(huì)有人將自己的檔案上傳到您的服務(wù)器中,并告訴其它人可以到您的服務(wù)器中下載檔案。此時(shí),您的服務(wù)器莫名其妙就會(huì)變成別人的服務(wù)器,任何人都可以用您的服務(wù)器、網(wǎng)絡(luò)頻寬來分享檔案。所以,在匿名模式下,最好還是在啟動(dòng) FTP 時(shí)加上參數(shù) -r 以取消上傳的功能吧。

15.4 SmbFTPD

SmbFTPD 是筆者從 FreeBSD 5.4 的 FTP daemon 修改而成的軟件。FreeBSD 內(nèi)建的 FTP 服務(wù)器比較簡單,它不支持流量控制、不支持 SSL 加密、對(duì)中文檔名的支持也比較差。例如,您無法使用「許」、「功」等中文字。SMbFTPD 除了擁有原本 FreeBSD ftpd 所有功能外,還有更多使用者權(quán)限控制、支持特殊中文字、整合設(shè)定文件路徑及更多功能。另外,它也支持 SSL/TLS 加密的功能,該功能是由 BSDftpd-ssl 移植而來。

SmbFTPD 和一般 FTP daemon 最大的不同在于它使用類似 Samba 的數(shù)據(jù)夾權(quán)限設(shè)定,您可以設(shè)定讓 FTP 使用者登入后所看到的目錄跟使用 Windows 登入 Samba 時(shí)一模一樣。也就是說 FTP 登入的使用者對(duì)于數(shù)據(jù)夾的存取權(quán)限和使用 Windows 登入 Samba 一模一樣。

而您也可以將 SmbFTPD 做為一般 FTP daemon 使用,或同時(shí)支持 Samba 模式。FreeBSD 的 FTP daemon 本來效能就很好,修改過的 SmbFTPD 效能也十分優(yōu)越,而且程序文件本身體積很小。

  • 效能優(yōu)越。
  • 檔案很小 (約 70KB),占用內(nèi)存空間小。
  • 支援 SSL/TLS 加密。
  • 可以更改 port。
  • 針對(duì)使用者、群組做流量控制。
  • 針對(duì)使用者、群組設(shè)定 chroot 的路徑。
  • 類似 Samba 的數(shù)據(jù)夾權(quán)限,可以針對(duì)目錄設(shè)定使用者的讀寫權(quán)限。
  • 限制 FTP 指令的使用,如上傳、下載等。
  • 匿名使用者登入。
  • 諸多匿名使用者的權(quán)限控制。
  • 同時(shí)支持 Samba 權(quán)限控制模式及一般 FTP 模式。
  • 可以拒絕某些使用者 "ls" 出某一個(gè) share 下的檔案。
  • 可以拒絕某些使用者下載檔案或是修改已存在的檔案。
  • 可以讓某個(gè)數(shù)據(jù)夾處于只能上傳的模式。

15.4.1 安裝 SmbFTPD

您可以到 http://www.twbsd.org/cht/smbftpd/index.php 下載最新版的 SmbFTPD,下載 SmbFTPD 后,解壓縮后進(jìn)行該目錄。接著您就可以執(zhí)行下列指令進(jìn)行編譯:

# ./configure
# make

configure 指令會(huì)偵測(cè)您的系統(tǒng),并依您的環(huán)境以決定編譯時(shí)所要加入的功能。例如,是否支持 IPv6、SSL/TLS、TCP Wrapper、或是 PAM 等。

編譯完成后,如果您支持 SSL/TLS,您必須有 SSL 憑證。如果您有安裝 Apache+SSL,您也可以和 Apache 共享它的憑證。如果您要產(chǎn)生憑證,您必須再執(zhí)行下列指令以產(chǎn)生憑證。

# make cert

執(zhí)行上述指令后,我們會(huì)先產(chǎn)生一個(gè)根憑證,再產(chǎn)生 FTP 所使用的憑證,接著再用我們產(chǎn)生的根憑證為 FTP 用的憑證簽章。全部都完成后,我們就可以使用下列指令來安裝

# make install

和 FreeBSD 內(nèi)建的 FTP 服務(wù)器一樣,SmbFTPD 可以使用 inetd 或是獨(dú)立的 Daemon 方式啟動(dòng)。如果您要使用 inetd 的方式啟動(dòng) SmbFTPD,請(qǐng)修改 /etc/inetd.conf 并加入下列內(nèi)容:

ftp     stream  tcp     nowait  root    /usr/local/sbin/smbftpd smbftpd 

接下來請(qǐng)執(zhí)行下列指令重跑 inetd:

# kill -1 `cat /var/run/inetd.pid`

如果您要以獨(dú)立的 Daemon 方式啟動(dòng) SmbFTPD,請(qǐng)先在 /etc/rc.conf 加入下列這一行,以在開機(jī)時(shí)啟動(dòng) SmbFTPD:

smbftpd_enable="Yes"

接下來就可以使用下列指令看看是否能啟動(dòng) SmbFTPD:

# /usr/local/etc/rc.d/smbftpd.sh start

如果您要停止 SmbFTPD:

# /usr/local/etc/rc.d/smbftpd.sh stop

SmbFTPD 是由 FreeBSD 的 FTP Deamon 改寫而成,所以有些設(shè)定和 FreeBSD 的 FTPD 相同。例如登入前及登入后的訊息可以經(jīng)由設(shè)定 /etc/ftpwelcome/etc/ftpmotd 這二個(gè)檔來達(dá)成。另外,您也可以設(shè)定 /etc/hosts.allow  以限制聯(lián)機(jī)來源。不同的是,不管是以獨(dú)立的 Daemon 或是 inetd 方式啟動(dòng) SmbFTPD,都可以使用 hosts.allow 的功能。

另外,SmbFTPD 將所有設(shè)定項(xiàng)目放在 /usr/local/etc/smbftpd/smbftpd.conf 中,您可以經(jīng)由修改它來客制化您的服務(wù)器。經(jīng)由修改 smbftpd.conf,您可以設(shè)定使用不同的連接埠、更改服務(wù)器名稱、設(shè)定最大聯(lián)機(jī)數(shù)目、目錄權(quán)限、流量控制、SSL 設(shè)定等等。

下列幾個(gè)小節(jié)中,我們將介紹一些比較特別的設(shè)定,關(guān)于更多選項(xiàng)及其詳細(xì)的設(shè)定請(qǐng)參考 smbftpd.conf 一章中的說明。

15.4.2 限制登入賬號(hào)

我們可以設(shè)定限制某些賬號(hào)不可以使用 FTP 登入。使用者在登入 FTP 服務(wù)器時(shí),除了賬號(hào)密碼要符合外,還有幾個(gè)規(guī)則會(huì)拒絕該賬號(hào)登入:

  • 如果 /var/run/nologin 存在,則所有賬號(hào)都不可以登入。這個(gè)檔案可以用來暫時(shí)停止 FTP 服務(wù)。
  • 如果 smbftpd.conf 中 EmptyPasswdLogin 沒有設(shè)為 Yes,則使用者一定要有密碼才能登入,沒有密碼的使用者無法登入。
  • 使用者名稱及群組不可以出現(xiàn)在 smbftpd.conf 中的 NoLoginList 中。
  • 如果 smbftpd.conf 中 RequireValidShell 設(shè)為 Yes,則使用者所使用的 shell 必須要時(shí)合法的 shell。合法的 shell 會(huì)被定義在 /etc/shells 中。

我們可以看到在 smbftpd.conf 中有三個(gè)選項(xiàng)控制了使用者可以登入與否:EmptyPasswdLogin、NoLoginList、RequrieValidShell。 其中,NoLoginList 這個(gè)項(xiàng)目可以讓我們?cè)O(shè)定不允許登入的使用者清單。

我們?cè)?a target="_blank" href="http://www.dbjr.com.cn" class="UBBWordLink">安裝了 SmbFTPD 后,即限制了某些系統(tǒng)使用者登入。我們來看一下該選項(xiàng)的內(nèi)容:

NoLoginList root,toor,daemon,operator,lp,bin,tty,shutdown,kmem,...

這個(gè)項(xiàng)目中,每個(gè)使用者或群組都是使用逗號(hào)分開。如果一個(gè)項(xiàng)目的開頭是 "@" 表示群組名稱。例如 @guest 表示群組 guest 不可以登入系統(tǒng)。

15.4.3 限制上下傳頻寬

SmbFTPD 支持針對(duì)不同的使用者設(shè)定不同的上下傳頻寬限制。smbftpd.conf 中的 MaxDownloadRate 及 MaxUploadRate 控制了使用者上下傳的頻寬。

這二個(gè)選項(xiàng)可以重復(fù)設(shè)定多次,以支持多個(gè)使用者及群組。MaxDownloadRate 及 MaxUploadRate 的格式如下:

MaxDownloadRate @group|user rate

其格式就是在選項(xiàng)后面加上群組或使用者名稱,最后再加上頻寬的限制,頻寬是以 KB/s 為單位。如果是群組名稱,其開頭必須加上 "@"。我們來看看下列的設(shè)定范例:

MaxDownloadRate @group100 100
MaxDownloadRate ftp 20
MaxDownloadRate @friends 1000

我們可以看到目前有三個(gè)控制下傳頻寬的項(xiàng)目。第一個(gè)項(xiàng)目表示群組為 group100 的使用者,其下載頻寬為 100 KB/s。第二個(gè)項(xiàng)目表示使用者 ftp 的下載頻寬為 20 KB/s。如果您支持匿名的 FTP,匿名 FTP 使用者對(duì)于系統(tǒng)而言實(shí)質(zhì)賬號(hào)是 ftp,您只要針對(duì) ftp 使用者做設(shè)定即可套用在匿名使用者 anonymous 及 ftp 上。

15.4.4 匿名的 FTP

我們平常在登入 FreeBSD 的 FTP 站臺(tái)時(shí),可以使用 anonymous 或是 ftp 這二個(gè)使用者登入,而且在登入時(shí),任何密碼都可以通過。這種可以使用 anonymous 登入的 FTP 就叫作匿名 FTP。anonymous 及 ftp 這二個(gè)賬號(hào)是預(yù)設(shè)的匿名賬號(hào),當(dāng)使用者以匿名登入時(shí),服務(wù)器會(huì)將匿名賬號(hào)對(duì)映到系統(tǒng)內(nèi)的真實(shí)使用者 ftp。所以,如果您要提供匿名的 FTP 服務(wù),必須先增加一個(gè)真實(shí)的使用者賬號(hào) ftp。

在新增了使用者 ftp 之后,我們還必須設(shè)定一下 smbftpd.conf 中關(guān)于匿名登入的項(xiàng)目。在 smbftpd 中,關(guān)于匿名 FTP 的項(xiàng)目有:AnonymousLogin、AnonymousOnly。

AnonymousLogin 控制了是否要啟用匿名使用者登入的功能。如果 AnonymousLogin 設(shè)為 Yes,表示可以使用匿名使用者登入。另外,AnonymousOnly 控制了在允許匿名使用者登入后,是否還要允許一般使用者登入。如果 AnonymousOnly 設(shè)為 Yes,則只有匿名使用者才可以登入,一般使用者都不可以登入哦。

請(qǐng)注意,雖然匿名使用者登入的賬號(hào)有二個(gè):anonymous 及 ftp。但我們不管是在設(shè)定流量、目錄權(quán)限時(shí),都只要設(shè)定真實(shí)使用者 "ftp" 賬號(hào)即可。

15.5 SmbFTPD 的目錄權(quán)限控制

15.5.1 何謂 SMB Mode

SmbFTPD 和一般的 FTP 服務(wù)器最大的不同在于它的目錄權(quán)限管理方式。SmbFTPD 有二種目錄權(quán)限管理方式:一般模式及 SMB 模式。一般模式下,SmbFTPD 的行為就和一般的 FTP 服務(wù)器一樣,使用者登入后可以看到所有的系統(tǒng)目錄。

SMB 模式比較特別,它會(huì)依照您的設(shè)定產(chǎn)生一個(gè)虛擬的根目錄,在根目錄中,只會(huì)顯示該使用者可以使用的資料夾。如果您使用過 Samba,SmbFTPD 的 SMB 模式就和 Samba 的共享數(shù)據(jù)夾設(shè)定類似。例如,您可以設(shè)定一個(gè)數(shù)據(jù)夾名為「音樂」,它的真實(shí)目錄是在 /home/mp3,并可以設(shè)定哪些使用者可以存取此數(shù)據(jù)夾、只讀或可擦寫、是否可以下載檔案等等。

以下列數(shù)據(jù)夾設(shè)定文件為例:

[音樂]
path = /home/mp3
rw = alex
ro = @guest, john
disable_download = ftp

[upload]
path = /var/ftp
rw = ftp,alex
disable_ls = ftp
disable_download = ftp

上述的范例中,我們有二個(gè)共享數(shù)據(jù)夾:「音樂」及「upload」。其中,path 為該數(shù)據(jù)夾位于系統(tǒng)中的真實(shí)目錄。rw 為具有讀寫權(quán)限的使用者 清單,而 ro 為只讀的使用者清單。在上述的設(shè)定下,使用者 alex 登入后,如果他在根目錄中下「ls」指令,他將看到下列內(nèi)容:

ftp> ls /
200 PORT command successful.
150 Opening ASCII mode data connection for 'file list'.
dr-x------ 1 root users 512  Feb  3 21:40 音樂
dr-x------ 1 root users 2048 Aug 28 03:18 upload
226 Transfer complete.
ftp>

我們可以看到使用者 alex 登入后,他所看到的根目錄只有二個(gè)數(shù)據(jù)夾:「音樂」及「upload」。他的活動(dòng)范圍也將只限于這二個(gè)數(shù)據(jù)夾,而無法進(jìn)入系統(tǒng)中的其它目錄。也就是說,如果 alex 輸入指令「cd /upload」則會(huì)進(jìn)入「upload」這個(gè)數(shù)據(jù)夾中 (在系統(tǒng)中的真正路徑是 /var/ftp)。

SMB 模式的好處在于您可以將不同目錄集中設(shè)定成位于虛擬的根目錄中,并針對(duì)這些目錄設(shè)定不同使用者的權(quán)限。使用者權(quán)限可以是只讀、可擦寫、禁止下載檔案、禁止看到目錄中的檔案內(nèi)容,您甚至可以設(shè)定其一個(gè)資料夾為隱藏,「ls」時(shí)看不到該目錄,但卻可以「cd」進(jìn)入目錄中。

SMB 模式是一個(gè)比較有彈性的目錄權(quán)限管理方式,您可以經(jīng)由設(shè)定 SMB 模式達(dá)到多種不同的目錄權(quán)限控制。

我們還可以讓某些使用者使用一般模式,某些使用者使用 SMB 模式。這些設(shè)定十分容易,我們將在下一小節(jié)中做說明。

15.5.2 如何設(shè)定 SMB Mode

smbftpd.conf 中有三個(gè)選項(xiàng)和 SMB 模式的目錄權(quán)限管理有關(guān):DefaultMode、ExceptionList、ShareConfPath。

DefaultMode 設(shè)定了預(yù)設(shè)的目錄權(quán)限管理模式為何,而 ExecptionList 為例外的清單。如果 DefaultMode 為 Normal,而 ExceptionList 中有使用者 alex,則除了 alex 會(huì)使用 SMB 模式外,其它使用者都會(huì)使用一般模式。反之,如果 DefaultMode 為 SMB,則 ExceptionList 中的使用者或群組將使用一般模式,其它的使用者會(huì)使用 SMB 模式的目錄權(quán)限管理方式。

ShareConfPath 設(shè)定了共享數(shù)據(jù)夾設(shè)定文件的位置,預(yù)設(shè)為 /usr/local/etc/smbftpd/smbftpd_share.conf。每一個(gè)以中括號(hào)括起來的區(qū)段都是一個(gè)數(shù)據(jù)夾的設(shè)定,下列即為數(shù)據(jù)夾設(shè)定的范例:

[音樂]
path = /home/mp3
rw = alex
ro = @guest, john
disable_download = ftp

每一個(gè)資料夾的區(qū)段都有下列這幾個(gè)關(guān)鍵詞可用:

  • path:設(shè)定數(shù)據(jù)夾的實(shí)際路徑。
  • rw:設(shè)定具有讀寫權(quán)限的使用者及群組。
  • ro:設(shè)定只能進(jìn)行只讀的使用者及群組。
  • disable_download:設(shè)定禁止使用下載功能的使用者及群組。
  • disable_ls:設(shè)定在數(shù)據(jù)夾中 ls 看不到數(shù)據(jù)夾內(nèi)容的使用者及群組。
  • disable_modify:設(shè)定不可以修改此資料夾中已經(jīng)在的檔案之使用者及群組。在此項(xiàng)目中的使用者或群組無法更名、刪除、修改已存在的檔案或目錄,只能上傳及建立新目錄。但前提是使用者必須具有 rw 的權(quán)限。
  • browseable:設(shè)定此數(shù)據(jù)夾在列出根目錄的所有數(shù)據(jù)夾時(shí)是否要顯示。這個(gè)項(xiàng)目只能設(shè)定 Yes 或 No,如果設(shè)定為 No,則使用者 「ls /」時(shí)將看不到此數(shù)據(jù)夾,但可以使用「cd」指令進(jìn)入該數(shù)據(jù)夾內(nèi)。

除了 path 及 browseable 外,每一個(gè)項(xiàng)目可以加上使用者及群組的設(shè)定。如果是群組名稱,其開頭必須加上 "@" 符號(hào)。例如,上述范例中,@guest 表示 guest 群組。

您必須要特別注意的是,當(dāng)您設(shè)定了使用者對(duì)于數(shù)據(jù)夾的權(quán)限是只讀或可擦寫后,該使用者或群組在系統(tǒng)中的 UNIX 權(quán)限也必須要符合設(shè)定才會(huì)有作用。例如,如果一個(gè)數(shù)據(jù)夾對(duì)使用者 alex 設(shè)定為可擦寫,您必須確定 alex 對(duì)于數(shù)據(jù)夾在系統(tǒng)中的權(quán)限是可擦寫,如果不是,您必須使用 chmod 的指令改變?cè)撃夸浀膶傩浴?/p>

另外,我們有一個(gè)特別的數(shù)據(jù)夾名稱「homes」,如果有 homes 這個(gè)數(shù)據(jù)夾的設(shè)定,則使用者登入后會(huì)看到一個(gè)數(shù)據(jù)夾名為「home」,該數(shù)據(jù)夾即為使用者的家目錄。家目錄預(yù)設(shè)是該使用者具有讀寫的權(quán)限,所以您無法設(shè)定 rw、ro 這二個(gè)參數(shù)。而且,您也無法設(shè)定 path,使用者家目錄的所在路徑是由系統(tǒng)密碼文件中的設(shè)定而決定。您只能設(shè)定 browseable、disable_ls、disable_modify、及 disable_download。

如果您的 SmbFTPD 支持匿名使用者,匿名使用者 anonymous 及 ftp 會(huì)被對(duì)映到真實(shí)的使用者 ftp,您只要針對(duì) ftp 使用者做設(shè)定即會(huì)套用在匿名使用者上。

在修改了 smbftpd_share.conf 后,您必須重新啟動(dòng) SmbFTPD 后設(shè)定才會(huì)生效。

15.5.3 設(shè)定范例

我們列舉幾個(gè)設(shè)定的范例讓您參考。

范例一:

我們?cè)O(shè)定一個(gè)數(shù)據(jù)夾名為「public」,其真實(shí)路徑是 /home/public。只有 wheel 群組的使用者具有讀寫權(quán)限,而匿名使用者及 guest 群組只具有只讀的權(quán)限。

[public]
path = /home/public
rw = @wheel
ro = @guest, ftp

范例二:

我們?cè)O(shè)定一個(gè)數(shù)據(jù)夾名為「private」,其真實(shí)路徑是 /home/movie。只有使用者 alex 具有讀寫的權(quán)限,而 friend 群組只能只讀,另外,guest 群組的使用者無法下載該數(shù)據(jù)夾中的任何檔案。

[public]
path = /home/movie
rw = alex
ro = @guest, @friend
disable_download = @guest

范例三:

我們?cè)O(shè)定一個(gè)數(shù)據(jù)夾名為「upload」,其真實(shí)路徑是 /var/ftp/pub。只有使用者 alex 具有完整的讀寫權(quán)限,匿名使用者無法下載檔案、看不到目錄中的檔案、無法修改目錄中的檔案、只能上傳檔案。

[upload]
path = /var/ftp/pub
rw = alex,ftp
disable_download = ftp
disable_modify = ftp
disable_ls = ftp

15.5.4 chroot

我們除了可以使用 SMB 模式以創(chuàng)造出虛擬的根目錄外,SmbFTPD 還支持 chroot 的功能。

所謂的 chroot 就是將某一個(gè)目錄變成使用者看到的根目錄。例如,我們讓使用者 alex 登入后,將 /home/alex 變成根目錄。則 alex 在使用指令「cd /」時(shí),還是會(huì)停留在 /home/alex。如果他使用指令「pwd」查看目前所在路徑,則會(huì)顯示 /。如此一來,我們就可以確保使用者不會(huì)到處亂跑,進(jìn)入一些不該進(jìn)入的地方。這個(gè)功能對(duì)于提升 FTP 的安全性有莫大的助益。

當(dāng)一個(gè)使用者同時(shí)屬于 SMB 模式及 chroot 時(shí),我們會(huì)使用 chroot 而非 SMB 模式。

設(shè)定 chroot 的方法很簡單,只要修改 smbftpd.conf,將使用者加入 ChrootSet 即可。ChrootSet 選項(xiàng)的設(shè)定是以使用者、群組的基礎(chǔ),我們可以同時(shí)設(shè)定多個(gè) ChrootSet。以下是幾個(gè)設(shè)定范例:

ChrootSet ftp /var/spool/ftp
ChrootSet @ftpgroup ~
ChrootSet @webusers ~/public_html

上述范例中的第一行是設(shè)定所有匿名的使用者都以 /var/spool/ftp 為根目錄。第二行表示只要是群組為 ftpgroup 的使用者都以自己的家目錄為根目錄。而第三行表示只要是群組為 webusers 的使用者都以自己家目錄下的 public_html 為根目錄。

在 ChrootSet 的選項(xiàng)中,群組名稱開頭都會(huì)有 "@" 符號(hào)。而目錄名稱 "~" 表示是使用者的家目錄。

另外,如果只有一個(gè) "@" 符號(hào),表示所有使用者。下列范例即表示所有的使用者都以自己的家目錄為根目錄:

ChrootSet @ ~

只要我們善用 chroot 的功能,就可以加強(qiáng)保護(hù)系統(tǒng)其它目錄,讓沒有權(quán)利的使用者不可以進(jìn)入系統(tǒng)目錄中。

15.6 SSL/TLS 聯(lián)機(jī)加密

15.6.1 設(shè)定啟用 SSL/TLS

當(dāng)我們使用網(wǎng)絡(luò)服務(wù)時(shí),經(jīng)由網(wǎng)絡(luò)傳送的數(shù)據(jù)都有可能被他人攔截竊聽。簡單的說,當(dāng)您從網(wǎng)頁上輸入賬號(hào)密碼時(shí),如果有人在您所使用的計(jì)算機(jī)和服務(wù)器之間攔截,就可以輕易的從網(wǎng)絡(luò)封包中竊聽到您所輸入的數(shù)據(jù)。

SSL 的加密方式是由服務(wù)器端提供了一組加解密用的金鑰,在服務(wù)器端所使用的是私密金鑰 (Private key),而客戶端所使用的是公開金鑰 (Public key)。在聯(lián)機(jī)建立后,HTTP 服務(wù)器會(huì)將公開金鑰傳給客戶端使用。公開金鑰加密過的資料只能由私密金鑰解密,在客戶端要送出數(shù)據(jù)之前,會(huì)先使用公開金鑰進(jìn)行加密的動(dòng)作,而服務(wù)器收到數(shù)據(jù)后,會(huì)使用私密金鑰進(jìn)行解密。

如果您的系統(tǒng)安裝 OpenSSL,則 SmbFTPD 安裝后即支持 SSL 的功能。在下列 configure 的訊息中,「Check SSL support」為「YES」表示有支持 SSL。

#
		./configure
opie..................  [YES]
libutil.h.............  [YES]
O_EXLOCK..............  [YES]
FD_COPY...............  [YES]
TCP Wrapper...........  [YES]
Have printflike.......  [YES]
pw_expire.............  [YES]
bsd glob..............  [YES]
MD5File...............  [YES]
user_from_uid.........  [YES]
Shadow passowd........  [NO]
Linux sendfile........  [NO]
FreeBSD sendfile......  [YES]
Use PAM...............  [YES]
Check setproctitle....  [YES]
Check fgetln..........  [YES]
Check sin_len.........  [YES]
Check IPv6 support....  [YES]
Check SSL support.....  [YES]

Finished configure.

在執(zhí)行完 configure 及 make 之后,即完成編譯。在安裝前,我們會(huì)執(zhí)行「make cert」以產(chǎn)生 SSL 憑證。最后「make install」會(huì)將 SSL 憑證安裝在 /usr/local/etc/smbftpd/ 目錄中。

在啟動(dòng) SmbFTPD 之前,您必須先設(shè)定 smbftpd.conf 以啟用 SSL 功能。smbftpd.conf 中所有 SSL 相關(guān)的選項(xiàng)說明請(qǐng)參考下一章的說明,我們這里只說明幾個(gè)常用的項(xiàng)目。

首先是「SecurityPolicy」,這個(gè)項(xiàng)目用來控制是否要啟用 SSL 的功能?!竤ecure」 為只允許使用 SSL 聯(lián)機(jī),「nosecure」 為不使用 SSL 聯(lián)機(jī),「both」 為二種聯(lián)機(jī)都支持,預(yù)設(shè)為 「both」。

「NormalUserMustSecure」用來控制是否要強(qiáng)制一般使用者使用 SSL 聯(lián)機(jī)。因?yàn)?SSL 主要是用來保護(hù)密碼、個(gè)人數(shù)據(jù),如果您強(qiáng)制將「NormalUserMustSecure」設(shè)為 Yes,則一般使用者一定要使用 SSL 才能登入。

「AnonymDisableSecure」用以控制匿名使用者是否要使用 SSL。當(dāng) AnonymDisableSecure 設(shè)為「Yes」時(shí),系統(tǒng)將不允許匿名的使用者使用加密的聯(lián)機(jī)。既然 SSL/TLS 的目的是避免使用者數(shù)據(jù)在網(wǎng)絡(luò)上流傳,而匿名使用者是任何人都可以使用,保護(hù)匿名使用者的數(shù)據(jù)似乎比較不需要。所以您可以將這個(gè)選項(xiàng)設(shè)為「No」,以避免匿名使用者也使用加密聯(lián)機(jī)登入,徒然耗費(fèi) CPU 的資源。

15.6.2 安裝支持 SSL/TLS 的客戶端軟件

在支持 SSL/TLS 的客戶端軟件方面,如果您使用 Windows,建議您使用 Filezilla (http://filezilla.sourceforge.net/)。Filezilla 支持 SSL 及 TLS,而且 FTP client 的功能相當(dāng)完整。它是一套免費(fèi)、持續(xù)更新中的軟件。

如果您使用 FreeBSD,可以使用下列指令安裝 ftp-tls:

#
		cd /usr/ports/ftp/ftp-tls
#
		make install

接下來您就可以使用下列指令連到您的 FTP Server 了:

#
		/usr/bin/ftp-tls 192.168.0.1

15.7 smbftpd.conf

15.7.1 系統(tǒng)區(qū)段

ServerName 定義服務(wù)器名稱

這個(gè)選項(xiàng)可以用來定義您的服務(wù)器名稱,當(dāng)使用者登入后將看到:

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

如果您沒有設(shè)定 ServerName,則 SmbFTPD 將顯示系統(tǒng)的 Hostname。

ServerName "Server Name"

ListenOnAddress 設(shè)定要提供服務(wù)的 IP

當(dāng)使用 -D 模式 (standalone) 啟動(dòng) FTP 時(shí),您可以指定只接受連到這個(gè)地址的聯(lián)機(jī)。例如,假設(shè)您有二張網(wǎng)絡(luò)卡,一個(gè) IP 是 172.16.1.1,另一個(gè)是 61.62.63.64,您可以設(shè)定 ListenOnAddress 172.16.1.1 以表示只接受連到這個(gè) IP 的聯(lián)機(jī)。

如果您要接受所有聯(lián)機(jī),則請(qǐng)移除這個(gè)選項(xiàng)。

ListenOnAddress 192.168.0.1

Port 設(shè)定連接埠

當(dāng)使用 -D 模式 (standalone) 啟動(dòng) FTP 時(shí),您可以指定 SmbFTPD 所要使用的 Port。一般的 FTP port 為 21,您也可以使用 ftp 這個(gè)字符串表示,系統(tǒng)會(huì)自動(dòng)去 /etc/service 中查到相對(duì)的 port。

Port 21

Umask 設(shè)定新建檔案的權(quán)限

當(dāng)使用者建立檔案或目錄時(shí),所要使用的 umask。例如,您想要讓使用者新增檔案時(shí)的權(quán)限為 644,則設(shè) umask 為 022。詳細(xì)關(guān)于 umask 的設(shè)定請(qǐng) man 2 umask。這個(gè)選項(xiàng)的值必須為 8 進(jìn)位的數(shù)字,如 022、027 等。

Umask 022

PidFile 設(shè)定存放 Process ID 的檔案

這是您要存放 smbftpd pid 檔的地方,當(dāng)使用 daemon 模式時(shí),我們會(huì)將 smbftpd 的 process id 寫到這個(gè)檔案中。

PidFile /var/run/smbftpd.pid

DebugMode 啟用除錯(cuò)模式

是否要用 syslog 記錄更多除錯(cuò)用的訊息。這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

DebugMode No

LogCommand 記錄使用者執(zhí)行過的指令

是否要使用 syslog 的 LOG_FTP 記錄使用者執(zhí)行過的 FTP 指令。如果您將這個(gè)指令設(shè)為 Yes, 則使用者所執(zhí)行的 retrieve(get)、store(put)、append、delete、mkdir、rmdir、rename 等都會(huì)被記錄下來,并用記錄該指令的文件名參數(shù)。在 FreeBSD 中,syslogd 會(huì)將這些記錄在 /var/log/xferlog 中。 這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

LogCommand No

DoWtmpLog 記錄登入記錄

是否要將 ftp 聯(lián)機(jī)記錄在 /var/log/wtmp 中。這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

DoWtmpLog No

DisableEPSV 停用指令 EPSV

是否要停用 EPSV 這個(gè)指令。如果您的服務(wù)器位于一些舊的防火墻后面,而一直無法聯(lián)機(jī),您可以設(shè)著停用 EPSV。這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

DisableEPSV No

ShowSymlink 是否要顯示符號(hào)連結(jié)文件

當(dāng) ShowSymlink 為 No ,我們?cè)谑褂谜?ls 時(shí)不會(huì)列出 symbolic link 的檔案或目錄。這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

ShowSymlink No

RestrictedPorts 禁止使用小于 1024 的埠號(hào)

當(dāng)這個(gè)選項(xiàng)設(shè)為 No 時(shí),smbftpd 將不檢查限制使用者使用的連結(jié)埠。我們預(yù)設(shè)限制使用者在使用 PORT 命令時(shí),只能使用 unprivileged ports (> 1024),不過這樣將違反 FTP protocol。

這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

RestrictedPorts Yes

RestrictedDataPorts 限制數(shù)據(jù)聯(lián)機(jī)所使用的端口號(hào)

這個(gè)指令設(shè)成 NO 時(shí),smbftpd 將只使用 port 定義范圍在 IP_PORTRANGE_DEFAULT 的 port,而非 IP_PORTRANGE_HIGH 的 port。這個(gè)選項(xiàng)對(duì)于某些特殊的防火墻設(shè)定蠻有用的。請(qǐng) man 4 ip 以得到更多信息。

這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

RestrictedDataPorts Yes

15.7.2 使用者登入控制

MaxConnection 設(shè)定最多聯(lián)機(jī)數(shù)目

這個(gè)選項(xiàng)可以讓您控制最多同時(shí)聯(lián)機(jī)的數(shù)量。如果 MaxConnection 大于 0,則在聯(lián)機(jī)數(shù)目到達(dá)您所設(shè)定的值時(shí),使用者就無法再登入。如果值為 0,則表示不做任何限制。

MaxConnection 30

RequireValidShell 登入的使用者是否要有合法 Sheel

當(dāng) RequireValidShell 為 Yes 時(shí),使用者必須有合法的 shell 才可以登入。合法的 shell 是以 getusershell(3) 這個(gè)函數(shù)取得,大多數(shù)的操作系統(tǒng)中,合法的 shell 都被定義在 /etc/shells 中。這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

RequireValidShell No

EmptyPasswdLogin 是否允許空白密碼

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

這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

EmptyPasswdLogin No

NoLoginList 設(shè)定禁止登入的使用者清單

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

NoLoginList 的參數(shù)可以是使用者或是群組,如果是設(shè)定群組,請(qǐng)?jiān)谌航M名稱前加上 @。當(dāng)要設(shè)定多個(gè)使用者或群組時(shí),請(qǐng)使用逗號(hào) , 分開。 匿名使用者「ftp」及「anonumous」會(huì)被對(duì)映到真實(shí)的使用者「ftp」,如果您要設(shè)定的是匿名的使用者「ftp」及「anonymous」,請(qǐng)使用「ftp」這個(gè)使用者。

例如:

NoLoginList user1,@group1,user2

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

NoLoginList user1,user2,@group1,@group2

TimeOut 設(shè)定聯(lián)機(jī)逾時(shí)秒數(shù)

當(dāng)使用者超過這個(gè)時(shí)間沒有任何動(dòng)作時(shí),則中斷聯(lián)機(jī)。單位為秒。

TimeOut 900

MaxTimeOut 設(shè)定最大聯(lián)機(jī)逾時(shí)秒數(shù)

使用者可以自行設(shè)定 timeout 的時(shí)間,但我們可以在這里設(shè)定最長 timeout 的時(shí)間。預(yù)設(shè)是 2 小時(shí)。

MaxTimeOut 7200

15.7.3 FTP 目錄權(quán)限控制

DefaultMode 預(yù)設(shè)的權(quán)限控制模式

SmbFTPD 有二種模式,一個(gè)是 SMB mode,另一個(gè)是 Normal mode。在 SMB 模式中,SmbFTPD 會(huì)使用類似 Samba 的共享數(shù)據(jù)夾權(quán)限設(shè)定,系統(tǒng)會(huì)讀取 ShareConfPath 中的使用者目錄權(quán)限控制來設(shè)定他對(duì)于數(shù)據(jù)夾的存取權(quán)限。而 Normal 模式中,SmbFTPD 就像一般 FTP Daemon 一樣。

這個(gè)選項(xiàng)的值可以是 Normal 或 SMB,預(yù)設(shè)為 Normal。

DefaultMode Normal

ExceptionList 設(shè)定不使用預(yù)設(shè)權(quán)限控制模式的使用者

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

ExceptionList 的參數(shù)可以是使用者或群組,如果是群組的話,請(qǐng)?jiān)谌航M名稱前加上 @。例如:

ExceptionList user1,user2,@group1,@group2

ShareConfPath 設(shè)定數(shù)據(jù)夾權(quán)限設(shè)定文件位置

設(shè)定數(shù)據(jù)夾設(shè)定的 smbftpd_share.conf 所在路徑。如果您設(shè)定 DefaultMode 為 SMB,或是 DefaultMode 為 Normal 但有 ExceptionList,則一定要指定 smbftpd_share.conf 的所在路徑。

我們會(huì)檢查 smbftpd_share.conf 中的下列關(guān)鍵詞設(shè)定:

  • path:數(shù)據(jù)夾的路徑。
  • rw:可以有寫入權(quán)限的使用者或群組。
  • ro:可以有只讀權(quán)限的使用者或群組。
  • browseable:資料夾是否要設(shè)為隱藏。若設(shè)為 no,則使用者在根目錄 ls 時(shí),將看不到該數(shù)據(jù)夾,但依然可以 cd 到該數(shù)據(jù)夾中。
  • disable_download:設(shè)定不可以下載的使用者。若使用者可以讀取該資料夾內(nèi)容,您還可以設(shè)定讓它無法執(zhí)行下載的動(dòng)作。
  • disable_ls:設(shè)定在資料夾中執(zhí)行 ls 時(shí),不可以看到資料夾內(nèi)容的使用者及群組。
  • disable_modify:設(shè)定不可以修改該資料夾中的檔案或目錄的使用者及群組。如果該使用者具有讀寫的權(quán)限,但又在此列表中,則該使用者只能上傳檔案或是建立新的目錄,而無法執(zhí)行 rename、delete、rmdir、chmod 等指令。

范例一:

這個(gè)范例是有一個(gè)數(shù)據(jù)夾名為 public,其所在目錄為 /home/public,在 samba 群組中的使用者可以有只讀的權(quán)限,而 root 可以有寫入的權(quán)限。

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

范例二:

數(shù)據(jù)夾名稱為 private,只有 wheel 群組的人可以寫入,而且這個(gè)數(shù)據(jù)夾是隱藏的,wheel 群組的人登入后使用 ls 看不到這個(gè)資料夾,但是可以 cd 進(jìn)去資料夾中。

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

范例三:

數(shù)據(jù)夾名稱為 upload, 使用者「ftp」及「anonymous」只能上傳檔案或建立新目錄,但是無法看到該數(shù)據(jù)夾中的內(nèi)容,也不可以下載或是修改現(xiàn)有的檔案。但在使用者「wheel」群組中的使用者可以具有全部的讀寫權(quán)限。

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

請(qǐng)注意,匿名使用者「ftp」及「anonumous」會(huì)被對(duì)映到真實(shí)的使用者「ftp」,如果您要設(shè)定的是匿名的使用者「ftp」及「anonymous」,請(qǐng)使用「ftp」這個(gè)使用者。

如果您設(shè)定某個(gè)使用者對(duì)于某個(gè)數(shù)據(jù)夾有寫入的權(quán)限,但該使用者卻無法寫入,因?yàn)槌?SmbFTPD 的權(quán)限控制外,您還必須對(duì)數(shù)據(jù)夾的 UNIX 權(quán)限做一些設(shè)定,讓該數(shù)據(jù)夾的 UNIX 權(quán)限允許該使用者寫入。

ShareConfPath /some/where/smbftpd_share.conf

ChrootSet 設(shè)定使用 chroot 的使用者

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

這個(gè)參數(shù)的第一個(gè)字段是使用者名稱或群組,如果在名稱之前加上 @,表示是群組,所有在該群組中的使用者都會(huì)被套用到群組的設(shè)定中。而另一個(gè)特別的用法是只有一個(gè) @ 符號(hào),表示所有使用者都會(huì)被套用到這個(gè)設(shè)定中。

請(qǐng)注意,被設(shè)定為 chroot 的使用者就算 DefaultMode 被歸類為 SMB mdoe 也一定會(huì)被強(qiáng)制使用 Normal mode。

這里有幾個(gè)設(shè)定的范例:

范例一:

使用者 ftp 登入時(shí),將它 chroot 到 /var/spool/ftp

ChrootSet ftp /var/spool/ftp

范例二:

所有群組為 ftpgroup 的使用者都使用他們的家目錄 (home) 做為根目錄。例如,使用者 alex 的家目錄為 /home/alex,則其根目錄為 /home/alex,而 jack 則是 /home/jack。我們以 ~ 符號(hào)表示家目錄,系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)換為真正的路徑。

ChrootSet @ftpgroup ~

范例三:

所有 webusers 這個(gè)群組的人都以其家目錄下的 public_html 為根目錄。這對(duì)于您要開放 FTP 給某些使用者,但又不想讓他們?nèi)ゴ嫒?a target="_blank" href="http://www.dbjr.com.cn" class="UBBWordLink">系統(tǒng)中其它路徑時(shí)十分有用。

ChrootSet @webusers ~/public_html

范例四:

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

ChrootSet @ ~

ChrootSet @webusers ~/public_html
ChrootSet @ ~

15.7.4 匿名使用者控制

AnonymousLogin 是否支持匿名使用者登入

是否允許匿名使用者登入。匿名的使用者賬號(hào)為 ftp 或 anonymous。如果您要允許匿名使用者登入,您必須先新增一個(gè) ftp 的系統(tǒng)使用者。

這個(gè)選項(xiàng)的值可以是 Yes 或 No,默認(rèn)值為 No。

AnonymousLogin No

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

是否只允許匿名使用者登入。若設(shè)為 Yes,則一般使用者無法登入。

AnonymousOnly No

15.7.5 檔案?jìng)鬏斂刂?/font>

TransferLog 設(shè)定上下傳記錄文件位置

這個(gè)選項(xiàng)用來設(shè)定使用者上傳及下載的檔案記錄。您可以設(shè)定當(dāng)使用者下載或上傳檔案時(shí),將它所上傳或下載的檔名、傳輸時(shí)間、大小等數(shù)據(jù)寫在這個(gè)檔案中。

TransferLog /var/run/smbftpd.log

MaxDownloadRate 設(shè)定最大下傳速度

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

這個(gè)選項(xiàng)的第一個(gè)參數(shù)可以是使用者或群組,如果是群組,則名稱開頭必須加上 @。而若只有一個(gè) @ 符號(hào),表示所有使用者都要套用到該規(guī)則。

MaxDownloadRate @group100 100
MaxDownloadRate ftp 20
MaxDownloadRate @friends 1000

MaxUploadRate 設(shè)定最大上傳速度

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

這個(gè)選項(xiàng)的第一個(gè)參數(shù)可以是使用者或群組,如果是群組,則名稱開頭必須加上 @。而若只有一個(gè) @ 符號(hào),表示所有使用者都要套用到該規(guī)則。

MaxUploadRate @group100 100
MaxUploadRate ftp 20
MaxUploadRate @friends 1000

15.7.6 SSL/TLS 控制

SecurityPolicy 設(shè)定是否使用 SSL/TLS

這個(gè)選項(xiàng)可以讓您設(shè)定是否要啟用 SSL/TLS 加密。您可以 強(qiáng)制一定要使用加密聯(lián)機(jī),或是關(guān)閉加密功能,或是同時(shí)允許加密及非加密模式。各種模式的說明如下:

  • secure:只允許加密聯(lián)機(jī)。
  • nosecure:只允許非加密聯(lián)機(jī)。
  • both:同時(shí)允許加密及非加密聯(lián)機(jī)。

您可以將 SecurityPolicy 設(shè)為 secure、nosecure、或 both,默認(rèn)值是同時(shí)允許加密及非加密聯(lián)機(jī)。

SecurityPolicy both

EncryptionType 設(shè)定加密類型

當(dāng)您要使用加密聯(lián)機(jī)時(shí),您可以選擇要支持哪一種加密模式。SmbFTPD 支持二種模式:SSL 及 TLS,您可以使用下列設(shè)定值以選擇要使用另一種模式:

  • TLS:只使用 RFC 2228 所定義的 FTP-TLS 模式。
  • SSL:只支持 FTP-SSL 模式。
  • Both:同時(shí)支持 SSL 及 TLS。

默認(rèn)值是同時(shí)支持 SSL 及 TLS。

EncryptionType both

NormalUserMustSecure 強(qiáng)制一般使用者使用加密聯(lián)機(jī)

當(dāng) NormalUserMustSecure 設(shè)為「Yes」時(shí),表示一般使用者登入時(shí)一定要使用加密的聯(lián)機(jī),否則無法登入。

我們?cè)?FTP 服務(wù)中使用 SSL/TLS 的目的是為了避免使用者的機(jī)密數(shù)據(jù)在網(wǎng)絡(luò)上以明碼流傳,為了強(qiáng)制所有使用者都使用比較安全的模式聯(lián)機(jī),您可以將這個(gè)選項(xiàng)設(shè)為「Yes」。

NormalUserMustSecure No

AnonymDisableSecure 設(shè)定不允許匿名使用者使用加密聯(lián)機(jī)

當(dāng) AnonymDisableSecure 設(shè)為「Yes」時(shí),系統(tǒng)將不允許匿名的使用者使用加密的聯(lián)機(jī)。

既然 SSL/TLS 的目的是避免使用者數(shù)據(jù)在網(wǎng)絡(luò)上流傳,而匿名使用者是任何人都可以使用,保護(hù)匿名使用者的數(shù)據(jù)似乎比較不需要。所以您可以將這個(gè)選項(xiàng)設(shè)為「No」,以避免匿名使用者也使用加密聯(lián)機(jī)登入,徒然耗費(fèi) CPU 的資源。

AnonymDisableSecure No

SSLCertFile 設(shè)定公開金鑰位置

設(shè)定所要使用的憑證,這個(gè)憑證會(huì)被送到客戶端做為加密用。如果您沒有設(shè)定這個(gè)選項(xiàng),預(yù)設(shè)會(huì)使用 /usr/local/etc/smbftpd/ssl.crt/server.crt。

您也可以和 Apache+SSL 共享憑證,Apache 的 SSL 憑證通常位于 /usr/local/etc/apache2/ssl.crt/server.crt

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

SSLKeyFile 設(shè)定私密金鑰位置

這個(gè)選項(xiàng)是用來設(shè)定您上述設(shè)定的憑證所對(duì)映的 private key。這個(gè) private key 和憑證是成對(duì)的,預(yù)設(shè)是在 /usr/local/etc/smbftpd/ssl.key/server.key。

如果您使用 Apache SSL 憑證,則這里也必須設(shè)定使用 Apache 的 key,通常位于 /usr/local/etc/apache2/ssl.key/server.key。

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

SSLDebugMode 是否啟用 SSL 的除錯(cuò)模式

設(shè)定是否要啟動(dòng) SSL 的除錯(cuò)模式,當(dāng)設(shè)為「Yes」時(shí),您還必須要設(shè)定記錄文件位置 SSLDebugLog。

SSLDebugMode No

SSLDebugLog 設(shè)定除錯(cuò)記錄文件位置

設(shè)定 SSL 除錯(cuò)模式的記錄文件要放在什么地方。

SSLDebugLog /var/log/smbftpd-ssl.log

相關(guān)文章

  • Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié)

    這篇文章主要介紹了Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié),需要的朋友可以參考下
    2023-05-03
  • FreeBSD如何添加硬盤?FreeBSD添加硬盤的方法

    一些朋友問小編FreeBSD如何添加硬盤?別擔(dān)心,今天小編就為大家分享FreeBSD添加硬盤的方法,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧
    2017-04-06
  • Freebsd PF 安裝使用詳解

    今天小編為大家?guī)淼氖荈reebsd PF 安裝使用詳解,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧
    2017-04-06
  • FreeBSD下zfs: failed with error 6錯(cuò)誤如何解決?

    最近一些朋友問小編 FreeBSD下zfs: failed with error 6錯(cuò)誤如何解決?今天小編要為大家?guī)淼氖?FreeBSD下zfs: failed with error 6錯(cuò)誤的解決方法,有需要的朋友一起去看
    2017-04-06
  • Unix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解

    今天小編要為大家?guī)淼氖荱nix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧
    2017-04-01
  • Unix中的dot命令詳解

    今天小編將為大家?guī)淼氖荱nix中的dot命令詳解!希望對(duì)大家會(huì)有幫助!有需要的朋友一起去看看吧
    2017-03-22
  • freebsd時(shí)間設(shè)置小節(jié)詳解

    近日!一些朋友對(duì)于freebsd時(shí)間設(shè)置小節(jié)存在疑慮!下面小編將為大家?guī)淼氖莊reebsd時(shí)間設(shè)置小節(jié)詳解!希望對(duì)大家會(huì)有幫助!有需要的朋友一起去看看吧
    2017-03-19
  • grub2引導(dǎo)freebsd詳解

    今天小編要為大家?guī)淼氖莋rub2引導(dǎo)freebsd詳解!希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧
    2017-03-19
  • FreeBSD10安裝內(nèi)核源代碼方法講解

    下面小編為大家?guī)淼氖荈reeBSD10安裝內(nèi)核源代碼方法講解!希望能夠幫助到大家!有需要的朋友一起去看看吧
    2017-03-19
  • FreeBSD下如何使GraphicsMagick支持中文字體?

    最近一些朋友在問FreeBSD下如何使GraphicsMagick支持中文字體?今天小編為大家?guī)淼氖荈reeBSD下使GraphicsMagick支持中文字體的方法!有需要的朋友一起去看看吧
    2017-03-15

最新評(píng)論