FTP服務器之vsFTPd搭建

在使用XEN創建虛擬機的時候,需要通過網絡安裝centos,那時候就簡單的幾個命令開啓了vsftpd服務,把安裝文件拷貝到/var/ftp/下面就可以通過 ftp://ip地址/ 進行訪問了,可是對具體的原理和配置修改並不是十分清楚,幸好有鳥哥提供的私房菜,讓我美味地重新品嚐了一番。

1.chroot:
為了避免使用者離開自己的家目錄而進入到 Linux 系統的其他目錄去,FTP 可以限制使用者僅能在自己的家目錄當中活動喔!如此一來,由於使用者無法離開自己的家目錄,而且登入 FTP 後,顯示的『根目錄』就是自己家目錄的內容,這種環境稱之為 change root ,簡稱 chroot ,改變根目錄的意思啦!當一個惡意的使用者以 FTP 登入您的系統當中,如果沒有 chroot 的環境下,他可以到 /etc, /usr/local, /home 等其他重要目錄底下去察看檔案資料,尤其是很重要的 /etc/ 底下的設定檔,如 /etc/passwd 等等。如果您沒有做好一些檔案權限的管理與保護,那他就有辦法取得系統的某些重要資訊,用來『入侵』您的系統呢!所以在 chroot 的環境下,當然就比較安全一些咯!


2.FTP 的運作流程與使用到的埠口:
  1. 用戶端會隨機取一個大於 1024 以上的埠口 (port AA) 來與 FTP 伺服器端的 port 21 達成連線,這個過程當然需要三向交握了!達成連線後用戶端便可以透過這個連線來對 FTP 伺服器下達指令,包括查詢檔名、下載、上傳等等指令都是利用這個通道來下達的;

  2. FTP 伺服器的 21 埠號主要用在命令的下達,但是當牽涉到資料流時,就不是使用這個連線了。用戶端在需要資料的情況下,會告知伺服器端要用什麼方式來連線,如果是主動式 (active) 連線時, 用戶端會先隨機啟用一個埠口 (圖一當中的 port BB) ,且透過命令通道告知 FTP 伺服器這兩個資訊,並等待 FTP 伺服器的連線;

  3. FTP 伺服器由命令通道瞭解用戶端的需求後,會主動的由 20 這個埠號向用戶端的 port BB 連線,這個連線當然也會經過三向交握啦!此時 FTP 的用戶端與伺服器端共會建立兩條連線,分別用在命令的下達與資料的傳遞。 而預設 FTP 伺服器端使用的主動連線埠號就是 port 20 囉!
如此一來則成功的建立起『命令』與『資料傳輸』兩個通道!FTP 會使用到的埠號主要有:
  • 命令通道的 ftp (預設為 port 21) 與
  • 資料傳輸的 ftp-data (預設為port 20)。
再強調一次,這兩個埠口的工作是不一樣的,而且,重要的是兩者的連線方向是不一樣的! 首先, port 21 主要接受來自用戶端的主動連線,至於 port 20 則為 FTP 伺服器主動連線至用戶端呢!


3.設定配置/etc/vsftpd/vsftpd.conf,嚴格來說,整個 vsftpd 的設定檔就只有這個檔案!這個檔案的設定是以『參數=設定值』來設定的,注意, 等號兩邊不能有空白喔!至於詳細的 vsftpd.conf 可以使用 『 man 5 vsftpd.conf 』來詳查。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章