FTP(File Transfer Protocol,文件傳輸協議)可以在網絡中傳輸文檔、圖像、視頻以及應用程序等多種類型的文件。在企業中大多數情況下,則是用戶使用FTP從服務器上下載文件。
一個完整的FTP文件傳輸需要建立兩種類型的連接,一種為控制文件傳輸的命令,稱為控制連接;另一種實現真正的文件傳輸,稱為數據連接
控制連接:客戶端希望與FTP服務器建立上傳下載的數據傳輸時,它首先向服務器TCP協議的21端口發起一個建立連接的請求,FTP服務器接受來自客戶端的請求,完成連接的建立過程,這樣的連接就稱為FTP控制連接
數據連接:FTP控制連接建立后,即可開始傳輸文件,傳輸文件的連接稱為FTP數據連接。FTP數據連接就是FTP傳輸數據的過程,它有主動傳輸模式和被動傳輸模式兩種。
FTP數據傳輸原理
用戶在使用FTP傳輸數據時,整個FTP建立連接的過程經過以下幾個步驟
1、FTP服務器會自動對默認端口21進行監聽,當某個客戶端向這個端口請求建立連接時,便激活了FTP服務器上的控制進程,通過這個控制進程,FTP服務器對連接用戶名、密碼以及連接權限等進行身份驗證
2、當FTP服務器身份驗證完成后,FTP服務器和客戶端之間還會建立一條用來傳輸數據的專有連接
3、FTP服務器在傳輸數據過程中的控制將一直工作,并不斷發出指令控制整個FTP傳輸數據,數據傳輸完畢后控制進程給客戶端發送結束指令。
FTP傳輸模式
在建立數據傳輸的時候有兩種傳輸模式,即主動模式和被動模式
主動模式(PORT模式)
主動模式的數據傳輸專有連接是在建立控制連接(用戶身份驗證完成后),首先由FTP服務器使用20端口主動向客戶端進行連接,建立專用于傳輸數據的連接,這種方式在網絡管理上比較好控制。FTP服務器上的端口21用于用戶驗證,端口20用于數據傳輸,只要將這兩個端口開放就可以使用FTP功能了,此時客戶端只是出于接收狀態。
被動模式(PASV模式)
被動模式與主動模式不同,數據傳輸專有連接是在建立控制連接(用戶身份驗證后)由客戶端向FTP服務器發起連接的。客戶端使用哪個端口,連接到FTP服務器的哪個端口都是隨機產生的,服務器并不參與數據的主動傳輸,只是被動接受。
FTP用戶
匿名用戶:它是指在FTP服務器中沒有指定賬戶,但是他仍然可以匿名訪問某些公開的資源。
本地用戶:它是指在FTP服務器上擁有賬戶。在這類用戶訪問FTP服務器的時候,其默認的主目錄就是賬戶命名的家目錄。但是他還可以變更到其他目錄中去。
虛擬用戶:在FTP服務器中,使用這類用戶只能訪問其主目錄下的文件,而不能訪問目錄以外的文件,FTP服務器通過這種方式來保障服務器上其他文件的安全性。
vsftpd簡介
vsftpd(very secure FTP daemon,非常安全的FTP守護進程)是一款可以運行在Unix/Linux操作系統上,安全、易用、開放源代碼的FTP服務器軟件。
1、匿名用戶登錄
vsftps服務啟動后,默認就允許匿名用戶(anonymous或ftp)連接到vsftpd服務器。默認匿名用戶不能離開vsftpd服務器匿名用戶目錄/var/ftp,匿名用戶只能下載文件,而沒有權限上傳文件到vsftpd服務器上。
[root@linux-node1 ~]# yum install -y vsftpd
[root@linux-node1 ~]# cat /etc/vsftpd/vsftpd.conf|egrep -v '^#|^$' ##默認配置
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@vsftpd ~]# vim /var/ftp/pub/.message
hello world
允許匿名用戶上傳、下載文件和創建目錄
[root@linux-node1 ~]# vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@vsftpd ~]# cd /var/ftp/pub/
[root@vsftpd pub]# mkdir test
[root@vsftpd pub]# chmod o+w test/
[root@vsftpd vsftpd]# chmod 777 /var/ftp/pub/
[root@vsftpd vsftpd]# ll /var/ftp/
total 4
-rw-r–r– 1 root root 0 Nov 19 16:25 123
drwxrwxrwx 3 root root 4096 Nov 19 23:05 pub
[root@vsftpd vsftpd]# /etc/init.d/vsftpd start
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
2、認證用戶配置:
[root@vsftpd ~]# useradd -d /var/ftp ftpuser
[root@vsftpd ~]# echo '123456'|passwd –stdin ftpuser
[root@vsftpd vsftpd]# vim vsftpd.conf
anonymous_enable=NO
local_root=/var/ftp
chroot_local_user=YES
[root@vsftpd ~]# systemctl restart vsftpd
拒絕指定用戶連接vsftpd服務器
1、編輯/etc/vsftpd/ftpusers文件
在默認情況下,這個文件內已經有一些拒絕連接的用戶,在該文件的最后添加拒絕的用戶就可以了
[root@vsftpd ~]# vim /etc/vsftpd/ftpusers
ftpuser
[root@vsftpd ~]# systemctl restart vsftpd
[root@linux-node2 ~]# wget ftp://ftpuser:123@10.0.0.100:21/123
–2018-11-23 20:53:55– ftp://ftpuser:password@10.0.0.100/123
=> “123.1”
Connecting to 10.0.0.100:21… connected.
Logging in as ftpuser … Logged in!
==> SYST … done. ==> PWD … done.
==> TYPE I … done. ==> CWD not needed.
==> SIZE 123 … done.
==> PASV … done. ==> RETR 123 … done.
[<=> ] 0 –.-K/s in 0s
2018-11-23 20:53:55 (0.00 B/s) – “123.1” saved [0]
3、虛擬用戶設置:
匿名用戶可以很好地保證服務器的安全性,但是對匿名用戶的權限管理不夠靈活。如果想對訪問FTP的賬戶給予更多的權限,就可以使用本地賬戶來實現。但是本地賬戶默認情況下是可以登錄Linux系統的,這樣對Linux系統來說是一個安全隱患。使用虛擬用戶能在靈活地賦予FTP用戶權限的前提下,保證服務器乃至系統的安全。
虛擬用戶并不是一個合法的Linux系統賬戶,但是他可以來登錄系統上運行的vsftpd服務器,當用戶在連接上vsftpd服務器后,會被要求輸入用戶名和密碼。服務器在拿到這個用戶名和密碼后,會調用相應的PAM認證模塊對,和系統中的FTP認證文件進行比較。如果該用戶名和密碼與FTP認證文件中的某條記錄相符就通過認證,該賬戶就被映射成一個Linux下的本地賬戶,然后根據該本地賬戶對FTP資源進行訪問,負責就斷開該連接請求。
3.1、建立虛擬用戶帳號口令庫文件
[root@linux-node1 vsftpd]# vim vulist
tom
123
[root@linux-node1 vsftpd]# yum install db4-utils -y
[root@linux-node1 vsftpd]# db_load -T -t hash -f vulist vuser.db (轉化為伯克利格式)
[root@linux-node1 vsftpd]# chmod 600 vuser.*
3.2、建立虛擬用戶映射的系統用戶及根目錄
[root@linux-node1 vsftpd]# useradd -d /var/vftp -s /sbin/nologin vuser
[root@linux-node1 vsftpd]# chmod 755 /var/vftp
3.3、建立虛擬用戶的PAM認證文件
[root@linux-node1 vsftpd]# vim /etc/pam.d/vupam
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
3.4、修改vsftpd.conf,開啟虛擬用戶支持
[root@linux-node1 vsftpd]# vim vsftpd.conf
listen=YES
listen_address=10.0.0.103
listen_port=21
connect_from_port_20=YES
#pasv_min_port=2222
#pasv_max_port=2225
write_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
#pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#max_clients=0
#max_per_ip=0
anonymous_enable=NO
anon_umask=022
#anon_root=/var/ftp
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES
#anon_max_rate=0
local_enable=YES
local_umask=022
#local_root=/var/ftp
#chroot_local_user=YES
#local_max_rate=0
guest_enable=YES
virtual_use_local_privs=YES ##centos7中一定要有
guest_username=vuser
pam_service_name=vupam
3.5、為不同虛擬用戶建立獨立的配置文件
listen=YES
listen_address=10.0.0.103
listen_port=21
connect_from_port_20=YES
#pasv_min_port=2222
#pasv_max_port=2225
write_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
#pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#max_clients=0
#max_per_ip=0
anonymous_enable=NO
anon_umask=022
#anon_root=/var/ftp
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES
#anon_max_rate=0
local_enable=YES
local_umask=022
#local_root=/var/ftp
#chroot_local_user=YES
#local_max_rate=0
guest_enable=YES
virtual_use_local_privs=YES ##centos7中一定要有
guest_username=vuser
pam_service_name=vupam
user_config_dir=/etc/vsftpd/vuconf
[root@linux-node1 vsftpd]# mkdir /etc/vsftpd/vuconf
[root@linux-node1 vsftpd]# vim /etc/vsftpd/vuconf/tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_root=/var/ftp/pub/tom
[root@linux-node1 vsftpd]# mkdir /var/ftp/pub/tom
[root@linux-node1 vsftpd]# chmod 777 /var/ftp/pub/tom
[root@linux-node1 vsftpd]# vim /var/ftp/pub/tom/23
121234
[root@linux-node1 vsftpd]# /etc/init.d/vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@linux-node2 ~]# wget ftp://tom:123@10.0.0.103:21/23
–2018-11-23 22:42:01– ftp://tom:password@10.0.0.103/23
=> “23”
Connecting to 10.0.0.103:21… connected.
Logging in as tom … Logged in!
==> SYST … done. ==> PWD … done.
==> TYPE I … done. ==> CWD not needed.
==> SIZE 23 … 5
==> PASV … done. ==> RETR 23 … done.
Length: 5 (unauthoritative)
100%[===================================>] 5 –.-K/s in 0s
2018-11-23 22:42:01 (662 KB/s) – “23” saved [5]
附一鍵安裝腳本:
#!/bin/bash
time=$(date +%F-%H:%M)
Kernel=$(uname -r|awk -F. '{print $1}')
menu(){
cat <1.[anonymous install]
2.[local_user(ftpuser) install]
3.[vuser_user(tom and andy) install]
4.[vuser_user(tom's home) install]
5.[exit]
EOF
echo -e " 少妇饥渴偷公乱A级无码| 五十路熟妇无码AV在线| 熟妇人妻精品一区二区三区颏| 少妇伦子伦精品无码STYLES| 无码人妻出轨与黑人中文字幕 | 无码AV中文字幕久久专区| 小雪被老汉玩遍各种方式电影| 亚洲人成电影网站色WWW| 中文文字幕文字幕亚洲色| XXXX性XX另类Ⅹ中国HD| 成人无码区免费AⅤ片WWW| 国产精品特级露脸AV毛片| 护士人妻HD中文字幕| 老头猛的挺进她莹莹的体导演是谁| 欧美日韩人妻精品| 太深太粗太爽太猛了视频| 亚洲国产成AV人天堂无码| 尤物娇妻被NP高H| 不知火舞蹈三个小孩海边X| 国产精品后入内射日本在线观看| 精产国品一二三产区区| 男女无遮挡XX00动态图1| 上面一边亲下一边面膜使用方法| 亚洲AV成人片色在线观看| 在线观看成人网站| 大肉大捧一进一出的视频| 国色天香精品卡一卡二卡三二百| 巨爆乳中文字幕巨爆区巨爆乳无码| 人妻精品无码一区二区三区| 无码人妻精品一区二区三区99仓| 亚洲午夜成人AV电影| 八戒八戒看片在线WWW看| 国产午夜精品一区二区三区| 免费无码成人AV片在线| 手机国产乱子伦精品视频| 亚洲人成人无码WWW| 啊灬啊灬啊灬快灬高潮了老 | 亚洲成人无码一区二区三区| 坐公交忘穿内裤被挺进老| 国产很色很黄很大爽的视频| 久久久久久亚洲精品不卡| 搡老女人P老熟妇老熟女| 亚洲乱码日产精品B在线| 帮妺妺洗澡忍不住C了她作文| 国产亚洲精品精品精品| 欧美精品黑人粗大| 亚洲AⅤ日韩AV电影在线观看| 8090私人影院| 国产又色又爽又刺激在线播放| 国产又粗又猛又爽又黄的视频在线| 久久精品国产一区二区三区| 欧美成人高清WW| 无码人妻精品一区二区三区东京热| 亚洲最新无码成AV人| 成人AV在线网址| 国内色母与进口色母区别| 娇妻在厨房被朋友玩得呻吟| 成人精品免费AV不卡在线观看| S货叫大声点C懒烂你的SBXS| 爸的比老公大两倍儿媳妇叫什么呢| CHINA丰满人妻VIDEOS| 爆乳3把你榨干哦OVA在线观看 | 久久99国产精品二区| 国产AV无码区亚洲| 国产精品久久无码不卡| 久久久久亚州AⅤ无码专区首| 绿帽娇妻在卧室疯狂的呻吟 | 久久久久久精品成人免费| 私人影院无在线码免费| 中文字幕一区日韩精品 | 女人高潮抽搐30分钟| 亚洲AV中文无码字幕色最| 成为人视频人的APP有哪些软件| 老公带朋友来家里C我怎么办| 西西人体44RT NET毛最多| 成 人 黄 色 网 站 18| 久久亚洲欧美日本精品| 亚洲AV成人无码精品网站老司机 | 日本高清色视频WWW·174| 伊人色综合久久天天人守人婷| 国产精品白丝AV嫩草影院| 漂亮人妻去按摩被按中出| 一本色道久久综合亚州精品蜜桃 | 女人夜夜春高潮爽A∨片| 亚洲欧美性爱视频| 国产精品自在拍首页视频| 日本高清无卡码一区二区久久 | 免费人妻AV无码专区| 亚洲国产无套无码AV电影| 国产大片内射1区2区| 人人妻人人澡人人| 18款禁用免费安装的软件APP| 久久国产加勒比精品无码| 午夜天堂AV天堂久久久| 粉嫩一区二区三区性色AV| 全彩漫画口工18禁无遮H| 中文字幕AV无码免费久久| 久久精品亚洲精品无码金尊| 亚洲AV中文无码| 国产美女自卫慰黄网站| 手机在线永久免费观看AV片| 波多野结AV衣东京热无码专区| 免费夜色污私人影院在线观看 | 久久综合亚洲色HEZYO国产| 亚洲精品无码你懂的网站| 国产亚洲精品无码成人| 无码人妻精品一区二区三18禁| 道德沦丧一家3口小说| 日本高清WWW色视频| 爆乳上司JULIA中文字幕| 欧美XXXX做受欧美.88| 性欧美亚洲XXXX乳在线观看| 亚洲精品无码AV人在线播放| 国产强奷糟蹋漂亮邻居在线观看| 水蜜桃成视频人在线看| 丰满人妻被粗大爽ⅩXOO| 日韩国产女人久久久| 被青梅竹马的学弟给锁定了林擎霄 | 亚洲精品中文字幕乱码三区| 狠狠躁夜夜躁人爽碰88A| 亚洲AV伊人久久青青草原视色| 国产九九99久久99大香伊| 污污免费看锕锕锕锕锕锕| 国产成人AV一区二区三区| 私はあなたを爱しています怎么读| 成年免费手机毛片免费看无码 | 亚洲春色CAMELTOE一区| 好了AV第四综合无码久久| 亚洲AV无码一区二区三区在线 | 好紧好骚好诱人好软| 亚洲а∨天堂男人色无码蜜臀69| 果冻传媒蜜桃传媒精东豆| 亚洲AV永久无码区成人网站| 激情综合色五月丁香六月欧美| 亚洲AV无码成人网站久久精品大| 国色天香在线视频免费观看| 亚洲国产成人精品无码区在线 | CAOPORN免费视频国产| 欧洲站高端8码特大码47| 超高级国王游戏电影| 少妇大叫太大太爽受不了| 国产精品国产三级国产专I| 亚洲 无码 国产精品| 极品女教师波多野结衣电影衣 | 性高朝久久久久久久| 精产国品一二三产区区别是什么 | 亚洲AV无码成人影院一尤物区| 护士长在办公室躁BD| 亚洲综合国产精品第一页| 蜜臀AⅤ永久无码一区二区| 亚洲AV日韩AV永久无码色欲| 极品粉嫩嫩模大尺度无码视频 | 性色欲情网站IWWW| 精品久久久久久中文字幕无码软件| 亚洲人成人网站色www小说| 美区APPSTORE精品| Z〇ZOZ〇女人另类ZOZ〇| 熟妇人妻av无码一区二区三区| 国产日产欧产精品精品APP| 亚洲欧洲AV综合色无码| 男女作爱免费网站| 成人午夜高潮刺激免费视频| 无码人妻精品丰满熟妇区| 精品一区二区三区免费视频| .精品久久久麻豆国产精品| 日本免费一区二区三区最新VR | 无遮挡又黄又刺激的视频| 精品无码黑人又粗又大又长AV| 30分钟无遮挡机机对机机| 色窝窝亚洲AV网在线观看| 好紧我太爽了视频免费| 18禁超污无遮挡无码免费游戏 | 人妻AV鲁丝一区二区三区蜜臀| 国产成人AⅤ片在线观看免费| 亚洲爆乳无码专区| 妺妺窝人体色WWW网| 成人做受120视频试看| 亚洲AV无码一区二区高潮| 免费无码又爽又刺激软件下载直播| 成色好的Y31S标准版| 亚洲精品WWW久久久久久| 女人与公豬交交30分钟视频 | M豆传媒有限公司观看| 无码人妻AⅤ一区二区三区玉蒲团 无码人妻AⅤ一区二区三区用会员 | 国产香蕉一区二区三区在线视频 | 亚洲VA无码VA在线VA天堂| 男女啪啪无遮挡免费网站| 国产成人无码AV片在线观看不卡| 亚洲日韩乱码中文无码蜜桃臀| 欧美亚洲日韩国产区三| 国产三级在线观看完整版| 综合无码一区二区三区四区五区| 双腿扒开调教羞辱惩罚视频| 久久精品国产亚洲A∨麻豆| 成人国产精品秘片多多| 亚洲精品无码永久在线观看你懂的| 拍国产乱人伦偷精品视频| 韩国羞耻漫画免费| 啊灬啊灬啊灬高潮了视频| 亚洲精品TV久久久久久久久久|
站長資訊網