FTP服務,
================FTP服務:
FTP:(File Transfer Protocol)檔案傳輸通訊協定,是TCP/IP協議組中的協議之一;
架構: C/S client/server
B/S browser/server
連結:
命令連結--------->command 21號連接埠
資料連結---------> data
連結模式:
主動模式:伺服器端從20號連接埠主動向用戶端發出連結請求;
被動模式 : 伺服器端在指定範圍內的某個連接埠被動等待用戶端發起連結請求;
傳輸模式:
文字模式: ASCII模式,以文本序列傳輸資料;
二進位模式:Binary模式,以二進位序列傳輸資料;
服務概述:
==============搭建vsftpd服務:
伺服器端:
1》安裝相關軟體包:
yum -y install vsftpd
service vsftpd start 開啟服務
lsof -i:21 查看相關連接埠
*****:預設情況下我們使用ftp使用者登入,只能下載檔案,不能上傳檔案,所以當我們登入ftp伺服器後直接進入ftp使用者的家目錄/var/ftp;建立本機使用者,才能實現上 傳和下載檔案,上傳的檔案會在使用者的家目錄下;
2》建立本機使用者,實現上傳和下載檔案:
3》修改設定檔:/etc/vsftpd/vsftpd.conf
******man 5 vsftpd.conf 命令可以詳細查看設定檔中的各項配置意義
4》用戶端登入,並上傳下載檔案:
================匿名使用者相關案例:
=================黑白名單:
==========虛擬賬戶:滿足大量賬戶的訪問需求
如果需要訪問FTP的使用者不多,則可以直接建立系統賬戶以滿足對FTP訪問的請求,但當使用者量變得越來越龐大時,繼續建立更多的系統賬戶是不明智的,這時就需要為vsftpd建立虛擬賬戶;但vsftpd虛擬賬戶的資料需要儲存在Berkeley DB 格式的資料檔案中,所以需要安裝db4-utils工具來建立這樣的資料檔案:
1》建立虛擬賬戶資料庫:
首先需要建立純文字密碼檔案,明文檔案奇數行為使用者名稱,偶數行為密碼,然後使用db_load工具將其轉換為資料庫檔案,db_load工具需要通過安裝db4-utils軟體獲得,最後可以通過修改檔案許可權以增強資料資料的安全性;
2》建立PAM檔案,設定基於虛擬賬戶驗證:
Linux一般通過PAM檔案設定賬戶的驗證機制,然後通過建立新的PAM檔案,使用新的資料檔案進行登入驗證,PAM檔案中的db選項於指定並驗證賬戶和密碼的資料庫檔案,資料庫檔案無須.db的名稱尾碼。
3》設定虛擬賬戶共用目錄:
因為所有的虛擬賬戶最終都需要映射到一個真實的系統賬戶,所有這裡需要添加一個系統賬戶並設定家目錄,可以設定一份測試檔案;
useradd -s /sbin/nologin -d /home/ftp virtual
cp /etc/passwd /home/ftp
4》修改主設定檔:
與匿名使用者設定差不多,使用guest_enable選項開啟虛擬賬戶功能;
5》為每個使用者佈建獨立的共用路徑:
通過在主設定檔中使用user_config_dir選項,設定一個基於賬戶的配置目錄,在該目錄下可以建立若干個與賬戶名稱同名的檔案,並在檔案中為此賬戶設定獨立的配置選項,包括許可權與共用路徑等設定,這樣就可以為每個賬戶作單獨的使用權限設定等操作,當然如果你還需要對許可權,限速,並發量等選項進行設定,可以參考匿名帳號的設定選項添加至帳號獨立的設定檔中;
6》重啟服務:
service vsftpd restart
相關測試:
相關命令: mirror 下載檔案夾
mirror -R 上傳檔案夾
wget命令解析: 只能用來下載檔案,不能用來下載檔案夾,下載的檔案預設放在目前的目錄下;
==================常見問題分析:
1》提示錯誤碼:530 Login incorrect
說明登入過程中賬戶驗證失敗,則可能是因為你使用的是64位作業系統,而pam檔案中庫檔案的調用卻使用的是/lib/security/pam_usedb.so,或者是使用者名稱或密碼輸入有錯誤;此外,也可能是vsftpd主設定檔中pam_service_name設定的pam檔案名稱與/etc/pam.d中建立的pam檔案名稱不一致,導致無法驗證成功;
2》提示錯誤碼:500 OOPS: cannot change directory:/home/ftp/$USER
該提示代表目錄不存在或無許可權導致的無法切換至目錄,也有可能是由於SELinux導致的無法共用賬戶家目錄,預設SELinux不允許共用家目錄;
3》使用windows系統訪問主動模式的vsftpd伺服器時無法訪問成功
預設windows會使用被動模式串連FTP伺服器,如果需要以主動模式串連伺服器,需要修改瀏覽器的屬性,方法是尋找Internet選項的進階選項卡,找到使用被動FTP,取消該功能即可;
4》賬戶登入後無法上傳資料:
根據不同的登入類型,檢查主設定檔的設定,匿名帳號與虛擬賬戶檢查以anon_開頭的使用權限設定,本地賬戶檢查以local_開頭的使用權限設定,並且要確保全域write_enable設定為YES,此外,檔案系統目錄的許可權也需要修改,確保用戶端賬戶有許可權訪問該目錄;
ll -d /var/ftp
5》啟動服務時報錯:500 OOPS:bad bool value in config file
vsftpd 設定檔設定錯誤,檢查檔案;設定檔要求每個設定項佔用獨立的一行,並且不可以有多於 的空格;
==================日誌分析與防火牆問題:
日誌:
安全: