国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

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

系統 Linux 系統運維
虛擬用戶個人理解是一種介于實體用戶和匿名用戶之間的用戶。原因是:虛擬用戶雖然在系統的實體用戶文件中不存在,但是會在系統的其他地方進行記錄(本文是Berkeley DB),以供vsftp用來對ftp訪問者進行必要的鑒權,而鑒權完畢之后,該用戶操作文件之時,將是使用vsftp的運行用戶ftp進行的。

[[150070]]

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

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

預備式

Berkeley DB 數據庫:用來存儲虛擬用戶的登錄信息。

pam_userdb.so:用來驗證虛擬用戶。

db4_utils:用來轉換虛擬用戶到DB數據的工具。 

安裝需要的包

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

  1. which vsftpd 
  2.   
  3. # 如果安裝好了的話,應該是有類似下面的輸出: 
  4. # /usr/sbin/vsftpd 
  5. # 如果沒安裝,則類似下面的輸出 
  6. # /usr/bin/which: no xd in (/home/limituser... 

沒有安裝的話,請安裝:

  1. yum install vsftpd  
  2. # 或者: yum -y install vsftpd 

當然,清空下yum的緩存亦可:

  1. pushd /etc/yum.repos.d/ 
  2. rm -rf * 
  3. wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo 
  4. yum clean all  
  5.  
  6. yum -y install vsftpd ## 這句還是重點. 

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

  1. yum install db4-utils db4 vsftpd 
  2.   
  3. ## Mitchell Chu提醒:有的就不用再安裝了,請自行增減 

創建虛擬用戶

虛擬用戶我們使用Berkeley DB數據庫來存儲。***步是創建純文本來添加用戶和密碼,用戶名和密碼各占一行。比如我們要創建:useasp的用戶名,密碼是blog.useasp.net,并且創建一個admin密碼是adminpasswd的用戶,那么,純文本將類似如下:

  1. pushd /etc/vsftpd 
  2. cat >vusers.txt 
  3. useasp 
  4. blog.useasp.net 
  5. admin 
  6. adminpasswd 

創建好vusers.txt后,我們需要的第二步是將純文本轉換為db文件,這時候需要使用到db_load了:

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

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

  1. chmod 600 vsftpd-virtual-users.db 

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

  1. rm vusers.txt 

此時,我們已經將需要登錄FTP的用戶已經準備好了,接下來就需要去配置vsftpd,讓vsftpd能夠正確的識別并支持已經設置好虛擬用戶了。 

VSFTPD虛擬用戶的配置

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

  1. # 禁止匿名登錄 
  2. anonymous_enable=NO 
  3. anon_upload_enable=YES 
  4. anon_other_write_enable=YES 
  5. # 啟用本地用戶 
  6. local_enable=YES 
  7. # 虛擬用戶使用本地用戶權限 
  8. virtual_use_local_privs=YES 
  9. # 可寫 
  10. write_enable=YES 
  11. # PAM配置 
  12. pam_service_name=vsftpd 
  13. # 啟用虛擬用戶 
  14. guest_enable=YES 
  15. # 用戶后綴: 配合下面local_root使用,將會用登錄的用戶名替換掉$USER 
  16. user_sub_token=$USER 
  17. # 根目錄 
  18. local_root=/var/ftp/$USER 
  19. # 啟用chroot,登錄后會被定位到指定根目錄 
  20. chroot_local_user=YES 
  21. # 將所有的用戶和組顯示為ftp 
  22. hide_ids=YES 

vsftpd的配置文件是在/etc/vsftpd/vsftpd.conf,原有配置項可以保留默認值,如果需要日志,vsftpd有兩個日志可供使用,一個是標準xferlog格式的,一個是vsftpd格式的,可讀性后者更好,當然,你也可以兩個日志都啟用,要啟用可以設置:xferlog_enable, xferlog_std_format, xferlog_file, vsftpd_log_file等參數以獲得需要的日志效果。 

#p#

虛擬用戶的PAM配置

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

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

要啟用session可以將上面的#注釋掉,如果是在32位系統下,網上有一個配置方法是下面這種:

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

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

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

創建FTP目錄

前面vsftpd已經配置了ftp的目錄,我們需要先行創建FTP根目錄,和用戶需要的目錄,因為一旦這些用戶登錄,將會被vsftpd重新定位到指定的home目錄下的,vsftpd中我們配置的是/var/ftp,因此我們需要確認此目錄是否存在,不存在我們就需要創建,而后,在此目錄下創建虛擬用戶的根目錄,目錄名稱就是用戶名稱。

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

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

重啟FTP服務,測試FTP

按上面的流程配置完后,我們就可以重新啟動vsftpd服務,讓新的配置生效——如果你沒有辦法使用此命令,請參看后面的省卻麻煩一節,將vsftpd設置成為開機啟動服務:

  1. service vsftpd restart 

重啟之后,理論上來說,應該就能使用FTP客戶端訪問FTP服務器了,如果需要測試,你也可以直接在本機訪問測試下:

  1. ftp 127.0.0.1 

此時應該能夠得到正常返回,類似如下:

  1. Connected to 127.0.0.1 (127.0.0.1). 
  2. 220-Welcome to Mitchell Personal Web Server(MPWS) 
  3. 220-Please use user name and password to login... 
  4. 220-if you have any question, please contact MitchellChu<******@useasp.net> 
  5. 220 
  6. Name (127.0.0.1:root):useasp 
  7. 331 Please specify the password
  8. Password
  9. 230 Login successful. 
  10. Remote system type is UNIX. 
  11. Using binary mode to transfer files. 
  12. ftp> 

而在系統的日志中應該也能看到登錄信息(以下是多個日志文件,和有的如果沒有配置vsftpd的日志文件將無法看到):

  1. # tail -f /var/log/secure 
  2. Sep  4 23:36:11 CentOS vsftpd[8721]: pam_userdb(vsftpd:auth): user 'useasp' granted access 
  3.   
  4. # tail -f /var/log/vsftpd.log 
  5. Fri Sep  4 23:36:15 2015 [pid 8721] [useasp] FTP response: Client "127.0.0.1""150 Here comes the directory listing." 

 到此,我們就已經配置了一個可以正常訪問的FTP服務器了。 

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

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

  1. iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT 
  2. iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT 
  3. iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 65300:65360 -j ACCEPT 
  4. service iptables save 

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

省卻麻煩

為了不用每次重啟之后都爬上機器上開啟FTP,我們可以將vsftpd設置為開機啟動——如果系統已經有了這個服務,忽略:

  1. chkconfig --levels 345 vsftpd on 
  2. service vsftpd start 

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

后記:

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

  1. setenforce 0 
  2. or 
  3. setenforce Permissive 

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

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

  1. setsebool -P ftp_home_dir on 

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

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

  1. ls -alZ 

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

  1. drwxr-xr-x. root root system_u:object_r:public_content_t:s0 . 
  2. drwxr-xr-x. root root system_u:object_r:var_t:s0       .. 
  3. drwxr-xr-x. root root system_u:object_r:var_t:s0 useasp 
  4. drwxr-xr-x. root root system_u:object_r:var_t:s0 admin 

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

  1. yum -y install policycoreutils-python 

 因為我使用了自行編譯的Python版本,導致semanage不能正常運行,報錯:

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

修正后,直接使用semanage來設置:

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

4.不能上傳文件,不能創建文件夾,還是SELinux的問題啊,設置:

  1. setsebool -P allow_ftpd_anon_write on 

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

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

這個和上面的設置差不多,只是權限更大,請謹慎操作!

責任編輯:火鳳凰 來源: Mitchell Chu博客
相關推薦

2012-06-19 15:51:22

集群系列2

2012-03-18 22:33:15

centosxen

2011-03-02 10:09:53

CentosPureftp

2011-03-02 09:47:51

PureftpCentos

2010-02-26 14:03:11

Fedora vsft

2011-04-01 12:22:35

2011-03-11 12:57:30

CentosLAMP

2010-01-13 11:17:50

2009-06-11 13:43:21

jBPM用戶指南jBPM 4.0

2010-02-22 16:49:35

CentOS vsft

2010-03-29 14:48:58

CentOS系統

2010-02-22 18:27:14

CentOS vsft

2010-01-13 15:50:23

CentOS安裝

2010-01-14 13:47:30

CentOS extm

2011-02-23 09:55:33

Centos安裝vsftpd

2010-01-13 13:38:16

CentOS vsft

2010-01-14 14:51:07

CentOS安裝配置

2012-10-11 14:59:31

CentosFastDFS

2012-06-13 09:56:53

2010-02-22 18:35:01

點贊
收藏

51CTO技術棧公眾號

欧美日韩亚洲系列| 亚洲精品自产拍| 日本午夜精品一区二区三区| 日韩电影在线视频| 丝袜亚洲另类欧美重口| 免费**毛片在线| 国产精品99久久久久久久女警| 欧美lavv| 99欧美视频| 欧美性猛交xxxx免费看| 亚洲国产专区校园欧美| 国产精品网站入口| 欧美二区观看| 日韩在线中文字幕| 国产成人福利夜色影视| 日韩精品在线视频美女| 亚洲人成伊人成综合网小说| 黄色www网站| 成人永久免费视频| 日韩av新片网| 91免费精品国自产拍在线不卡| 毛片av在线播放| 成人午夜激情在线| 青草青青在线视频| 久久新电视剧免费观看| 91极品尤物在线播放国产| 国产精品天干天干在观线| 日本成人a视频| 一区二区三区**美女毛片| 日韩a级作爱片一二三区免费观看| 黑人精品xxx一区| 在线观看美女网站大全免费| 欧美一区二区黄色| 欧美日韩经典丝袜| 国产午夜精品视频免费不卡69堂| 亚洲成人毛片| 91干在线观看| 国产精品草草| xxx.xxx欧美| 美女黄网久久| 欧美一区二区三区成人| 主播国产精品| 国产香蕉一区二区三区在线视频| www欧美在线观看| 久久人人爽人人| 欧美h版在线| 日本成人三级电影网站| 不卡电影一区二区三区| 免费高清特黄a大片| 欧美日韩一区 二区 三区 久久精品| 波多野结衣久草一区| 91老师国产黑色丝袜在线| 亚洲一区在线不卡| 国产精品视频第一区| 午夜丝袜av电影| 欧美日韩一区高清| 丝袜美腿一区| 久久精品二区亚洲w码| 亚洲成色最大综合在线| 91视频在线看| 毛片在线播放网址| 亚洲人成在线播放| 郴州新闻综合频道在线直播| 色噜噜一区二区| 欧美gv在线观看| 欧美乱妇40p| 黄色av一区| 日本黄色三级大片| 欧美在线观看一区| 蜜桃在线一区| 麻豆成人av| 亚洲桃色在线一区| 免费在线国产视频| 日本最新高清不卡中文字幕| 日韩电影免费在线| 日本视频二区| 中文字幕亚洲一区在线观看| 制服诱惑一区| 91麻豆高清视频| 国模冰冰炮一区二区| 精品卡一卡二卡三卡四在线| 国产精品一区二区三区免费| 亚洲国产精品一区二区久久恐怖片 | 免费在线视频你懂得| 日韩欧美国产午夜精品| 国产精品115| 亚洲午夜在线观看| 婷婷激情综合网| 亚洲欧洲二区| 亚洲看片网站| 一本到不卡免费一区二区| 高清一区二区三区av| 欧美妇女性影城| 欧洲精品一区| 色综合视频一区中文字幕| 精品91视频| 国产精品黄页网站在线播放免费| 日韩精品在线观看视频| 亚洲精品a级片| 91中文字幕网| 久久影院模特热| 国产馆精品极品| 羞羞的视频在线看| 国产专区一区二区| 福利微拍一区二区| 少妇一区二区视频| 亚洲欧美视频二区| 色伦专区97中文字幕| 麻豆成人91精品二区三区| 国产精品麻豆一区二区三区| 国产精品私拍pans大尺度在线| 国产精品欧美综合在线| 国产电影一区| 国产a级片网站| 国产偷亚洲偷欧美偷精品| 久久亚洲影院| 成人日日夜夜| 久久精品中文字幕一区二区三区| 亚洲成人免费看| 清纯唯美综合亚洲| 深夜爽爽视频| 成人精品鲁一区一区二区| 国产高清视频在线播放| 91福利视频导航| 色婷婷久久综合| 亚洲欧美亚洲| 青青色在线视频| 91久久精品一区二区别| 色www精品视频在线观看| 99久久影视| 黄色的视频在线免费观看| 亚洲影院高清在线| 91黄色免费版| 国产手机视频一区二区| 菠萝蜜视频国产在线播放| 久久久久久欧美精品色一二三四 | 精品国产免费人成电影在线观看四季 | 日韩美女在线观看| 亚洲精品视频在线观看网站| 国产成人精品福利| 福利在线免费| 国产综合福利在线| 91福利精品第一导航| 亚洲激情不卡| 色婷婷在线播放| 欧美亚洲黄色片| 超碰91人人草人人干| 中文字幕亚洲不卡| 99久久婷婷这里只有精品| 精品成人一区二区三区免费视频| 国产欧美日本在线| 欧美精品一区二区三区四区| 国产精品综合视频| 麻豆精品久久| 一级毛片免费观看| 成人综合色站| 亚洲国产精品电影| 91亚洲精华国产精华精华液| 欧美黄色影院| 大乳在线免费观看| 亚洲资源在线网| 欧美情侣性视频| 亚洲福利电影网| 99re国产精品| 99久久伊人| 成本人h片动漫网站在线观看| 精品免费视频123区| 中文字幕一区二区精品| 一区二区三区蜜桃网| 久久久久综合| 精品国产18久久久久久二百| 一级视频在线免费观看| 五月婷婷一区| 久久久久这里只有精品| 欧美视频一区在线| 99久久精品免费| xxxxx日韩| 日韩中文字幕在线免费| 国产精品中文久久久久久久| 欧美一区二区三区免费在线看 | www.豆豆成人网.com| xxxxx日韩| 日韩精品视频久久| 国产不卡一区二区在线观看| 色哟哟入口国产精品| 午夜精品免费在线观看| 国产一区二区不卡| 成人看的视频| 蜜桃视频动漫在线播放| 韩国97影院| 欧美少妇在线观看| 成人午夜激情免费视频| 亚洲视频专区在线| 色综合欧美在线| 91在线视频免费观看| 欧美午夜电影在线观看| 高清一区二区中文字幕| 黄色网页在线免费观看| 蜜桃特黄a∨片免费观看| 国产奶头好大揉着好爽视频|