我們登錄FTP有三種方式,匿名登錄、本地用戶登錄和虛擬用戶登錄。
匿名登錄:在登錄FTP時(shí)使用默認(rèn)的用戶名,一般是ftp或anonymous。
本地用戶登錄:使用系統(tǒng)用戶登錄,在/etc/passwd中。
虛擬用戶登錄:這是FTP專有用戶,有兩種方式實(shí)現(xiàn)虛擬用戶,本地?cái)?shù)據(jù)文件和數(shù)據(jù)庫(kù)服務(wù)器。
FTP虛擬用戶是FTP服務(wù)器的專有用戶,使用虛擬用戶登錄FTP,只能訪問(wèn)FTP服務(wù)器提供的資源,大大增強(qiáng)了系統(tǒng)的安全。
本文的Linux系統(tǒng)是CentOS 5.3
yum -y install vsftpd
一、建立Vsftpd虛擬用戶:
1、添加虛擬用戶口令文件安裝Vsftpd
[root@51ou.com ~]#vi /etc/vsftpd/vftpuser.txt
添加虛擬用戶名和密碼,一行用戶名,一行密碼,以此類推。奇數(shù)行為用戶名,偶數(shù)行為密碼。
ftp1 #用戶名
123456 #密碼
ftp2 #用戶名
123456 #密碼
2、生成虛擬用戶口令認(rèn)證文件
將剛添加的vftpuser.txt虛擬用戶口令文件轉(zhuǎn)換成系統(tǒng)識(shí)別的口令認(rèn)證文件。
首先查看系統(tǒng)有沒(méi)有安裝生成口令認(rèn)證文件所需的軟件db4-utils。
下面使用db_load命令生成虛擬用戶口令認(rèn)證文件。
[root@51ou.com ~]# db_load -T -t hash -f /home/vuser.txt /etc/vsftpd_login.db
-bash: db_load: command not found
###############################
出現(xiàn)沒(méi)有db_load的提示是因?yàn)橛行ヾb4的包沒(méi)有安裝,需要安裝下列包:
db4-*.rpm
db4-tcl-*.rpm
db4-utils-*.rpm
或者直接: yum -y install db4 db4-tcl db4-utils
db_load命令主要是用來(lái)生成db數(shù)據(jù)庫(kù)使用的
格式:
db_load -T -t hash -f passwd.txt /etc/vsftpd/user_passwd.db
生成一個(gè)hash碼型的數(shù)據(jù)庫(kù)文件供ftp虛擬用戶使用。
##########################
[root@51ou.com ~]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
3、編輯vsftpd的PAM認(rèn)證文件
在/etc/pam.d目錄下,
[root@51ou.com ~]#vi /etc/pam.d/vsftpd
將里面其他的都注釋掉,添加下面這兩行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
4、建立本地映射用戶并設(shè)置宿主目錄權(quán)限
所有的FTP虛擬用戶需要使用一個(gè)系統(tǒng)用戶,這個(gè)系統(tǒng)用戶不需要密碼。
[root@51ou.com ~]#useradd -d /home/vftpsite -s /sbin/nologin vftpuser
[root@51ou.com ~]#chmod 755 /home/vftpsite //網(wǎng)上為700,設(shè)置為700后FTP用戶無(wú)上傳權(quán)限
5、配置vsftpd.conf(設(shè)置虛擬用戶配置項(xiàng))
[root@51ou.com ~]#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES #開啟虛擬用戶
guest_username=vftpuser #FTP虛擬用戶對(duì)應(yīng)的系統(tǒng)用戶[useradd -d /home/vftpsite -s
/sbin/nologin vftpuser]
pam_service_name=vsftpd #PAM認(rèn)證文件
6、重啟vsftpd服務(wù)
[root@51ou.com ~]#service vsftpd restart
7、測(cè)試虛擬用戶登錄FTP
C:\Documents and Settings\Administrator>ftp 192.168.2.12
Connected to 192.168.2.12.
220 (vsFTPd 2.0.5)
User (192.168.2.12:(none)): ftp1
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/vftpsiteConnection closed by remote host
.//在配置vsftpd的時(shí)候連接vsftpd出現(xiàn)了500 OOPS: cannot change directory:/home/vftpsite
的錯(cuò)誤,vftpsite為登錄時(shí)使用的本地用戶名。
解決辦法:
[root@51ou.com ~]# setsebool -P ftp_home_dir on
也有網(wǎng)上說(shuō)在終端輸入命令:
setsebool -P ftpd_disable_trans 1
service vsftpd restart
就OK了!
測(cè)試:
C:\Documents and Settings\Administrator>ftp 192.168.2.12
Connected to 192.168.2.12.
220 (vsFTPd 2.0.5)
User (192.168.2.12:(none)): ftp1
331 Please specify the password.
Password:
230 Login successful.
二、虛擬用戶高級(jí)設(shè)置:
1、virtual_use_local_privs參數(shù)
當(dāng)virtual_use_local_privs=YES時(shí),虛擬用戶和本地用戶有相同的權(quán)限;
當(dāng)virtual_use_local_privs=NO時(shí),虛擬用戶和匿名用戶有相同的權(quán)限,默認(rèn)是NO。
當(dāng)virtual_use_local_privs=YES,write_enable=YES時(shí),虛擬用戶具有寫權(quán)限(上傳、下載、刪除
、重命名)。
當(dāng)virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES時(shí),虛擬用戶不能瀏覽目錄,只能上傳文件,無(wú)其他權(quán)限。
當(dāng)virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO時(shí),虛擬用戶只能下載文件,無(wú)其他權(quán)限。
當(dāng)virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES時(shí),虛擬用戶只能上傳和下載文件,無(wú)其他權(quán)限。
當(dāng)virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES時(shí),虛擬用戶只能下載文件和創(chuàng)建文件夾,無(wú)其他權(quán)限。
當(dāng)virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES時(shí),虛擬用戶只能下載、刪除和重命名文件,無(wú)其他權(quán)限。
2. 建立各個(gè)虛擬用戶自身的配置文件
[root@51ou.com ~]#vi /etc/vsftpd/vsftpd.conf
添加:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
[root@51ou.com ~]#mkdir /etc/vsftpd/vsftpd_user_conf
編輯ftp1的配置文件
[root@51ou.com ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp1
添加:
anon_world_readable_only=NO #開放ftp1的下載權(quán)限(只能下載)。注意這個(gè)地方千萬(wàn)不能寫成YES
,否則ftp1將不能列出文件和目錄。
編輯ftp2的配置文件
[root@51ou.com ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp2
添加:
write_enable=YES #開放ftp2的寫權(quán)限
anon_world_readable_only=NO #開放ftp2的下載權(quán)限
anon_upload_enable=YES #開放ftp2的上傳權(quán)限
anon_mkdir_write_enable=YES #開放ftp2創(chuàng)建目錄的權(quán)限
anon_other_write_enable=YES #開放ftp2刪除和重命名的權(quán)限
3、所有虛擬用戶使用一般配置
[root@51ou.com ~]#vi /etc/vsftpd/vsftpd.conf
write_enable=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=vftpuser
virtual_use_local_privs=NO
pam_service_name=vsftpd
anon_world_readable_only=NO #可以下載
anon_upload_enable=NO(默認(rèn)值) #不能上傳
anon_mkdir_write_enable=NO(默認(rèn)值) #不能新建文件夾
anon_other_write_enable=NO(默認(rèn)值) #不能刪除和重命名文件
ftpd_banner=Welcome to yoozhu FTP server
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
tcp_wrappers=NO
setproctitle_enable=YES
listen_port=21
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=0
max_per_ip=3
local_max_rate=512000
4、各個(gè)虛擬用戶使用自身配置
[root@51ou.com ~]#vi /etc/vsftpd/vsftpd.conf
write_enable=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=vftpuser
virtual_use_local_privs=NO
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf #設(shè)定用戶配置文件存放目錄
ftpd_banner=Welcome to yoozhu FTP server
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
tcp_wrappers=NO
setproctitle_enable=YES
listen_port=21
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=0
max_per_ip=3
local_max_rate=512000
[root@51ou.com ~]#mkdir /etc/vsftpd/vsftpd_user_conf
編輯ftp1的配置文件
[root@51ou.com ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp1
anon_world_readable_only=NO
編輯ftp2的配置文件
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd_user_conf/ftp2
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
以上就是CentOS 5.3系統(tǒng)設(shè)置vsftpd虛擬用戶的具體步驟,謝謝閱讀,希望能幫到大家,請(qǐng)繼續(xù)關(guān)注腳本之家,我們會(huì)努力分享更多優(yōu)秀的文章。