• <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>

            旅途

            如果想飛得高,就該把地平線忘掉

            VSFTPD官方資料翻譯版(不完整版)---

            翻譯了部分VSFTPD的官方資料。
            有些知道是什么意思,但難于翻譯。有些涉及專業(yè)的知識(shí),我自己也不懂,只好按字面翻譯。有些我自己看不懂,只好盡量翻譯。
            如果看了其中一部分覺(jué)得糊涂,請(qǐng)參閱官方文擋。
            安裝篇
            ===============
            這個(gè)文件詳細(xì)介紹了如何從VSFTPD的.tar.gz分發(fā)包開(kāi)始,建立和安裝并運(yùn)行VSFTPD。

            1)建立VSFTPD
            先進(jìn)入解壓.tar.gz文件后產(chǎn)生的目錄內(nèi)。如下:
            cd vsftpd-2.0.1

            編輯"builddefs.h"以操作compile-time設(shè)定。(tcp_wrappers build,等)
            輸入make,回車(如果它不工作請(qǐng)發(fā)郵件通知我 .
            這將產(chǎn)生一個(gè)二進(jìn)制文件,你可以驗(yàn)證一下。如下:
            [chris@localhost vsftpd]$ ls -l vsftpd
            -rwxrwxr-x 1 chris chris 61748 Sep 27 00:26 vsftpd

            2)滿足VSFTPD安裝所需的一些條件
            VSFTPD默認(rèn)設(shè)置需要一個(gè)"nobody"用戶,如果這個(gè)用戶不存在,那么添加它。如下:
            [root@localhost root]# useradd nobody
            useradd: user nobody exists

            VSFTPD默認(rèn)設(shè)置需要一個(gè)空目錄:/usr/share/empty.增加這個(gè)目錄,如果它還不存在的話。如下:
            [root@localhost root]# mkdir /usr/share/empty/
            mkdir: cannot create directory `/usr/share/empty': File exists

            如果容許匿名用戶(anonymous),那么你將需要一個(gè)"ftp"用戶和其home目錄(這個(gè)home目錄不屬于“ftp”用戶,而且“ftp"用戶也對(duì)其沒(méi)有寫權(quán)限)在你的系統(tǒng)中存在。
            以下命令用來(lái)創(chuàng)建一個(gè)"ftp"用戶,如果它還不存在的話。
            [root@localhost root]# mkdir /var/ftp/
            [root@localhost root]# useradd -d /var/ftp ftp

            (即使你的"ftp"用戶已經(jīng)存在,完成以下這兩步也是很有好處的:)
            [root@localhost root]# chown root.root /var/ftp
            [root@localhost root]# chmod og-w /var/ftp

            3)安裝VSFTPD的配置、執(zhí)行和幫助文件。
            輸入"make install"后會(huì)將二進(jìn)制文件和幫助文件拷貝到適當(dāng)?shù)哪夸洝?br>你也可以手工拷貝這些文件:
            cp vsftpd /usr/local/sbin/vsftpd
            cp vsftpd.conf.5 /usr/local/man/man5
            cp vsftpd.8 /usr/local/man/man8

            "make install"不會(huì)拷貝默認(rèn)的配置文件,所以建議你手工拷貝:
            cp vsftpd.conf /etc
            daidong注:根據(jù)你系統(tǒng)版本的不同,也可能是 cp vsftpd.conf /etc/vsftpd

            4)測(cè)試 (無(wú)inetd影響)
            VSFTPD能運(yùn)行在獨(dú)立模式(standalone)或者通過(guò)inetd(xinetd)來(lái)啟動(dòng)。
            你能通過(guò)inetd來(lái)運(yùn)行vsftpd以更好地控制它。但我們?cè)谑状芜\(yùn)行時(shí)不這么做,以便檢查系統(tǒng)是否現(xiàn)在配置正常。
            編輯/etc/vsftpd.conf(daidong注:也可能是/etc/vsftpd/vsftpd.conf),并在最下面加入以下這一行:
            listen=YES

            這將告訴VSFTPD不要從inetd啟動(dòng)。
            OK,現(xiàn)在試著啟動(dòng)FTP。
            以ROOT登錄。
            確定你沒(méi)有運(yùn)行其他FTP服務(wù)(否則VSFTPD不能占用FTP所需的21端口)。
            運(yùn)行那個(gè)二進(jìn)制文件,如下:
            [root@localhost root]# /usr/local/sbin/vsftpd &
            [1] 2104

            如果一切正常,那么你將連上FTP服務(wù)器,如下:
            [chris@localhost chris]$ ftp localhost
            Connected to localhost (127.0.0.1).
            220 (vsFTPd 1.1.1)
            Name (localhost:chris): ftp
            331 Please specify the password.
            Password:
            230 Login successful. Have fun.
            Remote system type is UNIX.
            Using binary mode to transfer files.
            ftp> ls
            227 Entering Passive Mode (127,0,0,1,229,133)
            150 Here comes the directory listing.
            d--x--x--x 2 0 0 4096 Jan 14 2002 bin
            d--x--x--x 2 0 0 4096 Apr 21 20:52 etc
            drwxr-xr-x 2 0 0 4096 Apr 21 20:52 lib
            drwxr-sr-x 2 0 50 4096 Jul 26 22:58 pub
            226 Directory send OK.
            ftp>

            5)從inetd或者類似方式啟動(dòng)(官方推薦使用standalone方式)
            你也許想通過(guò)inetd或者類似方式啟動(dòng)VSFTPD,因?yàn)檫@能給你更多的感受。例如xinetd就有很多的設(shè)置。
            (注意:VSFTPD的內(nèi)在機(jī)制屏蔽了xinetd的大多數(shù)的有用的設(shè)置)。
            如果使用標(biāo)準(zhǔn)的"inetd",你需要編輯/etc/inetd.conf,在其中加入以下一行:
            ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd

            (確定你刪除或者注釋掉一些已存在的FTP服務(wù)配置行。如果你沒(méi)有安裝tcp_wrappers,或者不想使用它們,那么請(qǐng)去掉/usr/sbin/tcpd part).

            inetd需要指定并重新載入它的配置文件:
            kill -SIGHUP `pidof inetd`

            如果你想使用"xinetd",請(qǐng)參閱我們提供的范例 /EXAMPLE/INTERNET_SITE/README. 而其他范例文件將告訴你如何調(diào)配出更強(qiáng)大的xinetd功能。

            6)為本地登錄配置PAM文件(可選)
            如果你在一臺(tái)激活了PAM的設(shè)備上運(yùn)行VSFTPD,你需要提供一個(gè) /etc/pam.d/ftp 文件。否則非匿名用戶將無(wú)法登錄服務(wù)器。
            (注:如果你的PAM版本比較老,那么這個(gè)文件也許是 /etc/pam.conf).

            做為一個(gè)標(biāo)準(zhǔn)設(shè)置,你可以拷貝一個(gè)已提供的范例文件,如下:
            cp RedHat/vsftpd.pam /etc/pam.d/ftp

            7)自定義你的配置文件
            完成以上的配置后,建議你安裝一個(gè)配置文件。默認(rèn)的配置文件位置是/etc/vsftpd.conf. 在VSFTPD軟件分發(fā)包內(nèi)有一個(gè)范例配置文件。
            你可以拷貝其為/etc/vsftpd.conf以做進(jìn)一步修改。
            cp vsftpd.conf /etc
            (daidong注:也可能是 cp vsftpd.conf /etc/vsftpd ).

            這個(gè)默認(rèn)配置即不容許本地登錄也不容許匿名用戶上傳,也許你希望更改這個(gè)配置。
            其它
            ===================
            測(cè)試平臺(tái) (已通過(guò))
            -流行的,功能完善的平臺(tái)都能測(cè)試通過(guò)。在以下平臺(tái)的較新版本,VSFTPD工作得很好。在其大部分較早的版本下,也運(yùn)行正常。
            - RedHat Linux
            - RedHat Enterprise Linux
            - Solaris / GNU tools (Solaris 8 or newer)
            - SuSE Linux
            - Debian Linux
            - OpenBSD
            - FreeBSD
            - NetBSD
            - HP-UX / GNU tools
            - IRIX / GNU tools
            - Mac OS X (note; older versions have setgroups() problem. 10.3.4 reported OK)
            虛擬用戶1
            =============
            這個(gè)例子示范了如何為虛擬用戶設(shè)置VSFTPD/PAM。
            虛擬用戶是一個(gè)在系統(tǒng)中并不作為一個(gè)登錄實(shí)體而存在的用戶。使用虛擬用戶比使用真實(shí)的用戶更安全,因?yàn)檫@個(gè)賬號(hào)只能用于FTP服務(wù)器。
            虛擬用戶經(jīng)常用來(lái)提供給不大可信任的用戶訪問(wèn)某些資源,而這些資源通常是其他普通用戶不能訪問(wèn)的。

            1)創(chuàng)建虛擬用戶數(shù)據(jù)庫(kù)
            我們將使用pam_userdb來(lái)認(rèn)證虛擬用戶。這需要提供一個(gè)“db"格式(一種通用數(shù)據(jù)庫(kù)格式)的用戶名/密碼文件。
            創(chuàng)建一個(gè)"db"格式的文件,首先要?jiǎng)?chuàng)建一個(gè)標(biāo)準(zhǔn)文本文件,并把用戶名,密碼以豎直排列方式輸入。如logins.txt:
            tom
            foo
            fired
            bar
            這個(gè)例子中,tom用戶的密碼是foo.fired用戶的密碼是bar.
            以ROOT登錄,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)文件,如下:
            db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
            (這要求berkeley db程序已經(jīng)安裝)
            (注:一些系統(tǒng)也許安裝了多個(gè)版本的"db",所以某些情況下你可能使用"db3_load"才是正確的。對(duì)于一些 Debian系統(tǒng)就是這樣。
            關(guān)鍵在于要讓pam_userdb相信它的登錄數(shù)據(jù)庫(kù)是哪一個(gè)db版本所產(chǎn)生(一般都是db3,盡管你的系統(tǒng)里可能安裝的是db4).)
            這將創(chuàng)建/etc/vsftpd_login.db文件。顯然,你希望設(shè)定這個(gè)文件的權(quán)限:
            chmod 600 /etc/vsftpd_login.db

            要了解更多關(guān)于維護(hù)你的登錄數(shù)據(jù)庫(kù)的信息,請(qǐng)?jiān)?berkeley DB"察看相關(guān)文檔:
            http://www.sleepycat.com/docs/utility/index.html

            2)用你的新數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)PAM文件
            請(qǐng)參考范例vsftpd.pam,它包含2行:
            auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
            account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

            這是告訴PAM用新的數(shù)據(jù)庫(kù)去驗(yàn)證用戶。把這個(gè)PAM文件拷貝到PAM目錄,一般是/etc/pam.d
            cp vsftpd.pam /etc/pam.d/ftp

            3)為虛擬用戶設(shè)置home目錄
            useradd -d /home/ftpsite virtual
            ls -ld /home/ftpsite
            (which should give):
            drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite

            我們已經(jīng)創(chuàng)建了一個(gè)名叫"virtual"的用戶,home目錄是"/home/ftpsite".
            我們拷貝一些東西到這個(gè)下載目錄:
            cp /etc/hosts /home/ftpsite
            chown virtual.virtual /home/ftpsite/hosts

            4)創(chuàng)建你的vsftpd.conf配置文件
            請(qǐng)參考這個(gè)目錄下的例子。讓我們一行行地看一看這些配置:
            anonymous_enable=NO
            local_enable=YES

            安全起見(jiàn),屏蔽了匿名用戶,只啟用了非匿名用戶(即虛擬用戶使用的賬號(hào))

            write_enable=NO
            anon_upload_enable=NO
            anon_mkdir_write_enable=NO
            anon_other_write_enable=NO

            為了安全請(qǐng)確認(rèn)這幾個(gè)配置,這將關(guān)閉寫的權(quán)限。

            chroot_local_user=YES

            這將把虛擬用戶鎖定在我們?cè)谝陨显O(shè)置的/home/ftpsite目錄內(nèi)。

            guest_enable=YES
            guest_username=virtual

            guest_enable非常重要-它激活了虛擬用戶!而guest_username說(shuō)明所有的虛擬用戶都對(duì)應(yīng)我們?cè)谏厦嬖O(shè)置的真實(shí)用戶:“virtual".
            這同時(shí)確定了虛擬用戶在文件系統(tǒng)中的位置,也就是說(shuō),虛擬用戶的home目錄即"virtual"用戶的home目錄:/home/ftpsite。

            listen=YES
            listen_port=10021

            這讓VSFTPD以獨(dú)立模式(standalone)運(yùn)行,而不是從inetd方式啟動(dòng)。也就是說(shuō),你運(yùn)行VSFTPD可執(zhí)行文件就啟動(dòng)了FTP服務(wù)。
            同時(shí)也讓VSFTPD啟用非標(biāo)準(zhǔn)端口10021來(lái)監(jiān)聽(tīng)FTP請(qǐng)求(FTP一般使用21端口)。

            pasv_min_port=30000
            pasv_max_port=30999

            這設(shè)定了被動(dòng)模式的FTP請(qǐng)求端口。當(dāng)你配置了一個(gè)防火墻的時(shí)候,這個(gè)配置就很好用。
            拷貝范例配置文件到/etc
            cp vsftpd.conf /etc/
            (daidong注:也可能是/etc/vsftpd)

            5)啟動(dòng)VSFTPD
            到VSFTPD二進(jìn)制文件所在的目錄,輸入:
            ./vsftpd

            如果一切正常,這個(gè)命令將生效。否則,你將會(huì)看到一些錯(cuò)誤信息的反饋。

            6)測(cè)試
            啟動(dòng)另一個(gè)會(huì)話。(或者ctrl-z,再輸入"bg",讓VSFTPD在后臺(tái)運(yùn)行)。
            這是一個(gè)FTP會(huì)話的例子:

            ftp localhost 10021
            Connected to localhost (127.0.0.1).
            220 ready, dude (vsFTPd 1.1.0: beat me, break me)
            Name (localhost:chris): tom
            331 Please specify the password.
            Password:
            230 Login successful. Have fun.
            Remote system type is UNIX.
            Using binary mode to transfer files.
            ftp> pwd
            257 "/"
            ftp> ls
            227 Entering Passive Mode (127,0,0,1,117,135)
            150 Here comes the directory listing.
            226 Transfer done (but failed to open directory).
            ftp> size hosts
            213 147
            ftp>

            注釋:
            密碼是"foo"
            出現(xiàn)”failed to open directory“的話,別擔(dān)心。這是因?yàn)?home/ftpsite目錄不容許被任意瀏覽。
            (我們可以更改anon_world_readable_only=NO以消除告警,但為了安全,還是保留這個(gè)配置)。
            我們能通過(guò)size命令看到我們已經(jīng)訪問(wèn)了被我們拷貝到這里的"hosts"文件。

            vsftpd.conf
            anonymous_enable=NO
            local_enable=YES
            write_enable=NO
            anon_upload_enable=NO
            anon_mkdir_write_enable=NO
            anon_other_write_enable=NO
            chroot_local_user=YES
            guest_enable=YES
            guest_username=virtual
            listen=YES
            listen_port=10021
            pasv_min_port=30000
            pasv_max_port=30999
            虛擬用戶2
            ===============
            這個(gè)例子將演示如何擴(kuò)展“VIRTUAL_USERS”那個(gè)范例,從而實(shí)現(xiàn)更復(fù)雜一點(diǎn)的配置。
            讓我們假定我們需要2種不同的虛擬用戶:一種只能瀏覽并下載資源,另一種能上傳文件并瀏覽站內(nèi)資源。
            要激活這個(gè)設(shè)置,我們將使用VSFTPD的強(qiáng)大的“單個(gè)用戶配置”功能(是V1.1.0后出現(xiàn)的新功能)。
            在前一個(gè)虛擬用戶范例中,我們創(chuàng)建了2個(gè)用戶-tom和fred.
            我們將實(shí)現(xiàn)fred有寫權(quán)限以上傳新文件,同時(shí)tom只能下載文件。

            1)激活單個(gè)用戶配置功能。
            要激活這個(gè)功能,需要增加以下配置行到配置文件:

            user_config_dir=/etc/vsftpd_user_conf

            并且創(chuàng)建目錄:

            mkdir /etc/vsftpd_user_conf

            2)授予tom讀取所有文件和目錄的權(quán)限
            在上一個(gè)例子的最后,我們注意到虛擬用戶只能瀏覽所有的完全可讀屬性的目錄和文件。我們使/home/ftpsite完全可讀,而且被上傳的文件也
            賦予了完全可讀的權(quán)限(daidong注:意思是說(shuō)這樣虛擬用戶就能讀取所有的文件了)。但實(shí)現(xiàn)這個(gè)目的的另一個(gè)方法是授權(quán)tom能下載那些非完全可讀的文件。
            對(duì)于tom,他的配置文件中需要修改一個(gè)設(shè)置:
            anon_world_readable_only:

            設(shè)為"anon_world_readable_only=NO" > /etc/vsftpd_user_conf/tom
            (daidong注:既把默認(rèn)配置修改了anon_world_readable_only后,復(fù)制到/etc/vsftpd_user_conf下,名字為tom)

            驗(yàn)證一下結(jié)果-以tom登錄,“ls”將返回一個(gè)目錄列表。如果以fred登錄將不會(huì)如此。
            注意:重啟VSFTPD以啟用配置文件/etc/vsftpd.conf(高級(jí)用戶也可以發(fā)送SIGHUP給VSFTPD的監(jiān)聽(tīng)進(jìn)程).

            3)授予freg讀取所有文件/目錄并創(chuàng)建新文件/目錄的權(quán)限,但讓他不能對(duì)已存在的文件/目錄進(jìn)行操作.

            echo "anon_world_readable_only=NO" > /etc/vsftpd_user_conf/fred
            echo "write_enable=YES" >> /etc/vsftpd_user_conf/fred
            echo "anon_upload_enable=YES" >> /etc/vsftpd_user_conf/fred

            驗(yàn)證一下-以tom登錄,將不能上傳,而fred就可以.
            試圖刪除一個(gè)文件--噢,你們倆都不行!

            posted on 2010-03-14 16:55 旅途 閱讀(776) 評(píng)論(0)  編輯 收藏 引用 所屬分類: LINUX基礎(chǔ)、管理

            精品国产91久久久久久久| 久久婷婷国产麻豆91天堂| 精品久久久久久无码不卡| 久久人人爽人人爽人人片av高请| 国产精品久久久久AV福利动漫| 精品久久综合1区2区3区激情| 人人妻久久人人澡人人爽人人精品| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久只这里是精品66| 久久精品国产亚洲网站| 久久久久久久亚洲精品| 精品水蜜桃久久久久久久| 午夜天堂av天堂久久久| 久久精品国产男包| 亚洲狠狠婷婷综合久久蜜芽| 国产精品欧美久久久久天天影视 | 久久综合九色综合精品| 久久久久亚洲AV无码观看| 99热成人精品免费久久| avtt天堂网久久精品| 国内高清久久久久久| 亚洲AV无码1区2区久久| 午夜精品久久久久9999高清| 人妻无码久久精品| 久久人人爽人人爽AV片| 精品人妻伦九区久久AAA片69| 91久久九九无码成人网站| 青青久久精品国产免费看| 青青青伊人色综合久久| 久久精品草草草| 久久综合综合久久97色| 青青草国产成人久久91网| 精品久久久久久久| 99久久夜色精品国产网站| 久久婷婷五月综合成人D啪| 久久国产精品一区| 久久综合伊人77777麻豆| 亚洲人成无码www久久久| 久久精品国产2020| 久久人人爽人人爽人人AV东京热| 久久精品国内一区二区三区|