1 / 24

檔案伺服器之三 : FTP 伺服器

21. 檔案伺服器之三 : FTP 伺服器. FTP 的資料連結原理 FTP (File transfer protocol) 是相當古老的傳輸協定之一,他最主要的功能是在伺服器與用戶端之間進行檔案的傳輸。這個古老的協定使用的是明碼傳輸方式,且過去有相當多的安全危機歷史。為了更安全的使用 FTP 協定,我們主要介紹較為安全但功能較少的 vsftpd 這個軟體吶。. P.21-2. 請參閱書籍. FTP 功能 簡介 不同等級的使用者身份: user, guest, anonymous

neo
Download Presentation

檔案伺服器之三 : FTP 伺服器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 21 • 檔案伺服器之三:FTP 伺服器

  2. FTP 的資料連結原理 • FTP (File transfer protocol) 是相當古老的傳輸協定之一,他最主要的功能是在伺服器與用戶端之間進行檔案的傳輸。這個古老的協定使用的是明碼傳輸方式,且過去有相當多的安全危機歷史。為了更安全的使用 FTP 協定,我們主要介紹較為安全但功能較少的 vsftpd這個軟體吶。 • P.21-2 請參閱書籍

  3. FTP 功能簡介 • 不同等級的使用者身份:user, guest, anonymous • FTP 伺服器在預設的情況下,依據使用者登入的情況而分為三種不同的身份,分別是: (1)實體帳號,real user;(2)訪客, guest;(3)匿名登入者, anonymous 這三種。 • 命令記錄與登錄檔記錄 • 限制使用者活動的目錄: (change root, 簡稱 chroot) • 為了避免使用者在你的 Linux 系統當中隨意逛大街 (意指離開使用者自己的家目錄而進入到 Linux 系統的其他目錄去),所以將使用者的工作範圍『侷限』在使用者的家目錄底下,嗯!實在是個不錯的好主意!FTP 可以限制使用者僅能在自己的家目錄當中活動喔!如此一來,由於使用者無法離開自己的家目錄,而且登入 FTP 後,顯示的『根目錄』就是自己家目錄的內容,這種環境稱之為 change root ,簡稱 chroot,改變根目錄的意思啦! • P.21-2 請參閱書籍

  4. FTP 的運作流程與使用到的埠口 • FTP 伺服器是比較麻煩一些,因為 FTP 伺服器使用了兩個連線,分別是命令通道與資料流通道 (ftp-data) 。這兩個連線都需要經過三向交握,因為是 TCP 封包嘛!那麼這兩個連線通道的關係是如何呢?底下我們先以 FTP 預設的主動式 (active) 連線來作個簡略的說明囉: • 主動式連線使用到的埠號 利用上述的說明來整理一下 FTP 伺服器端會使用到的埠號主要有: • 命令通道的 ftp (預設為 port 21) 與 • 資料傳輸的 ftp-data (預設為 port 20)。 • P.21-3~4 請參閱書籍

  5. 在主動連線的 FTP 伺服器與用戶端之間具有防火牆的 • : • 回想一下我們的第九章防火牆!一般來說,很多的區域網路都會使用防火牆 (iptables) 的 NAT 功能,那麼在 NAT 後端的 FTP 用戶如何連接到 FTP 伺服器呢?我們可以簡單的以下圖來說明 目前有兩個簡易的方法可以克服這個問題: • 使用 iptables所提供的 FTP 偵測模組 • 用戶端選擇被動式 (Passive) 連線模式 • P.21-4~5 請參閱書籍

  6. 用戶端選擇被動式連線模式 • 那麼什麼是被動式連線呢?我們可以使用底下的圖示來作個簡略的介紹喔: • P.21-6 請參閱書籍

  7. FTP 的安全性問題與替代方案 • 拜 SSH 所賜,目前我們已經有較為安全的 FTP 了,那就是 ssh提供的 sftp這個 server 啊!這個 sftp-server 最大的優點就是:『在上面傳輸的資料是經過加密的』!所以在網際網路上面流竄的時候,嘿嘿!畢竟是比較安全一些啦!所以建議你,除非必要,否則的話使用 SSH 提供的 sftp-server 功能即可~ • 隨時更新到最新版本的 FTP 軟體,並隨時注意漏洞訊息; • 善用 iptables來規定可以使用 FTP 的網域; • 善用 TCP_Wrappers來規範可以登入的網域; • 善用 FTP 軟體的設定來限制使用你 FTP 伺服器的使用者的不同權限啊; • 使用 Super daemon 來進階管理你的 FTP 伺服器; • 隨時注意使用者的家目錄、以及匿名使用者登入的目錄的『檔案權限』; • 若不對外公開的話,或許也可以修改 FTP 的 port 。 • 也可以使用 FTPs 這種加密的 FTP 功能! • P.21-7 請參閱書籍

  8. vsftpd伺服器基礎設定 • vsftpd是基於上面的說明來設計的一個較為安全的 FTP 伺服器軟體,他具有底下的特點喔: • „vsftpd這個服務的啟動者身份為一般使用者,所以對於 Linux 系統的使用權限較低,對於 Linux 系統的危害就相對的減低了。此外,vsftpd亦利用 chroot() 這個函式進行改換根目錄的動作,使得系統工具不會被 vsftpd這支服務所誤用; • „任何需要具有較高執行權限的 vsftpd指令均以一支特殊的上層程序所控制,該上層程序享有的較高執行權限功能已經被限制的相當的低,並以不影響 Linux 本身的系統為準; „ 續下頁 • P.21-9~10 請參閱書籍

  9. „絕大部分 ftp 會使用到的額外指令功能 (dir, ls, cd ...) 都已經被整合到 vsftpd主程式當中了,因此理論上 vsftpd不需要使用到額外的系統提供的指令,所以在 chroot的情況下,vsftpd不但可以順利運作,且不需要額外功能對於系統來說也比較安全。 • „所有來自用戶端且想要使用這支上層程序所提供的較高執行權限之 vsftpd指令的需求,均被視為『不可信任的要求』來處理,必需要經過相當程度的身份確認後,方可利用該上層程序的功能。例如 chown(), Login 的要求等等動作; • 此外,上面提到的上層程序中,依然使用 chroot() 的功能來限制使用者的執行權限。 • P.21-10 請參閱書籍

  10. 所需要的軟體以及軟體結構 • /etc/vsftpd/vsftpd.conf 嚴格來說,整個 vsftpd的設定檔就只有這個檔案!這個檔案的設定是以 bash 的變數設定相同的方式來處理的,也就是『參數=設定值』來設定的,注意,等號兩邊不能有空白喔!至於詳細的 vsftpd.conf可以使用 『 man 5 vsftpd.conf 』來詳查。 • P.21-10~11 請參閱書籍

  11. CentOS的 vsftpd預設值 • 在 CentOS的預設值當中,vsftpd是同時開放實體用戶與匿名使用者的,CentOS的預設值如下: • P.21-19 請參閱書籍

  12. 你可以使用 anonymous 這個匿名帳號或其他實體帳號 (/etc/passwd) 登入; • anonymous 的家目錄在 /var/ftp ,且無上傳權限,亦已經被 chroot了; • „實體用戶的家目錄參考 /etc/passwd,並沒有被 chroot,可前往任何有權限可進入的目錄中; • „任何於 /etc/vsftpd/ftpusers內存在的帳號均無法使用 vsftpd (PAM); • „可利用 /etc/hosts.{allow|deny} 來作為基礎防火牆; • „當用戶端有任何上傳/下載資訊時,該資訊會被紀錄到 /var/log/xferlog中; • „主動式連線的埠口為 port 20; • „使用格林威治時間 (GMT)。 • P.21-19~20 請參閱書籍

  13. 針對實體帳號的設定 • 希望使用台灣本地時間取代 GMT 時間; • „使用者登入時顯示一些歡迎訊息的資訊; • „系統帳號不可登入主機 (亦即 UID 小於 500 以下的帳號); • „一般實體用戶可以進行上傳、下載、建立目錄及修改檔案等動作; • „使用者新增的檔案、目錄之 umask希望設定為 002; • „其他主機設定值保留預設值即可。 • P.21-20~21 請參閱書籍

  14. 先建立主設定檔 vsftpd.conf,這個設定檔已經包含了主要設定值: • P.21-21 請參閱書籍

  15. 建立歡迎訊息: • 建立限制系統帳號登入的檔案 • /etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd這個檔案的設定所影響的; • /etc/vsftpd/user_list:由 vsftpd.conf的 userlist_file所設定。 • P.21-22 請參閱書籍

  16. 實體帳號的 SELinux議題 • P.21-23 請參閱書籍

  17. 對使用者 (包括未來新增用戶) 進行 chroot • P.21-23~24 請參閱書籍

  18. 僅有匿名登入的相關設定 • 使用台灣本地的時間,而非 GMT 時間; • „提供歡迎訊息,說明可提供下載的資訊; • „僅開放 anonymous 的登入,且不需要輸入密碼; • „檔案傳輸的速限為 1 Mbytes/second; • „資料連接的過程 (不是命令通道!) 只要超過 60 秒沒有回應,就強制 Client 斷線! • „只要 anonymous 超過十分鐘沒有動作,就予以斷線; • „最大同時上線人數限制為 50 人,且同一 IP 來源最大連線數量為 5 人; • P.21-26 請參閱書籍

  19. 預設的 FTP 匿名者的根目錄所在: ftp 帳號的家目錄 • OK!那如何設定呢?首先我們必須要知道的是匿名使用者的目錄在哪裡?事實上匿名者預設登入的根目錄是以 ftp 這個使用者的家目錄為主,所以你可以使用『 finger ftp 』來查閱。咱們的 CentOS預設的匿名者根目錄在 /var/ftp/ 中。且匿名登入者在使用 FTP 服務時,他預設可以使用『 ftp 』 這個使用者身份的權限喔,只是被 chroot到 /var/ftp/ 目錄中就是了。 • P.21-26 請參閱書籍

  20. 建立 vsftpd.conf的設定資料 • P.21-27 請參閱書籍

  21. 建立歡迎畫面與下載提示訊息 • P.21-27~28 請參閱書籍

  22. 讓匿名者可上傳/下載自己的資料 (權限開放最大) • P.21-28~29 請參閱書籍

  23. 讓匿名者僅具有上傳權限,不可下載匿名者上傳的東西讓匿名者僅具有上傳權限,不可下載匿名者上傳的東西 • 被動式連線埠口的限制 • P.21-29~30 請參閱書籍

  24. 防火牆設定 • 加入 iptables的 ip_nat_ftp, ip_conntrack_ftp兩個模組 • „開放 port 21 給網際網路使用 • „開放前一小節提到的 port 65400~65410 埠口給 Internet 連線用 • P.21-31 請參閱書籍

More Related