Vsftp 服務配置


FTP連接及傳輸模式

  • 控制連接:TCP 21 ,用於發送FTP命令信息
  • 數據連接:TCP 20 ,用於上傳、下載數據
  • 數據連接的建立類型:主動模式、被動模式

主動模式:服務器主動發起數據連接

  • 首先由客戶端向服務端的21端口建立FTP控制連接
  • 當需要傳輸數據時,客戶端以PORT命令告知服務器"我打開了某端口,你過來連接我" 於是服務器從20端口向客戶端的該端口發送請求並建立數據連接

被動模式:服務器被動等待數據連接

  • 如果客戶端所在網絡防火牆禁止主動模式連接,通常會使用被動模式
  • 當需要傳輸數據時,客戶端以PORT命令告訴服務器"我要連接你,你要被動等我",於是服務器告知客戶端"我打開了某端口,你過來連接我"於是客戶端向服務器的該端口(非20端口)發送請求並建立數據連接

PASV:被動

FTP連接及傳輸模式

  • 客戶端與服務器建立好數據連接以后,就可以根據從控制連接中發送的FTP命令上傳或下載文件了。
  • 在傳輸文件時,根據是否進行字符轉換,分為文本模式和二進制模式
  • 文本模式:又稱為ASCII(American Standard Code for Information
    Interchange,美國信息交換標准碼)模式,這種模式在傳輸文件時使用ASCII標准字符序列,一般指用於純文本文件的傳輸
  • 二進制模式:又稱為Binary模式,這種模式不會轉換文件中的字符序列,更適合傳輸程序、圖片等非純文本字符的文件
  • 使用二進制模式比純文本模 式更有效率,大多數FTP客戶端工具可以根據文件類型自動選擇文件的傳輸模式,而無需用戶手工指定

FTP用戶類型:

  1. 匿名用戶:用戶名為ftp或anonymous,提供任意密碼(包括空密碼)都可以通過服務器的驗證。一般用於公共文件的下載。
  2. 本地用戶:直接使用本地的系統用戶賬號進行驗證
  3. 虛擬賬戶:通過一份獨立的用戶數據庫文件進行登陸驗證,將FTP賬戶的關聯性降至最低,為系統提供更好的安全性

FTP服務器軟件的種類

  • 在Windows系統中,常見的FTP服務器軟件包括FileZilla、Serv-U等
  • 在Linux系統中,vsftp是目前在Linux/UNIX領域應用十分廣泛的一款FTP服務軟件
  • Vsftpd服務的名稱來源於"Very Secure FTP Daemon",該軟件針對安全特性方面做了大量的設計。除了安全性以外,vsftp在速度和穩定性方面表現也相當突出

FTP客戶端工具的種類

  • 最簡單的FTP客戶端工具莫過於FTP命令程序了
  • 除此以外,還有大量的圖形化FTP客戶端工具。Windows8中較常用的包括CuteFTP、
    FlashFXP、LeapFTP、Filezilla等
  • 還有一些下載工具軟件,如FlashGet、Wget等,包括大多數網頁瀏覽器程序,都支持 通過FTP協議下載文件,但因不具備FTP上傳等管理功能,通常不稱為FTP客戶端工具

寫入權限:閥門理論

  • 文件系統權限與服務配置權限需要同時滿足
  • 文件系統權限高於服務配置權限

$(將里面的執行結果輸出)&> /dev/null 屏幕不顯示

搭建匿名訪問的FTP服務器

  • 安裝vsftp軟件包
  • 准備匿名FTP訪問的目錄
  • 開放匿名用戶哦欸只並啟動vsftp服務
  • 測試匿名FTP服務器
yum -y install vsftpd
chkconfig --level 2345 vsftpd on
netstat -anyup | grep "vsftpd"
cd /var/ftp/(pub) 匿名登陸的默認目錄(匿名用戶或其他人不能有寫權限)
把擁有者改成ftp 有寫權限
vi /etc/vsftpd/vsftpd.conf 配置文件

anonynous_enable=YES    //匿名訪問
write_enable=YES    //是否可寫入
anon_upload_enable=YES  //匿名上傳
anon_mkdir_write_enable=YES //匿名創建目錄、
anon_other_write_enable=YES //除了創建目錄其他的寫權限(重命名)

登陸:

  • ftp IP
  • get ** 下載文件

搭建用戶驗證的FTP服務

* 基本的本地用戶驗證
local_enable=YES
write_enable=YES
local_umask=077 //修改本地用戶默認權限掩碼為077
chroot_local_user=YES   //開啟本地用戶的家目錄鎖定

userlist_enable=YES 啟動userlist文件
userlist_deny=YES (YES里面用戶無法登陸,NO里面用戶可以登錄)

·ftpusers與user_list用戶列表的使用
(1)ftpusers文件:FTP服務器中的黑名單,優先級高於user_list文件
(2)user_list文件:此用戶列表默認情況下也是黑名單,即在此用戶列表中的用戶不可訪問FTP服務器,但可以通過vsftpd.conf主配置文件的修改將此名單改為白名單,且僅此名單中的用戶可以訪問。

·使用user_list用戶列表文件(ftpusers只要里面出現的賬號就不能登陸)

vsftpd服務的其他常用配置

  • 基於虛擬用戶的FTP服務
  • 修改vsftpd服務的監聽地址、端口
  • 允許使用FTP服務器的被動模式
  • 限制FTP連接的並發數、傳輸速率
  • 修改vsftpd服務的監聽地址、端口:
  • netstat -antup | grep "vsftpd"
  • 0.0.0.0 所有的IP地址
vi /etc/vsftpd/vsftpd.conf 
listen_address=10.10.10.10
listen_port=222 
pasv_enable=YES
pasv_min_port=24500
pasv_max_port=24600

max_client=200 (最大連接客戶端)
max_per_ip=2 (一個IP最多能打開多少個客戶端)
anon_max_rate=50000
local_max_rate=200000

修改vsftpd服務的監聽地址、端口

建立虛擬用戶的賬號數據庫:

vsftpd服務使用Berkeley

  • DB格式的數據庫文件來存放虛擬用戶賬戶,建立這種數據庫文件需要用到db_load工具
  • 步驟:
    1. 創建文本格式的用戶名、密碼列表
    2. 創建Berkeley DB格式的數據庫文件
    3. 添加虛擬用戶的映射賬號,創建FTP根目錄
/etc/vsftpd /
vi vusers.list 
用戶名
密碼
用戶名 
密碼
這些用戶在Linux中不存在

yum -y install db4-utils-*

db_load -T -t hash -f vusers.list vusers.db
注:db_load命令-T:允許非Berkeley的程序使用該數據庫-t:指定算法(hash:哈希,散列)-f:指定源文件注意:生成的數據庫文件必須為“.db”格式

## 一般吧數據文件和權限文件改為600只有超級用戶可讀可寫

## 添加虛擬用戶的映射賬號
useradd virtual -s /sbin/nologin -d /var/ftproot
chmod 755 /var/ftproot/

為vsftpd服務添加虛擬用戶支持

  • 在vsftpd服務器中,用戶認證是通過PAM(Pluggable Authentication
  • Module,可插拔認證模塊)機制來實現的,該機制包括靈活的選擇認證方式
  • 步驟
    1. 為虛擬用戶建立PAM認證文件
    2. 修改vsftpd配置,添加虛擬用戶支持
    3. 為不同的虛擬用戶建立獨立的配置文件
    4. 測試
#cd /etc/pam.d 
#cp -a su vsftpd.vu
#vim vsftpd.vu

auth    required    pam_userdb.so db=/etc/vsftpd/vusers
account required    pam_userdb.so db=/etc/vsftpd/vusers

#vi /etc/vsftpd/vsftpd.conf 
·local_enable=YES
·guest_enable=YES
·guest_username=virtual
·anon_umask=022
·pam_service_name=vsftpd.vu


#實現每個虛擬用戶不同根目錄、不同權限的管控(1)創建用戶控制目錄,並創建虛擬所對應的同名配置文件
·mkdir /etc/vsftpd/vusers_dir/
·cd /etc/vsftpd/vusers_dir/
·vi ***

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=1
local_root=/var/***

#chown virtual /var/***

·vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
·/etc/init.d/vsftpd restart

其他配置:

  • listen=YES 是否開啟監聽段口
  • listen_address=10.10.10.10 監聽IP地址
  • listen_port=2121 設置監聽端口
  • pasv_enable=YES 是否開啟被動模式
  • pasv_min_port=24500 被動模式端口下限
  • pasv_max_port=24600 被動模式端口上限
  • max_client=2000 最大*客戶連接數,一般不限制
  • max_per_ip=2 每個IP限制最多打開幾個客戶端工具,一般不限制
  • anon_max_rate=50000 匿名最大傳輸速率
  • local_max_rate=20000 本地用戶最大傳輸速率,一般不限制


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM