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 " 国产精品99精品无码视亚| 一二三四视频中文字幕| 亚洲 日韩 欧美 成人 在线| 性──交──性──乱| 亚洲成AV人片在线播放无码| 天堂资源在线WWW在线观看| 无码国产色欲XXXXX视频| 日本亚欧乱色视频免费观看| 少妇粉嫩小泬白浆流出| 无码专区天天躁天天躁在线| 亚洲成A人片在线播放| 亚洲中文字幕日产无码| 51无人区码一码二码三码| 波多野结衣的影片| 国产大陆亚洲精品国产| 狠狠色噜噜狠狠狠狠色综合网| 国产成人麻豆亚洲综合无码精品 | 337P日本大胆欧洲色噜噜| FREE紧VIDEOXX粗又长| 丰满亚洲大尺度无码无码专线| 被黑人上司侵犯狂草内射| A级精品国产片在线观看| 最新国产精品久久精品| WWW夜片内射视频日韩精品成人| AV永久免费网站入口| 大波妺AV网站影院| 国内情侣作爱视频网站| 老熟女HDXXXX国产喷水| 巨大黑人极品videos精品| 国产日产欧产精品| 国产一区二区H无遮挡| 国产特级毛片AAAAAAA高清| 久久久久99精品国产片| 欧洲一卡2卡3卡4卡乱码视频| 欧洲做爰XXXⅩ富婆视频| 污的你下面一直滴水的句子| 亚洲熟妇AV一区二区三区漫画| 亚洲中文字幕日本无线码| JZJZJZJZ日本L免费观看| 国产精品亚洲片在线观看不卡| 国产精品免费AV片在线观看| 国产久9视频这里只有精品| 国产裸拍裸体女网站链接在线观看| 国产人妖视频一区二区| 皇上H小妖精把腿张开| 欧美精产国品一二三产品| 无码人妻少妇伦在线电影 | 亚洲爽爆东京爽爆东京爽爆av | 国内极度色诱视频网站| 浪荡女天天不停挨CAO日常视| 免费人成激情视频在线观看冫| 女人被弄到高潮叫床免| 无码人妻精品一区二区蜜桃天美| 亚洲AV午夜福利精品一区二区 | 国产亚洲成AⅤ人片在线观看蜜桃| 韩国三级在线观看| 欧美极品少妇XXXXⅩ猛交| 性国产SE╳O色欲A片免费观看| 亚洲AV无码片在线观看| 亚洲综合大片6999| 高清成人爽A毛片免费| 久久久久精品国产亚洲AV蜜桃| 美女脱个精光扒开尿口图片无遮挡| 欧美大肚子孕妇疯狂作爱视频| 人妻系列无码专区免费视频| 亚洲国产成人精品无码区二本| 亚洲中字慕日产2020| 丰满亚洲大尺度无码无码专线| 国产亚洲美女精品久久久| 久久精品久久电影免费| 色窝窝无码一区二区三区色欲| 香蕉久久久久久AV综合网成人| 亚洲日韩成人无码不卡| 50熟妇的长奶头满足了我| 国产熟睡乱子伦视频| 欧洲乱码一卡2卡三卡4卡高清| 天无日天天射天天视| 7777788888管家婆中特| 激情五月丁香六月综合AVXXXX| 蜜桃AV秘 无码一区二区三欧| 日本熟妇人妻中出| 在线播放国产不卡免费视频| 成人AV无码乱码在线观看无码 | 国产偷自一区二区三区| 强奷高H猛烈失禁潮喷播放 | 亚洲中文字幕AV不卡无码| 国产成人无码AV在线播放无广告| 精品97国产免费人成视频| 色欲AV蜜桃一区二区三| 亚洲欧美在线一区中文字幕| 国产成人无码18禁午夜福利免费 | 美女露胸 0无挡挡 | 亚洲清清爽爽AABB| 国产AⅤ爽AV久久久久成人精品| 精品人妻A∨一区二区夫上司犯 | 精品国产三级A∨在线| 四季亚洲Av日韩AV无码中文 | 日本熟老太日本老熟网站| 亚洲A级成人无码网站| 丰满人妻熟妇乱偷人无码出轨| 九九AV高潮AV无码AV喷吹| 人妻av无码一区二区三区| 伊人久久久AV老熟妇色| 国产ⅩXXX推油按摩BBBB| 欧美性BBBBBXXXXX4050免费看| 亚洲AV成人片无码www妖精| 成人丝袜激情一区二区| 欧美精品VIDEOSEX极品| 幼儿HIPHOP张婉莹仙踪网| 精品久久伊人99热超碰| 西西人体大胆午夜啪啪| 国产VA免费精品观看精品| 日本老熟妇乱子伦精品| BT天堂新版中文在线地址| 麻花传媒MD0076在线入口| 野花高清在线电影观看免费视频| 丰满爆乳BBWBBWBBW| 人妻熟妇乱又伦精品无码专区| 亚洲国产精品久久久久蜜桃网站 | 俄罗斯VIDEODESEXO极| 欧美在线三级艳情网站| 97超碰人人人人人人少妇| 美国MACBOOKPRO日本| 杂乱小说2第400部| 久久婷婷五月综合色D啪| 无码精品人妻一区二区三区AV | AV无码精品一区二区三区四区| 国产在线精品一区二区三区| 人妻聚色窝窝人体www一区91| 亚洲色成人网站WWW永久| 极品少妇被猛得白浆直流草莓视频 | 精品久久久久久无码专区| 亚洲大尺度无码无码专区| 丁香五月缴情网站| 免费人成视频网站在线18| 真实国产乱子伦沙发睡午觉| 久久青草免费福利资源站| 夜里18款禁用B站入APP软件| 国产熟女高潮精品视频区| 小S货又想挨C了叫大声点小| 国产探花在线精品一区二区| 日产乱码一二三区别免费演员表| 再深点灬舒服灬太大了网站| 鲁大师在线影院免费观看| 亚洲白嫩学生AV无码一区| 和丰满少妇作爱过程视频| 亚洲国产AV一区二区三区| 精品人妻潮喷久久久又裸又黄| 同桌上课脱裙子让我帮他自慰 | 亚洲AV涩涩涩成人网站在线播放| 厨房里的激战2李明人物介绍| 欧美XXXX狂喷| 伊人久久大香线蕉AV仙人| 国内老熟妇对白XXXXHD| 亚洲AV自慰白浆喷水网站少妇| 国产精品 高清 尿 小便 嘘嘘| 人人妻人人澡人人爽欧美一区九九 | 第一次爱的人免费观看电视剧| 欧美精品视频一区二区| 布丁漫画土豪漫画入口页面| 色 人 阁阁婷婷色五月破解| 国产精品IGAO视频网| 亚洲AV综合AV一区| 久久性色欲AV免费精品观看| 中文字幕无码不卡一区二区三区| 久久精品国产久精国产思思 | 欧美内射潮喷一区二虎| 成年女人免费观看播放视频| 欧美日韩人妻精品一区在线| 波多野结衣AV电影在线观看| 欧美综合天天夜夜久久| 粉嫩少妇内射浓精VIDEOS| 性欧美XXⅩXXOO护士HD| 久久99精品国产麻豆蜜芽| 2023国精产品一二三四区| 日产乱码一二三区别免费必看| ZOOM与人性ZOOM1区别| 熟女无套高潮内谢吼叫免费| 国产亚洲综合欧美视频| 伊人久久大香线蕉AV成人| 久久精品无码一区二区三区不卡 | 亚洲国产成人精品无码区二本| 国产综合18久久久久久| 一本到在线高清视频| 群体交乱之放荡娇妻| 国产精品无码一本二本三本色| 无码免费一区二区三区| 国产精品香港三级国产AV| 无码成人亚洲AV污污污在线看| 国产精品99久久久精品无码| 亚洲欧洲闷骚AV少妇影院| 欧美精品99久久久啪啪| 国产成人艳妇AA视频在线| 无码人妻在线视频| 国产日韩一区二区三区在线观看| 无码视频免费一区二三区| 久久人妻无码中文字幕| 成在线人AV免费无码高潮喷水 | H无遮挡H无码黄3D漫画| 无码熟妇人妻Av又大又粗又爽|
站長資訊網