1. 程式人生 > >Linux基礎知識(FTP服務)

Linux基礎知識(FTP服務)

一、 FTP的部署

  1. 安裝vsftpd
    在這裡插入圖片描述
    在這裡插入圖片描述

  2. 安裝 lftp
    在這裡插入圖片描述
    在這裡插入圖片描述

  3. 開啟vsftpd服務,並設定開機自啟動
    在這裡插入圖片描述

  4. 檢視火牆狀態,當火牆關閉時開啟火牆,並新增lftp服務到火牆白名單
    在這裡插入圖片描述

  5. 重新載入
    在這裡插入圖片描述

  6. 檢視,ftp服務已經新增到火牆白名單中
    在這裡插入圖片描述

  7. 使用ftp訪問主機(當ls有內容顯示,則代表登入成功,否則表示不成功)
    在這裡插入圖片描述

  8. 關閉selinux
    編輯getenforce 當顯示Enforcing,則代表沒有關閉,需要關閉
    在這裡插入圖片描述
    編輯selinux配置檔案
    在這裡插入圖片描述
    將selinux的狀態改為disabled
    在這裡插入圖片描述
    重新啟動虛擬機器
    reboot
    編輯getenforce檢視


    在這裡插入圖片描述

二、FTP服務的資訊

  1. 軟體安裝包:vsftpd
    協議介面:21/tcp
    服務配置檔案:/etc/vsftpd/vsftpd.conf
    預設釋出目錄:/var/ftp
  2. 報錯id的解析:
    550 服務本身功能未開啟
    553 本地檔案系統許可權過小
    530 使用者認證失敗
    500 檔案系統許可權過大

三、FTP命令運用

編輯/etc/vsftpd/vsftpd.conf 進行設定
在服務端新建一個使用者,並設定密碼
在這裡插入圖片描述

  1. 匿名使用者
    anonymous_enable=YES|NO 匿名使用者是否可以登陸
    編輯 vim /etc/vsftpd/vsftpd.cof
    編輯結束後重新啟動服務
    在這裡插入圖片描述


    將YES 改成NO
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  2. 本地使用者
    local_enable=YES|NO   本地使用者是否可以登陸
    在這裡插入圖片描述
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  3. write_enable=YES|NO   ftp是否對登陸使用者可寫
    在這裡插入圖片描述
    write_enable=YES 可寫
    在這裡插入圖片描述
    若改為write_enable=NO,則不可寫。
    測試:
    在這裡插入圖片描述
    在這裡插入圖片描述

  4. 匿名使用者上傳
    預設情況下,匿名使用者是不能上傳的
    在這裡插入圖片描述
    編輯配置檔案
    在這裡插入圖片描述
    在這裡插入圖片描述
    修改匿名使用者目錄的所有組並給組新增可寫的許可權
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  5. 匿名使用者家目錄修改
    anon_root=/目錄
    新建一個目錄/off
    在這裡插入圖片描述
    新增anon_root=/off
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  6. 匿名使用者上傳檔案預設許可權的修改
    anon_umask=xxx
    在這裡插入圖片描述


    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  7. 匿名使用者建立目錄
    anon_mkdir_write_enable=YES|NO
    在這裡插入圖片描述
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  8. 匿名使用者下載
    anon_world_readable_only=YES|NO NO表示匿名使用者可以下載YES表示不可以下載
    在這裡插入圖片描述
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  9. 匿名使用者刪除
    anon_other_write_enable=YES|NO
    在這裡插入圖片描述
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述
    在這裡插入圖片描述

  10. 匿名使用者使用的使用者身份和許可權的修改
    編輯配置檔案
    在這裡插入圖片描述
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  11. 最大上傳速率
    anon_max_rate=102400
    擷取檔案
    在這裡插入圖片描述
    編輯配置檔案
    在這裡插入圖片描述
    新增(最大上傳速率為102400)
    在這裡插入圖片描述
    測試:上傳速率很慢
    在這裡插入圖片描述

  12. 最大連結數
    max_clients=2 表示最多有2個可以連線
    在這裡插入圖片描述
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  13. 本地使用者家目錄修改
    local root=/directory
    在這裡插入圖片描述
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  14. 本地使用者上傳檔案許可權
    local umask=xxx
    在這裡插入圖片描述
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

  15. 限制本地使用者登陸
    vim  /etc/vsftpd/ftpusers   使用者永久黑名單
    在這裡插入圖片描述
    測試:無法登入
    在這裡插入圖片描述

  16. 特殊情況下使用者白名單設定
    在這裡插入圖片描述
    在這裡插入圖片描述
    編輯該檔案
    在這裡插入圖片描述
    在這個檔案內並且不在 /etc/vsftpd/ftpusers 檔案內的使用者為可登陸使用者
    在這裡插入圖片描述
    測試:
    在這裡插入圖片描述

四、FTP虛擬使用者的管理

一、ftp建立虛擬使用者
建立虛擬使用者的原因: 因為系統使用者登陸ftp服務,同時也可以登陸系統,這樣很不安全,所以我們要建立ftp虛擬使用者,使這些使用者只能登陸ftp

  1. 建立方式:
    vim /etc/vsftpd/loginusers
    在這裡插入圖片描述
    寫入
    westos1 使用者
    123 密碼
    westos2 使用者
    123 密碼
    westos3 使用者
    123 密碼
    退出
    在這裡插入圖片描述
    注意:編輯的時候不要有空格
  2. 對檔案進行hash加密
    執行 db_load -T -t hash -f loginusers loginusers.db
    在這裡插入圖片描述
  3. 編輯檔案(驗證密碼與使用者是否一致的檔案) 檔名稱任意
    vim /etc/pam.d/ftpauth
    在這裡插入圖片描述
    寫入
    account required pam_userdb.so db=/etc/vsftpd/loginusers
    auth required pam_userdb.so db=/etc/vsftpd/loginusers
    退出
    在這裡插入圖片描述
  4. 編輯配置檔案 vim /etc/vsftpd/vsftpd.conf退出後重新啟動服務
    在這裡插入圖片描述
    修改 pam_service_name=ftpauth
    新增 guest_enable=YES
    在這裡插入圖片描述
  5. 在另一臺主機進行測試:可以看到虛擬使用者建立成功,可以登入
    在這裡插入圖片描述
  6. 建立虛擬使用者後,本地使用者就不能正常登陸了,但是仍然可以指定本地使用者身份登陸
    再次編輯配置檔案vim /etc/vsftpd/vsftpd.conf
    在這裡插入圖片描述
    新增guest_username=tom退出tom使用者必須存在
    在這裡插入圖片描述
    檢視tom使用者家目錄下的東西,如果虛擬使用者登入時可以看到以下檔案,則證明虛擬使用者登入身份修改成功
    在這裡插入圖片描述
    cd /home/
    執行 chmod 555 tom/減小許可權
    在這裡插入圖片描述
  7. 在另一臺主機測試:
    在這裡插入圖片描述

二、虛擬使用者獨立家目錄設定

  1. 首先在這三個家目錄中分別建立檔案
    mkdir -p /ftphome/westos{1…3}
    mkdir -p /ftphome/westos1/westos1date
    mkdir -p /ftphome/westos2/westos2date
    mkdir -p /ftphome/westos3/westos3date
    在這裡插入圖片描述

  2. 編輯配置檔案vim /etc/vsftpd/vsftpd.conf退出後重新啟動服務
    在這裡插入圖片描述
    新增:
    在這裡插入圖片描述
    注意:
    $ USER 相當於c語言中的變數,給不同的值,輸出不同的值
    user_sub_token=$ USER (將shell中$USER的用法移到ftp服務中來用)
    重新啟動服務systemctl restart vsftpd
    給該檔案滿許可權chmod 777 /ftphome/westos*/*
    在這裡插入圖片描述

  3. 在令外一臺主機測試:
    在這裡插入圖片描述

三、虛擬使用者許可權單獨設定
原理:虛擬使用者使用的是匿名使用者的引數控制,如果我們想讓不同的虛擬使用者有不同的權利,就必須給每個虛擬使用者設定自己的次配置檔案。

  1. 首先建立虛擬使用者的次目錄和次配置檔案
    mkdir /etc/vsftpd/user_conf
    touch /etc/vsftpd/user_conf/westos1
    在這裡插入圖片描述
  2. 編輯次配置檔案 vim /etc/vsftpd/user_conf/westos1
    在這裡插入圖片描述
    寫入允許虛擬使用者執行的動作anon_upload_enable=YES退出儲存(注意:虛擬使用者的上傳引數為NO,或預設)
    在這裡插入圖片描述
  3. 編輯配置檔案vim /etc/vsftpd/vsftpd.conf
    在這裡插入圖片描述
    寫入user_config_dir=/etc/vsftpd/user_conf
    在這裡插入圖片描述
    重新啟動服務systemctl restart vsftpd
    在這裡插入圖片描述
  4. 在另一臺主機測試:
    虛擬使用者westos1可以實現上傳功能,而westos2和westos3不行
    在這裡插入圖片描述
    在這裡插入圖片描述