FTP文件共传输服务
FTP文件共傳輸服務(wù)
一,vsftpd服務(wù)基礎(chǔ)
(1),FTP服務(wù)概述
? ? ? ? FTP(File Transfer ?Protocol,文件傳輸協(xié)議)是典型的C/S結(jié)構(gòu)的應(yīng)用層協(xié)議,需要由服務(wù)端軟件、客戶端軟件共同實現(xiàn)文件傳達輸功能。
1,FTP連接及傳輸模式
#FTP服務(wù)器默認使用TCP協(xié)議的“20、21端口”與客戶端進行通信
#20端口用于建立數(shù)據(jù)連接,并傳輸文件數(shù)據(jù)
#21端口用于建立控制連接,并傳輸FTP控制命令
【模式】
#主動模式:服務(wù)器主動發(fā)起數(shù)據(jù)連接,首先由客戶端向服務(wù)端的21端口建立FTP
控制連接,當需要傳輸數(shù)據(jù)時,客戶端以ROPT命令告知服務(wù)器“我打開了某
個端口,你過來連接我“,于是,服務(wù)器從20端口向客戶端發(fā)送請求并建立
數(shù)據(jù)連接。
#被動模式:服務(wù)器被動等待數(shù)據(jù)連接,如果客戶機所在網(wǎng)絡(luò)的防火墻禁止主動模
式連接,通常會使用被動模式,客戶端向服務(wù)器的該端口(非20)發(fā)送請求
并建立數(shù)據(jù)連接。
【端口】
隨機端口 > 1024 ? ? ? ? ? ? ?周知端口 <= 1024
2,FTP用戶類型
#匿名用戶:ftp或anonymous,空密碼,一般用于提供公共文件的下載。
#本地用戶:本機的系統(tǒng)用戶。
#虛擬用戶:不是直接使用系統(tǒng)用戶,而是位于獨立數(shù)據(jù)文件中的FTP用戶賬號,通
過使用虛擬用戶,將FTP賬戶與Linux系統(tǒng)賬戶的關(guān)聯(lián)性降至最低,可以為系
統(tǒng)提供更好的安全。
3,FTP服務(wù)器軟件的分類
#windows:iis ? ? ? ? ? ? ? ? ?serv-u
#Linux:proftpd pureftpd ?vsftpd
〖vsftpd〗
a)該軟件針對安全特性方面做了大量的設(shè)計
b)Vsftpd在速度和穩(wěn)定性方面的表現(xiàn)也相當突出
c)Vsftpd可以支持15000個用戶并發(fā)連接
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服務(wù)
#user_list:黑白名單文件,一般用作白名單。此文件中包含的用戶可能被禁止登錄,
也可能被允許登錄,具體取決于主配置文件vsftpd.conf中的設(shè)置
? ? ? ? ? userlist_enable=yes,user_list列表文件才生效
? ? ? ? ? userlist_deny=yes,為黑白名單,禁止此列表中的用戶登錄
? ? ? ? ? userlist_deny=no,為白名單,允許此列表中的用戶登錄
2,主配置文件“vsftpd.conf”
格式:配置項=參數(shù)
【vsftpd.conf常見配置項及含義說明】
【匿名用戶/適用于虛擬用戶】
anonymous_enable=yes /是否允許匿名訪問
anon_umask=022 /設(shè)置匿名用戶所上傳文件的默認權(quán)限掩碼值,采用反碼方式表示
anon_root=/var/ftp ? ?/設(shè)置匿名用戶的FTP根目錄(缺省為/var/ftp)
anon_upload_enable=yes ? /是否允許匿名用戶上傳文件
anon_mkdir_write_enable=yes ? ?/是否允許匿名用戶有創(chuàng)建目錄的寫入權(quán)限
anon_other_write_enable=yes ?/是否允許匿名用戶有其他寫入權(quán)限“改名,刪除”
anon_max_rate=0 ?/限制匿名用戶的最大傳輸速率(0為無限制),單位為字節(jié)/秒
【本地用戶】
? ?local_enable=yes ?/是否允許本地系統(tǒng)用戶訪問
? ?local_umask=022 ?/設(shè)置本地用戶所上傳文件的默認權(quán)限
? ?local_root=/var/ftp ? ?/設(shè)置本地用戶的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地址的客戶端,最多允許多少個并發(fā)連接(0為元限制),控制多進程下載,如“迅雷”
connect_from_port_20=yes /允許服務(wù)器主動模式(從20端口建立數(shù)據(jù)連接)
pasv_enable=yes ?/允許被動模式連接
pasv_max_port=24600 ?/設(shè)置用于被動模式的服務(wù)器最大端口號
pasv_min_port=24500 ?/設(shè)置用于被動模式的服務(wù)器最小端口號
pam_service_name=vsftpd ?/設(shè)置用于用戶認證的PAM文件位置(/dev/pam.d/目錄中對應(yīng)的文件名)
listen=yes ?/是否以獨立運行的方式監(jiān)聽服務(wù)
listen_address=0.0.0.0 ?/設(shè)置監(jiān)聽FTP服務(wù)的IP地址
listen_port=21 ?/設(shè)置監(jiān)聽FTP服務(wù)的端口號
write_enable=yes ?/啟用任何形式的寫入權(quán)限(如上傳、刪除文件等)要開啟它
download_enable=yes ?/是否允許下載文件(no為僅限于瀏覽、上傳)
dirmessage_enable=yes ?/用戶切換進入目錄時顯示.message文件
xferlog_enable=yes ?/啟用xferlog日志,默認記錄到/var/log/xferlog
xferlog_std_format=yes ?/啟用標準的xferlog日志格式。如禁用,將使用vsftpd自己的日志格式
二,基于系統(tǒng)用戶的FTP服務(wù)
(1),匿名訪問的FTP服務(wù)
1,準備匿名FTP訪問的目錄
? ? ? ? #FTP匿名用戶對應(yīng)的系統(tǒng)用戶為ftp
? ? ? ? #宿主目錄:/var/ftp
2,開放匿名用戶配置,并啟動vsftpd服務(wù)
#設(shè)置主配置文件:vim /etc/vsftpd/vsftpd.conf
#開啟服務(wù):service vsftpd ?restart
3,測試匿名FTP服務(wù)器
如ftp ?192.168.1.1
【登錄FTP后,對客戶端操作方法】
Linux | Windows | |
顯示當前路徑 | !pwd | !cd |
改變路徑 | lcd | lcd |
查看目錄內(nèi)容 | !ls | !dir |
(2),用戶驗證的FTP服務(wù)
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 ? ? 啟用白名單
·重啟服務(wù):service vsftpd ?restart
(3),vsftpd服務(wù)的其他常用配置
1,修改vsftpd服務(wù)的監(jiān)聽地址、端口
查看vsftpd服務(wù)的監(jiān)聽情況:netstat ?-anpt | ?grep ?“vsftpd”
2,允許使用FTP服務(wù)器的被動模式
3,限制FTP連接的并發(fā)數(shù)、傳輸速度
三,基于虛擬用戶的FTP服務(wù)
(1),建立虛擬用戶的賬號數(shù)據(jù)庫
準備工作:rpm ?-ivh ?db4-utils-..rpm ? ? ? ? ? ? ? ? ? ? ? /安裝此軟件
1,創(chuàng)建文件格式的用戶名、密碼列表
vim /etc/vsftpd/vusers.list ? ? ? ? ? ? ? ? ? /vusers.list文件名,后綴名自定義
用戶名奇數(shù)行
密碼偶數(shù)行
2,創(chuàng)建Berkeley DB格式的數(shù)據(jù)庫文件源文件目標文件
a)先進入/etc/vsftpd/目錄:cd ?/etc/vsftpd
b)創(chuàng)建轉(zhuǎn)換:db_load ?-T -t ?hash ?-f ?vusers.listvusers.db
c)查看轉(zhuǎn)換后的文件類型:flie ?vusers.db
d)為提高虛擬用戶賬號文件的安全性,設(shè)置文件權(quán)限
chmod ?600 /etc/vsftpd/vusers.*
3,添加虛擬用戶的映射賬號、創(chuàng)建FTP根目錄
useradd ?-d /var/ftproot ?-s ?/sbin/nologin virtual ?
chmod ?755 ?/var/ftproot ? ? ? ? ? ? ? ? ? (ftproot這個目錄會自動創(chuàng)建)
(2),為vsftpd服務(wù)添加虛擬用戶支持
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
? ? ? ? ? ? ? ? ? ……//省略部分內(nèi)容
? ? ? ? ? ? ? ? ? local_enable=yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/需要映射本地用戶、所以啟用此項
? ? ? ? ? ? ? ? ? write_enable=yes ? ? ? ? ? ? ? ? ? ? ? ? ? ?/啟用上傳寫入支持
? ? ? ? ? ? ? ? ? anon_umask=022 ? ? ? ? ? ? ? ? ? ? ? ? ? ? /指定上傳權(quán)限掩碼
? ? ? ? ? ? ? ? ? guest_enable=yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /啟用用戶映射功能
? ? ? ? ? ? ? ? ? guest_username=virtual ? ? ? ? ? ? ? /指定映射的系統(tǒng)用戶名稱
? ? ? ? ? ? ? ? ? pam_service_name=vsftpd.vu ? /指定新的PAM認證文件
3,為不同的虛擬用戶建立獨立的配置文件
a)vim ?/etc/vsftpd/vsftpd.conf
……//省略部分內(nèi)容
user_config_dir=/etc/vsftpd/vusers_dir ? ? ? ? ? ? ? ? ? ? ? (vusers_dir目錄名自定義)
b)創(chuàng)建用戶配置文件夾
mkdir ?/etc/vsftpd/vusers_dir
c)進入此文件夾,為用戶建立獨立的配置文件
cd ?/etc/vsftpd/vusers_dir
vim ?用戶名
? ? ? ? ? anon_upload_enable=yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /上傳權(quán)限
? ? ? ? ? anon_mkdir_write_enable=yes ? ? ? ? ? ? ? ? ? ?/創(chuàng)建、定入權(quán)限
? ? ? ? ? anon_other_write_enable=yes ? ? ? ? ? ? ? ? ? ?/修改權(quán)限
d)重新加載配置
service vsftpd ?reload
轉(zhuǎn)載于:https://blog.51cto.com/haigou1995/1331505
總結(jié)
以上是生活随笔為你收集整理的FTP文件共传输服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到一个和尚喜欢我怎么回事
- 下一篇: 梦到白蝎子什么征兆