slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
檔案伺服器之三 : FTP 伺服器 PowerPoint Presentation
Download Presentation
檔案伺服器之三 : FTP 伺服器

Loading in 2 Seconds...

play fullscreen
1 / 24

檔案伺服器之三 : FTP 伺服器 - PowerPoint PPT Presentation


  • 108 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '檔案伺服器之三 : FTP 伺服器' - neo


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
21
  • 檔案伺服器之三:FTP 伺服器
slide2

FTP 的資料連結原理

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

請參閱書籍

slide3

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

請參閱書籍

slide4

FTP 的運作流程與使用到的埠口

  • FTP 伺服器是比較麻煩一些,因為 FTP 伺服器使用了兩個連線,分別是命令通道與資料流通道 (ftp-data) 。這兩個連線都需要經過三向交握,因為是 TCP 封包嘛!那麼這兩個連線通道的關係是如何呢?底下我們先以 FTP 預設的主動式 (active) 連線來作個簡略的說明囉:
  • 主動式連線使用到的埠號

利用上述的說明來整理一下 FTP 伺服器端會使用到的埠號主要有:

      • 命令通道的 ftp (預設為 port 21) 與
      • 資料傳輸的 ftp-data (預設為 port 20)。
  • P.21-3~4

請參閱書籍

slide5

在主動連線的 FTP 伺服器與用戶端之間具有防火牆的

  • 回想一下我們的第九章防火牆!一般來說,很多的區域網路都會使用防火牆 (iptables) 的 NAT 功能,那麼在 NAT 後端的 FTP 用戶如何連接到 FTP 伺服器呢?我們可以簡單的以下圖來說明

目前有兩個簡易的方法可以克服這個問題:

  • 使用 iptables所提供的 FTP 偵測模組
  • 用戶端選擇被動式 (Passive) 連線模式
  • P.21-4~5

請參閱書籍

slide6

用戶端選擇被動式連線模式

    • 那麼什麼是被動式連線呢?我們可以使用底下的圖示來作個簡略的介紹喔:
  • P.21-6

請參閱書籍

slide7

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

請參閱書籍

slide8

vsftpd伺服器基礎設定

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

„

續下頁

  • P.21-9~10

請參閱書籍

slide9

„絕大部分 ftp 會使用到的額外指令功能 (dir, ls, cd ...) 都已經被整合到 vsftpd主程式當中了,因此理論上 vsftpd不需要使用到額外的系統提供的指令,所以在 chroot的情況下,vsftpd不但可以順利運作,且不需要額外功能對於系統來說也比較安全。

  • „所有來自用戶端且想要使用這支上層程序所提供的較高執行權限之 vsftpd指令的需求,均被視為『不可信任的要求』來處理,必需要經過相當程度的身份確認後,方可利用該上層程序的功能。例如 chown(), Login 的要求等等動作;
  • 此外,上面提到的上層程序中,依然使用 chroot() 的功能來限制使用者的執行權限。
  • P.21-10

請參閱書籍

slide10

所需要的軟體以及軟體結構

          • /etc/vsftpd/vsftpd.conf

嚴格來說,整個 vsftpd的設定檔就只有這個檔案!這個檔案的設定是以 bash 的變數設定相同的方式來處理的,也就是『參數=設定值』來設定的,注意,等號兩邊不能有空白喔!至於詳細的 vsftpd.conf可以使用 『 man 5 vsftpd.conf 』來詳查。

  • P.21-10~11

請參閱書籍

slide11

CentOS的 vsftpd預設值

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

請參閱書籍

slide12

你可以使用 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

請參閱書籍

slide13

針對實體帳號的設定

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

請參閱書籍

slide14

先建立主設定檔 vsftpd.conf,這個設定檔已經包含了主要設定值:

  • P.21-21

請參閱書籍

slide15

建立歡迎訊息:

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

請參閱書籍

slide16

實體帳號的 SELinux議題

  • P.21-23

請參閱書籍

slide18

僅有匿名登入的相關設定

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

請參閱書籍

slide19

預設的 FTP 匿名者的根目錄所在: ftp 帳號的家目錄

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

請參閱書籍

slide20

建立 vsftpd.conf的設定資料

  • P.21-27

請參閱書籍

slide22

讓匿名者可上傳/下載自己的資料 (權限開放最大)

  • P.21-28~29

請參閱書籍

slide23

讓匿名者僅具有上傳權限,不可下載匿名者上傳的東西讓匿名者僅具有上傳權限,不可下載匿名者上傳的東西

  • 被動式連線埠口的限制
  • P.21-29~30

請參閱書籍

slide24

防火牆設定

          • 加入 iptables的 ip_nat_ftp, ip_conntrack_ftp兩個模組
          • „開放 port 21 給網際網路使用
          • „開放前一小節提到的 port 65400~65410 埠口給 Internet 連線用
  • P.21-31

請參閱書籍