1. 程式人生 > >centos 7虛擬用戶訪問FTP

centos 7虛擬用戶訪問FTP

rap mage 大端 啟動 服務器 奇數 重命名 服務 down

在vsftpd服務中,虛擬用戶被默認作為匿名用戶進行處理以降低權限,因此對應的配置項通常以anon_開頭。
基本搭建過程如下:
技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

1、創建文本格式的用戶名/密碼列表
文本中奇數行為用戶名,偶數行為上一行中用戶所對應的密碼。如:執行以下操作添加兩個用戶mike、john,密碼分別為123,456

新建一個文本:
技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

輸入用戶名和密碼:
技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

2、創建Berkeley DB格式的數據庫文件

有了文本格式的用戶名/密碼列表文件後,以此文件作為數據源通過db_load工具創建Berkeley DB格式的數據庫文件:

技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

在db_load命令中,-f 選項用於指定數據源文件,-T 選項允許非Berkeley DB的應用程序使用從文本格式轉換的DB數據文件, “ -t hash ” 選項指定讀取數據文件的基本方法。

為了保證數據安全,可以將文件權限設置為 “600” ,避免數據外泄:
技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

3、添加虛擬用戶的映射賬號、創建FTP根目錄:

如以下操作添加了一個名為 “test” 的系統用戶賬號(此賬號無須設置密碼及登錄shell),並結合實際情況更改目錄權限,指定的宿主目錄,默認是所有虛擬用戶的根目錄(可以最後對每個用戶的配置文件單獨設置)

技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

4、為虛擬用戶建立PAM認證文件

vsftpd服務默認的PAM認證文件位於 /etc/pam.d/vsftpd ,可以執行以下操作在/etc/pam.d目錄下建立一個名為vsftpd.vu的PAM認證文件,用於虛擬用戶認證控制。
技術分享圖片
技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

cent OS7搭建基於虛擬用戶的FTP服務

以上內容,通過 “ db=/etc/vsftpd/vusers”參數指定了要使用的虛擬用戶數據庫文件位置(省略了.db擴展名)

5、為不同的虛擬用戶建立獨立的配置文件(為了給不同虛擬用戶設置不同的權限,若所有的虛擬用戶權限一致,則可忽略這一步)
技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

打開後寫入相應權限
技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

保存退出後,並以同樣的方式建立其他用戶的獨立的配置文件。

6、更改 /etc/vsftpd/vsftpd.conf 的配置文件如下:
技術分享圖片
cent OS7搭建基於虛擬用戶的FTP服務

以上各主要配置項字段含義如下:
anonymous_enable=NO:禁止匿名用戶訪問;
local_enable=YES:允許本地系統用戶訪問;
write_enable=YES:啟用任何形式的寫入權限,(如上傳、刪除文件等)都需要開啟此項;
local_umask=022:設置本地用戶所上傳的默認權限掩碼;
listen=NO:是否以獨立運行的方式監聽服務;
pam_service_name=vsftpd.vu:設置用於用戶認證的PAM文件位置;
guest_username=test:指定映射的系統用戶名稱;
guest_enable=YES:是否啟用虛擬用戶;
allow_writeable_chroot=允許被限制用戶的主目錄具有寫權限(此項必須寫入,否則可能會報錯)
anon_world_readable_only=NO:允許用戶下載目錄內容
anon_other_write_enable=YES:允許匿名用戶有其他寫入權限,如重命名、覆蓋及刪除文件等;
user_config_dir=/etc/vsftpd/vusers_dir:指定虛擬用戶獨立的配置文件目錄

若都有一樣的權限,直接在上面這個配置文件寫入就好,若有不一樣的權限,可以寫入到用戶單獨的配置文件中,也可在在用戶單獨的配置文件中指定新的根目錄

保存退出配置文件後,執行systemctl start vsftpd啟動ftp服務即可使用。

                                  -----關於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:是否允許匿名用戶有其他寫入權限,如對文件改名、覆蓋及刪除文件等;
-----關於本地用戶:

local_enable=YES:是否允許本地用戶訪問;
local_umask=022:設置本地用戶所上傳文件的默認權限掩碼值(反掩碼);
local_root=/var/ftp:設置本地用戶的FTP根目錄(默認為用戶的宿主目錄);
chroot_local_user=YES:是否將FTP本地用戶禁錮在宿主目錄中;
allow_writeable_chroot=YES:允許被限制用戶的主目錄具有寫權限;
local_max_rate=0:限制本地用戶的最大傳輸速率(0為無限制),單位為字節/秒(B/s)
-----關於全局配置:

listen=NO: 是否以獨立運行的方式監聽服務;
listen_address=0.0.0.0:設置監聽f t p服務的ip地址;
listen_port=21:設置監聽ftp服務的端口號;
write_enable=YES:啟用任何形式的寫入權限,(如上傳、刪除文件等)都需要開啟此項;
download_enable=YES:是否允許下載文件(建立僅限於瀏覽、上傳的FTP服務器時,可將此項設置為“NO”);
dirmessage_enable=YES:用戶切換進入目錄時顯示 “.message”文件(如果已存在)的內容;
xferlog_enable=YES:啟用xferlog日誌,默認記錄到 /var/log/xferlog;
xferlog_std_format=YES:啟用標準的xferlog日誌格式,若禁用此項,將使用vsftpd自己的日誌格式;
connect_from_port_20=YES:允許服務器主動模式(從20端口建立數據連接);
pasv_enable=NO:禁止被動模式連接;默認允許被動模式連接;
pasv_max_port=24600:設置用於被動模式的服務器最大端口號;
pasv_min_port=24500:設置用於被動模式的服務器最大端口號;
pam_service_name=vsftpd.vu:設置用於用戶認證的PAM文件位置(/etc/pam.d/目錄中對應的文件名);
userlist_enable=YES:是否啟用userl_ist用戶列表文件;
userlist_deny=YES:是否禁用user_list列表文件中的用戶賬號;
max_clients=0:最多允許多少個客戶端同時連接(0為無限制);
max_per_ip=0:對來自同一個ip地址的客戶端,最多允許多少個並發連接(0為無限制);
tcp_wrappers=YES:是否啟用tcp_wrappers主機訪問控制;
-----關於虛擬用戶的配置項:

guest_username=test:指定映射的系統用戶名稱;
guest_enable=YES:是否啟用虛擬用戶;
allow_writeable_chroot=允許被限制用戶的主目錄具有寫權限(此項必須寫入,否則可能會報錯)
anon_world_readable_only=NO:允許用戶下載目錄內容
anon_other_write_enable=YES:允許匿名用戶有其他寫入權限,如重命名、覆蓋及刪除文件等;
user_config_dir=/etc/vsftpd/vusers_dir:指定虛擬用戶獨立的配置文件目錄;

centos 7虛擬用戶訪問FTP