ftp服務

1.ftp工做原理linux

       FTP是一個客戶機/服務系統。用戶經過一個支持FTP協議的客戶機程序,鏈接到在遠程主機上的FTP服務器程序。用戶經過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,並將執行的結果返回到客戶機vim

2.安裝ftp服務bash

yum install vsftpd  -y              ##安裝服務服務器

wKiom1mEg7iQgrolAABOV3tqpms760.png

systemctl start vsftpd              ##啓動服務ide

systemctl enable vsftpd             ##開機自動啓動ui

setenforce 0                        ##關閉selinux或者設置selinux否則會對試驗形成影響加密

lftp ip                             ##能登錄而且顯示,表示安裝成功spa

vsftpd文件信息3d

/var/ftp                            ##默認發佈目錄code

/etc/vsftpd                         ##配置目錄

配置火牆策略

farewall-config                      ##使用圖形界面配置

 @@配置的步驟爲:先選中permannent,勾上ftp,點擊options,選擇reload完成配置

 

wKioL1mGl4uApfGcAAAr0YKCWRE888.png

wKioL1mFsj-RkGYDAADsvCLTRyY878.png

查看火牆是否配置成功

wKioL1mGmN6AbCXlAABT-Qljy6s611.png

改selinux的狀態爲disabled,由於selinux是內核級的增強型防火牆,若是他處於強制狀態,系統不少功能將不被容許。

wKiom1mGiF2TEN55AAAe9jhtV_s792.png

@@更改完之後必定要記得重啓,由於它是內核級的,必須重啓才能從新加載

 vsftpd服務的配置參數

1)匿名用戶設定

anonymous_enable=YES|NO                ##匿名用戶登錄限制,設置爲NO時匿名不能登陸

 wKioL1mGm0bj8ILkAAAnDRiDwlQ698.png

2)匿名用戶上傳

vim /etc/vsftpd/vsftpd.conf

write_enable=YES                       ##設爲YES匿名用戶能夠上傳wKioL1mGm4iB5L0qAAA6WXFcU80175.pnganon_upload_enable=YES

chgrp ftp /var/ftp/pub

chmod 775 /var/ftp/pub                 ##修改權限

 

3)匿名用戶家目錄修改

anon_root=/direcotry                   ##修改之後,登錄進入之後都在修改的家目錄下

 wKioL1mGnBiDRMDjAAALyfUgdGE634.png

wKioL1mGnQzBA4ugAABAH45O5Rw513.png

在westos下創建三個目錄

wKiom1mGnbWQgNVTAAA1S5UhSsw977.png

lftp鏈接之後,使用ls命令會看到剛剛建立的三個目錄

 

4)匿名用戶上傳文件默認權限修改

anon_umask=xxx

 wKioL1mGnxvQAeaeAAAMJtj9LHg747.png

@@設置完之後,lftp 172.25.254.150鏈接上主機,進入pub/目錄下,使用put命令上傳/etc/passwd,就會顯示出上傳結果

5)匿名用戶創建目錄

anon_mkdir_write_enable=YES|NO          ##設置爲YES表示能夠創建

wKioL1mGoFKDWBsTAAAVa-we6W8507.png

@@lftp 172.25.254.150鏈接上主機,進入pub/目錄下,mkdir westos,結果顯示mkdir ok

 

6)匿名用戶下載

anon_world_readable_only=YES|NO         ##設定參數值爲no表示匿名用戶能夠下載

 wKiom1mFj7aiuh5tAAAP-xFLpT8141.png

@@lftp 172.25.254.150鏈接上主機,進入pub/目錄下,使用get命令,get passwd會立馬顯示下載狀況

7)匿名用戶刪除

anon_other_write_enable=YES|NO            ##設置爲YES表示能夠刪除

wKiom1mGogSAb4yaAAAXvQglQz0481.png

@@lftp 172.25.254.150鏈接上主機,進入pub/目錄下,rm passwd,會出現rm ok,passwd就被刪除了

 

8)匿名用戶使用的用戶身份修改

chown_uploads=YES

chown_username=student

wKioL1mGox2Q3dFhAAAnvyt61tM558.png

 

 @@lftp 172.25.254.150鏈接上主機,進入pub/目錄下,put /etc/passwd,而後執行ll /var/ftp/pub/,會看到passwd用戶變成了student

9)最大上傳速率

anon_max_rate=102400                     ##單位爲kb,102400表示100M

 

10)最大連接數

max_clients=2                             ##最多容許兩臺主機接入

 

11)本地用戶設定

local_enable=YES|NO                        ##本地用戶登錄限制

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

 wKiom1mGpF6gWJb2AAA0Tx4w0gw245.png

@@本地用戶lftp 172.25.254.150鏈接上主機,使用ls命令,會出現x秒後從新鏈接,也就是本地用戶也沒法登陸主機了

 

12)本地用戶上傳文件權限

local_umask=xxx

@@系統默認umask=022,修改umask=002,本地用戶的權限將變爲664

 

13)限制本地用戶瀏覽/目錄

全部用戶被鎖定到本身的家目錄中

chroot_local_user=YES                       ##設置爲YES將被鎖在家目錄下

chmod u-w /home/*

 @@lftp 172.25.254.150鏈接上主機,執行ls,看到的是本身的家目錄,cd /,再次執行ls,依然本身能看到本身的家目錄

 

14)用戶黑名單創建

chroot_local_user=NO                        ##沒法瀏覽

chroot_list_enable=YES                      ##啓用名單

chroot_list_file=/etc/vsftpd/chroot_list    ##寫入名單的用戶沒法瀏覽

 

15)用戶白名單創建

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list    ##用戶白名單創建後,只有在名單中出現的用戶才能登陸ftp

wKioL1mGqGeB2wpHAAALUl9LPiQ052.png

##注意:白名單的權限更大,會覆蓋黑名單,一旦設置,只有出如今白名單的用戶纔可以登陸ftp,即便一個用戶它不只在白名單,也在黑名單,他依然能登陸

 

 

限制本地用戶登錄

vim /etc/vsftpd/ftpusers                     ##用戶黑名單

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

添加westos用戶到/etc/vsftpd/ftpusers 

wKioL1mGqbTwOjCCAAAa4OP2Aic476.png

@@lftp 172.25.254.150 -u westos,會出現login failed,登陸失敗

 

用戶白名單設定

userlist_deny=NO

/etc/vsftpd/user_list                        ##參數設定,此文件變成用戶白名單,只在名單中出現的用戶能夠登錄ftp

添加westos用戶到白名單中

 wKiom1mGqpyxORB1AAAzTqwuTXQ374.png

@@westos用戶同時在兩個名單中,可是westos用戶能夠登陸,這就說明了白名單權限大於黑名單,不在白名單的用戶都登錄不了

ftp虛擬用戶的設定

(建立虛擬賬號身份)

vim /etc/vsftpd/xxx                           ##文件名稱任意

ftpuser1                                      ##用戶名

123                                           ##密碼

ftpuser2

123

ftpuser3

123

 

db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db

                                               ##hash加密

wKiom1mGq2zStHnwAAAuqGhV2qw779.png

vim /etc/pam.d/xxx                             ##文件名稱任意

wKioL1mGq9TSPBDDAAA9qEBJ7xw425.png

@@第一行是檢測是否有這個用戶,第二行檢測密碼是否匹配

accountrequiredpam_userdb.sodb=/etc/vsftpd/loginusers

authrequiredpam_userdb.sodb=/etc/vsftpd/loginusers

 

vim /etc/vsftpd/vsftpd.conf

pam_service_name=ckvsftpd

guest_enable=YES

 

虛擬賬號身份指定)

guest_username=ftpuser

chmod u-w /home/ftpuser

 wKiom1mGrw7TQtycAAAuSCTp754546.png

##必須指定爲已經存在能夠登陸的用戶

虛擬賬號家目錄獨立設定

vim /etc/vsftpd/vsftpd.conf

local_root=/ftpuserhome/$USER

user_sub_token=$USER

 

mkdir /ftpuserhome

chgrp ftpuser /ftpuserhome

chmod g+s /ftpuserhome

mkdir /ftpuserhome/ftpuser{1..3}

wKioL1mGrOHAHA3bAADd4xvkjRU832.png

 

 

虛擬賬號配置獨立)

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/userconf

mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/ftpuser1

wKiom1mGrWOCafeCAAAtA5ebXQQ861.png

@@這裏設置的用戶是ftpuser{1..3},所以可使用¥USER,我第一次實驗時設置的爲nice,good,clever三個用戶,那麼他們獨立配置就和這個不一樣了,只需將$USER改成你的用戶就能夠了,格式爲local_root=/vuserdir/nice\user_sub_token=nice,記住,三個都要寫,不然他們進去都會在第三個裏面