天天看點

ftp檔案傳輸協定的部署

ftp服務

一、ftp

      FTP 是File Transfer Protocol(檔案傳輸協定)的英文簡稱,而中文簡稱為“文傳協定”。用于Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基于不同的作業系統有不同的FTP應用程式,而所有這些應用程式都遵守同一種協定以傳輸檔案。在FTP的使用當中,使用者經常遇到兩個概念:"下載下傳"(Download)和"上傳"(Upload)使用者通過一個支援FTP協定的客戶機程式,連接配接到在遠端主機上的FTP伺服器程式。使用者通過客戶機程式向伺服器程式發出指令,伺服器程式執行使用者所發出的指令,并将執行的結果傳回到客戶機。比如說,使用者發出一條指令,要求伺服器向使用者傳送某一個檔案的一份拷貝,伺服器會響應這條指令,将指定檔案送至使用者的機器上。客戶機程式代表使用者接收到這個檔案,将其存放在使用者目錄中。

二、ftp實驗

1、準備工作

首先需要配置好ip和yum源

ip的配置

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

yum源

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

在服務端首先vim  /etc/sysconfig/selinux

更改SELINUX=disabled

reboot (更改完成後一定要reboot)

getenforce   (出現Disabled即為成功)

2、開始實驗

yum install vsftpd   -y           安裝vsftp(ftp服務)軟體

systemctl start vsftpd           開啟ftp服務

systemctl   enable   vsftpd      開機自動開啟ftp服務

firewall-cmd  --list-all              防火牆資訊檢視

firewall-cmd  --permanent  --add-service=ftp      添加火牆允許ftp服務通過

firewall-cmd  --reload       火牆重新加載

firewall-cmd   --list-all

用戶端測試服務端是否已成功開啟ftp服務(服務端ip172.25.254.213)

報錯: 530是登入失敗,能列出東西才可以登陸(密碼錯了,設定錯了)

550是程式不允許

553是伺服器檔案系統不允許你寫(權限過小)

500是權限過大

lftp  172.25.254.200

ls  (預設直接進入的為/var/ftp)

mkdir  /ftpdir/westosdir   -p(建立目錄)

vim /etc/vsftpd/vsftpd.conf

匿名使用者家目錄修改

anon_root=/direcotry   (添加anon_root=/ftpdir)

此時匿名使用者lftp預設進入目錄更改為/ftpdir

匿名使用者登陸限制

anonymous_enable=YES|NO        ##匿名使用者登陸限制

useradd  westos            添加westos使用者

passwd    westos           給westos使用者設定密碼

本地使用者登陸設定

local_enable=YES|NO        ##本地使用者登陸限制

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

write_enable=YES|NO        ##本地使用者寫權限限制

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

用戶端實驗  lftp  172.25.254.***   -u  student  (student使用者使用lftp通路)

匿名使用者上傳

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

write_enable=YES                          允許本地使用者上傳寫

anon_upload_enable=YES              允許你名使用者上傳       (這兩個必須都滿足逆名使用者才可以上傳)

chgrp ftp /var/ftp/pub

chmod 775 /var/ftp/pub

匿名使用者下載下傳

添加anon_world_readable_only=YES|NO ##設定參數值為no表示匿名使用者可以下載下傳檔案

匿名使用者删除

添加anon_other_write_enable=YES|NO    ##yes表示匿名使用者可以删除檔案

匿名使用者建立目錄

anon_mkdir_write_enable=YES|NO       ##yes表示可以删除

匿名使用者上傳檔案預設權限修改

添加anon_umask=xxx   (777-022=755,核心預留權限111,是以此時檔案權限為644) 

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

最大上傳速率

anon_max_rate=102400

本地使用者家目錄修改

local_root=/directory

本地使用者上傳檔案權限

local_umask=xxx  (777-077=700,核心預留權限1,此時檔案權限600)

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

限制本地使用者浏覽/目錄

所有使用者被鎖定到自己的家目錄中

chroot_local_user=YES        本地使用者開啟将鎖定在自己家目錄中

chmod u-w /home/*

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

使用者黑名單建立(此黑名單建立表明再次很名單裡的本地使用者将隻能被鎖定在自己家目錄中)

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

ftp檔案傳輸協定的部署

vim    /etc/vsftpd/chroot_list

student

表示student使用者被鎖定在自己家目錄

ftp檔案傳輸協定的部署

使用者白名單建立(此名單表明,隻有在此名單中的使用者才可以浏覽其他地方,而其他使用者隻能被鎖定在自己家目錄中)

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

ftp檔案傳輸協定的部署

vim    /etc/vsftpd/chroot_list

student

表示隻有student使用者不被鎖定在自己家目錄

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

限制本地使用者登陸

vim /etc/vsftpd/ftpusers        ##使用者黑名單(再此名單中的本地使用者将不能使用ftp服務登陸)

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

vim /etc/vsftpd/user_list        ##使用者臨時黑名單

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

使用者白名單設定

vim  /etc/vsftpd/vsftpd.conf

ftp檔案傳輸協定的部署

添加userlist_deny=NO

/etc/vsftpd/user_list            ##參數設定,此檔案變成使用者白名單,隻在名單中出現的使用者可以登陸ftp

westos

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

ftp虛拟使用者的設定

(建立虛拟帳号身份)

vim /etc/vsftpd/userdb  ##檔案名稱任意   建立虛拟使用者并并編寫其密碼)

user1

123

user2

123

user3

123

db_load -T -t hash -f /etc/vsftpd/userdb      /etc/vsftpd/ userdb.db     将編寫的/etc/vsftpd/userdb檔案進行加密

vim /etc/pam.d/ftpuser        ##檔案名稱任意   

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

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

vim /etc/vsftpd/vsftpd.conf

添加pam_service_name=ftpuser(此時當有使用者使用ftp服務時會通路ftpuser這個檔案裡面的内容)

guest_enable=YES

guest_username=ftp      (虛拟使用者使用ftp使用者進行登陸通路)

chmod u-w /home/*

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

虛拟帳号家目錄獨立設定

mkdir /vftpdir

mkdir  /vftpdir/user{1..3}

touch /vftpdir/user1/user1file

touch /vftpdir/user2/user2file

touch /vftpdir/user3/user3file

vim /etc/vsftpd/vsftpd.conf

pam_service_name=ftpuser(此時當有使用者使用ftp服務時會通路ftpuser這個檔案裡面的内容)

guest_enable=YES

guest_username=ftp      (虛拟使用者使用westos使用者方式進行登陸通路)

local_root=/vftpdir/$USER      (設定使用者家目錄)

user_sub_token=$USER          (設定上面所寫的$USER為shell中的意思)

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

虛拟帳号配置獨立

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/userconf

mkdir -p /etc/vsftpd/userconf

mkdir   user{1..3}/pub

chgrp  westos   user{1..3}/pub

chmod  775  user{1..3}

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署

當我們想讓虛拟使用者中部分使用者擁有某些功能時

首先關掉主配置檔案中的功能此時對所有虛拟使用者都沒有此功能

vim /etc/vsftpd/vsftpd.conf

添加  user_config_dir=/etc/vsftpd/conf_dir

mkdir   /etc/vsftpd/conf_dir   -p

此時需要給那個使用者開放某種功能隻需編寫某個虛拟使用者的檔案寫入開啟功能即可

vim /etc/vsftpd/conf_dir/user2

anon_upload-enable=YES      ####上傳檔案

ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署
ftp檔案傳輸協定的部署