溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vsftpd安裝配置虛擬用戶

發(fā)布時間:2020-07-06 19:13:52 來源:網(wǎng)絡(luò) 閱讀:439 作者:大哥叔 欄目:建站服務器

當用戶量越來越大,創(chuàng)建更多的系統(tǒng)用戶是不明智的,這時就需要為vsftpd創(chuàng)建虛擬賬戶,但vsftpd虛擬賬戶的數(shù)據(jù)庫要保存在Berkeley DB格式的數(shù)據(jù)文件中,所以需要安裝db4-utils工具來創(chuàng)建這樣的數(shù)據(jù)庫文件

一、系統(tǒng)環(huán)境
# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m
# uname -a
Linux iZuf62wzdy3bbx4vbp2f6bZ 2.6.32-642.13.1.el6.x86_64 #1 SMP Wed Jan 11 20:56:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

二、安裝vsftpd服務
#yum -y install vsftpd
#/etc/init.d/vsftpd restart

#chkconfig vsftpd on

三、創(chuàng)建虛擬用戶數(shù)據(jù)庫

首先需要創(chuàng)建明文文件,明文文件奇數(shù)行為用戶名,偶數(shù)行為密碼。使用db_load工具將其轉(zhuǎn)換為數(shù)據(jù)庫文件,db_load工具需要通過安裝db4-utils軟件獲得。最后通過修改文件權(quán)限以增強資料的安全性

#yum -y install db4-utils

#vim /etc/vsftpd/vlogin

在vlogin文件中寫入用戶名和密碼:

Username01

Password01

Username01

Password01

生成虛擬數(shù)據(jù)庫文件(vlogin.db)

#db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db

#chmod 600 /etc/vsftpd/{vlogin,vlogin.db}

四、設(shè)置虛擬賬號驗證

Linux一般通過PAM文件設(shè)置賬號的驗證機制,然后通過創(chuàng)建PAM文件,使用新的數(shù)據(jù)文件進行登錄驗證,PAM文件中的db選項于指定并驗證賬戶和密碼的數(shù)據(jù)庫文件

# vim /etc/pam.d/vsftpd   (此文件中加入如下兩行設(shè)置)

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

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

五、設(shè)置虛擬賬戶共享目錄

因為所有的虛擬賬戶需要映射到一個真實的系統(tǒng)賬戶,所以系統(tǒng)需要添加一個系統(tǒng)賬戶并設(shè)置家目錄(此處應用到web上做網(wǎng)站文件上傳賬號,所以必須同WEB用戶一樣www用戶)

useradd -s /sbin/nologin -d /data/www www


六、修改VSFTPD主配置文件

# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES (是否允許 匿名登錄FTP服務器,默認設(shè)置為YES允許,即用戶可使用用戶名ftp或anonymous進行ftp登錄,口令為用戶的E-mail地址。如不允許匿名訪問去掉前面#并設(shè)置為NO)

local_enable=YES (是否允許本地用戶 ( 即 linux 系統(tǒng)中的用戶帳號) 登錄FTP服務器,默認設(shè)置為YES允許, 本地用戶登錄后會進入用戶主目錄,而匿名用戶登錄后進入匿名用戶的下載目錄/var/ftp/pub ;若只允許匿名用戶訪問,前面加上#,可 阻止本地用戶訪問FTP服務器。)

write_enable=YES  是否允許本地用戶對 FTP 服務器文件具有寫權(quán)限 , 默認設(shè)置為 YES 允許 )

local_umask=022 (或其它值,設(shè)置本地用戶的文件掩碼 為缺省022 ,也可根據(jù)個人喜好將其設(shè)置為其他值,默認值為077)

anon_upload_enable=YES (是否允許匿名用戶上傳文件,須將write_enable=YES , 默認設(shè)置為YES 允許 )

anon_mkdir_write_enable=YES    是否允許匿名用戶創(chuàng)建新文件夾 , 默認設(shè)置為 YES 允許 )anon_other_write_enable=NO     #禁止匿名用戶進行其他寫操作

dirmessage_enable=YES  是否激活目錄歡迎信息功能 , 當用戶用 CMD模式首次訪問服務器上某個目錄時 ,F(xiàn)TP服務器將顯示歡迎信息,默認情況下,歡迎信息是通過該目錄下的 .message 文件獲得的,此文件保存自定義的歡迎信息,由用戶自己建立)       

xferlog_enable=YES  默認值為 NO 如果啟用此選項,系統(tǒng)將會維護記錄服務器上傳和下載情況的日志文件,默認情況該日志文件為/var/log/vsftpd.log,也可以通過下面的 xferlog_file選項對其進行設(shè)定。)

connect_from_port_20=YES  設(shè)定 FTP 服務器將啟用 FTP 數(shù)據(jù)端口的連接請求 ,ftp-data 數(shù)據(jù)傳輸 ,21 為連接控制端口 )

xferlog_file=/var/log/vsftpd.log ( 設(shè)定系統(tǒng)維護記錄FTP服務器上傳和下載情況的日志文件,/var/log/vsftpd.log是默認的,也可以另設(shè)其它)

chown_uploads=YES  設(shè)定是否允許 改變 上傳文件的屬主 , 與下面一個設(shè)定項配合使用 ) 
#chown_username=whoever  設(shè)置想要改變的上傳文件的屬主 , 如果需要 , 則輸入一個系統(tǒng)用戶名, 例如可以把上傳的文件都改成 root 屬主。whoever:任何人)

#xferlog_std_format=YES  如果啟用此選項 , 傳輸日志文件將以標準 xferlog 的格式書寫,該格式的日志文件默認為/var/log/xferlog,也可以通過xferlog_file選項對其進行設(shè)定,默認值為NO) 
#dual_log_enable ( 如果添加并啟用此選項,將生成兩個相似的日志文件,默認在/var/log/xferlog和/var/log/vsftpd.log目錄下。前者是wu_ftpd類型的傳輸日志,可以利用標準日志工具對其進行分析;后者是vsftpd類型的日志) 
#syslog_enable ( 如果添加并啟用此選項,則原本應該輸出到/var/log/vsftpd.log中的日志,將輸出到系統(tǒng)日志中)

#idle_session_timeout=600 (設(shè)置數(shù)據(jù)傳輸中斷間隔時間,此語句表示空閑的用戶會話中斷時間為600秒,即當數(shù)據(jù)傳輸結(jié)束后,用戶連接FTP服務器的時間不應超過600秒,可以根據(jù)實際情況對該值進行修改)

#data_connection_timeout=120  設(shè)置數(shù)據(jù)連接超時時間 , 該語句表示數(shù)據(jù)連接超時時間為 120 秒, 可根據(jù)實際情況對其個修改 )

#nopriv_user=ftpsecure  運行 vsftpd 需要的非特權(quán)系統(tǒng)用戶,缺省是nobody)

#async_abor_enable=YES  如果 FTP client 會下達“async ABOR”這個指令時,這個設(shè)定才需要啟用,而一般此設(shè)定并不安全,所以通常將其取消)

#ascii_upload_enable=YES  大多數(shù) FTP 服務器都選擇用 ASCII 方式傳輸數(shù)據(jù) , 將 # 去掉就能實現(xiàn)用 ASCII 方式上傳和下載文件 ) 
#ascii_download_enable=YES  將 # 去掉就能實現(xiàn)用 ASCII 方式下載文件 ) 

#ftpd_banner=Welcome to blah FTP service. (將#去掉可設(shè)置登錄FTP服務器時顯示的歡迎信息,可以修改=后的歡迎信息內(nèi)容。另外如在需要設(shè)置更改目錄歡迎信息的目錄下創(chuàng)建名為 .message 的文件,并寫入歡迎信息保存后,在進入到此目錄會顯示自定義歡迎信息 )

#deny_email_enable=YES  可將某些特殊的 email address 抵擋住。如果以anonymous登錄服務器時,會要求輸入密碼,也就是您的email address,如果很討厭某些email address,就可以使用此設(shè)定來取消他的登錄權(quán)限,但必須與下面的設(shè)置項配合 ) 

#banned_email_file=/etc/vsftpd/banned_emails (當上面的 deny_email_enable=YES 時,可以利用這個設(shè)定項來規(guī)定那個email address不可登錄vsftpd服務器,此文件需用戶自己創(chuàng)建,一行一個email address即可! )

#chroot_list_enable=YES  設(shè)置為 NO 時,用戶登錄FTP服務器后具有訪問自己目錄以外的其他文件的權(quán)限, 設(shè)置為 YES 時 , 用戶被鎖定在自己的 home 目錄中,vsftpd將在下面 chroot_list_file選項值的位置尋找 chroot_list文件,此文件需用戶建立,再將需鎖定在自己home目錄的用戶列入其中,每行一個用戶)

#chroot_list_file=/etc/vsftpd/chroot_list  此文件需自己建立 , 被列入此文件的用戶 , 在登錄后將不能切換到自己目錄以外的其他目錄 , 由 FTP 服務器自動地 chrooted 到用戶自己的home目錄下,使得 chroot_list文件中的用戶不能隨意轉(zhuǎn)到其他用戶的FTP home目錄下,從而有利于FTP服務器的安全管理和隱私保護)

#ls_recurse_enable=YES (是否允許遞歸查詢,大型站點的 FTP 服務器啟用此項可以方便遠程用戶查詢 )

listen=YES  如果設(shè)置為 YES , 則 vsftpd 將以獨立模式運行,由vsftpd自己監(jiān)聽和處理連接請求)

listen_port=21  (指定監(jiān)聽端口,默認不指定端口為21)

#listen_ipv6=YES ( 設(shè)定是否支持IPV6)

pam_service_name=vsftpd  設(shè)置 PAM 外掛模塊提供的認證服務所使用的配置文件名 ,即/etc/pam.d/vsftpd文件,此文件中file=/etc/vsftpd/ftpusers字段,說明了PAM模塊能抵擋的帳號內(nèi)容來自文件/etc/vsftpd/ftpusers中)

userlist_enable=YES (此選項默認值為NO ,此時ftpusers文件中的用戶禁止登錄FTP服務器;若此項設(shè)為YES,則 user_list文件中的用戶允許登錄   FTP服務器,而如果同時設(shè)置了 userlist_deny=YES ,則user_list文件中的用戶將不允許登錄FTP服務器,甚至連輸入密碼提示信息都沒有,直接被FTP服務器拒絕)

#userlist_deny=YES/NO (此項默認為YES,設(shè)置是否阻扯user_list文件中的用戶登錄FTP服務器) 
tcp_wrappers=YES  表明服務器使用 tcp_wrappers 作為主機訪問控制方式,tcp_wrappers可以實現(xiàn)linux系統(tǒng)中網(wǎng)絡(luò)服務的基于主機地址的訪問控制,在/etc目錄中的hosts.allow和hosts.deny兩個文件用于設(shè)置tcp_wrappers的訪問控制,前者設(shè)置允許訪問記錄,后者設(shè)置拒絕訪問記錄。例如想限制某些主機對FTP服務器192.168.57.2的匿名訪問,編緝/etc/hosts.allow 文件,如在下面增加兩行命令:vsftpd:192.168.57.1ENY 和vsftpd:192.168.57.9ENY 表明限制IP為192.168.57.1/192.168.57.9主機訪問IP為192.168.57.2的FTP服務器,此時FTP服務器雖可以PING通,但無法連接)

chroot_local_user=YES

chroot_list_enable=YES

tcp_wrappers=YES

guest_enable=YES

guest_username=www

pasv_enable=YES

pasv_min_port=20000

pasv_max_port=30000

user_config_dir=/etc/vsftpd/vsftpd_user_conf


==================================================================================

以下為新增

[root@localhost data]# cat /etc/pam.d/vsftpd   

auth       required/lib64/security/pam_userdb.sodb=/etc/vsftpd/vlogin

account    required/lib64/security/pam_userdb.sodb=/etc/vsftpd/vlogin

auth       sufficient/lib64/security/pam_userdb.sodb=/etc/vsftpd/vlogin

account    sufficient/lib64/security/pam_userdb.sodb=/etc/vsftpd/vlogin


[root@localhost data]# cat /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_mkdir_write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

xferlog_file=/var/log/xferlog

chown_uploads=YES

chroot_local_user=YES

chroot_list_enable=YES

pam_service_name=vsftpd

userlist_enable=YES

#userlist_deny=NO

#userlist_file=/etc/vsftpd/user_list

tcp_wrappers=YES

guest_enable=YES

guest_username=www

listen=YES

listen_port=21

pasv_enable=YES

pasv_min_port=20000

pasv_max_port=30000

user_config_dir=/etc/vsftpd/vsftpd_user_conf


 ==============================================================

目錄/etc/vsftpd/vsftpd_user_conf中用戶權(quán)限配置:

[root@localhost ~]$ cat /etc/vsftpd/vsftpd_user_conf/ftpusername

local_root=/data/projects/www_data

write_enable=YES

virtual_use_local_privs=YES



參考網(wǎng)站:

http://www.cnblogs.com/helonghl/articles/5533857.html 

http://www.cnblogs.com/allenjin/archive/2011/12/03/2274542.html 


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI