linux服務之FTP服務配置
一:FTP工作原理:
a:主動模式
1: 客戶端向服務端發起控制連線 埠號為21。併發送一個自己隨機生成的傳輸埠給伺服器
2:伺服器收到傳輸埠號,與客戶端建立資料傳輸連線,資料傳送完成後斷開連線。
b:被動模式
1:客戶端與服務端的控制連線建立聯絡,並請求被動連線。
2: 服務端接受到客戶端的被動請求,隨機生成一個數據傳輸埠,傳送給客戶端。
3:客戶端使用服務端傳送的埠,來跟伺服器進行資料傳輸。
在實際的過程中,絕大多數都是使用被動模式,因為如果客戶端隨機生成的埠發給服務端,服務主動連線客戶端,會被客戶端的防火牆阻擋! 所以一般使用被動模式
二:FTP的配置:
1:首先安裝伺服器 vsftpd包。
2:客戶端使用命令wget lftp ftp 來進行連線。
a. wget用法
下載檔案:wget -user=hello -password=123 ftp://172.16.28.19/file
下載資料夾:wget -r ftp://172.16.28.19/soft/dir -nH --cut-dir=1 -P /etc -r表示rescure遞迴檔案,-nH選項表示去除上層目錄,--cut-dir表示在根目錄上再去除多個目錄。-P表示目錄重定向
b. lftp 172.16.17.25
下載檔案 get 下載資料夾 mirror 上傳檔案put 上傳資料夾 put -r ./dir
c. ftp 172.16.25.42
!ls 命令檢視本機的目錄,lcd 切換本機的當前目錄,
三:伺服器端配置
1:使用者分為匿名使用者,本地使用者,虛擬使用者
匿名使用者的ftp共享目錄為 /var/ftp 不需要輸入密碼。不能切換根目錄。
anon_root=/var/dir 設定共享目錄的路徑。
2:本地使用者的上傳目錄為預設為使用者的家目錄。可以切換根。可以通過增加欄位user_config_dir=/etc/vsftpd/usersdir 來分別對使用者進行區域性配置。建立的檔名和使用者名稱相同
3:通過增加userlist_enable=yes 啟用使用者控制列表檔案。
userlist_deny=yes 表示禁止/etc/vsftpd/user_list中的所有使用者使用ftp。
userlist_deny=no 表示允許/etc/vsftpd/user_list中的所有使用者使用ftp.
/etc/vsftpd/ftpusers檔案中的使用者優先user_list配置,所有ftpusers的都允許使用ftp.
4:建立虛擬使用者
a.建立一個虛擬使用者對映的本地賬戶
useradd -d home_dir -s /sbin/nologin user
b.建立虛擬賬戶的使用者名稱和密碼,建立一個檔案 vi /etc/vsftp/vname
在vname中加入使用者名稱和密碼,格式:一行使用者名稱,一行密碼。
c 生成資料庫檔案 db_load -T -t hash -f ./vname vname.db
d. 建立PAM認證檔案,vi /etc/pam.d/vname.vu
在檔案中新增兩行 auth required pam_userdb.so db=/etc/vsftpd/vname
account required pam_userdb.so db=/etc/vsftpd/vname
e. 在/etc/vsftpd/vsftpd.conf中啟用配置,新增欄位 guest_enable=YES local_enable=YES pam_service_name=vsftpd.vu