linux學習之旅(十六)&& FTP/Vsftpd

vsftpd服務

1.什麼是ftp

部署 FTP 服務器 FTP ( 文件傳輸協議 ) 是 INTERNET 上仍常用的最老的網絡協議 之一 。
FTP 服務器包的名稱爲 VSFTPD , 它代表 Very Secure File TransferProtocol Damon 服務器名稱也叫做vsftpd 默認配置文件讓 ANONYMOUS 用戶只能下載位於 CHROOT 目 錄中的內容。 /var/ftp/ 這意味着遠程 FTP
客戶端能以用戶 anonymous 或 ftp 身份連接到服務器 ( 無需密碼 ), 並從 ftp 服務器上的 /var/ftp/目錄下載文件 ( 其本地 ftp 用戶可以讀取這 些文件 )

2.安裝ftp,啓動服務

yum  install  vsftpd  lftp  -y                //安裝vsftpd服務,lftp工具
systemctl  start vsftpd
systemctl stop  firewalld
systemctl  enable  vsftpd
sentenforce  0

//測試
lftp  ip            //能登陸並且能顯示,表示安裝成功

注:

服務對客戶有意義,只對客戶有意義
工具對自己有影響,對別人沒有影響
vsftpd,服務器開,fltp只是工具,下載了就行。


//此時的顯示就是登陸成功,默認在/var/ftp目錄下

tips:

  • 一般火牆都是要開開的,比如要保證虛擬機的上網功能,不能因爲單獨的某個服務關閉火牆。
    那麼在這個時候,我們只需要開啓防火牆策略,添加ftp到防火牆策略即可。

    • 首先,以圖形方式添加。

      //點擊reload重啓防火牆即可生效

    • 然後以命令方式設定 firewall-cmd –permanent –add-service=ftp

  • 用firewall-cmd –list-all 查看火牆策略信息

3.vsftpd 服務的配置參數

默認配置爲匿名 FTP 服務器 , 僅允許匿名客戶端 下載 , 並且禁用所有本地用戶 , 禁止上傳
vsftpd 配置文件 : /etc/vsftpd/vsftpd.conf
默認的發佈位置是 /var/ftp/
配置修改後 , 需重新啓動服務

三個基本的vsftpd服務權限:
anonymous_enable=YES ##匿名其他人
local_enable=NO ##本地用戶
write_enable=NO ##用戶的w權限


//如圖即爲將所有權限都禁用了,即所有人都登陸不了

通過 man 5 vsftpd.conf 可以查看關於vsftpd服務配置參數的全部信息

在參數配置之前
首先 vim /etc/sysconf/selinux

//將原本的enforcing關閉

原因:
文件: selinux是 內核的插件,全稱內核級加強型火牆
能配對的才能訪問
功能: 不安全的程序會禁止掉 管理員自己需要打開
特定程序只能訪問特定程序的標籤 不同目錄標籤不同 還會影響功能
setenforce 0 警告模式,(permissive) 1 強制模式(enforcing) getenforce 查看模式


下面簡單介紹幾個匿名用戶和本地用戶的權限配置:

首先說明幾個常見的問題:

1)登陸錯誤信息提示:

  • 530:認證失敗
    550:禁止你的寫,沒有權限
    500:進入權力過大,需要更改進入目錄的權限
    553:權限問題

2)每次改完重啓vsftpd服務才能生效
3)lftp -u username ip 以誰登陸
4)文件中yes,no,一定是大寫,這是文件規定的

*匿名用戶設定:anon_

匿名用戶上傳
vim /etc/vsftpd/vsftpd.conf
write_enable=YES             //打開w權限
anon_upload_enable=YES         //打開上傳權限
chgrp  ftp  /var/ftp/pub        //將pub目錄的所有組改變爲ftp
chmod  775  /var/ftp/pub    //將pub目錄的權限設置成其他用戶沒有w權限
//後面兩個權限即所屬信息的改變是爲了增加安全性,是對本地用戶的限制
put filename   //上傳

注意,默認下可以上傳的目錄只能是pub目錄下

  • 匿名用戶家目錄的修改 anon_root=/directory

    家目錄更改後如果發現上傳不了,顯示報錯信息是500那麼可以試:添加配置信息:allow_writeable_chroot=YES
//匿名用戶上傳文件默認權限修改
anon_umask=xxx

//匿名用戶建立目錄
anon_mkdir_write_enable=YES / NO

//匿名用戶下載
anon_world_readable_only=YES / NO //設定參數值爲NO表示匿名用戶可以下載
get  filename   // 下載

//匿名用戶刪除
anon_other_write_enable=YES / NO

將上述配置都添加上之後

測試:

//匿名用戶使用的用戶身份修改
chown_upload=YES                  //允許上傳
chown_username=student            //更改用戶的身份爲student用戶
chown_upload_mode=0644           //下載文件的權限設定
 //注意:
umask與用戶不能同時改,要改,用"chown_upload_mask=0644"

//最大上傳速率
anon_max_rate=102400             //單位是字節
  • 最大鏈接數,即最大用戶量 max_clients=2

    在左邊的一個匿名用戶退出之後

    //剛纔被拒絕的用戶就可以訪問了

*本地用戶設定:local_

##本地用戶登陸限制
local_enable=YES / NO

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

##本地用戶家目錄修改
local_root=/directory

##本地用戶上傳文件權限
local_umask=xxx

#注意:
lftp localhost -u xxx
#其中,xxx是本地用戶,那麼進入後是可以進入根的,這樣會非常不安全,所以需要限制本地用戶瀏覽權限
##限制本地用戶瀏覽/目錄
##所有用戶鎖定到自己的家目錄中
chroot_local_user=YES
chmod  u-w  /home/*    ##這裏是針對本地用戶的,還是安全性的保證

##用戶黑名單建立
chroot_local_user=NO    ##默認就是NO
#如果所有人出的去,那麼指定的就是黑名單
#如果所有人出不去,那麼指定的就是白名單

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

##用戶白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

##限制本地用戶限制
vim /etc/vsftpd/ftpusers    ##用戶黑名單
vim  /etc/vsftpd/user_list   ##用戶臨時黑名單
  • 用戶白名單設定 userlist_deny=NO /etc/vsftpd/user_list
    ##參數設定,此文件變成用戶白名單,只在名單中出現的用戶可以登陸ftp

    此時

    添加用戶白名單

    之後,文件中還是寫有student,但此時,student成爲唯一能進入的用戶

man 5 vsftpd.conf中的詳細說明 :

注意!!!以本地用戶身份登陸時需要輸入密碼,但是,不管輸入的密碼對還是錯,都進入,不過錯誤的密碼進入後沒有任何權力,命令也沒有


*ftp虛擬用戶配置

1)創建虛擬帳號身份
vim /etc/vsftp/redhat ##文件名任意,可以填寫多行,但是每行不能有空格

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

  • T :要轉換 t : 轉換的格式 hash : 哈希加密 f : 目的地

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

//required 必須符合我的規定才能通過本次驗證,account 用戶驗證,auth 密碼認證

vim  /etc/vsftpd/vsftpd.conf  ##配置vsftpd服務參數

pam_service_name=redhat  ##在/etc/pam.d/中設置的文件名(redhat),表示進入時讀的是redhat這個用戶目錄
//虛擬帳號的建立一定在/etc/vsftpd/下創建,db文件也要
guest_enable=YES
guest_username=ftp ##指定進入的是ftp服務的目錄,也可以寫別的,添加u-w是保護用戶安全

3)家目錄的設定

vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/ \$USER
user_sub_token=$USER
mkdir  -p  /ftpuserhome/ftpuser{1..3}/pub
chgrp  ftp  /ftpuserhome


2)虛擬帳號的服務配置

vim  /etc/vsftpd/vstpd.conf
user_config_dir=/etc/vsftpd/vuserconf
//這個文件名字隨意,但是要mkdir它,然後在裏面寫的文件文件名是用戶名,然後這個文件裏面寫的就是權限
//總開關vsftpd.conf裏面的可以都關閉,然後單獨在之前創建的文件夾裏面的文件中修改添加權限

mkdir  -p  /etc/vsftpd/vuserconf/user1
vim   /etc/vsftpd/userconf/user1
//這裏創建的是以你設置好的虛擬用戶爲名的文件,在其中填寫vsftpd中對應的配置權限信息
//在此外文件中設定配置文件中的所有參數,此文件的優先級高
  • 在主配置中

  • 在user1單獨的配置中

    //因爲添加了如圖權限,所以之後就可以上傳,並且添加文件了,但注意,這只是user1的權限,其他的還要自行添加

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章