1. 程式人生 > >Vsftp安裝及配置虛擬用戶

Vsftp安裝及配置虛擬用戶

vsftp linux

Vsftp安裝及配置虛擬用戶

一、安裝

采用yum安裝

[[email protected]_64_122_centos vsftpd]# yum installvsftpd

安裝完成以後vsftpd的默認配置文件在/etc/vsftpd


二、建立虛擬用戶的過程

1,創建虛擬用戶文本文件,添加虛擬用戶和密碼

[[email protected]_64_122_centos vsftpd]# vivuser.txt

奇數行是用戶名,偶數是密碼。


比如:

admin
123!@#
yunying
yunying
sheji
sheji
chanpin
chanpin

2,生成虛擬數據庫文件

db_load默認沒有安裝,yum installdb4-utils db4-devel db4安裝才能使用。

[[email protected]_64_122_centos vsftpd]# yum installdb4-utils db4-devel db4

執行以下命令生成虛擬數據庫文件

[[email protected]_64_122_centos vsftpd]# db_load -T-t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

3,配置PAM文件,目的是對客戶端進行驗證。批註所有內容,後添加:

[[email protected]
/* */_64_122_centos vsftpd]# vi/etc/pam.d/vsftpd

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

註意:不能寫成db=/etc/vsftpd/vuser.db


4,修改虛擬數據庫文件vuser.db的權限為 700

[[email protected]_64_122_centos vsftpd]# chmod 700vuser.db

5,增加一個系統用戶vuser ,使用它來對應所有虛擬用戶,虛擬用戶使用系統用戶來訪問

ftp服務器。

useradd vuser
mkdir /var/ftp/vuser
chown vuser.vuser  /var/ftp/vuser

6,修改vsftpd.conf配置文件,使虛擬用戶可以訪問vsftpd服務器,增加以下參數

pam_service_name=vsftpd                 ####使用PAM驗證
guest_enable=YES                    ####啟用虛擬用戶                    ####激活虛擬賬戶
guest_username=vuser                  ####把虛擬賬戶綁定為系統賬戶vuser
user_config_dir=/etc/vsftpd/vsftpd_user_conf      ####虛擬用戶配置文件目錄


三、控制虛擬用戶的訪問

1,建立vsftpd_user_conf配置文件目錄

mkdir /etc/vsftpd/vsftpd_user_conf

2,設置虛擬用戶配置文件,與虛擬賬戶同名。

[[email protected]_64_122_centos vsftpd]# vi/etc/vsftpd/vsftpd_user_conf/admin

3,編輯虛擬賬戶admin的配置文件admin,設置相應的權限。添加以下內容

     anon_world_readable_only=NO             ###瀏覽FTP目錄和下載
     anon_upload_enable=YES                ###允許上傳
     anon_mkdir_write_enable=YES             ###允許建立和刪除目錄
     anon_other_write_enable=YES             ###允許改名和刪除文件
     local_root=/var/ftp/vuser              ###指定虛擬用戶在系統用戶下面的路徑,限制虛擬用戶的家目錄,虛擬用戶登錄後的主目錄。


4,重新啟動ftp服務

[[email protected]_64_122_centos vsftpd]# servicevsftpd restart


四、修改SELinux設置

SELinux 全稱 SecurityEnhanced Linux (安全強化 Linux),是 MAC (Mandatory Access Control,強制訪問控制系統)的一個實現,目的在於明確的指明某個進程可以訪問哪些資源(文件、網絡端口等)

SElinux就是指明進程能訪問那些資源,如果其訪問了非指明的資源,SElinux就會阻止他,並告訴這個程序,你沒有權限,不能讓你訪問。

所以需要修改SELinux的權限訪問設置,不然連接ftp會出現一些異常報錯。比如:

500 OOPS: cannot change directory:/home/*******

553 could not create file

查看ftp相關選項

sestatus-b | grep ftpd


下面是常用的布爾變量:

allow_ftpd_anon_write:關閉這個布爾變量會阻止 vsftpd 讀取 public_content_rw_t 類型的文件和目錄。如果允許用戶通過 FTP 上傳文件。必須開放這個布爾變量。

allow_ftpd_full_access:當開放這個布爾變量時只有LinuxDAC)的權限來控制訪問,通過驗證的用戶可以讀取和寫入標記為 public_content_t public_content_rw_t 類型的文件。

allow_ftpd_use_cif:當開放這個布爾變量時vsftpd 允許 cifs_t 類型的文件和目錄,因此這個布爾變量啟用,可以讓你的 FTP 服務器可以使用 Samba 文件系統。

allow_ftpd_use_nfsvsftpd:的當開放這個布爾變量時 vsftpd 允許 nfs_t 類型的文件和目錄,因此這個布爾變量啟用,可以讓你的 FTP 服務器可以使用 NFS 文件系統。

ftp_home_dir:當開放這個布爾變量時認證用戶可以讀寫自己的主目錄中的文件。

ftpd_connect_db:當開放這個布爾變量時允許vsftpd 連接數據庫。

httpd_enable_ftp_server:當開放這個布爾變量時容許的 httpd 作為 FTP 服務器,並且監聽 FTP 端口。

tftp_anon_write:當開放這個布爾變量時允許TFTP 訪問一個公共的目錄

啟用以下選項:

   setsebool-P ftp_home_dir 1
   setsebool-P allow_ftpd_full_access 1


Vsftp安裝及配置虛擬用戶