用Linux架設(shè)FTP服務(wù)器(下)發(fā)布時(shí)間:2007-11-09 13:14:02 來源: 作者: 點(diǎn)擊:352message message <path> <when> ?。紁ath>表示需要顯示的文件的完整路徑名,<when>和“readme”中的<when>意思一樣。 還需要注意的是消息文件的路徑名也是相對(duì)于匿名ftp目錄的。 例如: message /home/ftp/.welcome.msg LOGIN compress、tar、chmod、delete、overwrite、rename 如果這些都不設(shè)置,那么就使用默認(rèn)值,也就是對(duì)所有人都是“yes”。下面例子中的設(shè)置的意思是給guest組chmod、delete、overwrite和rename文件的權(quán)力,所有人都可以使用compress和tar。 例如: compress yes all log commands 因?yàn)榘踩系脑蛐枰涗浻脩羰褂玫拿恳粋€(gè)命令?!發(fā)og commands”的格式是: log commands <typelist> ?。紅ypelist>是用逗號(hào)隔開的字串,表示哪些用戶的命令需要記錄下來,字串的取值可以是:anonymous、guest或real。 例如:要記錄real和guest用戶的每一個(gè)命令,可以這么表示: log commands real,guest 這些記錄都保存在“/var/log/message”文件中。 log transfers 因?yàn)榘踩募枰盐募膫鬏敹加涗浵聛??!發(fā)og transfers”的格式是: log transfers <typelist> <directions> ?。紅ypelist>是用逗號(hào)隔開的字串,表示哪些用戶的命令需要記錄下來,字串的取值可以是:anonymous、guest或real。<direction>也是用逗號(hào)隔開的字串,設(shè)置需要記錄的文件傳輸?shù)姆较颍梢赃x擇的兩個(gè)傳輸方向是“inbound”(向內(nèi))和“outbound”(向外)。 [page] 例如,用下面表示記錄所有real和guest用戶的“inbound”和“outbound”方向的文件傳輸: log transfers real,guest inbound,outbound 這些記錄保存在“/var/log/xferlog”文件中。 guestgroup 這個(gè)命令用來設(shè)置guest組,每一行只能有一個(gè)成員。 例如: guestgroup ftpadmin log security 用來設(shè)置記錄real、guest或anonymous用戶違反安全規(guī)則的行為。 log security <typelist> ?。紅ypelist>是用逗號(hào)隔開的字串,字串的取值可以是:anonymous、guest或real?!皉eal”表示真正在ftp服務(wù)器上有賬號(hào)的用戶,“anonymous”表示匿名用戶,“guest”表示guest用戶。 例如: log security real,guest restricted-uid、restricted-gid、guest-root 這些用來設(shè)置是否允許real和guest用戶訪問家目錄之外的目錄。格式為: guest-root <root-dir> 例如: guest-root /home/ftp ftpadmin webmaster ?。紃oot-dir>設(shè)置chroot環(huán)境的用戶路徑。在一行里可以有多個(gè)uid地范圍。如果為用戶設(shè)置了guest-root,那么該用戶的家目錄就在“<root-dir>/etc/passwd”文件中設(shè)定,而“/etc/passwd”文件中的設(shè)定是無效的。當(dāng)“ftpadmin”和“webmaster”被改變了根目錄(chrooted)到“/home/ftp”目錄下,他們就被限制在各自的家目錄下而不能訪問別人的文件。 greeting 設(shè)置用戶登錄時(shí)候的歡迎信息。格式為: greeting full|brief|terse “greeting full”是默認(rèn)的設(shè)置顯示主機(jī)名和ftp daemon地版本,“greeting brief”顯示主機(jī)名,“greeting terse”簡(jiǎn)單地顯示“FTP server ready”。 例如: greeting terse keepalive <yes|no> 設(shè)置socket的TCP SO_KEEPALIVE參數(shù)。這樣在必要的時(shí)候可以斷開網(wǎng)絡(luò)連接。“yes”有效,“no”無效。最好設(shè)成“yes”: Keepalive yes [page] 配置“/etc/ftphosts”文件 創(chuàng)建“ftphosts”文件(touch /etc/ftphosts),加入下面這幾行: # Example host access file 把文件的權(quán)限改為600: [root@deep]# chmod 600 /etc/ftphosts 每一行可能是: allow <username> <addrglob> 或 deny <username> <addrglob> “allow”允許用戶用<username>用戶名,從<addrglob>地址訪問ftp服務(wù)器。<addrglob>可以包含多個(gè)地址。 “deny”禁止用戶名為<username>的用戶,從<addrglob>地址訪問ftp服務(wù)器。<addrglob>可以包含多個(gè)地址。 配置“/etc/ftpusers”文件 創(chuàng)建“ftpusers”文件(touch /etc/ftpusers),加入下面這幾行: root 把文件的權(quán)限設(shè)成600: [root@deep]# chmod 600 /etc/ftpusers 配置“/etc/ftpconversions”文件 創(chuàng)建“ftpconversions”文件(touch /etc/ftpconversions),在文件中加入: :.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS 把文件的屬性改為600: [root@deep]# chmod 600 /etc/ftpconversions 配置“/etc/pam.d/ftp”文件 [page] 創(chuàng)建“ftp”文件(touch /etc/pam.d/ftp)并加入: #%PAM-1.0 配置“/etc/logrotate.d/ftpd”文件 創(chuàng)建“ftpd”文件(touch /etc/logrorate.d/ftpd)并加入: /var/log/xferlog { 配置ftp使其使用inetd超級(jí)服務(wù)器(用于實(shí)現(xiàn)tcp-wrappers) 編輯inetd.conf文件(vi /etc/inetd.conf),加入并驗(yàn)證是否存在下面這一行: ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a 注意:更新完“inetd.conf”文件之后要發(fā)給inetd一個(gè)SIGNUP信號(hào),運(yùn)行下面的命令: [root@deep /root]# killall -HUP inetd 編輯“hosts.allow”文件(vi /etc/hosts.allow)加入這一行: in.ftpd: 1Array2.168.1.4 win.openarch.com 這表示IP地址為“1Array2.168.1.4”并且主機(jī)名為“win.openarch.com”的計(jì)算機(jī)允許訪問ftp服務(wù)器。 FTP管理工具 ?。紁id> <time> <tty> <connection details> 其中<pid>表示ftp daemon用來處理這次文件傳輸?shù)倪M(jìn)程號(hào),<time>表示用戶什么時(shí)候連接到ftp服務(wù)器上,<tty>總是用問號(hào)(?)表示因?yàn)槭峭ㄟ^ftp而不是telnet連接,<connection details>告訴連接是來自哪里、用戶是誰以及用戶現(xiàn)在在干什么。 下面是ftpwho輸出的一個(gè)例子: [root@deep]# ftpwho Service class openarch: [page] 可以看到現(xiàn)在有一個(gè)用戶登錄(最多可以有20個(gè)用戶同時(shí)登錄),這個(gè)用戶的用戶名是admin來自win.openarch.com。 ftpcount [root@deep]# ftpcount Service class openarch - 1 users ( 20 maximum) 保證ftp服務(wù)器的安全 如果想禁止匿名ftp服務(wù),把ftp用戶從password文件中移去,再用下面的命令確定在系統(tǒng)中沒有安裝anonftp-version.i386.rpm軟件包: [root@deep]# rpm -q anonftp. upload命令 upload /home/ftp/* / no noretrieve命令 noretrieve /home/ftp/etc “.notar”文件 [root@deep]# touch /home/ftp/.notar [page] 這些長(zhǎng)度為0的“.notar”文件會(huì)使一些瀏覽器和ftp代理(proxy)出現(xiàn)混亂,要解決這個(gè)問題必須把它們標(biāo)識(shí)為禁止下載。在“/etc/ftpaccess”文件中加入這一行: noretrieve .notar 安裝到系統(tǒng)中的文件 |
|