小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

兩種方式建立Vsftpd虛擬用戶

 醉人說(shuō)夢(mèng) 2017-08-09

在每次重啟linux 服務(wù)器的時(shí)候 vsftpd 目錄有時(shí)候會(huì)自動(dòng)關(guān)閉掉,每次得去按 setsebool ftp_home_dir 1  開(kāi)啟目錄 ftp 才能正常登陸,今天我發(fā)現(xiàn)有一個(gè)這樣的命令以后再也不用按了

                                                                               echo "setsebool ftp_home_dir 1" >> /etc/rc.local
我們登錄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)的安全。
 
本文實(shí)驗(yàn)的Linux系統(tǒng)是CentOS 5 update2
 
一、本地?cái)?shù)據(jù)文件方式
1. 添加虛擬用戶口令文件
[root@jock]#vi ftpusr.txt
添加虛擬用戶名和密碼,一行用戶名,一行密碼,以此類(lèi)推。奇數(shù)行為用戶名,偶數(shù)行為密碼。
bobyuan #用戶名
123456 #密碼
markwang #用戶名
123456 #密碼
 
2. 生成虛擬用戶口令認(rèn)證文件
將剛添加的vftpuser.txt虛擬用戶口令文件轉(zhuǎn)換成系統(tǒng)識(shí)別的口令認(rèn)證文件。
首先查看系統(tǒng)有沒(méi)有安裝生成口令認(rèn)證文件所需的軟件db4-utils。
[root@jock]#rpm –qa |grep db4-utils

如果沒(méi)有請(qǐng)使用以下命令:

[root@jock]#yum install db4-utils

下面使用db_load命令生成虛擬用戶口令認(rèn)證文件。
[root@jock]#     db_load -T -t hash -f ./ftpusr.txt /etc/vsftpd/ftpusr.db

[root@jock]# chmod 600 /etc/vsftpd/ftpusr.db
3. 編輯vsftpd的PAM認(rèn)證文件
在/etc/pam.d目錄下,
[root@jock]#vi /etc/pam.d/vsftpd_login
將里面其他的都注釋掉,添加下面這兩行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
 
4. 建立本地映射用戶并設(shè)置宿主目錄權(quán)限
所有的FTP虛擬用戶需要使用一個(gè)系統(tǒng)用戶,這個(gè)系統(tǒng)用戶不需要密碼。
[root@jock]#useradd –d /home/vftpsite –s /sbin/nologin ftp_virt
[root@jock]#chmod 700 /home/vftpsite/
 
5. 配置vsftpd.conf(設(shè)置虛擬用戶配置項(xiàng))
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd.conf

在#listen_ipv6=YES 下面添加兩行配置文件

guest_enable=YES   開(kāi)啟虛擬用戶賬號(hào)
guest_username=ftp_virt   FTP虛擬用戶對(duì)應(yīng)的系統(tǒng)用戶


pam_service_name=vsftpd_login   (pam認(rèn)證文件)
 
6. 重啟vsftpd服務(wù)
[root@jock]#service vsftpd restart

接下來(lái)是設(shè)置虛擬用戶的權(quán)限
[root@jock]#cd /home/ftpsite/

在ftpsite 目錄下面創(chuàng)建2個(gè)目錄

[root@jock ftpsite]#mkdir jock01

[root@jock ftpsite]#mkdir jock02
注意:jick01,jock02 是剛才創(chuàng)建的虛擬賬號(hào)
[root@jock ftpsite]#chown ftp_virt jock01
[root@jock ftpsite]#chown ftp_virt jock02
[root@jock ftpsite]#vi /etc/vsftpd/jock01 在里面輸入以下配置文件:local_root=/home/ftpsite/jock01
#:wq保存退出
[root@jock ftpsite]#vi /etc/vsftpd/jock02 在里面輸入以下配置文件:local_root=/home/ftpsite/jock02
#:wq保存退出
[root@jock ftpsite]#service vsftpd restart 重啟vsftpd 進(jìn)程。


7. 用資源管理器登陸測(cè)試虛擬用戶登錄FTP
測(cè)試 OK
 
二、數(shù)據(jù)庫(kù)服務(wù)器(MySQL)方式
1. 安裝MySQL
我使用的是Tar包安裝的MySQL,版本號(hào):mysql-6.0.8-alpha.tar.gz
具體安裝方法,請(qǐng)查看我的另一篇文章“部署LAMP+Discuz!7.0”。
 
2. 建立本地映射用戶并設(shè)置宿主目錄權(quán)限
[root@CentOS5 /]#useradd –d /home/vftpsite –s /sbin/nologin vftpuser
[root@CentOS5 /]#chmod 700 /home/vftpsite
 
3. 配置vsftpd.conf(設(shè)置虛擬用戶配置項(xiàng))
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES #開(kāi)啟虛擬用戶
guest_username=vftpuser #FTP虛擬用戶對(duì)應(yīng)的系統(tǒng)用戶
pam_service_name=vsftpd #PAM認(rèn)證文件
 
4. 在MySQL中建立用戶口令數(shù)據(jù)庫(kù)
[root@CentOS5 /]#mysql –u root –p
mysql> create database vftpuser;   #建立虛擬用戶數(shù)據(jù)庫(kù),庫(kù)名vftpuser
mysql> use vftpuser;  #進(jìn)入vftpuser數(shù)據(jù)庫(kù)
 
mysql> create table users(name char(16) binary,passwd char(16) binary);  #建立虛擬用戶口令表,表名users
 
mysql> insert into users (name,passwd) values ('bobyuan',password('111')); 
mysql>  insert into users (name,passwd) values ('markwang',password('111'));
#建立兩個(gè)虛擬用戶,bobyuan和markwang
注:在這里我用這種方法添加的虛擬用戶密碼都是經(jīng)過(guò)MySQL加密的,加密后的密碼pam-mysql不能識(shí)別(MySQL和pam-mysql兼容性有些問(wèn)題),因此本次實(shí)驗(yàn)使用明文保存密碼。
添加明文密碼:
方法一:?jiǎn)蝹€(gè)添加用戶
mysql> insert into users (name,passwd) values ('bobyuan', '111');
mysql> insert into users (name,passwd) values ('markwang',‘111');
方法二:批量添加用戶
新建vftpuser.txt文件
[root@jock]#vi vftpuser.txt
添加用戶名和密碼,注意字段數(shù)據(jù)之間要用Tab鍵隔開(kāi)。
bobyuan  111
markwang 111

[root@jock]#mysql -u root -p   (這里注意:必須是數(shù)據(jù)庫(kù)管理員賬號(hào))

Enter password:
mysql>use vftpuser;
mysql>load data local infile '/vftpuser.txt'into table users;
mysql>flush privileges;
 
mysql> grant select on vftpuser.users to vftpuser@localhost identified by '111111';  #授權(quán)vftpuser這個(gè)賬號(hào)可以讀取vftpuser數(shù)據(jù)庫(kù)的user表

     grant select on vftp.users to vftp@localhost identified by '111111';
 
5. 驗(yàn)證第4步的設(shè)置是否成功
[root@CentOS5 /]#mysql –u vftpuser –p
mysql>show databases;
mysql>use vftpuser;
mysql>show tables;
mysql>select * from users;
mysql>quit
如下圖:

 
6. 編譯MySQL的PAM認(rèn)證模塊

編輯完成后可查看/lib/security目錄下是否已有對(duì)應(yīng)pam模塊(如下圖)?

# ll /lib/security/ |grep mysql
                                             圖 如下:


如果沒(méi)有則下載pam-mysql安裝  http:///projects/pam-mysql/我下載的是pam_mysql-0.7RC1.tar.gz。
[root@CentOS5 /]#cd /usr/local/src
[root@CentOS5 src]#tar –zxvf pam_mysql-0.7RC1.tar.gz
[root@CentOS5 src]#cd pam_mysql-0.7RC1
[root@CentOS5 pam_mysql-0.7RC1]# ./configure --with-mysql=/usr/local/mysql/ --with-pam-mods-dir=/lib/security/
[root@CentOS5 pam_mysql-0.7RC1]#make
[root@CentOS5 pam_mysql-0.7RC1]#make install
 
7. 編輯vsftpd的PAM認(rèn)證文件
在/etc/pam.d目錄下,
[root@CentOS5 /]#vi /etc/pam.d/vsftpd
將里面其他的都注釋掉,添加下面這兩行:
auth required pam_mysql.so user=vftpuser passwd=111111 host=localhost db=vftpuser table=users usercolumn=name passwdcolumn=passwd crypt=0
account required pam_mysql.so user=vftpuser passwd=111111 host=localhost db=vftpuser table=users usercolumn=name passwdcolumn=passwd crypt=0
crypt=0:表示口令使用明文方式保存在數(shù)據(jù)庫(kù)
crypt=1:表示口令使用UNIX的DES加密方式加密后保存在數(shù)據(jù)庫(kù)中
crypt=2:表示口令使用MySQL的password()函數(shù)加密后保存在數(shù)據(jù)庫(kù)中
crypt=3:表示口令使用MD5散列值的方式保存在數(shù)據(jù)庫(kù)中
 
8. 重啟vsftpd服務(wù)
[root@CentOS5 /]#service vsftpd restart
 
9. 測(cè)試虛擬用戶登錄FTP
C:\User\Administrator>ftp 192.168.120.240
Connected to 192.168.120.240.
220 Welcome to BOB FTP server
User (192.168.120.240:(none)): bobyuan
331 Please specify the password.
Password:
230 Login successful.
ftp> quit
221 Goodbye.
 
三、虛擬用戶高級(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í),虛擬用戶具有寫(xiě)權(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@CentOS5 /]#vi /etc/vsftpd/vsftpd.conf
添加:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
[root@CentOS5 /]#mkdir /etc/vsftpd/vsftpd_user_conf
編輯bobyuan的配置文件
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd_user_conf/bobyuan
添加:
anon_world_readable_only=NO #開(kāi)放bobyuan的下載權(quán)限(只能下載)。注意這個(gè)地方千萬(wàn)不能寫(xiě)成YES,否則bobyuan將不能列出文件和目錄。
編輯markwang的配置文件
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd_user_conf/markwang
添加:
write_enable=YES #開(kāi)放markwang的寫(xiě)權(quán)限
anon_world_readable_only=NO #開(kāi)放markwang的下載權(quán)限
anon_upload_enable=YES #開(kāi)放markwang的上傳權(quán)限
anon_mkdir_write_enable=YES #開(kāi)放markwang創(chuàng)建目錄的權(quán)限
anon_other_write_enable=YES #開(kāi)放markwang刪除和重命名的權(quán)限
 
四、虛擬用戶配置文件(實(shí)驗(yàn))
1. 所有虛擬用戶使用統(tǒng)一配置
[root@CentOS5 /]#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 BOB 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
 
2. 各個(gè)虛擬用戶使用自身配置
[root@CentOS5 /]#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
ftpd_banner=Welcome to BOB 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@CentOS5 /]#mkdir /etc/vsftpd/vsftpd_user_conf
編輯bobyuan(FTP匿名用戶)的配置文件
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd_user_conf/bobyuan
anon_world_readable_only=NO
編輯ftpadmin(FTP匿名管理員)的配置文件
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd_user_conf/ftpadmin
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多