亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來(lái)到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁(yè) >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

Debian+vsftpd+MySQL實(shí)現(xiàn)虛擬用戶

添加時(shí)間:2013-5-31 15:53:19  添加: 思海網(wǎng)絡(luò) 

  一,需求

  1,虛擬用戶登錄

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

  2,限制IP的匿名登錄

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

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

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

  代碼:       incoming pub
normal 讀/寫   只讀
admin  讀/寫   讀/寫

  4,通過(guò)FTP管理Web站點(diǎn)

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

  5,擴(kuò)展功能

  待定..

  二,選擇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ì)于我來(lái)說(shuō),選擇 vsftpd(very secure FTP daemon),主要有以下兩點(diǎn)原因:

  1,選擇原則一

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

  2,選擇原則二

  第二點(diǎn)很大程度取決于vsftpd(very secure FTP daemon)的名字,因?yàn)樗呛馨踩腇TP軟件嘛,哈哈,再說(shuō)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ù)庫(kù)服務(wù)器,用于存儲(chǔ)虛擬用戶信息,后者提供一個(gè)命令行的MySQL Client. 由于我之前配置postfix時(shí),已經(jīng)安裝過(guò)了MySQL,所以我不必安裝這個(gè)包了。

  3),libpam-mysql

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

  2,安裝

  以root登錄Debian,輸入以下命令,搞定~

  代碼:#apt-get install vsftpd,libpam-mysql

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

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

  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ù)庫(kù)

  1),創(chuàng)建用于存儲(chǔ)虛擬用戶信息的數(shù)據(jù)庫(kù)ftpvuser

  代碼:#mysqladmin -u root -p create ftpvuser

2),連接數(shù)據(jù)庫(kù)

  代碼:#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ù)庫(kù)的users表的內(nèi)容

  注:YourPassword用于設(shè)定ftpguest訪問(wèn)數(shù)據(jù)庫(kù)的密碼.

  代碼:mysql>grant select on ftpvuser.users to ftpguest@localhost identified by 'YourPassword';
mysql>flush privileges;

  5),建立虛擬用戶

  代碼:mysql>insert into users (username,password) values ('normal','555555');
mysql>insert into users (username,password) values ('admin','666666');
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訪問(wèn)數(shù)據(jù)庫(kù)的密碼.

  代碼:auth required pam_mysql.so user=ftpguest passwd=YourPassword host=localhost db=ftpvuser table=users usercolumn=username passwdcolumn=password crypt=0
account required pam_mysql.so user=ftpguest passwd=YourPassword host=localhost 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)閉匿名用戶訪問(wèn)
#anonymous_enable=YES
#開啟本地用戶訪問(wèn)
local_enable=YES
#開啟虛擬用戶訪問(wèn)
guest_enable=YES
guest_username=ftpguest
#將本地用戶限制在自己的家目錄,這樣可避免FTP用戶訪問(wèn)到其他的系統(tǒng)目錄
chroot_local_user=YES

  3),500 OOPS: cap_set_proc

  趕快登錄FTP試一下吧,不過(guò)為什么無(wú)法登錄呢?服務(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,不過(guò),如果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是這么說(shuō)的:

  "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è)置不同的訪問(wèn)權(quán)限

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

  代碼:#nano /etc/vsftpd.conf
#指定不同用戶配置文件的存放路徑
user_config_dir=/etc/vsftpd/vsftpd_user_conf

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

  編輯/etc/vsftpd/vsftpd_user_conf/normal

  注意:用戶的配置文件名與用戶名一致,不過(guò)匿名用戶的配置文件名為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,其他用戶是沒有訪問(wèn)權(quán)限的
#所以,當(dāng)訪問(wèn)網(wǎng)站的時(shí)候,會(huì)出現(xiàn)"沒有權(quán)限訪問(wèn)該文件的錯(cuò)誤",這是由于Apache的用戶
#www-data無(wú)法訪問(wèn)/var/www下的文件造成的,把umask設(shè)置成033甚至000即可解決這個(gè)問(wèn)題.
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)限的地方?后來(lái)想到是不是可以利用Linux文件系統(tǒng)的文件權(quán)限設(shè)置來(lái)達(dá)到此目的,以前在Windows下利用IIS來(lái)架設(shè)站點(diǎn)時(shí),我就是利用NTFS權(quán)限設(shè)置來(lái)達(dá)到控制不同用戶對(duì)目錄的訪問(wèn)權(quán)限.不過(guò)試了一下,還是無(wú)法完美的實(shí)現(xiàn)以下的權(quán)限控制:

  代碼:       incoming pub
normal 讀/寫   只讀
admin  讀/寫   讀/寫
舉例來(lái)說(shuō),可以通過(guò)把pub設(shè)置成只讀來(lái)控制normal用戶只讀pub的權(quán)限,不過(guò)admin對(duì)pub也是只讀了不過(guò),還好,因?yàn)閍dmin擁有修改目錄屬性的權(quán)限,如果admin用戶想要通過(guò)FTP來(lái)完成管理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)鍵字:vsftp、MySQL、服務(wù)器、MySQL

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站