真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CentOS怎么安裝配置vsftp虛擬用戶登錄

本篇內(nèi)容主要講解“CentOS怎么安裝配置vsftp虛擬用戶登錄”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“CentOS怎么安裝配置vsftp虛擬用戶登錄”吧!

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站與策劃設(shè)計(jì),南溪網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:南溪等地區(qū)。南溪做網(wǎng)站價(jià)格咨詢:13518219792

在使用Linux時(shí),難免要進(jìn)行各種文件的遠(yuǎn)程傳輸,比如:網(wǎng)站的代碼,共享資源等,而這其中用的最多的傳輸方法大概就是FTP了。Linux下可用FTP服務(wù)端是非常多的,vsftp, proftp, uw-ftp等,其中vsftp流行度比較廣,沖著這個(gè),本人在自己的CentOS上也就選擇了vsftp,而且,vsftp支持PAM(pluggable authentication modules)下虛擬用戶設(shè)置,這正是Mitchell Chu比較喜歡的一種方式,接下來就請(qǐng)vsftp君上場(chǎng)。

Vsftp使用的用戶中,支持三種用戶模式,分別是:實(shí)體用戶,匿名用戶和虛擬用戶(guest, 亦稱訪客身份)。實(shí)體用戶(Real  User)是指用戶本身存在于系統(tǒng)中的用戶,他們存在于/etc/passwd和/etc/shadow文件中。匿名用戶(Anonymous)是指客戶 端無(wú)需提供任何用戶身份,ftp為訪問者提供一個(gè)名為anonymous的特殊用戶以供其使用。虛擬用戶(Virtual  User)個(gè)人理解是一種介于實(shí)體用戶和匿名用戶之間的用戶。原因是:虛擬用戶雖然在系統(tǒng)的實(shí)體用戶文件中不存在,但是會(huì)在系統(tǒng)的其他地方進(jìn)行記錄(本文是Berkeley  DB),以供vsftp用來對(duì)ftp訪問者進(jìn)行必要的鑒權(quán),而鑒權(quán)完畢之后,該用戶操作文件之時(shí),將是使用vsftp的運(yùn)行用戶ftp進(jìn)行的。由于實(shí)體用戶需要的是系統(tǒng)真實(shí)帳戶,開放這種權(quán)限無(wú)疑會(huì)增加系統(tǒng)的風(fēng)險(xiǎn),而虛擬用戶使用的是和實(shí)體用戶不同的用戶驗(yàn)證體系,并且,在系統(tǒng)中并不實(shí)際存在虛擬用戶到實(shí)體用戶的映射關(guān)系,因此降低了FTP給系統(tǒng)帶來的風(fēng)險(xiǎn)性,在實(shí)際生產(chǎn)環(huán)境中,虛擬用戶可以更加靈活的進(jìn)行獨(dú)立管理,比如:虛擬主機(jī)需要給用戶提供FTP帳 戶。有這么些好處之后,讓我們看看是如何配置吧!

預(yù)備式

Berkeley DB 數(shù)據(jù)庫(kù):用來存儲(chǔ)虛擬用戶的登錄信息。

pam_userdb.so:用來驗(yàn)證虛擬用戶。

db4_utils:用來轉(zhuǎn)換虛擬用戶到DB數(shù)據(jù)的工具。

安裝需要的包

CentOS中好像是默認(rèn)自帶vsftp的,因此,無(wú)需安裝,如果你不確認(rèn),可以用which看下:

which vsftpd   # 如果安裝好了的話,應(yīng)該是有類似下面的輸出: # /usr/sbin/vsftpd # 如果沒安裝,則類似下面的輸出 # /usr/bin/which: no xd in (/home/limituser...

沒有安裝的話,請(qǐng)安裝:

yum install vsftpd  # 或者: yum -y install vsftpd

當(dāng)然,清空下yum的緩存亦可:

pushd /etc/yum.repos.d/ rm -rf * wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo yum clean all   yum -y install vsftpd ## 這句還是重點(diǎn).

為了簡(jiǎn)單,我們可以一次性安裝所有需要的包:

yum install db4-utils db4 vsftpd   ## Mitchell Chu提醒:有的就不用再安裝了,請(qǐng)自行增減

創(chuàng)建虛擬用戶

虛擬用戶我們使用Berkeley DB數(shù)據(jù)庫(kù)來存儲(chǔ)。***步是創(chuàng)建純文本來添加用戶和密碼,用戶名和密碼各占一行。比如我們要?jiǎng)?chuàng)建:useasp的用戶名,密碼是blog.useasp.net,并且創(chuàng)建一個(gè)admin密碼是adminpasswd的用戶,那么,純文本將類似如下:

pushd /etc/vsftpd cat >vusers.txt useasp blog.useasp.net admin adminpasswd

創(chuàng)建好vusers.txt后,我們需要的第二步是將純文本轉(zhuǎn)換為db文件,這時(shí)候需要使用到db_load了:

db_load -T -t hash -f vusers.txt vsftpd-virtual-users.db

為了安全起見,記得設(shè)置僅root可讀寫(當(dāng)前是root):

chmod 600 vsftpd-virtual-users.db

再清理掉原來的純文本文件:

rm vusers.txt

此時(shí),我們已經(jīng)將需要登錄FTP的用戶已經(jīng)準(zhǔn)備好了,接下來就需要去配置vsftpd,讓vsftpd能夠正確的識(shí)別并支持已經(jīng)設(shè)置好虛擬用戶了。

VSFTPD虛擬用戶的配置

找到vsftpd.conf配置文件,添加或修改下面這些配置選項(xiàng):

# 禁止匿名登錄 anonymous_enable=NO anon_upload_enable=YES anon_other_write_enable=YES # 啟用本地用戶 local_enable=YES # 虛擬用戶使用本地用戶權(quán)限 virtual_use_local_privs=YES # 可寫 write_enable=YES # PAM配置 pam_service_name=vsftpd # 啟用虛擬用戶 guest_enable=YES # 用戶后綴: 配合下面local_root使用,將會(huì)用登錄的用戶名替換掉$USER user_sub_token=$USER # 根目錄 local_root=/var/ftp/$USER # 啟用chroot,登錄后會(huì)被定位到指定根目錄 chroot_local_user=YES # 將所有的用戶和組顯示為ftp hide_ids=YES

vsftpd的配置文件是在/etc/vsftpd/vsftpd.conf,原有配置項(xiàng)可以保留默認(rèn)值,如果需要日志,vsftpd有兩個(gè)日志可供使用,一個(gè)是標(biāo)準(zhǔn)xferlog格式的,一個(gè)是vsftpd格式的,可讀性后者更好,當(dāng)然,你也可以兩個(gè)日志都啟用,要啟用可以設(shè)置:xferlog_enable, xferlog_std_format, xferlog_file, vsftpd_log_file等參數(shù)以獲得需要的日志效果。

虛擬用戶的PAM配置

要針對(duì)虛擬用戶啟用PAM,我們還需要對(duì)PAM盡心配置,在上面的vsftpd配置文件中,我們使用pam_service_name來配置了PAM將使用的配置文件,這個(gè)文件安裝后是默認(rèn)存在的,如果你覺得有必要保留原來的配置,可以先行備份一份,而后配置文件內(nèi)容改為如下:

#%PAM-1.0 auth       required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-users account    required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-users #session    required     pam_loginuid.so

要啟用session可以將上面的#注釋掉,如果是在32位系統(tǒng)下,網(wǎng)上有一個(gè)配置方法是下面這種:

#%PAM-1.0 auth       sufficient     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-users account    sufficient     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-users

由于本人對(duì)Linux下的PAM并不是很了解,并不太了解requiredsufficient的區(qū)別,這里不好做過多的論斷,有了解的可以指點(diǎn)一下,謝謝!

PAM配置里面,是指明賬戶保存的所在位置,我們配置文件里面的路徑即是前面使用db_load創(chuàng)建的Berkeley DB的文件路徑。

創(chuàng)建FTP目錄

前面vsftpd已經(jīng)配置了ftp的目錄,我們需要先行創(chuàng)建FTP根目錄,和用戶需要的目錄,因?yàn)橐坏┻@些用戶登錄,將會(huì)被vsftpd重新定位到指定的home目錄下的,vsftpd中我們配置的是/var/ftp,因此我們需要確認(rèn)此目錄是否存在,不存在我們就需要?jiǎng)?chuàng)建,而后,在此目錄下創(chuàng)建虛擬用戶的根目錄,目錄名稱就是用戶名稱。

mkdir -p /var/ftp/{useasp,admin} chown -R ftp:ftp /var/ftp

為了保證能夠順利讀取到文件,我們將根目錄下的所有文件都變成ftp這個(gè)用戶所有——ftp賬戶系統(tǒng)已經(jīng)默認(rèn)設(shè)置好了,vsftpd就是使用這個(gè)賬戶來操作的。

重啟FTP服務(wù),測(cè)試FTP

按上面的流程配置完后,我們就可以重新啟動(dòng)vsftpd服務(wù),讓新的配置生效——如果你沒有辦法使用此命令,請(qǐng)參看后面的省卻麻煩一節(jié),將vsftpd設(shè)置成為開機(jī)啟動(dòng)服務(wù):

service vsftpd restart

重啟之后,理論上來說,應(yīng)該就能使用FTP客戶端訪問FTP

到此,我們就已經(jīng)配置了一個(gè)可以正常訪問的FTP服務(wù)器了。

開啟防火墻,開放給別人用吧

上面測(cè)試正常后,如果你開啟了iptables,那么,記得添加規(guī)則,讓你的21,20端口,以后被動(dòng)模式時(shí)使用的端口范圍開放出來吧:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 65300:65360 -j ACCEPT service iptables save

上面的是我的iptables的配置,開放了21和20端口,20端口是ftp-data用的,用來傳輸數(shù)據(jù)。

省卻麻煩

為了不用每次重啟之后都爬上機(jī)器上開啟FTP,我們可以將vsftpd設(shè)置為開機(jī)啟動(dòng)——如果系統(tǒng)已經(jīng)有了這個(gè)服務(wù),忽略:

chkconfig --levels 345 vsftpd on service vsftpd start

至此,就差不多得到一個(gè)比較***的FTP Server了。

后記:

上面是配置vsftpd使用虛擬用戶的基本流程,但在配置中,我們總是能發(fā)現(xiàn)這樣或者那樣的問題,因此就需要我們不斷的去DEBUG整個(gè)流程,由于Linux中有SELinux的存在,很多問題的根源還是在于SELinux的設(shè)置,如果你需要簡(jiǎn)單快捷,那么使用下面這個(gè)命令即可解決大部分問題——網(wǎng)上很多朋友也正是這樣解決的:

setenforce 0 # or setenforce Permissive

當(dāng)然,如果你和Mitchell Chu一樣,也是個(gè)不愿意如此簡(jiǎn)單了事的人兒,那么,咱們繼續(xù)踏上征程……在按上面的方法配置好整個(gè)FTP服務(wù)器之后,本人也或多或少碰到如下的這些問題,現(xiàn)在匯集起來,方便后來者(若有時(shí)間,會(huì)展開來講,暫且記錄下):

1.不能定位到各自用戶的目錄,這個(gè)問題的存在,我們可以嘗試設(shè)置SELinux中的ftp_home_dir來解決:

setsebool -P ftp_home_dir on

2.不能列出FTP目錄內(nèi)容,這個(gè)問題也是SELinux引起的,可能的原因是vsftpd對(duì)于目錄并沒有權(quán)限,檢查下自己的權(quán)限是否正確,vsftpd使用的是ftp用戶訪問,看看自己是否設(shè)置錯(cuò)權(quán)限了?

3.還是不能列出目錄文件,再看看目標(biāo)文件夾的類型對(duì)不對(duì),一般需要的是public_content_r_t,如果你不確認(rèn),可以使用下面的命令查看:

ls -alZ

你將看到類似如下的輸出:

drwxr-xr-x. root root system_u:object_r:public_content_t:s0 . drwxr-xr-x. root root system_u:object_r:var_t:s0       .. drwxr-xr-x. root root system_u:object_r:var_t:s0 useasp drwxr-xr-x. root root system_u:object_r:var_t:s0 admin

可以看到,默認(rèn)的是var_t,我們需要設(shè)置一下,這里需要用到工具semanage,如果沒有,需要安裝policycoreutils-python

yum -y install policycoreutils-python

因?yàn)槲沂褂昧俗孕芯幾g的Python版本,導(dǎo)致semanage不能正常運(yùn)行,報(bào)錯(cuò):

Traceback (most recent call last):   File "/usr/sbin/semanage", line 23, in      import policycoreutils.default_encoding_utf8 ImportError: No module named policycoreutils.default_encoding_utf8

修正后,直接使用semanage來設(shè)置:

restorecon -R -v /var/ftp/{useasp,admin}

4.不能上傳文件,不能創(chuàng)建文件夾,還是SELinux的問題啊,設(shè)置:

setsebool -P allow_ftpd_anon_write on

5.還不能上傳文件?試試:

semanage fcontext -a -t public_content_rw_t "/var/ftp(/.*)?" restorecon -R -v /var/ftp/{useasp,admin}

這個(gè)和上面的設(shè)置差不多,只是權(quán)限更大,請(qǐng)謹(jǐn)慎操作!

到此,相信大家對(duì)“CentOS怎么安裝配置vsftp虛擬用戶登錄”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


新聞名稱:CentOS怎么安裝配置vsftp虛擬用戶登錄
當(dāng)前網(wǎng)址:
http://weahome.cn/article/ieohpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部