• <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的官方資料。
            有些知道是什么意思,但難于翻譯。有些涉及專業的知識,我自己也不懂,只好按字面翻譯。有些我自己看不懂,只好盡量翻譯。
            如果看了其中一部分覺得糊涂,請參閱官方文擋。
            安裝篇
            ===============
            這個文件詳細介紹了如何從VSFTPD的.tar.gz分發包開始,建立和安裝并運行VSFTPD。

            1)建立VSFTPD
            先進入解壓.tar.gz文件后產生的目錄內。如下:
            cd vsftpd-2.0.1

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

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

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

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

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

            3)安裝VSFTPD的配置、執行和幫助文件。
            輸入"make install"后會將二進制文件和幫助文件拷貝到適當的目錄。
            你也可以手工拷貝這些文件:
            cp vsftpd /usr/local/sbin/vsftpd
            cp vsftpd.conf.5 /usr/local/man/man5
            cp vsftpd.8 /usr/local/man/man8

            "make install"不會拷貝默認的配置文件,所以建議你手工拷貝:
            cp vsftpd.conf /etc
            daidong注:根據你系統版本的不同,也可能是 cp vsftpd.conf /etc/vsftpd

            4)測試 (無inetd影響)
            VSFTPD能運行在獨立模式(standalone)或者通過inetd(xinetd)來啟動。
            你能通過inetd來運行vsftpd以更好地控制它。但我們在首次運行時不這么做,以便檢查系統是否現在配置正常。
            編輯/etc/vsftpd.conf(daidong注:也可能是/etc/vsftpd/vsftpd.conf),并在最下面加入以下這一行:
            listen=YES

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

            如果一切正常,那么你將連上FTP服務器,如下:
            [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或者類似方式啟動(官方推薦使用standalone方式)
            你也許想通過inetd或者類似方式啟動VSFTPD,因為這能給你更多的感受。例如xinetd就有很多的設置。
            (注意:VSFTPD的內在機制屏蔽了xinetd的大多數的有用的設置)。
            如果使用標準的"inetd",你需要編輯/etc/inetd.conf,在其中加入以下一行:
            ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd

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

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

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

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

            做為一個標準設置,你可以拷貝一個已提供的范例文件,如下:
            cp RedHat/vsftpd.pam /etc/pam.d/ftp

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

            這個默認配置即不容許本地登錄也不容許匿名用戶上傳,也許你希望更改這個配置。
            其它
            ===================
            測試平臺 (已通過)
            -流行的,功能完善的平臺都能測試通過。在以下平臺的較新版本,VSFTPD工作得很好。在其大部分較早的版本下,也運行正常。
            - 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
            =============
            這個例子示范了如何為虛擬用戶設置VSFTPD/PAM。
            虛擬用戶是一個在系統中并不作為一個登錄實體而存在的用戶。使用虛擬用戶比使用真實的用戶更安全,因為這個賬號只能用于FTP服務器。
            虛擬用戶經常用來提供給不大可信任的用戶訪問某些資源,而這些資源通常是其他普通用戶不能訪問的。

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

            要了解更多關于維護你的登錄數據庫的信息,請在"berkeley DB"察看相關文檔:
            http://www.sleepycat.com/docs/utility/index.html

            2)用你的新數據庫創建一個PAM文件
            請參考范例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用新的數據庫去驗證用戶。把這個PAM文件拷貝到PAM目錄,一般是/etc/pam.d
            cp vsftpd.pam /etc/pam.d/ftp

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

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

            4)創建你的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

            這將把虛擬用戶鎖定在我們在以上設置的/home/ftpsite目錄內。

            guest_enable=YES
            guest_username=virtual

            guest_enable非常重要-它激活了虛擬用戶!而guest_username說明所有的虛擬用戶都對應我們在上面設置的真實用戶:“virtual".
            這同時確定了虛擬用戶在文件系統中的位置,也就是說,虛擬用戶的home目錄即"virtual"用戶的home目錄:/home/ftpsite。

            listen=YES
            listen_port=10021

            這讓VSFTPD以獨立模式(standalone)運行,而不是從inetd方式啟動。也就是說,你運行VSFTPD可執行文件就啟動了FTP服務。
            同時也讓VSFTPD啟用非標準端口10021來監聽FTP請求(FTP一般使用21端口)。

            pasv_min_port=30000
            pasv_max_port=30999

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

            5)啟動VSFTPD
            到VSFTPD二進制文件所在的目錄,輸入:
            ./vsftpd

            如果一切正常,這個命令將生效。否則,你將會看到一些錯誤信息的反饋。

            6)測試
            啟動另一個會話。(或者ctrl-z,再輸入"bg",讓VSFTPD在后臺運行)。
            這是一個FTP會話的例子:

            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"
            出現”failed to open directory“的話,別擔心。這是因為/home/ftpsite目錄不容許被任意瀏覽。
            (我們可以更改anon_world_readable_only=NO以消除告警,但為了安全,還是保留這個配置)。
            我們能通過size命令看到我們已經訪問了被我們拷貝到這里的"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
            ===============
            這個例子將演示如何擴展“VIRTUAL_USERS”那個范例,從而實現更復雜一點的配置。
            讓我們假定我們需要2種不同的虛擬用戶:一種只能瀏覽并下載資源,另一種能上傳文件并瀏覽站內資源。
            要激活這個設置,我們將使用VSFTPD的強大的“單個用戶配置”功能(是V1.1.0后出現的新功能)。
            在前一個虛擬用戶范例中,我們創建了2個用戶-tom和fred.
            我們將實現fred有寫權限以上傳新文件,同時tom只能下載文件。

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

            user_config_dir=/etc/vsftpd_user_conf

            并且創建目錄:

            mkdir /etc/vsftpd_user_conf

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

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

            驗證一下結果-以tom登錄,“ls”將返回一個目錄列表。如果以fred登錄將不會如此。
            注意:重啟VSFTPD以啟用配置文件/etc/vsftpd.conf(高級用戶也可以發送SIGHUP給VSFTPD的監聽進程).

            3)授予freg讀取所有文件/目錄并創建新文件/目錄的權限,但讓他不能對已存在的文件/目錄進行操作.

            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

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

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

            久久久久久久久久久| 久久狠狠一本精品综合网| 亚洲精品无码久久久久AV麻豆| 久久露脸国产精品| 99久久国产宗和精品1上映 | 亚洲国产欧洲综合997久久| 综合久久一区二区三区| 99久久精品国产麻豆| 无码8090精品久久一区| 久久国产色AV免费观看| 日韩欧美亚洲国产精品字幕久久久| 久久精品亚洲AV久久久无码| 国产激情久久久久影院老熟女| 人妻无码αv中文字幕久久琪琪布| 嫩草伊人久久精品少妇AV| 久久福利片| 久久国产精品77777| 亚洲综合熟女久久久30p| 九九久久精品国产| 青青青青久久精品国产 | 精品久久久久久久| 无码精品久久一区二区三区| 久久国产一区二区| 精品无码久久久久久尤物| 亚洲午夜无码AV毛片久久| 国产精品99久久久久久宅男| 久久国产精品-久久精品| 久久99精品国产麻豆宅宅| 久久这里都是精品| 日韩电影久久久被窝网| 国产亚洲精久久久久久无码| 亚洲AV日韩AV天堂久久| 精品久久久久久久国产潘金莲| 久久艹国产| 久久毛片免费看一区二区三区| 成人亚洲欧美久久久久| 久久99国产精品久久久| 久久国产免费观看精品3| 国产三级久久久精品麻豆三级| 久久热这里只有精品在线观看| 中文精品99久久国产|