VSFTPD配置虛擬用戶 -V2

1.安裝vsftpd

#yum install  vsftpd

2.建立虛擬用戶,格式爲第一行爲用戶名名,第二行爲密碼,然後類推

#vim /home/loginuser.txt

 

3.爲虛擬用戶生成建立db數據庫,同時只有root用戶才能讀寫

# db_load -T -t hash -f /home/loginuser.txt /etc/vsftpd/vsftpd_login.db

# chmod 600 /etc/vsftpd/vsftpd_login.db

4.配置pam文件

# u (64位系統)

 

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 

 

# vim /etc/pam.d/vsftpd.vu (32位系統)

 

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  

account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 

 

5.建立虛擬用戶對應的系統真實用戶以及以及更改真實用戶的家目錄

# useradd -d /home/ftpsite  -s /sbin/nologin  virtual

# chown virtual:virtual  /home/ftpsite

 

 

6.修改配置文件

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

# vim /et/vsftpd/vsftpd.conf

 

7.建立虛擬用戶配置文件(我這次環境配置兩個用戶,一個管理員用戶和兩個普通用戶,管理用戶登錄FTP可以做任何操作,而普通用戶只能上傳不能下載另外一個只能下載不能上傳

#mkdir /etc/vsftpd/vsftpd_user_conf

#cd /etc/vsftpd/vsftpd_user_conf/

#vim admin

 

#vim test

 

#vim user1

 

8.測試結果

# service vsftpd restart

使用filezilla測試結果,我這裏測試下來完全沒有問題  

9.相關參數解釋

anonymous_enable=NO

設定不允許匿名訪問

local_enable=YES

設定本地用戶可以訪問。注意:主要是爲虛擬宿主用戶,如果該項目設定爲NO那麼所有虛擬用戶將無法訪問。

write_enable=YES

設定可以進行寫操作。

local_umask=022

設定上傳後文件的權限掩碼。

anon_upload_enable=NO

禁止匿名用戶上傳。

anon_mkdir_write_enable=NO

禁止匿名用戶建立目錄。

dirmessage_enable=YES

設定開啓目錄標語功能。

xferlog_enable=YES

設定開啓日誌記錄功能。

connect_from_port_20=YES

設定端口20進行數據連接。

 

chown_uploads=NO

設定禁止上傳文件更改宿主。

 

xferlog_file=/var/log/vsftpd.log

設定Vsftpd的服務日誌保存路徑。注意,該文件默認不存在。必須要手動touch出來,並且由於這裏更改了Vsftpd的服務宿主用戶爲手動建立的Vsftpd。必須注意給與該用戶對日誌的寫入權限,否則服務將啓動失敗。

 

xferlog_std_format=YES

設定日誌使用標準的記錄格式。

nopriv_user=vsftpd

設定支撐Vsftpd服務的宿主用戶爲手動建立的Vsftpd用戶。注意,一旦做出更改宿主用戶後,必須注意一起與該服務相關的讀寫文件的讀寫賦權問題。比如日誌文件就必須給與該用戶寫入權限等。

async_abor_enable=YES

設定支持異步傳輸功能。

ascii_upload_enable=YES

ascii_download_enable=YES

設定支持ASCII模式的上傳和下載功能。

ftpd_banner=Welcome to Awei FTP servers

設定Vsftpd的登陸標語。

chroot_local_user=YES

禁止本地用戶登出自己的FTP主目錄。

pam_service_name=vsftpd

設定PAM服務下Vsftpd的驗證配置文件名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置。

以下這些是關於Vsftpd虛擬用戶支持的重要配置項目。默認Vsftpd.conf中不包含這些設定項目,需要自己手動添加配置。

guest_enable=YES

設定啓用虛擬用戶功能。

guest_username=ftp

指定虛擬用戶的宿主用戶。

virtual_use_local_privs=YES

設定虛擬用戶的權限符合他們的宿主用戶。

user_config_dir=/etc/vsftpd/vconf

設定虛擬用戶個人Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每個Vsftp虛擬用戶個性的配置文件,一個需要注意的

地方就是這些配置文件名必須和虛擬用戶名相同。

 

 

anon_world_readable_only=NO   可讀可下載
anon_upload_enable=YES            可上傳
download_enable = NO                不能下載
anon_mkdir_write_enable=YES   可創建和刪除文件夾
anon_other_write_enable=YES    可文件改名和刪除文件
local_root=/home/ftpsite/mike      指定mike的宿主目錄

 

 

上述權限如果不能滿足需求,可以配合acl 來實現

參考鏈接1http://www.cnblogs.com/ZhangShuo/articles/1836971.html

參考鏈接2http://man.linuxde.net/setfacl

 

 

 

 

 

 

 

 

作者:LyonZhao

更於2015-12-8 1725

 

 

 

補充:由於企業服務器裏面都設置了防火牆策略iptables,這個時候服務器端就需要開放防火牆,但客戶端訪問服務器的端口是隨機的,所以需要在vsftpd.conf這個配置文件裏添加以下參數

 

pasv_min_port=50000
pasv_max_port=50050

 

 

防火牆

iptables -A INPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 20 -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW --sport 21 -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW --sport 21 -j ACCEPT

iptables -A INPUT -p tcp -m state --state NEW --dport 50000:50050 -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW --sport 50000:50050 -j ACCEPT

 


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