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
火牆策略
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 /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
上傳/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 /
lsvim /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