390 likes | 556 Views
檔案下載伺服器 FTP 架設與管理. 鄧姚文. 教材. 陳源謙( 2014 ), Ubuntu Linux 管理與架站實務, 博碩文化股份有限公司, ISBN 978-986-201-389-2 (書號 OS30004 ) 湯秉翰( 2013 ), CentOS Linux 系統建置與實務 ( 第二版 ) , 博碩文化股份有限公司, ISBN 978-986-201-764-7 (書號 OS31312 )
E N D
檔案下載伺服器FTP架設與管理 鄧姚文
教材 • 陳源謙(2014), Ubuntu Linux 管理與架站實務, 博碩文化股份有限公司, ISBN 978-986-201-389-2 (書號 OS30004) • 湯秉翰(2013), CentOS Linux系統建置與實務(第二版), 博碩文化股份有限公司, ISBN 978-986-201-764-7 (書號 OS31312) • 鳥哥(2011), 鳥哥的Linux私房菜--伺服器架設篇(第三版), 碁峰資訊股份有限公司, ISBN 9789862579329 (書號 ACA016100)
大綱 • FTP的應用介紹 • 架設FTP伺服器 • 管理FTP伺服器 • 測試FTP伺服器
檔案傳輸通訊協定 • FTP: File Transfer Protocol • 在主機之間互相傳送檔, • http://tools.ietf.org/html/rfc959 • FTP協定比HTTP協定複雜 • 兩個 TCP 連接 • 一個傳命令 • 另一個上傳、下載資料
FTP 簡介 • FTP協定有兩種工作方式:PORT和PASV • PORT(主動方式)的連接過程是: • 當需要傳送資料時,用戶端在命令鏈路上用 PORT命令告訴伺服器:「我打開了*****埠,你過來連接我」。於是伺服器便透過埠號20向用戶端的*****埠發送連接請求,建立一條資料連結來傳送資料。 • PASV(被動方式)的連接過程是: • 當需要傳送資料時,伺服器在命令鏈路上用 PASV命令告訴用戶端:「我打開了*****埠,你過來連接我」。於是用戶端向伺服器的*****埠發送連接請求,建立一條資料連結來傳送資料。
FTP Commands • open • to open a connection with another computer • lsor dir • to list the names of the files in the current remote directory • cd • to change directory on the remote machine • binary • to set the mode of file transfer to binary • (the binary mode transmits all eight bits per byte and thus provides less chance of a transmission error and must be used to transmit files other than ASCII files) • get • to copy one file from the remote machine to the local machine
FTP Commands • ascii • to set the mode of file transfer to ASCII • (this is the default and transmits seven bits per character) • put • to copy one file from the local machine to the remote machine • pwd • to find out the pathname of the current directory on the remote machine • mkdir • to make a new directory within the current remote directory • rmdir • to to remove (delete) a directory in the current remote directory
FTP Commands • delete • to delete (remove) a file in the current remote directory (same as rm in UNIX) • mget • to copy multiple files from the remote machine to the local machine; • you are prompted for a y/n answer before transferring each file • mget * • copies all the files in the current remote directory to your current local directory, using the same filenames. Notice the use of the wild card character, *. • mput • to copy multiple files from the local machine to the remote machine; • you are prompted for a y/n answer before transferring each file • bye or quit • to exit the FTP environment
架設FTP伺服器 • 要自行架設FTP伺服器並不是很困難,只要透過aptitude指令安裝必要的套件,再根據需求調整FTP伺服器的設定值,即可完成安裝。 輸入指令【sudo aptitude install vsftpd】 以安裝FTP伺服器必要的套件。
架設FTP伺服器 • 簡易測試FTP伺服器服務 • 在安裝FTP伺服器服務的過程,會自動的啟動所安裝的FTP伺服器服務; • 因此,在完成安裝後,可以直接在終端機透過簡易的FTP指令,測試FTP伺服器服務是否正常。 透過指令【ifcong】取得本機的IP位址為「192.168.1.12」
架設FTP伺服器 • 簡易測試FTP伺服器服務 • 接著,便透過FTP 指令嘗試連接192.168.1.12 的FTP 伺服器,請輸入指令【ftp 192.168.1.12】並依提示輸入使用者帳號及使用者密碼;預設的使用者帳號及使用者密碼即為登入Linux 主機的使用者帳號及使用者密碼。 • 若輸入的使用者帳號與使用者密碼皆正確,則將可以順利登入所架設的FTP伺服器主機,預設會載入使用者帳號的家目錄為登入後預設的目錄,透過FTP指令「ls」可以列出所有檔案。
架設FTP伺服器 • 簡易測試FTP伺服器服務 • 若發生無法連線的狀況,請檢查安裝程序是否完成及透過指令查詢FTP伺服器服務是否已經被啟動,請輸入指令【sudo service vsftpd status】以確認所安裝的FTP伺服器服務是否正常啟動。 • 若FTP 伺服器服務的狀態為「stop/waiting」代表FTP 伺服器服務尚未啟動,請透過指令【sudo service vsftpd start】手動啟動FTP 伺服器服務。
管理FTP伺服器 • 透過套件管理指令「dpkg」及參數「-L vsftpd」與接續的管線指令「 | grep/etc」,能夠列出已經安裝的VSFTPD 伺服器套件的相關設定檔案。
管理FTP伺服器 • 限制不允許使用FTP的使用者帳號列表 /etc/ftpusers • 預設透過「/etc/ftpusers」進行管控,任何不允許登入FTP伺服器的本地使用者帳號,都可以加入這個列表裡;當使用者帳號名稱登入位於該設定檔案的拒絕清單裡,則在登入時將會顯示拒絕登入的訊息。 • 此時,若透過文字編輯器將frank 帳號加入拒絕登入清單裡,並且,透過指令【sudo service vsftpd restart】重新啟動FTP 伺服器後,使用frank 帳號嘗試登入FTP 伺服器,將發現即便輸入正確的密碼,仍然被拒絕登入。
管理FTP伺服器 • 限制不允許使用FTP的使用者帳號列表 /etc/ftpusers 將frank帳號加入拒絕登入FTP的帳號 清單裡,並重新啟動FTP伺服器。 使用frank帳號登入FTP伺服 器,將發現frank帳號已經 無法登入。
管理FTP伺服器 • VSFTPD的PAM認證模組 /etc/pam.d/vsftpd • 透過VSFTPD 的PAM 設定檔案,使用者可以根據需求定義FTP 檔案伺服器使用者身份驗證的功能,預設定義只要使用者的帳號名稱出現於「/etc/ftpusers」清單裡,便拒絕登入。
管理FTP伺服器 • VSFTPD的服務啟動控制 /etc/init.d/vsftpd • 預設提供用來控制FTP 檔案伺服器的服務,可以透過指令: • /etc/init.d/vsftpd start 啟動VSFTPD檔案伺服器的服務。 • /etc/init.d/vsftpd stop 停止VSFTPD檔案伺服器的服務。 • /etc/init.d/vsftpd restart 重新啟動VSFTPD檔案伺服器的服務。
管理FTP伺服器 • VSFTPD的記錄檔案儲存控制 /etc/logrotate.d/vsftpd • Logrotate工具設計用於簡化大量系統紀錄檔案的管理工作,允許自動分頁壓縮、移除與寄發紀錄檔,也可設定在每天、每週、每個月、或紀錄檔案到達一定的檔案大小時進行處理。通常 logrotate為每天的例行性命令工作。
管理FTP伺服器 • VSFTPD伺服器環境的組態設定檔案 /etc/vsftpd.conf • 此檔案為VSFTPD 最重要的設定檔案,該檔案的內容主要控制VSFTPD 檔案伺服器的整體運作。管理者可以根據不同的需求進行調整。 • 設定檔案依分類如下,詳細內容請參考書籍13-9頁~13-15頁 • 與VSFTPD伺服器服務的設定選項 • 與實體用戶較相關的設定值 • 匿名者登入的設定值 • 關於系統安全方面的一些設定值
測試FTP伺服器 • 當伺服器完成架設後,除了在伺服器本機使用ftp 指令進行FTP 檔案伺服器的測試外,更需要透過其它電腦主機及FTP用戶端軟體套件的輔助,進行FTP檔案伺服器的測試,以確保服務正常無誤。分別說明如下 • 在Windows使用FTP用戶端軟體進行測試 • 在X視窗使用FTP用戶端軟體進行測試
測試FTP伺服器 • 在Windows使用FTP用戶端軟體進行測試 • 使用習慣的FTP用戶端軟體,若沒有慣用的FTP用戶端軟體,則推薦使用開發原始碼資源的FileZilla Client;其為免費下載、無功能限制的FTP 用戶端軟體,讀者可以在http://filezilla.sourceforge.net網站下載Windows 版本的安裝程式。
測試FTP伺服器 • 在Windows使用FTP用戶端軟體進行測試 • STEP1.啟動FileZilla FTP用戶端軟體後,請直接在「主機」、「使用者帳號」及「使用者密碼」欄位輸入要連線進行測試的FTP 伺服器,並點選「快速連線」以測試FTP Server是否可以從別台電腦主機進行連線。
測試FTP伺服器 • 在Windows使用FTP用戶端軟體進行測試 • STEP2.在成功連線至透過VSFTPD軟體套件所架設的FTP 伺服器後,請嘗試上傳任意檔案,以確定上傳檔案可以正常運作。
測試FTP伺服器 • 在Windows使用FTP用戶端軟體進行測試 • STEP3.當將檔案上傳至所架設的FTP 伺服器時,若發現無法順利的上傳檔案,並且,上傳檔案失敗的訊息是「Permission denied 拒絕存取」時,則請先行檢查VSFTPD環境組態設定檔案的設定參數。
測試FTP伺服器 • 在Windows使用FTP用戶端軟體進行測試 • STEP4.若架設FTP檔案伺服器的規劃,是允許使用者上傳檔案至FTP檔案伺服器,則請檢查vsftpd.conf 設定檔案的內容,確認「write_enable=YES」的參數是否被開啟;預設是以「#」將此功能關閉,不允許使用者上傳檔案至FTP 伺服器。 • STEP5.若要修改成允許使用者上傳檔案,則請直接更改vsftpd.conf 的檔案內容,並且將「#write_enable=YES」修改成「write_enable=YES」。
測試FTP伺服器 • 在Windows使用FTP用戶端軟體進行測試 • STEP5.完成修改,請記得輸入指令【sudo /etc/init.d/vsftpd restart】以重新啟動所架設的VSFTPD 檔案伺服器服務。成功上傳檔案的參考畫面。預設是不允許使用者上傳檔案至FTP伺服器。 • 完成修改並重新啟動VSFTPD 檔案伺服器服務後,請記得測試原本無法上傳檔案的問題,是否已經被解決。
測試FTP伺服器 • 在X視窗使用FTP用戶端軟體進行測試 • STEP1.在沒有安裝FTP用戶端軟體的電腦平台,可以直接透過網路瀏覽器進行FTP檔案伺服器的存取;假設FTP 伺服器的IP位址是192.168.1.12,則只要在網頁瀏覽器的網址列輸入【ftp://192.168.1.12】以透過網頁瀏覽器存取FTP伺服器。
測試FTP伺服器 • 在X視窗使用FTP用戶端軟體進行測試 • STEP2.若要存取的FTP 檔案伺服器必須通過使用者身分驗證,才能夠順利的存取檔案伺服器的檔案資源,則請依提示輸入正確的使用者帳號及使用者密碼。 • 在Ubuntu Linux的X視窗操作介面,除了使用網頁瀏覽器的操作介面,更可以透過FTP 用戶軟體進行FTP檔案伺服器的存取;若預設尚未安裝FTP 用戶端軟體,則可以透過Ubuntu Software Center安裝指定的FTP用戶端軟體。
測試FTP伺服器 • 在X視窗使用FTP用戶端軟體進行測試 • STEP3.透過Applications(應用程)選單選擇Internet(網際網路)並選擇FileZilla以啟用所安裝的FileZilla FTP用戶端軟體以進行FTP檔案伺服器的存取。 啟用FTP用戶端軟體後,請輸 入FTP伺服器的連線設定參 數,並點選「快速連線」以 進行FTP檔案伺服器的存取。
測試FTP伺服器 • 在X視窗使用FTP用戶端軟體進行測試 • STEP4.當成功的透過FileZilla FTP用戶端軟體存取FTP 檔案伺服器後,便可以依需求進行FTP檔案伺服器的操作或管理。
命令列 FTP 工具 wget • wget -t0 -c -nH -np -m -P /localdir http://example.com/mirrors/ftp.redhat.com • # -t0: 設定重試次數。當連結中斷或超時,wget會重新連接。-t0代表把重試次數設為無窮多。 • # -c: 設定續傳功能。 • # -nH: 不建立該網站名稱的子目錄 /example.com/,而直接在當前目錄下建立鏡像的目錄結構。 • # -np: 不遍歷父目錄,如果有連結連到目標資料夾的parent或其他目錄,不下載。 • # -m: 鏡像,相當同時使用-r和-N。 • # -r: 遞迴下載,把文件中所有的連結都下載回來。 • # -N: 下載時檢查timestamp,只下載有更新的文件,如果檔案大小和最修改日期都一樣就不下載。 • # -P: 指定下載到本機的某個目錄下。
本章結束 Q&A討論時間