亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > FreeBSD > 正文

FreeBSD6.2架設FTP服務器詳解

2020-10-23 22:28:06
字體:
來源:轉載
供稿:網友
FTP聯機的兩種模式FTP采用 Client/Server 架構,FTP 協議比較特別的地方在于它在使用時必須建立二個聯機:一個用來傳輸指令、一個用來傳輸檔案。當我們使用 FTP 軟件連到 FTP 服務器時,客戶端會先連到服務器的連接端口21,并建立一條「控制聯機」。接下來,您會輸入賬號、密碼等指令,這些指令及 FTP 的響應都是使用都是使用「控制聯機」。當您要下載檔案時,或者是執行 ls 以列出目錄中的檔案時,檔案或目錄列表的下載是經另一個聯機「數據聯機」。「數據聯機」和「控制聯機」不同的是數據聯機所傳輸的數據比較大,而控制聯機只是用來傳輸指令及簡單的響應。
基本上,一個完整的 FTP 聯機建立過程為: 
  • 客戶端打開自已機器大于 1024 的連接端口,并連到服務器的連接端口21,建立「控制聯機」。
  • 客戶端開始對服務器下指令,告訴服務器客戶端用來傳輸檔案的連接端口為何。
  • 服務器從連接端口20 連到客戶端所開放的端口號 (大于 1024),以建立「數據聯機」。
  • 上述這種聯機建立的方式是由服務器主動建立「數據聯機」,我們稱之為「主動模式」(Active Mode)?;旧现鲃幽J降倪\作在沒有防火墻或 NAT 的情形下沒有什么問題,但若客戶端有防火墻,則可能會無法建立聯機?;旧?,如果客戶端使用的是 FreeBSD 的 NAT 不會有這種問題,FreeBSD 會自動做轉換,但若是使用其它的防火墻就不一定可以支持 FTP 的 Active Mode。
    要解決 FTP Active Mode 的問題,可以在聯機時改用「被動模式」(Passive Mode)。所謂的被動模式就是由服務器打開一個連接端口,被動地等客戶端連過來建立「數據聯機」。被動模式的聯機建立過程為:
  • 客戶端打開自已機器大于 1024 的連接端口,并連到服務器的連接端口21,建立「控制聯機」。
  • 客戶端開始對服務器下指令,告訴服務器進入「被動模式」。
  • 服務器打開一個大于 1024 的連接端口,等待客戶端的聯機。
  • 客伺端打開自已機器大于 1024 的連接端口,并連到服務器以建立「數據聯機」。
  • 由于控制聯機及數據聯機都是由客戶端主動連過去服務器,如此即可避開防火墻及 NAT 的問題。

    當您登入一臺 FTP 服務器后,如果您輸入 ls,卻等了很久都沒有響應,您可以輸入 <Ctrl>+C 以中斷命令。接著輸入 passive 以進入被動模式,再打 ls 如果可以看到目錄內容,則無法聯機的問題一定是主動模式的原故。

    設定 FTP 服務器FreeBSD 內建有 FTP 服務器的功能,如果您要使用內建的 ftpd,我們不需要特別進行任何安裝的動作,只要做好設定即可。1 啟動FTP服務器有二種方式啟動 ftpd,一種是使用 standalone daemon,另一種是使用 inetd。使用 inetd 我們可以管理許多系統服務,例如 telnet、ssh、ftp 等,大部份的系統服務都是使用 inetd 來啟動,使用它的好處在于可以統一管理各種服務,并經由它來設定服務規則,例如是否要阻擋某些 IP 來源等。不過,使用 inetd 的方式缺點是每次有聯機要求時,inetd 的 daemon 必須依聯機的種類去執行相對映的指令,所以速度比較慢。另一種啟動 FTP 的方式是使用 standalone daemon,也就是直接執行 FTP daemon,當它接收到新的聯機時,就 fork() 出來處理,這種方式聯機建立的速度較快,比較適合專門的 FTP 服務器。
    使用 inetd,首先編輯 /etc/inetd.conf,將 ftp 設定開頭的 # 移除: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`現在您就可以開始使用 FreeBSD 的 FTP 服務了。
    如果您要以獨立的 daemon 方式啟動 FTP,請先確定在 inetd.conf 中沒有啟動 FTP 服務。接下來,請在新增一個檔案 /usr/local/etc/rc.d/ftpd.sh 內容如下:#!/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

    編輯完后,我們必須將該檔案變成可執行:# chmod 755 /usr/local/etc/rc.d/ftpd.sh接下來,您就可以使用下列指令啟動 FTPD 了:# /usr/local/etc/rc.d/ftpd.sh tart如果您要停止 FTPD 服務,則使用下列指令:# /usr/local/etc/rc.d/ftpd.sh stop
    2 編輯歡迎信息當我們聯機到一個 FTP 站點時,我們可以看到二個歡迎訊息,一個是登入前的訊息,另一個是登入后的訊息。開頭為 220- 的就是登入前的訊息,我們稱它為歡迎訊息。以 230- 為開頭的是登入后的訊息,我們稱它為本日訊息 (Message of the day)。這二種訊息我們都可以自行設定。
    如果您要設定的是登入前的訊息,請新增一個檔案 /etc/ftpwelcome,并將您的訊息寫入該文件中。您不需要寫 220- 等數據,FTP 服務器會自動幫您加上這種代碼。而登入后的訊息是存放在 /etc/ftpmotd,您可以編輯該檔以進行設定。
    3 FTP服務器管理在啟動 FTP 服務器時,我們可以加入一些參數以調整服務器的行為。例如,修改預設的連接端口、記錄使用者上傳、下載的檔案等等。有些參數必須要在使用獨立的 daemon 方式啟動時才有用,而有的參數在 inetd 模式下也可以使用。下表為我們常用的參數:
    參數 是否只能在 Daemon 模式下使用 意義
    -a 當您有二張網絡卡或是二個 IP 時,我們可以設定只接受聯機到某一個 IP 的聯機要求。例如: ftpd -D -a 192.168.0.1

    此范例表示只接受使用者聯機到 192.168.0.1 這個 IP。

    -d 記錄 FTP 的除錯訊息。除了加入這個參數外,您必須修改 /etc/syslog.conf,并加入下列內容以記錄 FTP 的訊息。
    !ftpd*.* /var/log/ftpd.log
    -h 不要顯示 FTP 服務器的主機名稱、軟件信息、版本等。
    -l 記錄 FTP 登入成功及失敗的訊息。如果您使用二次 -l,則使用者上傳、下載、刪除、建立目錄時都會留下記錄。預設的記錄會留在 /var/log/xferlog 中。
    -P 我們知道 FTP 預設會****連接埠 21,以接受客戶端的聯機要求。不過如果您是以獨立的 daemon 方式啟動 FTP,則 可以使用 -P 加上連接埠號以改變預設連接埠。
    另外,還有很多用來控制使用者權限的參數,將在后面說明。
    如果您要修改 ftpd 啟動的參數,在 inetd 模式下,您可以修改 /etc/inetd.conf,并在 ftp 設定的最后面加入參數,如下列粗體字所示:ftp  stream  tcp     nowait  root   /usr/libexec/ftpd    ftpd -l -l -dftp  stream  tcp6   nowait  root   /usr/libexec/ftpd    ftpd -l -l -d上面的范例中,我們多加入了參數 -l -d,以記錄更多 ftpd 的訊息。
    如果您是以獨立的 Daemon 方式啟動 ftpd,則請修改 /usr/local/etc/rc.d/ftpd.sh#!/bin/sh
    ftpd_program="/usr/libexec/ftpd"
    ftpd_flags="-D -l -l -d"
    ...
    我們只要修改 ftpd_flags 的部份,加入您所要的參數即可。
    4 FTP權限控制預設的 FTP 啟動后,使用者可以上傳、下載任何他們有權存取的檔案。在登入后,使用者可以進到任何系統中的目錄 (如果目錄權限允許的話)。
    我們可以設定限制某些賬號不可以使用 FTP 登入。使用者在登入 FTP 服務器時,有幾個規則會拒絕該賬號登入:
  • 如果 /var/run/nologin 存在,則所有賬號都不可以登入。這個檔案可以用來暫時停止 FTP 服務。
  • 使用者一定要有密碼才能登入,沒有密碼的使用者無法登入。
  • 使用者名稱不可以出現在 /etc/ftpusers 中。
  • 使用者群組不可以出現在 /etc/ftpusers 中。
  • 使用者所使用的 shell 必須要時合法的 shell。合法的 shell 會被定義在 /etc/shells 中。
  • 除了匿名模式外,使用者名稱不可以是 ftp 或 anonymous。
  • /etc/ftpusers 定義了不可以使用 FTP 服務的使用者及群組。看一下該檔案的內容,我們可以看到該檔案中已經有一些使用者不可以登入 FTP。這些使用者都是系統預設的賬號,我們也可以經由修改它來加入其它使用者。在 /etc/ftpusers 中,如果開頭是 "@" 表示群組名稱。除了控制使用者賬號外,在「inetd」模式下,我們還可以控制聯機來源。所有 FreeBSD 中由 inetd 所啟動的服務都可以經由修改 /etc/hosts.allow 以使用 TCP Wrappd 來限制聯機來源。下列為預設的 /etc/hosts.allow 內容:# 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
    如果我們要限制某幾個 IP 或網域不能使用 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
    如果您要設定只有某些來源可以使用 FTP,而拒絕大多數的主機,則可以設定:# Provide a small amount of protection for ftpd
    ftpd : localhost : allow
    ftpd : 192.168.0. : allow
    ftpd : my.friend.com : allow
    ftpd : ALL : deny

    在使用者登入后,只要目錄、檔案權限許可,它們可以自由的上傳、下載檔案。如果您希望加以限制讀寫的權限,可以在啟動 FTP 時加上下列幾個參數:
    參數 意義
    -o 限制所有使用者只能上傳檔案,而無法下載任何檔案。
    -r 限制所有使用者對于服務器內所有檔案只能只讀,不可以建立目錄、上傳、更改檔名、或任何會動到檔案目錄的指令。
    上述的參數必須在啟動 FTP 服務器時指定

    一般使用者登入后,預設會進入自己的家目錄中。使用者可以改變工作路徑到系統的任何目錄中。如果您希望使用者登入后只能在自己的家目錄中活動,而不能進入其它系統目錄中,可以使用 chroot 的功能。所謂的 chroot 就是將某一個目錄變成使用者看到的根目錄。例如,我們讓使用者 alex 登入后,將 /home/alex 變成根目錄。則 alex 在使用指令「cd /」時,還是會停留在 /home/alex。如果他使用指令「pwd」查看目前所在路徑,則會顯示 /。如此一來,我們就可以確保使用者不會到處亂跑,進入一些不該進入的地方。這個功能對于提升 FTP 的安全性有莫大的助益。

    設定 chroot 的方法很簡單,只要修改 /etc/ftpchroot 即可。下面是一個范例:alex
    @guest
    john /var/ftp
    @other /var/ftp
    其中第一行是設定使用者 alex 登入后,以自己的家目錄為根目錄。第二行的 @guest 表示只要是群組為 guest 的使用者,都以自己的家目錄為根目錄。而第三、四行分別表示使用者 john 及群組 other 都以 /var/ftp 為根目錄。只要我們善用 chroot 的功能,就可以加強保護系統其它目錄,讓沒有權利的使用者不可以進入系統目錄中。建議您在開放 FTP 服務時,將所有使用者都加入 /etc/ftpchroot 中。
    我們平常在登入 FreeBSD 的 FTP 站臺時,可以使用 anonymous 或是 ftp 這二個使用者登入,而且在登入時,任何密碼都可以通過。這種可以使用 anonymous 登入的 FTP 就叫作匿名 FTP。anonymous 及 ftp 這二個賬號是預設的匿名賬號,當使用者以匿名登入時,服務器會將匿名賬號對映到系統內的真實使用者 ftp。所以,如果您要提供匿名的 FTP 服務,請使用下列指令新增使用者賬號 ftp:# pw adduser ftp
    #
    mkdir /home/ftp
    #
    chown ftp:ftp /home/ftp

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

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

    除了強制使用 chroot 外,我們還可以在啟動 FTP 時加上一些參數,以針對匿名使用者進行更多的限制。下表為啟動 FTP 服務時可以使用的參數:
    參數 意義
    -M 禁止匿名使用者建立新的目錄。
    -m 允許匿名使用者覆寫一個存在的檔案。預設啟動 FTP 時,并不允許匿名使用者覆寫已經存在的檔案。當使用者上傳檔案時,如果已經有同檔名的檔案存在,系統會自動為上傳的檔案改名。
    -O 讓匿名使用者只能上傳檔案,下載檔案的功能會被取消。
    匿名使用者權限除上表中的幾個參數外,一樣可以使用 -r、-o 等用來控制一般使用者權限的參數來控制匿名使用者。匿名的 FTP 服務器可以說是危險的開始,如果您沒有對匿名的使用者進行權限控制,在開于匿名 FTP 后,將會產生許多安全性的問題。
    以上只是針對FreeBSD系統自帶的簡單ftpd進行的配置應用,如果希望架設更強大的FTP服務器,可以選用proftpd等工具來實現,而且在/usr/ports/ftp目錄下就已經加入了proftpd這個工具,具體配置參考本人后續文章。
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    亚洲成年网站在线观看| 北条麻妃一区二区在线观看| 久久久噜久噜久久综合| xvideos国产精品| 色老头一区二区三区| 亚洲国产成人一区| 国产精彩精品视频| 国产精品久久久久久久久久小说| 97在线观看视频国产| 日韩色av导航| 精品日韩视频在线观看| 欧美有码在线观看视频| 亚洲精品电影网在线观看| 欧美裸身视频免费观看| 国产精品一区av| 久久久久久久久久亚洲| 日日噜噜噜夜夜爽亚洲精品| 精品中文字幕久久久久久| 国产性猛交xxxx免费看久久| 国产精品成av人在线视午夜片| 国产不卡av在线| 欧美激情一级欧美精品| 九九热这里只有精品免费看| 亚洲国产私拍精品国模在线观看| 日韩精品中文字幕在线| 国产精品海角社区在线观看| 久久精品国产v日韩v亚洲| 精品国产一区二区三区在线观看| 精品国产一区二区三区久久狼黑人| 日韩免费在线视频| 日韩精品免费综合视频在线播放| 久久精品中文字幕| 九九久久精品一区| 国产一区二中文字幕在线看| 亚洲成av人乱码色午夜| 国产亚洲精品一区二555| 亚洲国产精品成人av| 国产一区欧美二区三区| 国产精品久久久久久影视| 日韩av在线直播| 色婷婷av一区二区三区在线观看| 久久精品夜夜夜夜夜久久| 国语自产偷拍精品视频偷| 国产精品男女猛烈高潮激情| 在线观看91久久久久久| 午夜美女久久久久爽久久| 国产精品视频精品视频| 国产亚洲精品久久久久久牛牛| 国产精品电影网站| 精品国产乱码久久久久久天美| 欧美在线视频播放| 久久成年人视频| 精品国产一区久久久| 欧美最顶级的aⅴ艳星| 日韩一区在线视频| 国产精品黄页免费高清在线观看| 久热精品视频在线| 亚洲欧洲一区二区三区久久| 精品久久久久久中文字幕大豆网| 欧美黄色成人网| 亚洲一区二区三区在线免费观看| 中文字幕久热精品视频在线| 久久综合国产精品台湾中文娱乐网| 久久最新资源网| 亚洲精品www久久久| 亚洲自拍偷拍网址| 亚洲电影免费观看高清完整版| 国产成人av网址| 91在线国产电影| 亚洲第一精品夜夜躁人人爽| 欧美日韩一区二区在线| 在线观看日韩av| 国外成人在线直播| 欧美尤物巨大精品爽| 26uuu另类亚洲欧美日本一| 欧美日韩亚洲国产一区| 中文字幕精品一区久久久久| 92看片淫黄大片看国产片| 欧美小视频在线| 久久精品视频网站| 中文字幕亚洲综合久久| 午夜精品视频网站| 亚洲福利视频久久| 青青草原一区二区| 国产综合在线看| 欧美精品一二区| 欧美精品生活片| 狠狠久久亚洲欧美专区| 欧美中文字幕第一页| 欧美诱惑福利视频| 欧美国产第二页| 久久99久久久久久久噜噜| 欧美大片大片在线播放| 亚洲欧洲在线看| 色综合五月天导航| 欧美中文在线视频| 久热精品视频在线| 欧美怡春院一区二区三区| 亚洲精品日韩久久久| 日日狠狠久久偷偷四色综合免费| 日韩av免费在线观看| 91亚洲精品视频| 欧美午夜影院在线视频| 久久精品青青大伊人av| 精品毛片三在线观看| 精品亚洲夜色av98在线观看| 欧美日本在线视频中文字字幕| 亚洲三级黄色在线观看| 精品成人在线视频| 亚洲3p在线观看| 国内免费精品永久在线视频| 国产欧美日韩中文字幕在线| 亚洲成人免费在线视频| 久久久久久综合网天天| 久久成人综合视频| 日韩成人在线电影网| 欧美性生交大片免网| 日韩中文字幕免费| 欧美性猛交xxxx乱大交3| 欧美日韩综合视频| 欧美另类69精品久久久久9999| 久久精品成人一区二区三区| 国产精品偷伦视频免费观看国产| 久久激情视频免费观看| 亚洲免费影视第一页| 欧美视频在线观看免费| 亚洲第一中文字幕在线观看| 国产精品视频久| 亚洲一区二区三区777| 久久久国产91| 国产激情视频一区| 精品久久香蕉国产线看观看gif| 久久亚洲电影天堂| 亚洲伊人久久综合| 久久久久久久久久久国产| 亚洲第一网中文字幕| 久久亚洲精品网站| 精品视频www| 国产精品成人一区二区三区吃奶| 色综合男人天堂| 中文字幕欧美在线| 亚洲国产精品久久久久久| 国产九九精品视频| 在线观看日韩www视频免费| 中文字幕欧美视频在线| 日本久久久久久久| 国产精彩精品视频| 国产精品丝袜久久久久久高清| 久久久免费高清电视剧观看| 日本精品免费一区二区三区| 精品国产欧美一区二区五十路| 久久成年人免费电影| 亚洲欧美一区二区三区在线| 中国人与牲禽动交精品| 欧美伊久线香蕉线新在线| 亚洲成人精品在线| 亚洲色图25p| 97人人爽人人喊人人模波多| 日韩av在线免播放器| 91久久久久久久久久久| 久热精品视频在线观看| 91成人免费观看网站| 日韩视频亚洲视频| 91免费欧美精品|