FTP檔案傳輸服務
FTP連接配接方式
控制連接配接:21
資料連接配接:20 (隻有在主動模式下才使用)
FTP連接配接模式
主動模式
被動模式
FTP傳輸模式
文本模式
二進制模式
(一般使用二進制模式傳輸時,檔案不容易出錯,特别在交換機和路由器上使用時,可使用binary切換成二進制模式)
FTP使用者類型
系統使用者
匿名使用者(anonymous; ftp)
虛拟使用者
在linux主機上是通過vsftpd 軟體包實作的.
主程式:/usr/sbin/vsftpd
服務名: vsftpd
主配置檔案:/etc/vsftpd/vsftpd.conf
黑名單:/etc/vsftpd/ftpusers
控制清單: /etc/vsftpd/user_list
和samba服務一樣,vsftp配置格式:配置項= 參數
常用配置項:
全局
listen=YES:是否以獨立運作的方式監聽服務
listen_address=192.168.4.1:設定監聽的IP位址
listen_port=21:設定監聽FTP服務的端口号
write_enable=YES:是否啟用寫入權限
download_enable=YES:是否允許下載下傳檔案
userlist_enable=YES:是否啟用user_list清單檔案
userlist_deny=YES:是否禁用user_list中的使用者
max_clients=0:限制并發用戶端連接配接max_per_ip=0:限制同一IP位址的并發連接配接
connect_from_port_20=YES:允許伺服器主動模式
pasv_enable=YES:允許被動模式
pasv_max(min)_port=2460:設定被動模式最大(最小)端口号
tcp_wrappers=YES:是否啟用TCP_Wrappers主機通路控制
本地
local_enable=YES:是否啟用本地系統使用者
local_umask=022:本地使用者所上傳檔案的權限掩碼
local_root=/var/ftp:設定本地使用者的FTP根目錄
chroot_local_user=YES:是否将使用者禁锢在主目錄
local_max_rate=0:限制最大傳輸速率(位元組/秒)
匿名
anonymous_enable=YES:啟用匿名通路
anon_umask=022:匿名使用者所上傳檔案的權限掩碼
anon_root=/var/ftp:匿名使用者的FTP根目錄
anon_upload_enable=YES:允許上傳檔案
anon_mkdir_write_enable=YES:允許建立目錄
anon_other_write_enable=YES:開放其他寫入權
anon_max_rate=0:限制最大傳輸速率(位元組/秒)
安裝啟動vsftpd服務後,就可以通過匿名和系統使用者進行通路了,匿名使用者通路的目錄是/var/ftp,匿名使用者是以系統使用者ftp登陸的,/var/ftp是ftp的宿主目錄。而使用普通系統系統使用者進行通路時,預設通路的是該使用者的宿主目錄。
可以根據需要編輯配置檔案vsftpd.conf,進而設定通路的權限。和samba服務陪置一樣,每次配置vsftpd.conf,都需要重新開機或重新加載服務才能生效
servicevsftpd{ restart | reload }
基于安全考慮,FTP根目錄的權限不允許有寫入權限,否則在通路時會報錯。
建立虛拟使用者
建立虛拟使用者資料庫需使用db_load工具,由db4-utils軟體包提供,需要先安裝。
1.建立使用者名和密碼清單
vi /etc/vsftpd/vusers.list
tom
123
jack
456
......
(使用者名和密碼分行顯示,每一行代表一個使用者或密碼,1、3、5...奇數行為使用者名,2、4、6...偶數行為密碼)
2.建立Berkeley DB格式的資料庫檔案 (加密的)
cd /etc/vsftpd(切換到vsftpd目錄,友善操作)
db_load -T -t hash -f vusers.list vusers.db
-T :允許非Berkeley DB應用程式使用
-t :指定加密算法
-f :指定資料源檔案
( vusers.db為生成的檔案)
為了提高安全性,應将users.db檔案權限設定文600,且删除原有的vuser.list檔案,使用者的宿主目錄權限預設為700,是以需要調整權限以允許通路。
3.添加虛拟使用者映射帳号
useradd -d /var/vsftp -s/sbin/nologin tom
-d :指定使用者家目錄,即FTP的根目錄
-s :此帳号無需登入shell
(vsftpd配置中load_root、anon_root配置項需注釋或删除)
4.為虛拟使用者建立PAM認證檔案
vi /etc/pam.d/vsftpd.vu

5.修改vsftpd配置,添加虛拟使用者支援
guest_enable=YES--啟用使用者映射
guest_username=tom--指定映射系統使用者名
pam_service_name=vsftpd.vu --指定PAM認證檔案
6.為不同的使用者建立獨立的配置目錄和檔案
以上步驟已經可以重新開機服務進行虛拟使用者進行通路了,但若要實作不同的虛拟使用者有不同的通路權限,可以為每個虛拟使用者建立各自的配置檔案來實作。
mkdir /etc/vsftpd/vusers_dir--建立目錄
在vsftpd.conf配置檔案中指定
vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
在/etc/vsftpd/vusers_dir/目錄中添加與虛拟使用者同名的配置檔案,在vsftpd服務中,虛拟使用者被作為匿名使用者進行處理,是以配置項一般以anon_ 開頭。
例:
vi /etc/vsftpd/vusers_dir/tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
注:在vsftpd.conf配置檔案中添加user_config_dir配置項後,應該給每個使用者都建立一個獨立的配置檔案(可以是空檔案),否則該使用者可能會無法登入。