FTP檔案共傳輸服務
一,vsftpd服務基礎
(1),FTP服務概述
FTP(File Transfer Protocol,檔案傳輸協定)是典型的C/S結構的應用層協定,需要由服務端軟體、用戶端軟體共同實作檔案傳達輸功能。
1,FTP連接配接及傳輸模式
#FTP伺服器預設使用TCP協定的“20、21端口”與用戶端進行通信
#20端口用于建立資料連接配接,并傳輸檔案資料
#21端口用于建立控制連接配接,并傳輸FTP控制指令
【模式】
#主動模式:伺服器主動發起資料連接配接,首先由用戶端向服務端的21端口建立FTP
控制連接配接,當需要傳輸資料時,用戶端以ROPT指令告知伺服器“我打開了某
個端口,你過來連接配接我“,于是,伺服器從20端口向用戶端發送請求并建立
資料連接配接。
#被動模式:伺服器被動等待資料連接配接,如果客戶機所在網絡的防火牆禁止主動模
式連接配接,通常會使用被動模式,用戶端向伺服器的該端口(非20)發送請求
并建立資料連接配接。
【端口】
随機端口 > 1024 周知端口 <= 1024
2,FTP使用者類型
#匿名使用者:ftp或anonymous,空密碼,一般用于提供公共檔案的下載下傳。
#本地使用者:本機的系統使用者。
#虛拟使用者:不是直接使用系統使用者,而是位于獨立資料檔案中的FTP使用者賬号,通
過使用虛拟使用者,将FTP賬戶與Linux系統賬戶的關聯性降至最低,可以為系
統提供更好的安全。
3,FTP伺服器軟體的分類
#windows:iis serv-u
#Linux:proftpd pureftpd vsftpd
〖vsftpd〗
a)該軟體針對安全特性方面做了大量的設計
b)Vsftpd在速度和穩定性方面的表現也相當突出
c)Vsftpd可以支援15000個使用者并發連接配接
d)Vsftpd:“very secure FTP daemon”
4,FTP用戶端工具的種類
#windows:cuteFTP FlashFxp LeapFTP Filezilla
#Linux:gftp kuftp
(2),vsftpd的配置
#主程式:/usr/sbin/vsftpd
#配置檔案:/etc/vsftpd
#腳本檔案:/etc/init.d/vsftpd
1,使用者清單檔案“ftpusers和user_list”
#ftpusers:黑名單檔案,此檔案中列出的使用者将禁止登入到vsftpd服務
#user_list:黑白名單檔案,一般用作白名單。此檔案中包含的使用者可能被禁止登入,
也可能被允許登入,具體取決于主配置檔案vsftpd.conf中的設定
userlist_enable=yes,user_list清單檔案才生效
userlist_deny=yes,為黑白名單,禁止此清單中的使用者登入
userlist_deny=no,為白名單,允許此清單中的使用者登入
2,主配置檔案“vsftpd.conf”
格式:配置項=參數
【vsftpd.conf常見配置項及含義說明】
【匿名使用者/适用于虛拟使用者】
anonymous_enable=yes /是否允許匿名通路
anon_umask=022 /設定匿名使用者所上傳檔案的預設權限掩碼值,采用反碼方式表示
anon_root=/var/ftp /設定匿名使用者的FTP根目錄(預設為/var/ftp)
anon_upload_enable=yes /是否允許匿名使用者上傳檔案
anon_mkdir_write_enable=yes /是否允許匿名使用者有建立目錄的寫入權限
anon_other_write_enable=yes /是否允許匿名使用者有其他寫入權限“改名,删除”
anon_max_rate=0 /限制匿名使用者的最大傳輸速率(0為無限制),機關為位元組/秒
【本地使用者】
local_enable=yes /是否允許本地系統使用者通路
local_umask=022 /設定本地使用者所上傳檔案的預設權限
local_root=/var/ftp /設定本地使用者的FTP根目錄,适用于虛拟使用者
local_local_user=yes /是否将FTP本地用記禁锢在宿主目錄中
local_max_rate=0 /限制本地使用者的最大傳輸率(0為無限制)
【全局配置】
userlist_enable=yes /是否啟用user_list使用者清單檔案,啟用黑白名單
userlist_deny=yes /是否禁用user_list清單檔案中的使用者賬号,yes為黑
max_clients=0 /是否允許多個用戶端同時連接配接(0為無限制)
max_per_ip=0 /對來自同一個IP位址的用戶端,最多允許多少個并發連接配接(0為元限制),控制多程序下載下傳,如“迅雷”
connect_from_port_20=yes /允許伺服器主動模式(從20端口建立資料連接配接)
pasv_enable=yes /允許被動模式連接配接
pasv_max_port=24600 /設定用于被動模式的伺服器最大端口号
pasv_min_port=24500 /設定用于被動模式的伺服器最小端口号
pam_service_name=vsftpd /設定用于使用者認證的PAM檔案位置(/dev/pam.d/目錄中對應的檔案名)
listen=yes /是否以獨立運作的方式監聽服務
listen_address=0.0.0.0 /設定監聽FTP服務的IP位址
listen_port=21 /設定監聽FTP服務的端口号
write_enable=yes /啟用任何形式的寫入權限(如上傳、删除檔案等)要開啟它
download_enable=yes /是否允許下載下傳檔案(no為僅限于浏覽、上傳)
dirmessage_enable=yes /使用者切換進入目錄時顯示.message檔案
xferlog_enable=yes /啟用xferlog日志,預設記錄到/var/log/xferlog
xferlog_std_format=yes /啟用标準的xferlog日志格式。如禁用,将使用vsftpd自己的日志格式
二,基于系統使用者的FTP服務
(1),匿名通路的FTP服務
1,準備匿名FTP通路的目錄
#FTP匿名使用者對應的系統使用者為ftp
#宿主目錄:/var/ftp
2,開放匿名使用者配置,并啟動vsftpd服務
#設定主配置檔案:vim /etc/vsftpd/vsftpd.conf
#開啟服務:service vsftpd restart
3,測試匿名FTP伺服器
如ftp 192.168.1.1
【登入FTP後,對用戶端操作方法】
Linux
Windows
顯示目前路徑
!pwd
!cd
改變路徑
lcd
檢視目錄内容
!ls
!dir
(2),使用者驗證的FTP服務
1,基本的本地使用者驗證
·ftp://使用者名@192.168.1.1
·ftp://使用者名:密碼@192.168.1.1
2,使用user_list使用者清單檔案
·編輯“vim /etc/vsftpd/user_list”
添加本地使用者
·編輯 vim /etc/vsftpd/vsftpd.conf
userlist_enable=yes 啟用此項
userlist_deny=no 啟用白名單
·重新開機服務:service vsftpd restart
(3),vsftpd服務的其他常用配置
1,修改vsftpd服務的監聽位址、端口
檢視vsftpd服務的監聽情況:netstat -anpt | grep “vsftpd”
2,允許使用FTP伺服器的被動模式
3,限制FTP連接配接的并發數、傳輸速度
三,基于虛拟使用者的FTP服務
(1),建立虛拟使用者的賬号資料庫
準備工作:rpm -ivh db4-utils-..rpm /安裝此軟體
1,建立檔案格式的使用者名、密碼清單
vim /etc/vsftpd/vusers.list /vusers.list檔案名,字尾名自定義
使用者名奇數行
密碼偶數行
2,建立Berkeley DB格式的資料庫檔案源檔案目标檔案
a)先進入/etc/vsftpd/目錄:cd /etc/vsftpd
b)建立轉換:db_load -T -t hash -f vusers.listvusers.db
c)檢視轉換後的檔案類型:flie vusers.db
d)為提高虛拟使用者賬号檔案的安全性,設定檔案權限
chmod 600 /etc/vsftpd/vusers.*
3,添加虛拟使用者的映射賬号、建立FTP根目錄
useradd -d /var/ftproot -s /sbin/nologin virtual
chmod 755 /var/ftproot (ftproot這個目錄會自動建立)
(2),為vsftpd服務添加虛拟使用者支援
1,為虛拟使用者建立PAM認證檔案
位于:/etc/pam.d/vsftpd
vim /etc/pam.d/vsftpd.vu(vsftpd.vu檔案名可自定義)
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
2,修改vsftpd配置,添加虛拟使用者支援
vim /etc/vsftpd/vsftpd.conf
……//省略部分内容
local_enable=yes /需要映射本地使用者、是以啟用此項
write_enable=yes /啟用上傳寫入支援
anon_umask=022 /指定上傳權限掩碼
guest_enable=yes /啟用使用者映射功能
guest_username=virtual /指定映射的系統使用者名稱
pam_service_name=vsftpd.vu /指定新的PAM認證檔案
3,為不同的虛拟使用者建立獨立的配置檔案
a)vim /etc/vsftpd/vsftpd.conf
……//省略部分内容
user_config_dir=/etc/vsftpd/vusers_dir (vusers_dir目錄名自定義)
b)建立使用者配置檔案夾
mkdir /etc/vsftpd/vusers_dir
c)進入此檔案夾,為使用者建立獨立的配置檔案
cd /etc/vsftpd/vusers_dir
vim 使用者名
anon_upload_enable=yes /上傳權限
anon_mkdir_write_enable=yes /建立、定入權限
anon_other_write_enable=yes /修改權限
d)重新加載配置
service vsftpd reload