日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Debian+vsftpd+MySQL實(shí)現(xiàn)虛擬用戶zz詳解

Debian+vsftpd+MySQL實(shí)現(xiàn)虛擬用戶zz的實(shí)現(xiàn)方法是本文我們主要要介紹的內(nèi)容,接下來我們就開始一一介紹這一過程。

一、需求

1.虛擬用戶登錄

由于之前配置成功了postfix+MySQL虛擬用戶登錄,體會(huì)到了使用虛擬用戶的好處和靈活性,所以這次也考慮采用虛擬用戶,并且將FTP虛擬用戶的信息也存儲(chǔ)在MySQL中,這樣以后用PHP等寫一些WEB GUI的管理程序,統(tǒng)一管理用戶,還是蠻方便的.

2.限制IP的匿名登錄

開放匿名登錄,但是只允許特定的IP可以匿名登錄

3.不同用戶,不同目錄,不同權(quán)限

聽起來有點(diǎn)像繞口令吧,舉例來說,有2個(gè)用戶,分別是普通用戶 (normal)和管理員(admin),FTP有2個(gè)目錄,分別是incoming和pub,要實(shí)現(xiàn)如下權(quán)限設(shè)置:

代碼:       incoming pub

normal 讀/寫   只讀

admin  讀/寫   讀/寫

4.通過FTP管理Web站點(diǎn)

服務(wù)器上還架設(shè)了Apache,而網(wǎng)站管理員對(duì)Linux又不是很熟悉,而且也不想開放一個(gè)帳號(hào)給網(wǎng)站管理員,以免他登錄到系統(tǒng)上去,把系統(tǒng)搞的亂78糟,所以參考Internet上提供虛擬主機(jī)的流行做法,就是通過FTP來管理網(wǎng)站,所以需要提供一個(gè)可供網(wǎng)站管理員登錄FTP進(jìn)行網(wǎng)站管理的帳號(hào).

二、選擇FTP服務(wù)器軟件

Linux下架設(shè)FTP站點(diǎn),有很多優(yōu)秀的FTP服務(wù)器軟件可供選擇,例如Wu-FTPD,Pure-FTPD,ProFTPD以及vsFTPD等等, 要想選擇一個(gè)適合自己需求的FTP服務(wù)器軟件,也需要費(fèi)點(diǎn)腦筋才行,對(duì)于我來說,選擇 vsftpd(very secure FTP daemon),主要有以下兩點(diǎn)原因:

1.選擇原則一

有人說,哪個(gè)FTPD是你最熟悉的就用哪個(gè),不過由于我之前沒有在Linux下架設(shè)FTP站點(diǎn)的經(jīng)驗(yàn),所以,對(duì)我來說,一切都是新的起點(diǎn).在vsftpd的官方主頁上看到了Debian官方FTP,RH官方FTP等都使用了vsftpd。

2.選擇原則二

第二點(diǎn)很大程度取決于vsftpd(very secure FTP daemon)的名字,因?yàn)樗呛馨踩腇TP軟件嘛,哈哈,再說Debian官方等FTP都使用了vsftpd,選擇它應(yīng)該沒錯(cuò)的。

PS:FTP服務(wù)器軟件的選擇可以參考"鳥哥的Linux私房菜中的簡(jiǎn)易vsftpd服務(wù)器架設(shè)"一文.

三、實(shí)現(xiàn)方法

基于Debian GNU/Linux 3.1 Sarge 和 vsftpd-2.0.3

1.需要的軟件包

1).vsftpd:very secure FTP daemon

2).mysql-server,mysql-client

前者是MySQL數(shù)據(jù)庫服務(wù)器,用于存儲(chǔ)虛擬用戶信息,后者提供一個(gè)命令行的MySQL Client. 由于我之前配置postfix時(shí),已經(jīng)安裝過了MySQL,所以我不必安裝這個(gè)包了^_^

3).libpam-mysql:vsftpd是通過PAM驗(yàn)證用戶信息的,這個(gè)包可以讓PAM去讀取MySQL完成驗(yàn)證.

2.安裝

以root登錄Debian,輸入以下命令:代碼:#apt-get install vsftpd,libpam-mysql。

3.創(chuàng)建一個(gè)必要的本地用戶

雖說是虛擬用戶,不過,由于虛擬用戶的信息存儲(chǔ)在MySQL數(shù)據(jù)庫中,所以還是需要一個(gè)能夠讀取MySQL數(shù)據(jù)庫的本地用戶.

1),創(chuàng)建本地用戶的家目錄,此目錄也是FTP的家目錄:代碼:#mkdir /home/ftp

2),創(chuàng)建名為 ftpguest的本地用戶:代碼:#useradd ftpguest -d /home/ftp

3),修改FTP家目錄的所有者和組:代碼:#chown ftpguest.nogroup /home/ftp

4,配置MySQL數(shù)據(jù)庫

1),創(chuàng)建用于存儲(chǔ)虛擬用戶信息的數(shù)據(jù)庫ftpvuser:代碼:#mysqladmin -u root -p create ftpvuser

2),連接數(shù)據(jù)庫:代碼:#mysql -u root -p

3)創(chuàng)建用于存儲(chǔ)虛擬用戶信息的表users:代碼:mysql>use ftpvuser;

mysql>CREATE TABLE users (username varchar(20) NOT NULL,password varchar(40) NOT NULL,PRIMARY KEY (username)) TYPE=MyISAM;

4)讓本地用戶ftpguest 能讀取ftpvuser數(shù)據(jù)庫的users表的內(nèi)容。注:YourPassword用于設(shè)定ftpguest訪問數(shù)據(jù)庫的密碼.

代碼:

 
 
 
  1. mysql>grant select on ftpvuser.users to ftpguest@localhost identified by 'YourPassword';  
  2. mysql>flush privileges; 

5),建立虛擬用戶

代碼:

 
 
 
  1. mysql>insert into users (username,password) values ('normal','555555');  
  2. mysql>insert into users (username,password) values ('admin','666666');  
  3. mysql>insert into users (username,password) values ('webmaster','777777'); 

6),完成MySQL的配置:代碼:mysql>quit;

5,配置vsftpd 的PAM驗(yàn)證

1),打開PAM配置文件:代碼:#nano /etc/pam.d/vsftpd

2),將以前的內(nèi)容注釋掉,然后添加下面2行內(nèi)容。

注:YourPassword就是剛才在前面設(shè)定的ftpguest訪問數(shù)據(jù)庫的密碼.

代碼:

 
 
 
  1. auth required pam_mysql.so user=ftpguest passwd=YourPassword host=localhost   
  2. db=ftpvuser table=users usercolumn=username passwdcolumn=password crypt=0 
  3. account required pam_mysql.so user=ftpguest passwd=YourPassword host=localhost 
  4. db=ftpvuser table=users usercolumn=username passwdcolumn=password crypt=0 

6,配置vsftpd

1),打開vsftpd的配置文件

代碼:#nano /etc/vsftpd.conf注意:一旦修改了/etc/vsftpd.conf文件的內(nèi)容,必須重啟vsftpd才能使新的設(shè)置生效,方法是:代碼:#/etc/init.d/vsftpd stop

#/etc/init.d/vsftpd start直接#/etc/init.d/vsftpd restart,好像不起作用?

2),修改vsftpd.conf文件如下:

代碼:#關(guān)閉匿名用戶訪問

#anonymous_enable=YES

# 開啟本地用戶訪問

local_enable=YES

#開啟虛擬用戶訪問

guest_enable=YES

guest_username=ftpguest

#將本地用戶限制在自己的家目錄,這樣可避免FTP用戶訪問到其他的系統(tǒng)目錄

chroot_local_user=YES

3),500 OOPS: cap_set_proc

趕快登錄FTP試一下吧,不過為什么無法登錄呢?服務(wù)器返回錯(cuò)誤:500 OOPS: cap_set_proc

Google之,這個(gè)錯(cuò)誤似乎與SELinux有關(guān),解決辦法是加載capability模塊:

代碼:#modprobe capability為了讓Linux在啟動(dòng)時(shí)自動(dòng)加載此模塊,把這個(gè)模塊放到/etc /modules中即可.

4),限制IP的匿名登錄

要想限制登錄vsftpd的客戶端的IP地址,要用到一個(gè)叫 TCP Wrappers的東東,對(duì)于TCP Wrappers,我的理解是,如果在vsftpd中啟用了TCP Wrappers的話,每次客戶端向vsftpd發(fā)起一個(gè)連接請(qǐng)求的時(shí)候,vsftpd首先會(huì)把這個(gè)連接請(qǐng)求交給TCP Wrappers處理,如果客戶端的IP被TCP Wrappers放行的話,才能繼續(xù)與vsftpd繼續(xù)會(huì)話,否則,直接就被拒絕服務(wù)了,不知道對(duì)不對(duì)?

a,修改/etc /vsftpd.conf

代碼:#啟用TCP Wrappers

tcp_wrappers=YES

b,修改/etc/hosts.deny

拒絕所有向vsftpd發(fā)起連接請(qǐng)求的IP,不過,如果hosts.deny與 hosts.allow沖突的話,以hosts.allow優(yōu)先處理,這好像就是,先deny所有,然后在hosts.allow開放特權(quán),呵呵

代碼:#拒絕所有連入vsftpd的IP先.

vsftpd: ALL

c,修改 /etc/hosts.allow

在這里開放允許登錄vsftpd的IP地址關(guān)于VSFTPD_LOAD_CONF環(huán)境變量,vsftpd的man是這么說的:

"If tcp_wrappers sets the VSFTPD_LOAD_CONF environment variable, then the vsftpd session will try and load the vsftpd configuration file specified in this variable. "

代碼:# 限制可以匿名登錄vsftpd的IP地址

vsftpd: 192.168.0.,210.83.200.200 : setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd.anonymous

#允許vsftpd的虛擬用戶以任何IP連接 FTP

vsftpd: ALL : setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd.virtual

d,修改/etc/vsftpd/vsftpd.anonymous

代碼:#mkdir /etc/vsftpd/

#nano /etc/vsftpd/vsftpd.anonymous

#允許匿名登錄

anonymous_enable=YES

e,修改/etc/vsftpd/vsftpd.virtual

代碼:#nano /etc/vsftpd/vsftpd.virtual

#不允許匿名登錄

anonymous_enable=NO

5),為不同的用戶設(shè)置不同的訪問權(quán)限

a,激活單個(gè)用戶配置功能,增加以下配置行到vsftpd的配置文件:

代碼:#nano /etc/vsftpd.conf

#指定不同用戶配置文件的存放路徑

user_config_dir=/etc/vsftpd/vsftpd_user_conf

b,普通用戶:下載/上傳

編輯/etc/vsftpd/vsftpd_user_conf/normal

注意:用戶的配置文件名與用戶名一致,不過匿名用戶的配置文件名為ftp,而不是anonymous

代碼:#mkdir /etc/vsftpd/vsftpd_user_conf

#nano /etc/vsftpd/vsftpd_user_conf/normal加入以下內(nèi)容:

#允許下載

代碼:anon_world_readable_only=NO

#允許寫入,上傳以及建立目錄

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

c,管理員用戶:下載/上傳/刪除等.

代碼:#cp /etc/vsftpd/vsftpd_user_conf/normal /etc/vsftpd/vsftpd_user_conf/admin編輯admin的配置文件:

代碼:#nano /etc/vsftpd/vsftpd_user_conf/admin管理員除了擁有普通用戶的權(quán)限以外,還擁有刪除/重命名/改變文件屬性的權(quán)限

加入以下內(nèi)容:

代碼:#允許重命名和刪除文件

anon_other_write_enable=YES

#虛擬用戶擁有與本地用戶相同的權(quán)限(由于chmod僅僅對(duì)本地用戶有效,所以如果想要虛擬用戶擁有chmod的權(quán)限,這一項(xiàng)必須激活)

virtual_use_local_privs=YES

#允許修改文件屬性

chmod_enable=YES

d,網(wǎng)站管理員

代碼:#cp /etc/vsftpd/vsftpd_user_conf/admin /etc/vsftpd/vsftpd_user_conf/webmaster編輯webmaster的配置文件:

代碼:#nano /etc/vsftpd/vsftpd_user_conf/webmaster

加入以下內(nèi)容:

代碼:#將FTP家目錄指向網(wǎng)站的家目錄(我的www目錄使用Apache默認(rèn)的目錄)

local_root=/var/www

# 默認(rèn)情況下,上傳到FTP站點(diǎn)的文件的擁有者都是ftpguest,其他用戶是沒有訪問權(quán)限的

#所以,當(dāng)訪問網(wǎng)站的時(shí)候,會(huì)出現(xiàn)"沒有權(quán)限訪問該文件的錯(cuò)誤",這是由于Apache的用戶

#www-data無法訪問/var/www下的文件造成的,把umask設(shè)置成033甚至000即可解決這個(gè)問題.

local_umask=033

e,為normal,admin用戶設(shè)置對(duì) incoming,pub目錄不同的權(quán)限

閱讀了一遍vsftpd man中關(guān)于權(quán)限的相關(guān)設(shè)置,似乎沒有單獨(dú)設(shè)置每個(gè)目錄權(quán)限的地方?后來想到是不是可以利用Linux文件系統(tǒng)的文件權(quán)限設(shè)置來達(dá)到此目的,以前在 Windows下利用IIS來架設(shè)站點(diǎn)時(shí),我就是利用NTFS權(quán)限設(shè)置來達(dá)到控制不同用戶對(duì)目錄的訪問權(quán)限.不過試了一下,還是無法完美的實(shí)現(xiàn)以下的權(quán)限控制:

代碼:       incoming pub

normal 讀/寫   只讀

admin  讀/寫   讀/寫舉例來說,可以通過把pub設(shè)置成只讀來控制normal用戶只讀pub的權(quán)限,不過admin對(duì)pub也是只讀了不過,還好,因?yàn)閍dmin擁有修改目錄屬性的權(quán)限,如果admin用戶想要通過FTP來完成管理pub目錄的話,可以臨時(shí)把pub目錄修改成讀/寫屬性.

四、小結(jié)

1.vsftpd的目標(biāo)是完成一個(gè)簡(jiǎn)易而且安全性不低的FTPD,功能嘛,似乎還是有點(diǎn)不足,特別是目錄權(quán)限這方面的設(shè)置如果是對(duì)目錄權(quán)限有比較復(fù)雜的需求的話,可以考慮一下Proftpd .

2.在測(cè)試的時(shí)候,除了使用FTP Client工具以外,最好再使用Sniffer類的軟件作為輔助,因?yàn)橛袝r(shí)候FTP Client并不會(huì)完全把FTPD返回信息呈現(xiàn)在你面前,而有時(shí)候,這些信息對(duì)排除FTPD故障會(huì)有很大幫助的,而一旦使用Sniffer類的軟件,所有的客戶端與服務(wù)器端交互的信息都不會(huì)漏掉的。

關(guān)于Debian+vsftpd+MySQL實(shí)現(xiàn)虛擬用戶zz的實(shí)現(xiàn)方法就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. MySQL數(shù)據(jù)庫my.cnf配置文件注釋詳解
  2. SQL Server數(shù)據(jù)庫復(fù)制失敗的原因及解決方案
  3. SQL Server 2005數(shù)據(jù)庫游標(biāo)調(diào)用函數(shù)實(shí)例解析
  4. MySQL數(shù)據(jù)庫中EXPLAIN的使用及其注意事項(xiàng)詳解
  5. SQL Server數(shù)據(jù)庫用視圖來處理復(fù)雜的數(shù)據(jù)查詢關(guān)系

名稱欄目:Debian+vsftpd+MySQL實(shí)現(xiàn)虛擬用戶zz詳解
網(wǎng)站地址:http://m.5511xx.com/article/cccpjds.html