構建FTP文件傳輸服務器 -- 基於虛擬用戶

FTP服務概述

FTP連接及傳輸模式

  • 控制連接:TCP 21,用於發送FTP命令信息

  • 數據連接:TCP 20,用於上傳、下載數據

數據連接的建立類型:

  • 主動模式:服務端從20端口主動向客戶端發起連接

  • 被動模式:服務端在指定範圍內某個端口被動等待客戶端連接

FTP傳輸模式

  • 文本模式:ASCII模式,以文本序列傳輸數據

  • 二進制模式:Binary模式,以二進制序列傳輸數據


FTP用戶的類型

  • 匿名用戶:anonymous或ftp

  • 本地用戶:帳號名稱、密碼等信息保存在passwd、shadow文件中

  • 虛擬用戶:使用獨立的帳號/密碼數據文件


常見的FTP服務器程序

IIS、Serv-U、wu-ftpd、Proftpd、vsftpd(Very Secure FTP Daemon)

常見的FTP客戶端程序

ftp命令、CuteFTP、FlashFXP、LeapFTP、Filezilla、gftp、kuftp


vsftpd服務基礎

主程序:/usr/sbin/vsftpd

服務名:vsftpd

用戶控制列表文件

  • /etc/vsftpd/ftpusers

  • /etc/vsftpd/user_list

主配置文件

  • /etc/vsftpd/vsftpd.conf


常用的全局配置項

  • listen=YES:是否以獨立運行的方式監聽服務

  • listen_address=192.168.4.1:設置監聽的IP地址

  • listen_port=21:設置監聽FTP服務的端口號

  • write_enable=YES:是否啓用寫入權限

  • download_enable=YES:是否允許下載文件

  • userlist_enable=YES:是否啓用user_list列表文件

  • userlist_deny=YES:是否禁用user_list中的用戶

  • max_clients=0:限制併發客戶端連接數

  • max_per_ip=0:限制同一IP地址的併發連接數


常用的匿名FTP配置項

  • anonymous_enable=YES:啓用匿名訪問

  • anon_umask=022:匿名用戶所上傳文件的權限掩碼

  • anon_root=/var/ftp:匿名用戶的FTP根目錄

  • anon_upload_enable=YES:允許上傳文件

  • anon_mkdir_write_enable=YES:允許創建目錄

  • anon_other_write_enable=YES:開放其他寫入權

  • anon_max_rate=0:限制最大傳輸速率(字節/秒)


常用的本地用戶FTP配置項

  • local_enable=YES:是否啓用本地系統用戶

  • local_umask=022:本地用戶所上傳文件的權限掩碼

  • local_root=/var/ftp:設置本地用戶的FTP根目錄

  • chroot_local_user=YES:是否將用戶禁錮在主目錄

  • local_max_rate=0:限制最大傳輸速率(字節/秒)


其他常用配置

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

[root@steven ~]# vim /etc/vsftpd/vsftpd.conf
……
listen=YES
listen_address=192.168.4.11
listen_port=2121


2.允許使用FTP服務器的被動模式

[root@steven ~]# vi /etc/vsftpd/vsftpd.conf
……
pasv_enable=YES
pasv_min_port=24500
pasv_max_port=24600



實驗案例

先掛載RHEL系統光盤.安裝vsftp軟件包和db4-utils軟件包.

db4-utils軟件包用於建立虛擬賬號數據庫文件

173910325.png


建立虛擬用戶的賬戶名、密碼列表

  • 奇數行爲帳號名

  • 偶數行爲上一行中帳號的密碼

173910275.png

173910572.png


轉化爲Berkeley DB格式的數據文件

  • db_load 轉換工具

  • 需安裝db4-utils軟件包

  • -T選項允許非Berkeley DB的應用程序使用文本格式轉換的DB數據文件

  • -t hash選項指定讀取數據文件的基本方法

  • -f選項用於指定數據源文件

173911876.png


爲了提高虛擬用戶賬號文件的安全性,將文件權限設置爲600

173911150.png


添加虛擬用戶的映射賬號

173911659.png

173911970.png


創建FTP目錄,更改屬主和權限

173911475.png


爲虛擬用戶建立PAM認證文件

173911242.png

173912487.png


修改vsftpd配置文件.添加虛擬用戶的支持,修改了匿名用戶的根目錄,限制了連接數和速率

173912905.png

174006905.png


爲每個用戶建立獨立的配置文件

173922476.png

173922567.png

173922869.png

173922596.png

173922813.png


爲每個用戶建立獨立配置文件以後.要添加這條

173922943.png


在FTP目錄中新建一點文件

173922811.png


下面開始測試

匿名用戶可以登錄,並可以瀏覽、下載,但無法上傳

173923142.png

173923958.png


sales用戶可以登錄,並可以瀏覽、下載,但無法上傳

173923733.png

173923420.png

173924389.png


salesadm用戶可以登錄,並可以瀏覽、下載,也可以上傳

173924697.png

173924490.png

173925114.png


devadm用戶可以登錄,並可以瀏覽、下載,也可以上傳

173925802.png

173925352.png

173926454.png


總結

構建基於虛擬用戶的FTP服務的步驟

  • 創建賬號數據

1.建立虛擬FTP用戶的帳號數據庫文件

2.創建FTP根目錄及虛擬用戶映射的系統用戶

3.建立支持虛擬用戶的PAM認證文件

  • 添加虛擬用戶支持

4.在vsftpd.conf文件中添加支持配置

5.爲個別虛擬用戶建立獨立的配置文件

  • 啓動服務並測試

6.重新加載vsftpd配置

7.使用虛擬FTP賬戶訪問測試


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