1. 程式人生 > >linux系統的ftp檔案傳輸協議

linux系統的ftp檔案傳輸協議

簡介:FTP 是File Transfer Protocol(檔案傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基於不同的作業系統有不同的FTP應用程式,而所有這些應用程式都遵守同一種協議以傳輸檔案。在FTP的使用當中,使用者經常遇到兩個概念:"下載"(Download)和"上傳"(Upload)。"下載"檔案就是從遠端主機拷貝檔案至自己的計算機上;"上傳"檔案就是將檔案從自己的計算機中拷貝至遠端主機上。用Internet語言來說,使用者可通過客戶機程式向(從)遠端主機上傳(下載)檔案。

一、FTP的安裝

1.安裝的環境配置

該實驗以server虛擬機器的超級使用者操作

(1)設定網路

 vim /etc/sysconfig/network-scripts/ifcfg-eth0                                                      #編寫網路配置檔案

systemctl restart network                                                                                  #重啟網路

 ping 172.25.254.60                                                                                          # ping真機id,測試網路

(2)配置yum源

cd /etc/yum.repos.d/

 vim rhel_dvd.repo                                                                                            #編寫yum源配置檔案


yum clean all                                                                                                      #清空yum源快取

2.安裝FTP

 yum install vsftpd -y 

                                                                                #安裝vsftpd


火牆策略

firewall-cmd --permanent --add-service=ftp                                                               #給火牆加ftp

firewall-cmd --reload                                                                                                     #更改火牆載入

firewall-cmd --list-all                                                                                                      #檢視防火牆狀態 

 systemctl start vsftpd                                                                                                   #開啟服務

systemctl enable vsftpd                                                                                                #開機啟動服務

yum install lftp -y                                                                                                            #安裝lftp軟體



測試:

lftp 本機id                                                                                                              #匿名訪問

能登入且顯示,表示安裝完成!

檔案資訊

預設釋出目錄: /var/ftp

協議介面: 21/tcp

服務配置檔案: /etc/vsftpd/vsftpd.conf

匿名使用者預設的登陸目錄為/var/pub/

本地使用者預設的登陸目錄為/home

報錯id

500                                              #檔案許可權過大

530                                              #使用者認證失敗

550                                              #服務本身功能未開放

553                                              #本地檔案系統許可權過小

二、vsftpd服務的配置引數

1. 允許匿名使用者上傳

 29        anon_upload_enable=YES                           #允許匿名使用者上傳

測試:

chgrp ftp /var/ftp/pub                                                    #將/var/ftp/pub目錄的組使用者設定為ftp

chmod 775 /var/ftp/pub                                               #修改/var/ftp/pub目錄的執行許可權

chmod 775 /etc/passwd                                             #修改/etc/passwd的執行許可權

vim /etc/vsftpd/vsftpd.conf                                          #編輯vsftpd配置檔案


systemctl restart vsftpd                                               #重啟vsftpd服務

vim /etc/sysconfig/selinux                                           #編寫selinux配置檔案(SELINUX=disabled)


setenforce 0                                                                #關閉selinux防火牆

lftp 172.25.254.202                                                    #匿名登入


上傳成功!

2. 匿名使用者限速上傳

30             anon_max_rate=10240                                           #允許匿名使用者上傳的速度

測試:

dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000                #擷取

lftp 172.25.254.202                                                                    #匿名登入

cd pub/

put /mnt/bigfile                                                                             #上傳/mnt/bigfile

ls


vim /etc/vsftpd/vsftpd.conf                                                       #編輯vsftpd配置檔案


systemctl restart vsftpd                                                            #重啟vstpd

lftp 172.25.254.202                                                                 #匿名登入

cd pub/

put /mnt/bigfile                                                                          #上傳/mnt/bigfile

可以看到上傳速度變慢

限速完成!

3. 允許匿名使用者刪除

24        anon_other_write_enable=YES                              #是否允許匿名使用者刪除

測試:

lftp 172.25.254.202                                                               #匿名登入172.25.254.202

cd pub/

rm -fr bigfile                                                                            #刪除pub目錄裡的檔案,無法刪除

vim /etc/vsftpd/vsftpd.conf                                                       #編輯vsftpd配置檔案

systemctl restart vsftpd                                                            #重啟vsftpd服務


刪除成功!

4. 禁止本地使用者連線

 16       local_enable=NO                                #禁止允許本地使用者連線

測試:

lftp 172.25.254.202 -u student                        #以student使用者的身份登入172.25.254.202

ls

vim /etc/vsftpd/vsftpd.conf                                                       #編輯vsftpd配置檔案

systemctl restart vsftpd                                                             #重啟vsftpd服務


5. 允許本地使用者寫入

19       write_enable=YES                                         #允許本地使用者讀寫

測試:

lftp 172.25.254.202 -u student                                 #以student使用者的身份登入172.25.254.202

put /mnt/bigfile                                                            #上傳/mnt/bigfile

上傳/etc/passwd檔案失敗,因為沒有許可權

vim /etc/vsftpd/vsftpd.conf                                          #編輯vsftpd配置檔案

systemctl restart vsftpd                                                    #重啟vsftpd服務


6.設定建立檔案的umask值

 23      local_umask=077                                             #設定本地使用者建立檔案的umask值

 24      anon_umask=022                                             #設定匿名使用者建立檔案的umask值

測試:

vim /etc/vsftpd/vsftpd.conf                                            #編輯vsftpd配置檔案

systemctl restart vsftpd                                                  #重啟vsftpd服務


本地使用者

lftp 172.25.254.202 -u student                                     #以student使用者的身份登入172.25.254.202

put /etc/inttab                                                                  #上傳/etc/inttab檔案

ls                                                                                      #檢視inttab許可權資訊

匿名使用者

lftp 172.25.254.202                                                               #匿名登入172.25.254.202

cd pub/

put /etc/group                                                                          #上傳group檔案

ls                                                                                               #檢視group檔案許可權資訊


可以看出本地使用者和匿名使用者上傳檔案的許可權不同

建立檔案的umask值設定成功!

7. 是否允許所有本地使用者訪問上層目錄

(1)禁止所有本地使用者訪問上層目錄

102       chroot_local_user=YES                                            #禁止所有本地使用者訪問上層目錄

測試:

lftp 172.25.254.202 -u student                                               #以student使用者的身份登入172.25.254.202

cd /

ls


vim /etc/vsftpd/vsftpd.conf                                                          #編輯vsftpd配置檔案

systemctl restart vsftpd                                                             #重啟vsftpd服務


報錯500表示許可權過大,系統提示使用者有可寫入許可權

 chmod u-w /home/*                                                     #刪除寫入許可權

禁止本地使用者訪問上層目錄設定成功!

(2)黑名單

102 chroot_local_user=NO                                         #允許所有本地使用者訪問上層目錄
103 chroot_list_enable=YES                                      #開啟黑名單

105 chroot_list_file=/etc/vsftpd/chroot_list                #黑名單所在目錄

測試:

vim /etc/vsftpd/vsftpd.conf                                            #編輯vsftpd配置檔案


systemctl restart vsftpd                                                  #重啟vsftpd服務

lftp 172.25.254.202 -u student                                     #以student使用者的身份登入172.25.254.202

cd /

ls

vim /etc/vsftpd/chroot_list                                                              #編輯黑名單(student)

在黑名單中寫入student後,student使用者無法檢視上層目錄,但其他使用者可以檢視


(3)白名單

102 chroot_local_user=NO                                         #禁止所有本地使用者訪問上層目錄
103 chroot_list_enable=YES                                      #開啟白名單,開啟後所有使用者禁止訪問上層目錄

105 chroot_list_file=/etc/vsftpd/chroot_list                #白名單所在目錄

 vim /etc/vsftpd/vsftpd.conf


systemctl restart vsftpd

vim /etc/vsftpd/chroot_list                                            #編輯白名單(student)

操作完成後,只有在白名單的使用者才可以檢視上層目錄



8.使用者黑白名單

(1)黑名單


ftpusers 為永久黑名單

user_list 為暫時黑名單

測試:

vim /etc/vsftpd/ftpusers                                                        #編輯使用者永久黑名單(student)


student 使用者無法登入,其他使用者可以

vim /etc/vstftpd/user_list                                                      #編輯使用者暫時黑名單(student)


student 使用者無法登入,其他使用者可以

(2)白名單

129 userlist_deny=NO                                                      #加入這條引數後臨時黑名單將變成白名單

測試:

 vim /etc/vsftpd/vsftpd.conf


vim /etc/vstftpd/user_list                                                      #編輯使用者白名單(westos)


只有在白名單中的westos可以登入,其他使用者均不可登入

若在永久黑名單和白名單同時寫入同一使用者,ftpuser優先順序更高,所以該使用者還是在黑名單中

測試:

以student為例:在ftpuser和user_list寫入student


student使用者無法登入

9.ftp虛擬使用者設定

yum whatprovides */pam_userdb.so                                       #查詢軟體名稱並下載

 vim /etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/ftpusers                                                       #刪除永久黑名單裡新新增的本地使用者

vim /etc/vstftpd/user_list                                                     #刪除暫時黑名單裡新新增的本地使用者

註釋掉129行

操作方法:

1.建立虛擬帳號身份

[[email protected] ~]# cd /etc/vsftpd/
[[email protected] vsftpd]# vim userdb


2.加密檔案

[[email protected] vsftpd]# db_load -T -t hash -f userdb userdb.db                         #加密(userdb為明文檔案,不安全,需要加密)

[[email protected] vsftpd]# file userdb                                                                         #檢視檔案型別(非必須操作)

userdb: ASCII text
[[email protected] vsftpd]# file userdb.db
userdb.db: Berkeley DB (Hash, version 9, native byte-order)

3.設定策略檔案

[[email protected] pam.d]# vim ftpuser

account         required    pam_userdb.so        db=/etc/vsftpd/userdb

auth               required    pam_userdb.so        db=/etc/vsftpd/userdb


account                                          #帳號

auth                                                #密碼

required                                         #必須要通過驗證,否則失敗

pam_userdb.so                             #模組

db=/etc/vsftpd/userdb                   #名單

4.修改檔案配置

vim /etc/vsftpd/vsftpd.conf


127 pam_service_name=ftpuser                                             #指定PAM配置檔案,檔案在第3步已經建立
128 userlist_enable=YES                                                         #允許匿名使用者同時登入
129 guest_enable=YES                                                            #啟動匿名使用者

130 guest_username=ftp                                                          #虛擬帳號身份指定,ftp是真實存在的使用者

systemctl restart vsftpd.service

測試:


排錯:

1.密碼輸入錯誤

2.虛擬帳號資訊未加密

3.策略檔案中將加密檔名稱寫錯

4.配置檔案編輯錯誤(後面的YES|NO必須大寫,否則重啟vsftpd會提示:job of vsftpd.service failed)

5.傳輸時名稱輸入錯誤

10.虛擬帳號家目錄設定

(1)虛擬帳號登入使用同一個家目錄

[[email protected] pam.d]# mkdir /vftpdir                                         #建立虛擬使用者家目錄
[[email protected] pam.d]# touch /vftpdir/vftpfile                             #建立虛擬使用者目錄
[[email protected] pam.d]# vim /etc/vsftpd/vsftpd.conf

131 local_root=/vftpdir                                                                   #對虛擬使用者預設目錄進行設定


[[email protected] pam.d]# systemctl restart vsftpd.service

測試:


(2)虛擬帳號家目錄獨立設定

131 local_root=/vftpdir/$USER                                                     #對虛擬使用者目錄進行設定

132 user_sub_token=$USER                                                        #安全認證


操作步驟:

[[email protected] pam.d]# mkdir /vftpdir                                         #建立虛擬使用者家目錄

[[email protected] pam.d]# cd /vftpdir/
[[email protected] vftpdir]# mkdir user{1..3}                                    #建立虛擬使用者的獨立目錄
[[email protected] vftpdir]# ll
total 0
drwxr-xr-x 2 root root 6 May 11 10:38 user1
drwxr-xr-x 2 root root 6 May 11 10:38 user2
drwxr-xr-x 2 root root 6 May 11 10:38 user3
[[email protected] vftpdir]# touch user1/user1file                            #建立屬於user1的檔案
[[email protected] vftpdir]# touch user2/user2file
[[email protected] vftpdir]# touch user3/user3file
[[email protected] vftpdir]# vim /etc/vsftpd/vsftpd.conf
[[email protected] vftpdir]# systemctl restart vsftpd.service

測試:


11.虛擬帳號配置的獨立設定

133 user_config_dir=/etc/vsftpd/conf_dir                                               #虛擬使用者許可權配置檔案/etc/vsftpd/conf_dir目錄下

操作步驟:

[[email protected] vftpdir]# mkdir /vftpdir/user{1..3}/pub
[[email protected] vftpdir]# vim /etc/vsftpd/vsftpd.conf



[[email protected] vftpdir]# systemctl restart vsftpd.service
[[email protected] vftpdir]# chgrp ftp user{1..3}/pub                                        #改變組為配置檔案中已經存在的組
[[email protected] vftpdir]# chmod 775 user{1..3}/pub                                   #修改許可權
[[email protected] vftpdir]# mkdir -p /etc/vsftpd/conf_dir

[[email protected] vftpdir]# vim /etc/vsftpd/vsftpd.conf              #註釋掉上傳檔案功能,因為虛擬使用者使用的是匿名使用者,可以檢視效果


[[email protected] vftpdir]# systemctl restart vsftpd.service

[[email protected] vftpdir]# vim /etc/vsftpd/conf_dir/user2        #編輯user2的配置檔案,只對user2可用,此檔案比主配置檔案優先順序高

anon_upload_enable=YES                                                                            #可以上傳


測試:


匿名使用者除了user2可以上傳,其他匿名使用者都沒有許可權上傳

相關推薦

linux系統ftp檔案傳輸協議

簡介:FTP 是File Transfer Protocol(檔案傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基於不同的作業系統有不同的FTP應用程式,而所有這些應用程式都遵守

Linux下基於vsftpd的FTP檔案傳輸協議詳解(附完整流程命令)

理論概述 基本概念 FTP 是File Transfer Protocol(檔案傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基於不同的作業系統有不同的FTP應

linux系統檔案傳輸的小技巧

yum -y install lrzsz Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from cached hostfile *

FTP檔案傳輸協議詳解

       FTP 是File Transfer Protocol(檔案傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基於不同的作業系統有不同的FTP應用程式,而所有這些應用

FTP檔案傳輸協議兩種模式-主動模式和被動模式

TCP/IP協議中,FTP標準命令TCP埠號為21,Port方式資料埠為20。FTP協議的任務是從一臺計算機將檔案傳送到另一臺計算機,它與這兩臺計算機所處的位置、聯接的方式、甚至是是否使用相同的作業系統無關。假設兩臺計算機通過ftp協議對話,並且能訪問Internet, 你可以用ftp命令來傳輸檔案。每種作

檔案LINUX系統中的傳輸

一、檔案的遠端複製命令scp 1.上傳 scp file [email protected]:/dir    ###把本機的檔案傳輸給某使用者的絕對路徑目錄中 2.下載 scp [email protected]:/file dir &nb

linux-系統檔案傳輸

scp 遠端複製 scp file [email protected]:dir ##上傳(dir為絕對路徑) scp [email protected]:file dir ##下載 (file為絕對路徑)

第9章 應用層(5)_檔案傳輸協議FTP

6. 檔案傳輸協議FTP 6.1 FTP主動和被動模式 (1)FTP協議   ①與其他協議不同,FTP協議在客戶端訪問FTP伺服器時需要建立兩個TCP連線。一個用來傳輸FTP命令,一個用來傳輸資料。   ②在FTP伺服器上需要開放兩個埠,一個命令埠(或稱為控制埠)和一個數據埠。通常命

檔案傳輸協議 - Sftp和ftp 區別

Sftp和ftp 區別 - qq_41750040的部落格 - CSDN部落格https://blog.csdn.net/qq_41750040/article/details/80249507 FTP(檔案傳輸協議)工作原理   目前在網路上,如果你想把檔案和其他人共享。最方

檔案傳輸協議FTP與TCP/IP協議之間有什麼關係

TCP/IP協議是目前網路所採用的一種框架協議,包括五層: 應用層,傳輸層,網路層,鏈路層,物理層。 FTP協議是TCP/IP協議的一部分,嚴格意義上來說是應用層協議 FTP是一種應用程式 基於

VB程式設計師的FTP程式設計指南1.1-檔案傳輸協議FTP概述

專 題:檔案傳輸協議FTP概述主 講:qianqian FTP簡介 直到1994年,當WWW掌管Internet時,檔案傳輸協議(FTP)是和e-mail一樣最廣泛應用的Internet客戶程式。它被用於作為訪問Internet主機檔案的一個遠端外殼。使用ftp可以連線到一個

FTP連線樹莓派(Linux)進行檔案傳輸

1. 在Linux上安裝和啟動FTP服務 在使用FTP功能之前,樹莓派需要安裝FTP Server,請輸入以下命令安裝vsftpd sudo apt-get install vsftpd 使用以下命令啟動FTP服務 sudo service vsftpd start 2.

教你寫一個ftp協議檔案傳輸協議

一、FTP協議簡介 FTP 是File Transfer Protocol(檔案傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基於不同的作業系統有不同的FTP應用

檔案傳輸協議FTP與TCP/IP協議之間的關係

TCP/IP協議是目前網路所採用的一種框架協議,包括五層: 應用層:http協議,ftp協議等。 傳輸層:TCP或者UDP協議等,負責資料傳輸的可靠性和完整性。 網路層:IP協議等,解決區域網和區域網之間的通訊。 鏈路層:乙太網協議等,解決區域網通訊。 物理

檔案傳輸協議——FTP概述

FTP(FileTransfer Protocol)是在客戶端和伺服器之間傳輸檔案的標準網路協議。FTP協議建立在C-S模型之上,在客戶端和伺服器之間使用單獨的控制和資料連線。FTP使用者可通過明文登陸協議來認證,通常是以使用者名稱和密碼形式,不過在伺服器配置允許的情況下,也

FTP連線樹莓派(Linux)進行檔案傳輸----需要修改vsftpd.conf檔案,使能可寫

相關文章 1. 在Linux上安裝和啟動FTP服務 在使用FTP功能之前,樹莓派需要安裝FTP Server,請輸入以下命令安裝vsftpd sudo apt-get install vsftpd 使用以下命令啟動FTP服務 sudo servi

Linux 系統中文件傳輸及文件歸檔

linux中文件傳輸 歸檔 壓縮及解壓 在linux系統中,我們要進行文件的傳輸,當文件比較多又比較大的時候,我們往往需要對文件進行處理,以提高傳輸速率。如下將進行詳細的方法介紹,以解決問題。一、系統中的文件傳輸進行兩臺主機文件傳輸,首先建立兩臺主機正常通信編輯文件,設置一個ip文件存放在 /et

Linux跨伺服器檔案傳輸總結

會慢慢更新  linux檔案傳輸主要有一下幾種方法: 1.ftp 2.samba服務3.sftp4.scp5.rcp6 使用rsync傳輸7使用nc傳輸 前幾種相對熟悉,就暫不整理。 For my daily report,先整理下面幾種。 1使用scp命令傳輸:

Gftp - Linux / Ubuntu 之間檔案傳輸圖形介面工具

Gftp - Linux / Ubuntu 之間檔案傳輸圖形介面工具 https://www.gftp.org/ 1. Linux / Ubuntu 之間檔案傳輸圖形介面工具 Host: 遠端伺服器 IP Port: 22 User: username Pass: passwo

嵌入式linux系統log檔案的幾個地方

1. /var/log 2. /proc/kmsg 3. /sbin/syslogd -O /var/log/messages  系統log 4. 核心log /bin/dd bs=1 if=/proc/kmsg of=/var/run/klogd/kmsg