## 21.1 FTP 的數據鏈路原理
FTP (File transfer protocol) 是相當古老的傳輸協議之一,他最主要的功能是在服務器與客戶端之間進行檔案的傳輸。 這個古老的協議使用的是明碼傳輸方式,且過去有相當多的安全危機歷史。為了更安全的使用 FTP 協議,我們主要介紹較為安全但功能較少的 vsftpd 這個軟件吶。
* * *
### 2.1.1 FTP 功能簡介
FTP 服務器的功能除了單純的進行檔案的傳輸與管理之外,依據服務器軟件的設定架構,它還可以提供幾個主要的功能。 底下我們約略的來談一談:
* 不同等級的用戶身份:user, guest, anonymous
FTP 服務器在預設的情況下,依據使用者登入的情況而分為三種不同的身份,分別是: (1)實體賬號,real user;(2)訪客, guest;(3)匿名登錄者, anonymous 這三種。這三種身份的用戶在系統上面的權限差異很大喔!例如實體用戶取得系統的權限比較完整, 所以可以進行比較多的動作;至于匿名登錄者,大概我們就僅提供他下載資源的能力而已,并不許匿名者使用太多主機的資源啊! 當然,這三種人物能夠使用的『在線指令』自然也就不相同啰! ^_^
* 命令記錄與登錄文件記錄:
FTP 可以利用系統的 [syslogd](http://linux.vbird.org/linux_basic/0570syslog.php) 來進行數據的紀錄, 而記錄的數據報括了用戶曾經下達過的命令與用戶傳輸數據(傳輸時間、檔案大小等等)的紀錄呢! 所以你可以很輕松的在 /var/log/ 里面找到各項登錄信息喔!
* 限制用戶活動的目錄: (change root, 簡稱 chroot)
為了避免用戶在你的 Linux 系統當中隨意逛大街 (意指離開用戶自己的家目錄而進入到 Linux 系統的其他目錄去), 所以將使用者的工作范圍『局限』在用戶的家目錄底下,嗯!實在是個不錯的好主意!FTP 可以限制用戶僅能在自己的家目錄當中活動喔!如此一來,由于使用者無法離開自己的家目錄,而且登入 FTP 后,顯示的『根目錄』就是自己家目錄的內容,這種環境稱之為 change root ,簡稱 chroot ,改變根目錄的意思啦!
這有什么好處呢?當一個惡意的使用者以 FTP 登入你的系統當中,如果沒有 chroot 的環境下,他可以到 /etc, /usr/local, /home 等其他重要目錄底下去察看檔案數據,尤其是很重要的 /etc/ 底下的配置文件,如 /etc/passwd 等等。如果你沒有做好一些檔案權限的管理與保護,那他就有辦法取得系統的某些重要信息, 用來『入侵』你的系統呢!所以在 chroot 的環境下,當然就比較安全一些咯!
* * *
### 21.1.2 FTP 的運作流程與使用到的端口
FTP 的傳輸使用的是 TCP 封包協議,在[第二章網絡基礎](http://linux.vbird.org/linux_server/0110network_basic.php)中我們談過, TCP 在建立聯機前會先進行三向交握。不過 FTP 服務器是比較麻煩一些,因為 FTP 服務器使用了兩個聯機,分別是命令信道與數據流通道 (ftp-data) 。這兩個聯機都需要經過三向交握, 因為是 TCP 封包嘛!那么這兩個聯機通道的關系是如何呢?底下我們先以 FTP 預設的主動式 (active) 聯機來作個簡略的說明啰:

圖 21.1-1、FTP 服務器的主動式聯機示意圖
簡單的聯機流程就如上圖所示,至于聯機的步驟是這樣的:
1. 建立命令通道的聯機
如上圖所示,客戶端會隨機取一個大于 1024 以上的埠口 (port AA) 來與 FTP 服務器端的 port 21 達成聯機, 這個過程當然需要三向交握了!達成聯機后客戶端便可以透過這個聯機來對 FTP 服務器下達指令, 包括查詢檔名、下載、上傳等等指令都是利用這個通道來下達的;
2. 通知 FTP 服務器端使用 active 且告知連接的埠號
FTP 服務器的 21 埠號主要用在命令的下達,但是當牽涉到數據流時,就不是使用這個聯機了。 客戶端在需要數據的情況下,會告知服務器端要用什么方式來聯機,如果是主動式 (active) 聯機時, 客戶端會先隨機啟用一個埠口 (圖 21.1-1 當中的 port BB) ,且透過命令通道告知 FTP 服務器這兩個信息,并等待 FTP 服務器的聯機;
3. FTP 服務器『主動』向客戶端聯機
FTP 服務器由命令通道了解客戶端的需求后,會主動的由 20 這個埠號向客戶端的 port BB 聯機, 這個聯機當然也會經過三向交握啦!此時 FTP 的客戶端與服務器端共會建立兩條聯機,分別用在命令的下達與數據的傳遞。 而預設 FTP 服務器端使用的主動聯機埠號就是 port 20 啰!
如此一來則成功的建立起『命令』與『數據傳輸』兩個信道!不過,要注意的是, 『數據傳輸信道』是在有數據傳輸的行為時才會建立的通道喔!并不是一開始連接到 FTP 服務器就立刻建立的通道呢!留意一下啰!
* 主動式聯機使用到的埠號
利用上述的說明來整理一下 FTP 服務器端會使用到的埠號主要有:
* 命令通道的 ftp (默認為 port 21) 與
* 數據傳輸的 ftp-data (默認為port 20)。
再強調一次,這兩個埠口的工作是不一樣的,而且,重要的是兩者的聯機發起端是不一樣的!首先 port 21 主要接受來自客戶端的主動聯機,至于 port 20 則為 FTP 服務器主動聯機至客戶端呢!這樣的情況在服務器與客戶端兩者同時為公共 IP (Public IP) 的因特網上面通常沒有太大的問題,不過,萬一你的客戶端是在防火墻后端,或者是 NAT 服務器后端呢?會有什么問題發生呢?底下我們來談一談這個嚴重的問題!
* 在主動聯機的 FTP 服務器與客戶端之間具有防火墻的聯機問題
回想一下我們的[第九章防火墻](http://linux.vbird.org/linux_server/0250simple_firewall.php)! 一般來說,很多的局域網絡都會使用防火墻 (iptables) 的 NAT 功能,那么在 NAT 后端的 FTP 用戶如何連接到 FTP 服務器呢? 我們可以簡單的以下圖來說明:

圖 21.1-2、 FTP 客戶端與服務器端聯機中間具有防火墻的聯機狀態
1. 用戶與服務器間命令信道的建立:
因為 NAT 會主動的記錄由內部送往外部的聯機信息,而由于命令信道的建立是由客戶端向服務器端聯機的, 因此這一條聯機可以順利的建立起來的;
2. 用戶與服務器間數據信道建立時的通知:
同樣的,客戶端主機會先啟用 port BB ,并透過命令通道告知 FTP 服務器,且等待服務器端的主動聯機;
3. 服務器主動連到 NAT 等待轉遞至客戶端的聯機問題:
但是由于透過 NAT 的轉換后,FTP 服務器只能得知 NAT 的 IP 而不是客戶端的 IP , 因此 FTP 服務器會以 port 20 主動的向 NAT 的 port BB 發送主動聯機的要求。 但你的 NAT 并沒有啟動 port BB 來監聽 FTP 服務器的聯機啊!
了解問題的所在了嗎?在 FTP 的主動式聯機當中,NAT 將會被視為客戶端,但 NAT 其實并非客戶端啊, 這就造成問題了。如果你曾經在 IP 分享器后面連接某些 FTP 服務器時,可能偶爾會發現明明就連接上 FTP 服務器了 (命令通道已建立),但是就是無法取得文件名的列表,而是在超過一段時間后顯示『 Can't build data connection: Connection refused,無法進行數據傳輸』之類的訊息, 那肯定就是這個原因所造成的困擾了。
那有沒有辦法可以克服這個問題呢?難道真的在 Linux NAT 后面就一定無法使用 FTP 嗎?當然不是! 目前有兩個簡易的方法可以克服這個問題:
* 使用 iptables 所提供的 FTP 偵測模塊:
其實 iptables 早就提供了許多好用的模塊了,這個 FTP 當然不會被錯過! 你可以使用 [modprobe](http://linux.vbird.org/linux_basic/0510osloader.php#kernel_load) 這個指令來加載 ip_conntrack_ftp 及 ip_nat_ftp 等模塊,這幾個模塊會主動的分析『目標是 port 21 的聯機』信息, 所以可以得到 port BB 的資料,此時若接受到 FTP 服務器的主動聯機,就能夠將該封包導向正確的后端主機了! ^_^
不過,如果你鏈接的目標 FTP 服務器他的命令通道默認端口號并非標準的 21 埠號時 (例如某些地下 FTP 服務器), 那么這兩個模塊就無法順利解析出來了,這樣說,理解嗎?
* 客戶端選擇被動式 (Passive) 聯機模式:
除了主動式聯機之外,FTP 還提供一種稱為被動式聯機的模式,什么是被動式呢? 既然主動式是由服務器向客戶端聯機,反過來講,被動式就是由客戶端向服務器端發起聯機的啰! 既然是由客戶端發起聯機的,那自然就不需要考慮來自 port 20 的聯機啦!關于被動式聯機模式將在下一小節介紹喔!
* * *
### 21.1.3 客戶端選擇被動式聯機模式
那么什么是被動式聯機呢?我們可以使用底下的圖示來作個簡略的介紹喔:

圖 21.1-3、FTP 的被動式數據流聯機流程
1. 用戶與服務器建立命令信道:
同樣的需要建立命令通道,透過三向交握就可以建立起這個通道了。
2. 客戶端發出 PASV 的聯機要求:
當有使用數據信道的指令時,客戶端可透過命令通道發出 PASV 的被動式聯機要求 (Passive 的縮寫), 并等待服務器的回應;
3. FTP 服務器啟動數據端口,并通知客戶端聯機:
如果你的 FTP 服務器是能夠處理被動式聯機的,此時 FTP 服務器會先啟動一個埠口在監聽。 這個端口號碼可能是隨機的,也可以自定義某一范圍的埠口,端看你的 FTP 服務器軟件而定。 然后你的 FTP 服務器會透過命令通道告知客戶端該已經啟動的埠口 (圖中的 port PASV), 并等待客戶端的聯機。
4. 客戶端隨機取用大于 1024 的埠口進行連接:
然后你的客戶端會隨機取用一個大于 1024 的端口號來對主機的 port PASV 聯機。 如果一切都順利的話,那么你的 FTP 數據就可以透過 port BB 及 port PASV 來傳送了。
發現上面的不同點了嗎?被動式 FTP 數據信道的聯機方向是由客戶端向服務器端聯機的喔! 如此一來,在 NAT 內部的客戶端主機就可以順利的連接上 FTP Server 了!但是,萬一 FTP 主機也是在 NAT 后端那怎么辦...呵呵!那可就糗了吧~ @_@這里就牽涉到更深入的 DMZ 技巧了,我們這里暫不介紹這些深入的技巧,先理解一下這些特殊的聯機方向, 這將有助于你未來服務器架設時候的考慮因素喔!
此外,不曉得你有無發現,透過 PASV 模式,服務器在沒有特別設定的情況下,會隨機選取大于 1024 的埠口來提供客戶端連接之用。那么萬一服務器啟用的埠口被搞鬼怎么辦?而且, 如此一來也很難追蹤來自入侵者攻擊的登錄信息啊!所以,這個時候我們可以透過 passive ports 的功能來『限定』服務器啟用的 port number 喔!
* * *
### 21.1.4 FTP 的安全性問題與替代方案
其實,在 FTP 上面傳送的數據很可能被竊取,因為 FTP 是明碼傳輸的嘛!而且某些 FTP 服務器軟件的資安歷史問題也是很嚴重的。 因此,一般來說,除非是學校或者是一些社團單位要開放沒有機密或授權問題的資料之外,FTP 是少用為妙的。
拜 [SSH](http://linux.vbird.org/linux_server/0310telnetssh.php) 所賜,目前我們已經有較為安全的 FTP 了,那就是 ssh 提供的 sftp 這個 server 啊!這個 sftp-server 最大的優點就是:『在上面傳輸的數據是經過加密的』!所以在因特網上面流竄的時候, 嘿嘿!畢竟是比較安全一些啦!所以建議你,除非必要,否則的話使用 SSH 提供的 sftp-server 功能即可~
然而這個功能對于一些習慣了圖形接口,或者是有中文檔名的使用者來說,實在是不怎么方便, 雖說目前有個圖形接口的 filezilla 客戶端軟件,不過很多時候還是會發生一些莫名的問題說! 所以,有的時候 FTP 網站還是有其存在的需要的。如果真的要架設 FTP 網站,那么還是得需要注意幾個事項喔:
1. 隨時更新到最新版本的 FTP 軟件,并隨時注意漏洞訊息;
2. 善用 iptables 來規定可以使用 FTP 的網域;
3. 善用 TCP_Wrappers 來規范可以登入的網域;
4. 善用 FTP 軟件的設定來限制使用你 FTP 服務器的使用者的不同權限啊;
5. 使用 Super daemon 來進階管理你的 FTP 服務器;
6. 隨時注意用戶的家目錄、以及匿名用戶登入的目錄的『檔案權限』;
7. 若不對外公開的話,或許也可以修改 FTP 的 port 。
8. 也可以使用 FTPs 這種加密的 FTP 功能!
無論如何,在網絡上聽過太多人都是由于開放 FTP 這個服務器而導致整個主機被入侵的事件,所以, 這里真的要給他一直不斷的強調,要注意安全啊!
* * *
### 21.1.5 開放什么身份的使用者登入
既然 FTP 是以明碼傳輸,并且某些早期的 FTP 服務器軟件也有不少的安全漏洞,那又為何需要架設 FTP 服務器啊? 沒辦法啊,總是有人有需要這個玩意兒的,譬如說各大專院校不就有提供 FTP 網站的服務嗎? 這樣可以讓校內的同學共同分享校內的網絡資源嘛!不過,由于 FTP 登入者的身份可以分為三種, 你到底要開放哪一種身份登入呢?這個時候你可以這樣簡單的思考一下啰:
* 開放實體用戶的情況 (Real user):
很多的 FTP 服務器默認就已經允許實體用戶的登入了。不過,需要了解的是,以實體用戶做為 FTP 登入者身份時, 系統默認并沒有針對實體用戶來進行『限制』的,所以他可以針對整個文件系統進行任何他所具有權限的工作。 因此,如果你的 FTP 使用者沒能好好的保護自己的密碼而導致被入侵,那么你的整個 Linux 系統數據將很有可能被竊取啊! 開放實體用戶時的建議如下:
* 使用替代的 FTP 方案較佳: 由于實體用戶本來就可以透過網絡連接到主機來進行工作 (例如 SSH),因此實在沒有需要特別的開放 FTP 的服務啊!因為例如 sftp 本來就能達到傳輸檔案的功能啰!
* 限制用戶能力,如 chroot 與 /sbin/nologin 等: 如果確定要讓實體用戶利用 FTP 服務器的話,那么你可能需要讓某些系統賬號無法登入 FTP 才行,例如 bin, apache 等等。 最簡單常用的作法是透過 PAM 模塊來處理,譬如 vsftpd 這個軟件默認可以透過 /etc/vsftpd/ftpusers 這個檔案來設定不想讓他具有登入 FTP 的賬號。另外,將使用者身份 chroot 是相當需要的!
* 訪客身份 (Guest)
通常會建立 guest 身份的案例當中,多半是由于服務器提供了類似『個人 Web 首頁』的功能給一般身份用戶, 那么這些使用者總是需要管理自己的網頁空間吧?這個時候將使用者的身份壓縮成為 guest ,并且將他的可用目錄設定好,即可提供使用者一個方便的使用環境了!且不需要提供他 real user 的權限喔! 常見的建議如下:
* 僅提供需要登入的賬號即可,不需要提供系統上面所有人均可登入的環境啊!
* 當然,我們在服務器的設定當中,需要針對不同的訪客給他們不一樣的『家目錄』, 而這個家目錄與用戶的權限設定需要相符合喔!例如要提供 dmtsai 這個人管理他的網頁空間,而他的網頁空間放置在 /home/dmtsai/www 底下,那我就將 dmtsai 在 FTP 提供的目錄僅有 /home/dmtsai/www 而已,比較安全啦!而且也方便使用者啊!
* 針對這樣的身份者,需要設定較多的限制,包括:上下傳檔案數目與硬盤容量的限制、 聯機登入的時間限制、許可使用的指令要減少很多很多,例如 chmod 就不要允許他使用等等!
* 匿名登錄使用者 (anonymous)
雖然提供匿名登錄給因特網的使用者進入實在不是個好主意,因為每個人都可以去下載你的數據, 萬一帶寬被吃光光怎么辦?但如同前面講過的,學校單位需要分享全校同學一些軟件資源時, FTP 服務器也是一個很不錯的解決方案啊!你說是吧。如果要開放匿名用戶的話,要注意:
* 無論如何,提供匿名登錄都是一件相當危險的事情,因為只要你一不小心, 將重要的資料放置到匿名者可以讀取的目錄中時,那么就很有可能會泄密!與其戰戰兢兢,不如就不要設定啊~
* 果真要開放匿名登錄時,很多限制都要進行的,這包括:(1)允許的工作指令要減低很多, 幾乎就不許匿名者使用指令啦、(2)限制文件傳輸的數量,盡量不要允許『上傳』數據的設定、 (3)限制匿名者同時登入的最大聯機數量,可以控制盜連喔!
一般來說,如果你是要放置一些公開的、沒有版權糾紛的數據在網絡上供人下載的話, 那么一個僅提供匿名登錄的 FTP 服務器,并且對整個因特網開放是 OK 的啦! 不過,如果你預計要提供的的軟件或數據是具有版權的,但是該版權允許你在貴單位內傳輸的情況下, 那么架設一個『僅針對內部開放的匿名 FTP 服務器 (利用防火墻處理) 』也是 OK 的啦!
如果你還想要讓使用者反饋的話,那是否要架設一個匿名者可上傳的區域呢?鳥哥對這件事情的看法是.... 『萬萬不可』啊!如果要讓使用者反饋的話,除非該使用者是你信任的,否則不要允許對方上傳! 所以此時一個文件系統權限管理嚴格的 FTP 服務器,并提供實體用戶的登入就有點需求啦! 總之,要依照你的需求來思考是否有需要喔!
* * *
- 鳥哥的Linux私房菜:服務器架設篇 第三版
- 第一部份:架站前的進修專區
- 作者序
- 第一章、架設服務器前的準備工作
- 1.1 前言: Linux 有啥功能
- 1.2 基本架設服務器流程
- 1.3 自我評估是否已經具有架站的能力
- 1.4 本章習題
- 第二章、基礎網絡概念
- 2.1 網絡是個什么玩意兒
- 2.2 TCP/IP 的鏈結層相關協議
- 2.3 TCP/IP 的網絡層相關封包與數據
- 2.4 TCP/IP 的傳輸層相關封包與數據
- 2.5 連上 Internet 前的準備事項
- 2.6 重點回顧:
- 2.7 本章習題
- 2.8 參考數據與延伸閱讀
- 第三章、局域網絡架構簡介
- 3.1 局域網絡的聯機
- 3.2 本書使用的內部聯機網絡參數與通訊協議
- 第四章、連上 Internet
- 4.1 Linux 連上 Internet 前的注意事項
- 4.2 連上 Internet 的設定方法
- 4.3 無線網絡--以筆記本電腦為例
- 4.4 常見問題說明
- 4.5 重點回顧
- 4.6 本章習題
- 4.7 參考數據與延伸閱讀
- 第五章、 Linux 常用網絡指令
- 5.1 網絡參數設定使用的指令
- 5.2 網絡偵錯與觀察指令
- 5.3 遠程聯機指令與實時通訊軟件
- 5.4 文字接口網頁瀏覽
- 5.5 封包擷取功能
- 5.6 重點回顧
- 5.7 本章習題
- 5.8 參考數據與延伸閱讀
- 第六章、 Linux 網絡偵錯
- 6.1 無法聯機原因分析
- 6.2 處理流程
- 6.3 本章習題
- 6.4 參考數據與延伸閱讀
- 第二部分:主機的簡易資安防護措施
- 第七章、網絡安全與主機基本防護:限制端口, 網絡升級與 SELinux
- 7.1 網絡封包聯機進入主機的流程
- 7.2 網絡自動升級軟件
- 7.3 限制聯機埠口 (port)
- 7.4 SELinux 管理原則
- 7.5 被攻擊后的主機修復工作
- 7.6 重點回顧
- 7.7 課后練習
- 7.8 參考數據與延伸閱讀
- 第八章、路由觀念與路由器設定
- 8.1 路由
- 8.2 路由器架設
- 8.3 動態路由器架設:quagga (zebra + ripd)
- 8.4 特殊狀況:路由器兩邊界面是同一個 IP 網段: ARP Proxy
- 8.5 重點回顧
- 8.6 本章習題
- 8.7 參考數據與延伸閱讀
- 第九章、防火墻與 NAT 服務器
- 9.1 認識防火墻
- 9.2 TCP Wrappers
- 9.3 Linux 的封包過濾軟件:iptables
- 9.4 單機防火墻的一個實例
- 9.5 NAT 服務器的設定
- 9.6 重點回顧
- 9.7 本章習題
- 9.8 參考數據與延伸閱讀
- 第十章、申請合法的主機名
- 10.1 為何需要主機名
- 10.2 注冊一個合法的主機名
- 10.3 重點回顧
- 10.4 本章習題
- 10.5 參考數據與延伸閱讀
- 第三部分:局域網絡內常見的服務器架設
- 第十一章、遠程聯機服務器SSH / XDMCP / VNC / RDP
- 11.1 遠程聯機服務器
- 11.2 文字接口聯機服務器: SSH 服務器
- 11.3 最原始圖形接口: Xdmcp 服務的啟用
- 11.4 華麗的圖形接口: VNC 服務器
- 11.5 仿真的遠程桌面系統: XRDP 服務器
- 11.6 SSH 服務器的進階應用
- 11.7 重點回顧
- 11.8 本章習題
- 11.9 參考數據與延伸閱讀
- 第十二章、網絡參數控管者: DHCP 服務器
- 12.1 DHCP 運作的原理
- 12.2 DHCP 服務器端的設定
- 12.3 DHCP 客戶端的設定
- 12.4 DHCP 服務器端進階觀察與使用
- 12.5 重點回顧
- 12.6 本章習題
- 12.7 參考數據與延伸閱讀
- 第十三章、文件服務器之一:NFS 服務器
- 13.1 NFS 的由來與其功能
- 13.2 NFS Server 端的設定
- 13.3 NFS 客戶端的設定
- 13.4 案例演練
- 13.5 重點回顧
- 13.6 本章習題
- 13.7 參考數據與延伸閱讀
- 第十四章、賬號控管: NIS 服務器
- 14.1 NIS 的由來與功能
- 14.2 NIS Server 端的設定
- 14.3 NIS Client 端的設定
- 14.4 NIS 搭配 NFS 的設定在叢集計算機上的應用
- 14.5 重點回顧
- 14.6 本章習題
- 14.7 參考數據與延伸閱讀
- 第十五章、時間服務器: NTP 服務器
- 15.1 關于時區與網絡校時的通訊協議
- 15.2 NTP 服務器的安裝與設定
- 15.3 客戶端的時間更新方式
- 15.4 重點回顧
- 15.5 本章習題
- 15.6 參考數據與延伸閱讀
- 第十六章、文件服務器之二: SAMBA 服務器
- 16.1 什么是 SAMBA
- 16.2 SAMBA 服務器的基礎設定
- 16.3 Samba 客戶端軟件功能
- 16.4 以 PDC 服務器提供賬號管理
- 16.5 服務器簡單維護與管理
- 16.6 重點回顧
- 16.7 本章習題
- 16.8 參考數據與延伸閱讀
- 第十七章、區網控制者: Proxy 服務器
- 17.1 什么是代理服務器 (Proxy)
- 17.2 Proxy 服務器的基礎設定
- 17.3 客戶端的使用與測試
- 17.4 服務器的其他應用設定
- 17.5 重點回顧
- 17.6 本章習題
- 17.7 參考數據與延伸閱讀
- 第十八章、網絡驅動器裝置: iSCSI 服務器
- 18.1 網絡文件系統還是網絡驅動器
- 18.2 iSCSI target 的設定
- 18.3 iSCSI initiator 的設定
- 18.4 重點回顧
- 18.5 本章習題
- 18.6 參考數據與延伸閱讀
- 第四部分:常見因特網服務器架設
- 第十九章、主機名控制者: DNS 服務器
- 19.1 什么是 DNS
- 19.2 Client 端的設定
- 19.3 DNS 服務器的軟件、種類與 cache only DNS 服務器設定
- 19.4 DNS 服務器的詳細設定
- 19.5 協同工作的 DNS: Slave DNS 及子域授權設定
- 19.6 DNS 服務器的進階設定
- 19.7 重點回顧
- 19.8 本章習題
- 19.9 參考數據與延伸閱讀
- 第二十章、WWW 伺服器
- 20.1 WWW 的簡史、資源以及伺服器軟體
- 20.2 WWW (LAMP) 伺服器基本設定
- 20.3 Apache 伺服器的進階設定
- 20.4 登錄檔分析以及 PHP 強化模組
- 20.5 建立連線加密網站 (https) 及防砍站腳本
- 20.6 重點回顧
- 20.7 本章習題
- 20.8 參考資料與延伸閱讀
- 第二十一章、文件服務器之三: FTP 服務器
- 21.1 FTP 的數據鏈路原理
- 21.2 vsftpd 服務器基礎設定
- 21.3 客戶端的圖形接口 FTP 聯機軟件
- 21.4 讓 vsftpd 增加 SSL 的加密功能
- 21.5 重點回顧
- 21.6 本章習題
- 21.7 參考數據與延伸閱讀
- 第二十二章、郵件服務器: Postfix
- 22.1 郵件服務器的功能與運作原理
- 22.2 MTA 服務器: Postfix 基礎設定
- 22.3 MRA 服務器: dovecot 設定
- 22.4 MUA 軟件:客戶端的收發信軟件
- 22.5 郵件服務器的進階設定
- 22.6 重點回顧
- 22.7 本章習題
- 22.8 參考數據與延伸閱讀