FTP


FTP

一,FTP傳輸模式

1.主動模式:

服務器主動發起數據連接。

     首先客戶端的高位端口向服務器的21端口建立FTP連接請求(連接請求包括:認證,用戶,密碼,連接模式,命令PORT端口);
     FTP服務器響應ACK確認,服務器的21號端口和客戶端的高位端口建立ftp會話連接;
     FTP服務器從自己的20號端口連接客戶端發送的連接請求是主動模式命令提供的端口;
     客戶端發送ACK確認,開始數據傳輸

弊端:

客戶端的防火牆未關,可被攔截

2.被動模式:

客戶機主動發起數據連接。

     首先客戶端的高位端口向服務器的21端口建立FTP連接請求(連接請求包括:認證,用戶,密碼,連接模式,命令PORT端口);
     FTP服務器響應ACK確認,服務器的21號端口和客戶端的高位端口建立ftp會話連接,並告訴客戶端已開放20號端口,等你來連接;
     客戶端用自己的一個高位端口連接服務器響應的一個高位端口;
     服務器給客戶端發送ACK確認,開始數據傳輸

二,FTP用戶

類型:匿名用戶,本地用戶,虛擬用戶

虛擬機192.168.10.11作為服務器
yum -y install vsftpd
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

1.設置匿名用戶訪問FTP服務(最大權限)

anonymous_enable=YES  #開啟匿名用戶訪問,默認已開啟
write_enable=YES      #開放服務器的寫權限(若要上傳,必須開啟)
anon_umask=022        #設置匿名用戶所上傳數據的權限掩碼
anon_upload_enable=YES #允許匿名用戶上傳文件,默認注釋,需要取消注釋
anon_mkdir_write_enable=YES#允許匿名用戶創建目錄,默認注釋,需要取消
anon_other_write_enable=YES     #允許刪除,重命名,覆蓋等

pam_service_name=vsftpd
userlist_enable=NO   ####因未啟用本地用戶,可將用戶列表功能禁用
tcp_wrappers=YES

chmod 777 /var/ftp/pub
#給匿名用戶訪問ftp的根目錄下的pub子目錄設置最大權限,以便匿名用戶上傳數據

2.開啟服務,關閉防火牆和核心防護

systemctl start vsftpd
systemctl stop firewalld
setenforce 0
永久關閉核心防護:
vim /etc/selinux/config 
SELINUX=enforcing   enforcing改為disabled

3.匿名訪問測試

1.Window主機在我的電腦瀏覽器地址欄中輸入ftp://192.168.10.11/ #####在里面進行傳文件 下文件 刪文件操作

C:\Users\Administrator>ftp 192.168.10.11
連接到 192.168.10.11。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用戶(192.168.10.11:(none)): ftp
331 Please specify the password.
密碼:
230 Login successful.
ftp> pwd
257 "/"
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
226 Directory send OK.
ftp: 收到 8 字節,用時 0.00秒 8000.00千字節/秒。
ftp> cd pub
250 Directory successfully changed.
ftp>get 文件名   下載文件到當前windows本地目錄
ftp>put 文件名   上傳文件到ftp目錄

2.linux主機上:192.168.10.12作為客戶端

yum -y install ftp    ###yum安裝 ftp軟件
ftp 192.168.10.11     #ftp客戶端連接192.168.10.11

Connected to 192.168.10.11 (192.168.10.11).
220 (vsFTPd 3.0.2)
Name (192.168.10.11:root): ftp                         ####ftp匿名賬戶登錄
331 Please specify the password.
Password:                                                   ####沒有密碼直接回車
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /opt                                                  ####將本地目錄切換到/opt目錄
Local directory now /opt

4.本地用戶訪問設置

服務器192.168.10.11上
vim /etc/vsftpd/vsftpd.conf
local_enable=YES
anonymous_enable=NO
write_enable=YES
local_umask=077
chroot_local_user=YES
allow_writeable_chroot=YES

#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES
userlist_enable=YES            #####這個白名單功能開啟
userlist_deny=NO 
#####黑名單功能關閉   不禁用user_list列表中的用戶

systemctl restart vsftpd

vi /etc/vsftpd/user_list #名單上添加用戶

useradd lisi
passwd  lisi

二,配置ftp源

服務器配置:

安裝vsftpd服務端軟件

創建並制作yum遠程ftp站點的源

啟動ftp服務

yum -y install vsftpd
mkdir /var/ ftp/centos7#創建掛盤掛載目錄

mount /dev / sr0 / mnt
#鏡像掛載
cp -rf /mnt/ * /var/ ftp/ centos7/&
mkdir /var/ftp/other#創建目錄repodata數據文件

cd /var/ ftp/other/
createrepo -g /mnt/repodata/repomd.xml ./#工具建立倉庫數據文件

systemctl start vsftpd

客戶端配置:

創建遠程yum源的配置文件,yum安裝軟件驗證結果

vim /etc /yum.repos.d/ftp.repo
[centos7]
name=centos7
baseurl=ftp://192.168.118.11/centos7
enabled=1
gpgcheck=1
gpgkey=ftp://192.168.118.11/centos7/RPM-GPG-KEY-CentOS-7

[other]
name=centos7
baseurl=ftp://192.168.118.11/other
enabled=1
gpgcheck=0

測試:

yum clean all && yum makecache
yum repolist


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM