乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      用Linux架設(shè)FTP服務(wù)器(中)

       richsky 2012-05-03

      用Linux架設(shè)FTP服務(wù)器(中)

      發(fā)布時間:2007-11-09 13:14:02  來源:  作者:  點(diǎn)擊:314

      先設(shè)置編譯器的編譯參數(shù):

        CC="egcs"
        CFLAGS="-OArray -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-
        pointer -fno-exceptions"
        ./configure
        --prefix=/usr
        --sysconfdir=/etc
        --localstatedir=/var
        --disable-dnsretry
        --enable-quota
        --enable-pam
        --disable-daemon
        --disable-newlines
        --disable-virtual
        --disable-plsm
        --disable-pasvip
        --disable-anonymous
        --enable-ls
        --enable-numericuid

        這些編譯參數(shù)告訴編譯器如何編譯wu-ftpd:

        不要用失敗的DNS查詢

        加入對定額(QUOTA)的支持(如果OS支持)

        加入對PAM的支持

        不允許作為單獨(dú)的daemon運(yùn)行

        刪除過多的空行

        不支持虛擬服務(wù)器

        禁止PID加鎖睡眠消息(用于繁忙的站點(diǎn))

        被動連接的時候不要求用同樣的IP

        不允許匿名ftp訪問

        使用內(nèi)部的“l(fā)s”命令(試驗性的)

        內(nèi)部的“l(fā)s”命令顯示UID而不顯示用戶名(為了提高速度)

        用下面的命令編譯和安裝軟件:

        make
        make install
        install -m 755 util/xferstats /usr/sbin
        touch /var/log/xferlog
        chmod 600 /var/log/xferlog
        cd /usr/sbin
        ln -sf in.ftpd /usr/sbin/wu.ftpd
        ln -sf in.ftpd /usr/sbin/in.wuftpd
        strip /usr/bin/ftpcount
        strip /usr/bin/ftpwho
        strip /usr/sbin/in.ftpd
        strip /usr/sbin/ftpshut
        strip /usr/sbin/ckconfig
        strip /usr/sbin/ftprestart

        上面的“make”和“make install”可以配置軟件以保證系統(tǒng)中有編譯所需要的函數(shù)庫,然后把所有的源文件都編譯成可執(zhí)行的二進(jìn)制文件,最后把二進(jìn)制文件和配置文件安裝到相應(yīng)的目錄里。

      “install ?m”安裝“xferstats”程序,用于統(tǒng)計傳輸了多少文件。“touch”命令為xferstats在“/var/log”目錄下創(chuàng)建日志文件。“chomod”把“xferlog”的權(quán)限改為只對超級用戶“root”可讀和可寫。接著,我們?yōu)椤癷n.ftpd”二進(jìn)制文件創(chuàng)建符號鏈接。最后,用“strip”命令減小所有二進(jìn)制文件的大小以提高wu-ftpd的性能。

        清除不必要的文件
        [root@deep]# cd /var/tmp
        [root@deep]# rm -rf wu-ftpd-version/ wu-ftpd-version.tar.gz

      [page]

      “rm”命令刪除所有編譯和安裝wu-ftpd所需要的源程序,并且把wu-ftpd軟件的壓縮包刪除掉。

        為FTP站點(diǎn)的用戶建立沒有shell的賬號

        首先,創(chuàng)建一個新的用戶,這個用戶被允許連接到ftp服務(wù)器上。因為要有“chroot”的環(huán)境,這個賬號不同于正常的用戶賬號,不能受訪問限制?!癱hroot”使用戶產(chǎn)生這樣的感覺好像自己已經(jīng)在文件系統(tǒng)的最頂層了。

        第一步

        用下面的命令在“/etc/passwd”文件中創(chuàng)建用戶。對于每個允許訪問ftp服務(wù)器的新用戶都要重復(fù)這個步驟。

        [root@deep]# mkdir /home/ftp
        [root@deep]# useradd -d /home/ftp/ftpadmin/ -s /dev/null ftpadmin > /dev/null 2>&1
        [root@deep]# passwd ftpadmin

        Changing password for user ftpadmin
        New UNIX password:
        Retype new UNIX password:
        passwd: all authentication tokens updated successfully

        第二步

        編輯“/etc/shells”文件并加入一個空shell,如:null。這個假的shell可以限制用戶對ftp服務(wù)器的訪問。

        [root@deep]# vi /etc/shells

        /bin/bash
        /bin/sh
        /bin/ash
        /bin/bsh
        /bin/tcsh
        /bin/csh
        /dev/null ? This is our added no existent shell

        第三步

        現(xiàn)在編輯“/etc/passwd”文件,手工加上“/./”把“/home/ftp”目錄和“/ftpadmin”目錄分開,用戶“ftpadmin”會自動轉(zhuǎn)到(chdir)“/ftpadming”目錄下。在“passwd”文件中每添加一個ftp用戶都要重復(fù)這個步驟。

        編輯“passwd”文件(vi /etc/passwd),把下面這一行改為:

        ftpadmin:x:502:502::/home/ftp/ftpadmin/:/dev/null

        改為:

        ftpadmin:x:502:502::/home/ftp/./ftpadmin/:/dev/null

        賬號為“ftpadmin”,這這個賬號的家目錄有一些奇怪。第一部分“/home/ftp/”表示“chroot”時作為根目錄的目錄。被點(diǎn)號分開的“/ftpadmin”表示當(dāng)?shù)卿沠tp服務(wù)器的時候會自動轉(zhuǎn)到這個目錄?!?dev/null”這個空shell不允許“ftpadmin”像正常用戶那樣登錄。經(jīng)過這些改變,“ftpadmin”用戶用的不是真正的shell而是偽shell,這樣訪問ftp服務(wù)器就受到限制。 創(chuàng)建一個“chroot”用戶環(huán)境
      先要創(chuàng)建一個簡單的根文件系統(tǒng)(root file system),包含有足夠的文件,如果二進(jìn)制程序、口令文件,等等。當(dāng)用戶登錄的時候,Unix就可以改變根文件系統(tǒng)(chroot)。注意一下,如果編譯的時候象上面那樣加上“--enable-ls”參數(shù),“/home/ftp/bin”和“/home/ftp/lib”兩個目錄就可以不要了,因為WU-FTP會用自己帶的“l(fā)s”。不過我們還是介紹一下舊的方法,也就是把“/bin/ls”拷貝到“/home/ftp/bin”(chroot之后就是“/bin”)目錄下,然后把相關(guān)的運(yùn)行庫拷貝到“/home/ftp/lib”目錄下。

      [page]

      第一步

        創(chuàng)建改變根文件系統(tǒng)(chrooted)環(huán)境所需要的所有的目錄:

        [root@deep]# mkdir /home/ftp/dev
        [root@deep]# mkdir /home/ftp/etc
        [root@deep]# mkdir /home/ftp/bin (require only if you are not using the “--enable-ls” option)
        [root@deep]# mkdir /home/ftp/lib (require only if you are not using the “--enable-ls” option)

        第二步

        把新目錄的權(quán)限設(shè)成0511:

        [root@deep]# chmod 0511 /home/ftp/dev
        [root@deep]# chmod 0511 /home/ftp/etc
        [root@deep]# chmod 0511 /home/ftp/bin (require only if you are not using the “--enable-ls” option)
        [root@deep]# chmod 0511 /home/ftp/lib (require only if you are not using the “--enable-ls” option)

        上面這些“chmod”命令把chrooted之后的“dev”、“etc”、“bin”和“l(fā)ib”目錄設(shè)置成超級用戶“root”可讀、可執(zhí)行,用戶組和所有用戶可執(zhí)行。

        第三步

        把“/bin/ls”文件拷貝到“/home/ftp/bin”目錄下,并把“l(fā)s”的權(quán)限改為0111(不運(yùn)行用戶改變這個文件)。

        [root@deep]# cp /bin/ls /home/ftp/bin (require only if you are not using the “--enable-ls” option)
        [root@deep]# chmod 0111 /bin/ls /home/ftp/bin/ls (require only if you are not using the “--enable-ls” option)

        第四步

        找到“l(fā)s”程序所需的共享庫:

        [root@deep]# ldd /bin/ls (require only if you are not using the “--enable-ls” option)

        libc.so.6 => /lib/libc.so.6 (0x00125000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00110000)

        把共享庫拷貝到“/home/ftp/lib”目錄下:

        [root@deep]# cp /lib/libc.so.6 /home/ftp/lib/ (require only if you are not using the “--enable-ls” option)
        [root@deep]# cp /lib/ld-linux.so.2 /home/ftp/lib/ (require only if you are not using the “--enable-ls” option)

        注意:如果想用Linux的“l(fā)s”程序而不是用WU-ftpd自帶的“l(fā)s”(編譯時加上“--enable-ls”參數(shù)),才需要第三和第四步。

        第五步

        創(chuàng)建“/home/ftp/dev/null”文件:

        [root@deep]# mknod /home/ftp/dev/null c 1 3
        [root@deep]# chmod 666 /home/ftp/dev/null

        第六步

        把“group”和“passwd”文件拷貝到“/home/ftp/etc”目錄下,然后再改變這兩個文件。

        [root@deep]# cp /etc/passwd /home/ftp/etc/
        [root@deep]# cp /etc/group /home/ftp/etc/

        編輯“passwd”文件(vi /home/ftp/etc/passwd)把除了“root”和允許使用ftp的用戶之外的所有其它項刪掉。這對于改變根文件系統(tǒng)的環(huán)境很重要,改變之后的“passwd”文件會是象下面這樣的:

        root:x:0:0:root:/:/dev/null
        ftpadmin:x:502:502::/ftpadmin/:/dev/null

        編輯“group”文件(vi /home/ftp/etc/group),把除了“root”和允許使用ftp的用戶之外的所有其它項刪掉。改變之后的“group”文件會是象下面這樣的:

        root:x:0:root
        ftpadmin:x:502:

        配置

        可以到這去下載“floppy.tgz”文件:http://pages./lotus1/doc/opti/floppy.tgz。把“floppy.tgz”文件解開之后,可以在相應(yīng)的目錄下發(fā)現(xiàn)我們在這本書中介紹的所有軟件的配置文件。這樣就沒有必要手工重新生成這些文件,或者用拷貝粘貼的方法把它們粘貼到配置文件中去。不管是打算自己動手生成配置文件還是拷貝現(xiàn)成的,你都要學(xué)會自己修改配置文件并且把配置文件拷貝到正確的目錄下。下面將具體說明。

      [page]

      為了運(yùn)行FTP服務(wù)器,必須創(chuàng)建或者把下面的文件拷貝到相應(yīng)的目錄下:

        把“ftpaccess”文件拷貝到“/etc”目錄下
        把“ftpusers”文件拷貝到“/etc”目錄下
        把“ftphosts”文件拷貝到“/etc”目錄下
        把“ftpgroups”文件拷貝到“/etc”目錄下
        把“ftpconversion”文件拷貝到“/etc”目錄下
        把“ftp”文件拷貝到“/etc/pam.d”目錄下
        把“ftpd”文件拷貝到“/etc/logrotate.d”目錄下

        可以把“floppy.tgz”解壓之后,找到上面列出來的文件,并拷貝到相應(yīng)的目錄下,或者用拷貝粘貼的方法從本書中直接粘貼出。

        配置“/etc/ftpaccess”文件

        “/etc/ftpaccess”文件是用來配置“ftpd”的。這個文件主要是設(shè)置允許哪個用戶、多少用戶訪問ftp服務(wù)器,以及一些安全方面的問題。配置文件的每一行或者定義一個屬性或者設(shè)定一個屬性值,。對于非匿名的“chroot”訪問,必須創(chuàng)建一些“guestgroup”,每一個都要對應(yīng)“/home/ftp/etc/group”文件中的項。

        創(chuàng)建ftpaccess文件(touch /etc/ftpaccess),在文件中加入:

        class openarch guest 208.164.186.*
        limit openarch 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg
        email admin@openarch.com
        loginfails 3
        readme README* login
        readme README* cwd=*
        message /home/ftp/.welcome.msg login
        message .message cwd=*
        compress yes all
        tar yes all
        chmod yes guest
        delete yes guest
        overwrite yes guest
        rename yes guest
        log commands real,guest
        log transfers real,guest inbound,outbound
        guestgroup ftpadmin
        guestgroup webmaster
        # We don't want users being able to upload into these areas.
        upload /home/ftp/* / no
        upload /home/ftp/* /etc no
        upload /home/ftp/* /dev no
        # We'll prevent downloads with noretrieve.
        noretrieve /home/ftp/etc
        noretrieve /home/ftp/dev
        log security real,guest
        guest-root /home/ftp ftpadmin webmaster
        restricted-uid ftpadmin webmaster
        restricted-gid ftpadmin webmaster
        greeting terse
        Keepalive yes
        noretrieve .notar

        現(xiàn)在把文件的權(quán)限設(shè)成600:

        [root@deep]# chmod 600 /etc/ftpaccess

        下面解釋配置文件中的設(shè)置:

        class

        “class”用來定義一個允許訪問ftp服務(wù)器的用戶類別??梢远x任意多的類別(class)。每一個“class”行的格式如下:

        class <classname> <typelist> <addrglob>

        <classname>是class的名字,<typelist>是允許加到類別(class)中的用戶類型,<addrglob>是這個class允許的IP地址范圍。

        <typelist>中的項是用逗號隔開的,每一個項有三種可能的取值:anonymous、guest或real。anonymous用戶是用anonymous或ftp賬號訪問ftp服務(wù)器而且只需要訪問公用文件的那些用戶。guest用戶有一些特殊因為他們在系統(tǒng)中沒有賬號,但是卻又是guest組的成員。real用戶必須在FTP服務(wù)器上有賬號,而且需要經(jīng)過服務(wù)器的安全驗證。

      [page]

      <addrglob>可以用通配符,例如:“*”表示所有的站點(diǎn)。下面這一行:

        class openarch guest 208.164.186.*

        表示只有在系統(tǒng)中有自己賬號的guest用戶而且IP地址為“208.164.186.*”才能訪問ftp服務(wù)器。

        limit

        “l(fā)imit”根據(jù)class和時間范圍來限制登錄ftp服務(wù)器的用戶數(shù)?!發(fā)imit”的格式是:

        limit <class> <n> <times> <message_file>

        其中<class>是受限制的類別(class),<n>表示在這個類別中受到限制的最多用戶數(shù),<times>表示“l(fā)imit”有效的時間段,<message_file>是當(dāng)達(dá)到最大的用戶數(shù)目的時候,別的用戶還想登錄時顯示的信息。

        <times>中的字符串用逗號隔開,每一個字串表示一天。星期一到星期日分別用Mo、Tu、We、Th、Fr、Sa和Su表示,周末也可以用Wk表示。表示時間的小時和分鐘之間不要用冒號隔開?!?”用來表示范圍。

        例如,限制“openarch”這個類別,最多可以有20個用戶,訪問時間是星期一道星期四全天,星期五從半夜到下午六點(diǎn)。用下面這一行來表示: limit openarch 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg

        如果一旦達(dá)到最大的用戶數(shù),還有別的用戶想連接ftp服務(wù)器,就會把“/home/ftp/.too_mang.msg”中的信息傳給用戶。

        loginfails

        “l(fā)oginfails”設(shè)置最多允許的登錄失敗的次數(shù)??梢杂孟旅孢@一行來表示:

        loginfails <n>

       ?。糿>表示最多允許的登錄失敗的次數(shù)。例如,只允許失敗兩次可以這樣表示:

        loginfails 3

        readme

        “readme”設(shè)置在什么條件下,一旦當(dāng)前目錄中的文件發(fā)生了變化需要提醒用戶。

        這個命令的格式為:

        readme <path> <when>

       ?。紁ath>是用來提醒用戶的文件的名字(例如:README),<when>設(shè)置出現(xiàn)這個提示信息的條件。

       ?。紈hen>可以為下面兩種形式:LOGIN或CWD=<dir>。如果為LOGIN,當(dāng)用戶成功登錄的時候就會出現(xiàn)提示信息。如果為CWD=<dir>,當(dāng)用戶進(jìn)入<dir>目錄的時候就會有提示信息。

        請記住當(dāng)給匿名(anonymous)用戶設(shè)置提示信息的路徑的時候,這個路徑必須是相對于匿名ftp目錄。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多