天天看點

FTP 共享資源庫系統資源

一、了解ftp

FTP(File Transfer Protocol)是一個非常古老并且應用十分廣泛的檔案傳輸協定,FTP協定是現今使用最為廣泛的網絡檔案共享協定之一,我們現在也一直有在用着FTP協定來進行各種檔案的傳輸,FTP為我們提供了一種可靠的方式在網絡上進行檔案的共享。

二、準備虛拟機

本地鏡像使用centos-1908。也就是說挂載的鏡像是centos-1908,點開你的虛拟機設定看看配置的對不對。

FTP 共享資源庫系統資源
三、vsftpd部署安裝

systemctl stop firewalld                              //關閉防火牆
setenforce 0                                            //關閉se      

1)配置 yum 源 

把 yum 源去掉換成本地的 yum 源。把新的 yum 源輸入進去就行。

mv/etc/yum.repos.d/* /media/                                    //移除原有的yum源
vim /etc/yum.repos.d/lcoal.repo                                    //在這個檔案裡添加yum源
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1      
FTP 共享資源庫系統資源
mkdir -p /opt/centos                 //建立一個目錄mount /dev/sr0 /opt/centos             //将那個鏡像挂在到cetos這個目錄
//檢視挂載情況
[root@ftp ~]# ls /opt/centos
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

//檢視 yum 源是否正常      

[root@ftp ~]# yum repolist

已加載插件:fastestmirror

Loading mirror speeds from cached hostfile

源辨別 源名稱 狀态

!base/7/x86_64 CentOS-7 - Base 0

centos centos 0

!extras/7/x86_64 CentOS-7 - Extras 0

!updates/7/x86_64 CentOS-7 - Updates 0

repolist: 0

這樣 yum 源已經弄好了。

 2)下載下傳vsftp

檢視完端口後是21端口就對了。

//下載下傳 vsftpd net-tools
[root@ftp ~]#yum install -y vim vsftpd net-tools 

//啟用vsftpd
[root@ftp ~]#systemctl start vsftpd 

//檢視端口
[root@ftp ~]# netstat -ntlp |grep vsftpd
tcp6       0      0 :::21                   :::*                    LISTEN      1769/vsftpd      
FTP 共享資源庫系統資源

檢視配置檔案裡的内容。

listen=YES:是否以獨立運作的方式監聽服務

listen_address=192.168.x.x:設定監聽的 IP 位址

listen_port=21:設定監聽 FTP 服務的端口号

write_enable=YES:是否啟用寫入權限

download_enable=YES:是否允許下載下傳檔案

userlist_enable=YES:是否啟用 user_list 清單檔案

userlist_deny=YES:是否禁用 user_list 中的使用者

max_clients=0:限制并發用戶端連接配接數

max_per_ip=0:限制同一 IP 位址的并發連接配接數

guest_enable=YES:啟用虛拟使用者

user_config_dir=/etc/vsftpd/vsftpd_user_conf :虛拟使用者使用的配置檔案目錄

allow_writeable_chroot=YES:允許寫入使用者主目錄

常用的匿名 FTP 配置項:

anonymous_enable=YES:啟用匿名通路

anon_umask=022:匿名使用者所上傳檔案的權限掩碼

anon_root=/var/ftp:匿名使用者的 FTP 根目錄

anon_upload_enable=YES:允許上傳檔案

anon_mkdir_write_enable=YES:允許建立目錄

anon_other_write_enable=YES:開放其他寫入權

anon_max_rate=0:限制最大傳輸速率(位元組/秒)

常用的本地使用者 FTP 配置項:

local_enable=YES:是否啟用本地系統使用者

local_umask=022:本地使用者所上傳檔案的權限掩碼

local_root=/var/ftp:設定本地使用者的 FTP 根目錄

chroot_local_user=YES:是否将使用者禁锢在主目錄

 四、配置虛拟使用者

1)配置使用者名密碼

進入配置檔案裡建立一個存放密碼的檔案

vim /etc/vsftpd/users.conf                            //建立 users.conf 進入這個檔案      
FTP 共享資源庫系統資源

檔案裡面寫使用者名和密碼,第一行是使用者名第二行是密碼(預設:奇數列是使用者名、偶數列是密碼)

FTP 共享資源庫系統資源

 給密碼加密

db_load -T -t hash -f /etc/vsftpd/users.conf /etc/vsftpd/users.db   //密碼加密
vim /etc/vsftpd/users.conf         //檢視密碼被加密後的情況
chmod 600 users.db              //給 users.db 授權(隻有這裡面的使用者去讀寫)
chmod 600 users.*               //授權(檔案裡面的使用者授權)      

2)建立系統使用者

useradd vsftpd -d /home/vsftpd -s /sbin/nologin                    //建立使用者  (-d:指定使用者所在目錄 -s:指定一下不能登入 )
chmod -R 777 /home/vsftpd                         //給上面的檔案授權(777:可以上傳、下載下傳)      
vim /etc/pam.d/vsftpd                               //修改裡面的檔案      

放到這裡的話會避免很多的錯誤。

FTP 共享資源庫系統資源

3)修改主配置檔案

vim /etc/vsftpd/vsftpd.conf                 //修改主配置檔案      
FTP 共享資源庫系統資源

現在配置的是 yunjisuan 如果還要使用那個就也把那個這樣配置一下即可。

// 建立子配置檔案目錄
[root@localhost ~]# mkdir -p /etc/vsftpd/vsftpd_user_conf

//進入建立的檔案
[root@localhost ~]# cd !$
cd /etc/vsftpd/vsftpd_user_conf

//進入檔案裡添加配置
[root@localhost vsftpd_user_conf]# vim yunjisuan
local_root=/home/vsftpd/xmcsxy    # 當本地使用者登入時,将被更換到定義的目錄下。預設值為各使用者的家目錄。 
anon_upload_enable=YES  # 是否允許登陸使用者有上傳權限。
write_enable=YES      # 是否允許登陸使用者有寫權限。      
# 重新開機服務,使配置檔案生效
[root@localhost vsftpd_user_conf]# systemctl restart vsftpd
[root@localhost vsftpd_user_conf]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.w      

 五、連結ftp

我使用的是 xftp 你們還可以使用其他的軟體去連結。連結上之後直接就可以直接去測試了,上傳一下檔案啊、下一下啊什麼的。

FTP 共享資源庫系統資源

 六、Linux下使用ftp

yum install -y lftp                                        //現在 lftp
lftp [email protected]                                    //輸入後回車 會讓輸入密碼
    輸入密碼後 ls 檢視能否檢視,能檢視即為成功。      

LFTP内部指令:

​ ls 顯示遠端檔案清單(!ls 顯示本地檔案清單)。

​ cd 切換遠端目錄(lcd 切換本地目錄)。

​ get 下載下傳遠端檔案。

​ mget 下載下傳遠端檔案(可以用通配符也就是 *)。

​ pget 使用多個線程來下載下傳遠端檔案, 預設為五個。

​ mirror 下載下傳/上傳(mirror -R)/同步 整個目錄。

​ put 上傳檔案。

​ mput 上傳多個檔案(支援通配符)。

​ mv 移動遠端檔案(遠端檔案改名)。

​ rm 删除遠端檔案。

​ mrm 删除多個遠端檔案(支援通配符)。

​ mkdir 建立遠端目錄。

​ rmdir 删除遠端目錄。

​ pwd 顯示目前遠端所在目錄(lpwd 顯示本地目錄)。

​ du 計算遠端目錄的大小

​ ! 執行本地 shell的指令(由于lftp 沒有 lls, 故可用 !ls 來替代)

​ lcd 切換本地目錄

​ lpwd 顯示本地目錄

​ alias 定義别名

​ bookmark 設定書簽。

​ exit 退出ftp

七、黑白名單

FTP 共享資源庫系統資源

ftpusers:

如果建立了使用者,設定了密碼,将使用者名添加到ftpusers中,則無法登入ftp服務。

user_list:

根據配置,可以是白名單,也可以是黑名單。userlist_enable和userlist_deny兩個選項聯合起來針對的是:本地全體使用者(除去ftpusers中的使用者)和出現在user_list檔案中的使用者以及不在在user_list檔案中的使用者這三類使用者集合進行的設定。

userlist_enable和userlist_deny兩個選項聯合起來針對的是:本地全體使用者(除去ftpusers中的使用者)和出現在user_list檔案中的使用者以及不在在user_list檔案中的使用者這三類使用者集合進行的設定。

為了說明這個問題,我們來建立兩個測試使用者:

test1: 在user_list中

test2:不在user_list中

然後我們分别給兩個配置項取不同的值,分4種Case進行測試:

Case 1: userlist_enable=YES, userlist_deny=YES

test1: 拒絕登入

test2: 允許登入

Case 2: userlist_enable=YES, userlist_deny=NO

test1: 允許登入

test2:拒絕登入(如user_list檔案開頭的注釋所述,甚至不會提示輸入密碼,即無登入提示框,直接拒絕連接配接)

Case 3: userlist_enable=NO,userlist_deny=NO

Case 4: userlist_enable=NO,userlist_deny=YES

當且僅當userlist_enable=YES時:userlist_deny項的配置才有效,user_list檔案才會被使用;當其為NO時,無論userlist_deny項為何值都是無效的,本地全體使用者(除去ftpusers中的使用者)都可以登入FTP

當userlist_enable=YES時,userlist_deny=YES時:user_list是一個黑名單,即:所有出現在名單中的使用者都會被拒絕登入;

當userlist_enable=YES時,userlist_deny=NO時:user_list是一個白名單,即:隻有出現在名單中的使用者才會被準許登入(user_list之外的使用者都被拒絕登入);另外需要特别提醒的是:使用白名單後,匿名使用者将無法登入!除非顯式在user_list中加入一行:anonymous

繼續閱讀