• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2009年6月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            收藏夾

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            vsftp配置虛擬用戶


            1、vsftp安裝

            由于系統(tǒng)是debian7,故直接通過(guò)apt-get來(lái)安裝就行了。

            sudo apt-get install vsftpd
            

            2、虛擬用戶配置

            安裝的vsftpd版本是2.3.5-3,這個(gè)版本,配置文件是/etc/vsftpd.conf.

            關(guān)于具體的配置,直接網(wǎng)上搜就一大堆,推薦這個(gè)網(wǎng)址的,挺詳細(xì)的。

            http://www.cnblogs.com/hhuai/archive/2011/02/12/1952647.html

            (1)虛擬用戶配置

            vsftp允許三種用戶登錄:

            1. 本地用戶(系統(tǒng)中的用戶)
            2. 匿名用戶(anonymous免密碼登錄)
            3. 虛擬用戶(基于本地用戶)

            虛擬用戶以本地用戶為宿主(一般是不能登錄系統(tǒng)的本地用戶),僅僅用于登錄vsftp,無(wú)法登陸系統(tǒng);可以建立多個(gè)虛擬用戶,設(shè)置各自的密碼,并且根據(jù)其用途設(shè)置相應(yīng)的配置,能適應(yīng)多種情況。

            (2)虛擬用戶相應(yīng)配置

            guest_enable=YES        # 啟用虛擬用戶
            guest_username=ftp      # 虛擬用戶的宿主用戶名
            virtual_use_local_privs=YES     # 虛擬本地權(quán)限
            user_config_dir=/etc/vsftpconf  # 虛擬用戶設(shè)置文件夾(如果不設(shè)定則按照主配置文件)
            

            3、相關(guān)設(shè)置

            (1)用戶賬號(hào)生成

            新建文件,比如/etc/vsftpd/ftpusers,然后按照“一行用戶名,一行密碼”的規(guī)則寫入文件。

            mkdir /etc/vsftpd           # 創(chuàng)建文件夾
            vi /etc/vsftpd/ftpusers     # 編輯寫入
            cat /etc/vsftpd/ftpusers    # 寫入的用戶/密碼
            user1
            123456
            user2
            654321
            

            保存退出,這樣就建立兩個(gè)用戶,然后就要利用這個(gè)用戶文件生成pam能識(shí)別的db格式。
            debian下可以用db4.8_load命令,如果沒(méi)有可以先檢查安裝

            aptitude search db | grep util    # 查找軟件、版本
            aptitude install db4.8-utils      # 安裝軟件(安裝完成就有 db4.8_load 命令)
            db4.8_load -T -t hash -f /etc/vsftpd/ftpusers /etc/vsftpd/ftpusers.db    # 生成db格式
            

            (2)pam設(shè)置

            vsftpd的pam校驗(yàn)?zāi)K在配置文件中指定,可以使用相對(duì)路徑,由系統(tǒng)自己找。

            pam_service_name=vsftpd     # 指定pam模塊名(可以自定義)
            

            默認(rèn)的模塊是/etc/pam.d/vsftpd

            cat /etc/pam.d/vsftpd
            # Standard behaviour for ftpd(8).
            auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
            # Standard pam includes
            @include common-account
            @include common-session
            @include common-auth
            auth    required        pam_shells.so
            

            虛擬用戶模塊設(shè)置:

            # 在/etc/pam.d目錄下新建vsftpd.vu文件寫入
            auth required /lib/security/pam_userdb.so db=/etc/vsftpconf/virtusers
            account required /lib/security/pam_userdb.so db=/etc/vsftpconf/virtusers
            # 并在/etc/vsftpd.conf中修改pam模塊名
            pam_service_name=vsftpd.vu
            

            注意自己的系統(tǒng)如果是64位,userdb驗(yàn)證模塊的位置有可能在/lib64/security/pam_userdb.so,另外,也可能模塊并未鏈接出來(lái),在/lib/security或者/lib64/security中都沒(méi)有這個(gè)模塊名,那么便要自己去找出來(lái)。

            # 64位系統(tǒng)
            ln -s /lib/x86_64-linux-gnu/security/pam_userdb.so /lib64/security/pam_userdb.so
            # 32位系統(tǒng)
            ln -s /lib/i386-linux-gnu/security/pam_userdb.so /lib/security/pam_userdb.so
            

            (3)pam日志文件

            很多l(xiāng)inux版本的驗(yàn)證信息是存在/var/log/secure,但 debian 7 是存到另外的文件 /var/log/auth.log

            如果登錄時(shí)候提示530,登錄失敗,可以到這個(gè)文件中查看相應(yīng)的錯(cuò)誤提示信息,這個(gè)日志文件就是保存與賬戶驗(yàn)證相關(guān)的日志信息。

            (4)db路徑設(shè)置

            新版的pam驗(yàn)證db模塊,會(huì)要求是要 .db后綴的文件,驗(yàn)證時(shí)候會(huì)自動(dòng)幫你補(bǔ)上這個(gè)后綴,從幫助文件可以看出。

            db=[path]   use the [path] database for performing lookup.
            There is no default; the module will return PAM_IGNORE if no database is provided.
            Newer versions of DB will automatically append ".db" to whatever pathname you supply here,
            so the path should not include it.
            

            一開(kāi)始不清楚,在自定義的pam驗(yàn)證模塊里,把db后綴寫上,登錄時(shí)候一直提示530 login failed,到日志文件文件查看,看出了db路徑有問(wèn)題

            pam_userdb(vsftpd.vu:auth):
            user_lookup: could not open database `/etc/vsftpd/ftpusers.db': No such file or directory
            

            最后將 .db后綴去掉后,就可以正常認(rèn)證登錄了。


            4、宿主用戶配置

            (1)ftp宿主用戶

            一般安裝完vsftp都會(huì)生成一個(gè)不可登錄的用戶,各版本這個(gè)用戶名可能不太相同,這個(gè)版本的vsftp生成的用戶是ftp,可以在/etc/passwd中查看:

            $ cat /etc/passwd | grep ftp
            ftp:x:121:129:ftp daemon,,,:/var/ftp:/bin/false
            

            用戶名ftp,用戶組ftp,主目錄/var/ftp(修改過(guò)),不可登錄/bin/false。

            因?yàn)?code style="color: #000000; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 0.88em; background-color: #f8f8f8; border: 1px solid #cccccc; padding: 0px 3px;">/var/ftp的屬主是ftp用戶,一般不做指定登錄目錄情況下,以ftp為宿主的虛擬用戶默認(rèn)就是登錄到這里,當(dāng)然,也可以在虛擬用戶自定義配置(見(jiàn)下面)中指定相應(yīng)用戶的登錄目錄,但要注意的是:宿主用戶(ftp)必須對(duì)虛擬用戶登錄目錄有相應(yīng)的權(quán)限,否則會(huì)登錄失敗。

            (2)手動(dòng)添加宿主用戶

            如果不想用已有的ftp用戶,或者安裝后沒(méi)有軟件沒(méi)有創(chuàng)建用戶,可以利用adduser命令,手動(dòng)添加一個(gè)不可登錄的宿主用戶。

             adduser -d /opt/vsftp -g ftp -s /sbin/nologin vsftp
            # -d: 指定用戶主目錄
            # -g: 指定用戶組
            # -s: 指定登錄后分配的shell(nologin表示不可登錄)
            # vsftp: 表示要添加的用戶名
            

            如果這樣修改后,登錄ftp提示500錯(cuò)誤:

            500 OOPS: cannot change directory:/home/*******
            500 OOPS: child died
            

            可以試著在輸入以下命令解決

            setsebool -P ftpd_disable_trans 1
            service vsftpd restart
            

            第一行中的-P參數(shù)是為了以后不需要每次開(kāi)機(jī)都輸入這個(gè)命令


            5、虛擬用戶配置

            /etc/vsftpd.conf中指定的虛擬用戶配置目錄,比如下面的,就是/etc/vsftpconf:

            user_config_dir=/etc/vsftpconf
            

            然后就可以在目錄中創(chuàng)建與虛擬用戶同名的文件,就是相應(yīng)用戶的配置文件,配置格式與vsftpd的主配置文件一樣,不過(guò)可以不用那么復(fù)雜,精簡(jiǎn)點(diǎn)就行了,這樣也就達(dá)到了不同用戶不同配置的目的。這里貼一下一個(gè)樣本:

            # cat /etc/vsftpconf/user1
            local_root=/opt/vsftp/user1     # 指定用戶登錄目錄
            anonymous_enable=NO             # 不允許匿名登錄
            write_enable=YES                # 可寫
            local_umask=022                 # 掩碼為022
            anon_upload_enable=NO           # 匿名用戶不可上傳
            anon_mkdir_write_enable=NO      # 匿名用戶不可創(chuàng)建目錄
            idle_session_timeout=300        # 會(huì)話超時(shí)時(shí)間300秒
            data_connection_timeout=90      # 數(shù)據(jù)連接超時(shí)時(shí)間90秒
            max_clients=1                   # 最大連接數(shù)1
            max_per_ip=1                    # 每個(gè)ip最大連接數(shù)1
            local_max_rate=25000            # 最大傳輸數(shù)率25000B/s
            

            6、本地用戶與匿名用戶驗(yàn)證

            上面說(shuō)過(guò)vsftpd的登錄驗(yàn)證是利用pam驗(yàn)證模塊,而默認(rèn)的驗(yàn)證模塊/etc/pam.d/vsftpd僅支持本地用戶登錄,修改后的/etc/pam.d/vsftpd.vu僅支持匿名用戶登錄,也即,本地用戶無(wú)法通過(guò)驗(yàn)證。

            (1)支持本地與虛擬用戶驗(yàn)證
            /etc/vsftpd.conf中指定的驗(yàn)證模塊內(nèi)容修改為:

            # virtual users auth
            auth    sufficient      /lib/security/pam_userdb.so     db=/etc/vsftpd/ftpusers
            account sufficient      /lib/security/pam_userdb.so     db=/etc/vsftpd/ftpusers
            # Standard behaviour for ftpd(8).
            auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
            # Standard pam includes
            @include common-account
            @include common-session
            @include common-auth
            auth    required        pam_shells.so
            

            這里的auth是指對(duì)用戶的用戶名口令進(jìn)行驗(yàn)證。
            這里的accout是指對(duì)用戶的帳戶有哪些權(quán)限哪些限制進(jìn)行驗(yàn)證。
            其后的sufficient表示充分條件,也就是說(shuō),一旦在這里通過(guò)了驗(yàn)證,那么也就不用經(jīng)過(guò)下面剩下的驗(yàn)證步驟了。相反,如果沒(méi)有通過(guò)的話,也不會(huì)被系統(tǒng)立即擋之門外,因?yàn)閟ufficient的失敗不決定整個(gè)驗(yàn)證的失敗,意味著用戶還必須將經(jīng)歷剩下來(lái)的驗(yàn)證審核。


            7、其他常見(jiàn)錯(cuò)誤

            (1)500錯(cuò)誤

            500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
            

            這種一般是因?yàn)橛脩舻母夸浛蓪懀瑫r(shí)又使用了chroot限制,但這在這個(gè)版本的vsftp中默認(rèn)是不被允許的。要修復(fù)這個(gè)錯(cuò)誤,可以用命令chmod a-w /home/ftp 去除用戶根目錄的寫權(quán)限,注意把目錄替換成你自己的。

            同時(shí),在根目錄下創(chuàng)建可以有寫權(quán)限的文件夾,這樣就可以進(jìn)入該文件夾中,上傳東西了。

            或者顯式指定根目錄可以寫,在vsftpd的配置文件中增加下列兩項(xiàng)中的一項(xiàng):
            對(duì)于標(biāo)準(zhǔn)的vsftpd build (vsftpd):

            allow_writeable_chroot=YES
            

            對(duì)于擴(kuò)展的vsftpd build (vsftpd-ext):

            allow_writable_chroot=YES
            

            (2)550錯(cuò)誤

            550 Create directory operation failed.
            

            這種一般是權(quán)限問(wèn)題,不能創(chuàng)建目錄或文件,重新修改下目錄權(quán)限即可,同時(shí)注意是不是文件擁有者是不是ftp用戶/宿主。

            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2016-09-21 11:00 聶文龍 閱讀(434) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久精品中文无码资源站| 亚洲精品高清久久| 久久国产精品久久久| 中文字幕人妻色偷偷久久| 久久久久久av无码免费看大片| 99久久中文字幕| 国产成人久久激情91| 91精品国产9l久久久久| 成人资源影音先锋久久资源网| 久久人人爽人人人人爽AV| 亚洲第一永久AV网站久久精品男人的天堂AV| 久久99国产精一区二区三区| 99久久国产热无码精品免费| 久久国产精品成人影院| 国产精品岛国久久久久| 久久精品嫩草影院| 久久99精品国产麻豆不卡| 精品久久久无码中文字幕天天| 国产亚洲成人久久| 伊人久久大香线蕉综合网站| 久久这里只有精品首页| 亚洲精品高清国产一线久久| 99久久婷婷国产综合亚洲| 国产成人久久久精品二区三区| 久久久久综合中文字幕| 精产国品久久一二三产区区别| 亚洲欧美日韩中文久久| 久久亚洲国产中v天仙www| 久久99国产精品成人欧美| 久久国产AVJUST麻豆| 久久久久人妻精品一区| 国产成人综合久久精品尤物| 中文字幕精品久久久久人妻| 亚洲va久久久噜噜噜久久狠狠| 久久精品国产网红主播| 人妻系列无码专区久久五月天| 狠狠色综合网站久久久久久久高清 | 久久久精品日本一区二区三区| 2021久久精品国产99国产精品| 三级片免费观看久久| 国内精品伊人久久久久av一坑|