手把手教你wuftp服务器的配置
|
源代码网整理以下1、安装和启动安装wu-ftpd可以通过freebsd自带的port来安装,在/stand/sysinstall中来选择,选择configure中的packages.安装之后,wuftpd的所有安装文件都被安装在了/usr/local中。 源代码网整理以下想要启动wu-ftpd必须修改inetd.conf文件加入以下内容:ftpstreamtcpnowaitroot/usr/local/libexec/ftpdftpd–l 源代码网整理以下加入以后以root身份#killall–HUPinetd 源代码网整理以下测试一下服务器#ftp127.0.0.1如果你看到以下内容说明你以成功建立了服务器,但是这个服务器并不完整,因为它现在还不能用。 源代码网整理以下chu888.hope.com.cnFTPserver(Versionwu-2.6.1(1)WedJan2306:24:19GMT2002)ready.USERanonymous331Guestloginok,sendyourcompletee-mailaddressaspassword.PASS(隐藏) 源代码网整理以下530Loginincorrect. 源代码网整理以下#adduser–silent增加一个新用户这时你再一次登陆你会发现你以成功了,但这个服务器非常的不安全,为什么了哪,那是因为,这个用户可以无限制的向上反。 源代码网整理以下2、限制用户的根目录() 源代码网整理以下#cd/usr/local/etc/#eeftpaccess加入以下内容restricted-uid*#killall–HUPinetd#ftp127.0.0.1你再试试看在这里有一个关键性的问题,就是写了没有用,那是为什么哪,那是因为我们还要修改一个选择项,那就是/etc/inetd.conf文件中的ftp这一项。 源代码网整理以下改成以下内容ftpstreamtcpnowaitroot/usr/local/libexec/ftpdftpd–l-a这个-a的作用是强制读取ftpaccess文件的内容以下是所有参数的内容-a強制wu-ftpd讀取ftpaccess的設定-A強制wu-ftpd不讀取ftpaccess的設定-d將wu-ftpd的執行錯誤紀錄在syslog中,也就是/var/log/messages-i將上傳檔案的紀錄紀錄在xferlog中-l將每次連線的紀錄紀錄在syslog中,也就是/var/log/messages-o把下載檔案的紀錄紀錄在xferlog中-t秒數設定連線連續停滯多久就予以斷線,預設值是15分鐘(900秒) 源代码网整理以下-L把連線之後所執行的程式紀錄在syslog 源代码网整理以下3磁盘欢迎信息首先修改/usr/local/etc/ftpaccess文件的message选项,改成以下内容message/etc/welcome.msglogin这时你就可以在etc目录下建立一个文件welcome.msg了。 源代码网整理以下%T本地时间(从ThuNov1517:12:421990开始) 源代码网整理以下%F本目录所在的文件系统的剩余空间(kbyte,不是所有的系统都支持) 源代码网整理以下%C当前目录%E在ftpaccess中定义的维护者信箱%R远程机器名%L本地机器名%u根据rfc931得到的用户名%U登录的时候使用的用户名%M此类用户最大连接数%N当前此类用户数%B磁盘块限额硬上限%b磁盘块限额软上限%Q当前磁盘块%I可以使用的inode硬上限(+1) 源代码网整理以下%i可以使用的inode软上限%q已用inode%H磁盘空间超额时间限制%h文件数超额时间限制%xu上传字节数%xd下载字节数%xR上传/下载速度(1:n) 源代码网整理以下%xcCreditbytes(存储字节数?) 源代码网整理以下%xT时间限制(minutes) 源代码网整理以下%xE登录到现在经过的时间(minutes) 源代码网整理以下%xL剩下时间%xU上传速度限制%xD下载速度限制 源代码网整理以下4磁盘限额想要支持磁盘限额,在freebsd就必须编译内核,以下是编绎步骤 源代码网整理以下5wuftpd的主要程序介绍ftpdftpd的主程式(/usr/libexec) 源代码网整理以下ftpshut關閉FTPServer的工具程式(/usr/local/bin) 源代码网整理以下此程式主要是用來產生shutmsg(位置在ftpaccess中設定),ftpshut<-l分鐘><-d分鐘>關機時間<75個字元的關機說明>若指令為ftpshut-l10-d51130則/etc/shutmag的內容為19980901113000100005(19980901為關機當天) 源代码网整理以下Systemshutdownat%S說明:關機前10分鐘停止連線進來,關機前5分鐘將已連線的使用者斷線,關機時間為11:30am注意:若/etc/shutmag建立起來,想重新啟動FTPServer務必砍除shutmagftpcount可以統計目前上線人數的應用程式(/usr/local/bin) 源代码网整理以下ftpwho可以查看目前的連線情形(/usr/local/bin) 源代码网整理以下ftpaccesswu-ftpd最重要的設定檔,主要設定FTPServer的咦髂J脚c權限(/usr/local/etc) 源代码网整理以下ftpconversions檔案被下在之後,所要進行的動作(/usr/local/etc) 源代码网整理以下ftphosts設定來自某特定位址的使用者,是否允許登入FTPServer(/usr/local/etc) 源代码网整理以下ftpusers禁止登入FTPServer的黑名單(/usr/local/etc) 源代码网整理以下6ftpaccess的范例ftpaccess——FTP的設定檔 源代码网整理以下classallreal,guest, 源代码网整理以下#=========ftpaccess設定wu-ftpd的咦髂J=================================#語法:logibfails次數#說明:允許密碼輸入之錯誤次數#語法:class群組名稱使用者名稱可以從哪裡登入(IP/DNS) 源代码网整理以下#說明:設定可以使用FTPServer的群組及成員,可以從哪裡登入#舉例:classmmmreal,guest.anonymous*mmm這個群組的成員real,guest,anonymous可以從任何地方登入#語法:limit群組名稱同時登入人數上限執行該設限之時間輸出之訊息檔#說明:限制同一時間內能夠上線的人數,以維持FTPServer較好的服務品質#舉例:limitall10Any/etc/msgs/msg.dead在任何時間只限定做多10人可以all這個群組成員的身分登入,如果超過10人,就會show出/etc/msgs/msg.dead的檔案內容#語法:reeadme檔名命令#說明:當使用者要使用某一特定命令時,就會show某一檔案內容#舉例:readmeREADME*login只要使用者登入某一目錄,就將該目錄中以README為首的檔案內容秀出來(秀在末端) 源代码网整理以下#語法:message檔名命令#說明:當使用者要使用某一特定命令時,就會show某一檔案內容#舉例:message/welcome.msglogin當使用者登入FTPServer時,會將FTP根目錄(一般在/usr/ftp)下的welcome.msg秀出來(秀在開頭) 源代码网整理以下#語法:compressyes/no群組名稱1群組名稱2…… 源代码网整理以下#說明:設定哪些群組支援/不支援compress功能#舉例:compressyesall屬於all這個群組的成員,都支援compress功能#語法:taryes/no群組名稱1群組名稱2…… 源代码网整理以下#說明:設定哪些群組支援/不支援tar功能#語法:privateyes/no#說明:是否同意群組使用您的檔案#語法:passwd-checknone/trivial/rfc822enforce/warm#說明:當anonymous登入時,密碼輸入的方式#none任何密碼都接受#trivial只要輸入的密碼中有@字元就接受#rfc822密碼一定要遵守RFC822所規定的E-mail格式#enforce密碼輸入錯誤,就停止登入#warm密碼輸入錯誤,就顯示錯誤訊息,但仍舊允許登入#語法:logcommands群組名稱#說明:設定系統會記錄哪些群組成員的操作紀錄#舉例:logcommandsreal將屬於real群組的使用者的操作紀錄,都紀錄在xfrelog中#語法:logtransfers群組名稱inbound/outbound#說明:設定系統會記錄哪些群組成員上傳或下傳的操作紀錄(紀錄在xfrelog) 源代码网整理以下#語法:指令yes/no群組名稱#說明:設定是否支援某指令的功能,可以用來設限的指令有#deleteoverwritereadmechmodumask#舉例:deletenoguest,anonymous#限制guest,anonymous兩個群組的成員禁止使用delete指令#語法:uploadFTP之根目錄上傳目錄yes/nousernamegroupname權限nodirs/dirs#說明:設定哪一個目錄可以上傳檔案#yes該上傳目錄允許上傳檔案#no該上傳目錄不允許上傳檔案#dirs可以在該上傳目錄中,以mkdir開新目錄#nodirs禁止在該上傳目錄中,以mkdir開新目錄#舉例:upload/home/ftp/uploadyesrootdaemon600nodirs#設定/home/ftp為FTP根目錄,/upload為可以上傳的目錄(從FTP根目錄算起) 源代码网整理以下#不允許開新目錄#語法:alias別名目錄名稱#說明:將較複雜的目錄設定一個較簡單的別名#舉例:aliasup/upload#語法:cdpath目錄#說明:類似DOS中PATH的設定,但只有對cd這個指令有效,可以協助cd切換到#正確的目錄#舉例:cdpath/#cdpath/pub#cdpath/incoming#cdpath/upload#若打入指令cdantivirus,#則1.系統會先搜尋目前目錄有無名為antivirus目錄#2.尋找有無名為antivirus的別名#3.根據先前設定的順序依序搜尋各目錄#語法:path-filter群組名稱目錄名稱設限模式#說明:對上傳的檔案名稱加以設限,避免檔名具有那些符號#舉例:path-filteranonymous/etc/pathmsg^[-A-Za-z0-9_.]*$^.^-#語法:shutdown檔名#說明:設定FTPServer何時應該關機,並且應該秀出的訊息檔案可以經由ftpshut#來建立,要重新啟動FTPServer就必須刪除以ftpshut所建立的檔案#舉例:shutdown/etc/shutmsg#這個shutmsg可以以ftpshut來建立,該檔案包括了該何時shutdown的#訊息,如果要中止shutdown的狀態,就必須砍除/etc/shutmsg#語法:guestgroup功能#說明:指定guestgroup功能#舉例:guestgroupftponly#語法:email特定的E-mail位址#說明:設定那些人的權限屬於guest,也就是權限介於real和anonymous之間#舉例:email 源代码网整理以下#HEYYOU!Yeah,youwiththeeditor.#changethefollowingline,ordeleteit,OK? 源代码网整理以下#定义两个类,一个类是本地类local一个类是remote类,本地类只可以从本地登陆,remote可以从任何#地方登陆classlocalreal,guest,anonymous*.domain0.0.0.0classremotereal,guest,anonymous* 源代码网整理以下#任何时间local最多只可以有20个。 源代码网整理以下#对于remote用户在星期六星期天可以有100个人,其他时间18:00-6:00可以有100个人#如果超过这些人那么显示/etc/msgs/msg.toomany这个信息#其他时间remote类只可以有60个人。 源代码网整理以下limitlocal20Any/etc/msgs/msg.toomanylimitremote 源代码网整理以下readmeREADME*loginreadmeREADME*cwd=* 源代码网整理以下message/welcome.msgloginmessage.messagecwd=* 源代码网整理以下compressyeslocalremotetaryeslocalremote 源代码网整理以下#allowuseofprivatefileforSITEGROUPandSITEGPASS? 源代码网整理以下privateyes 源代码网整理以下#passwd-check[]passwd-checkrfc822warn 源代码网整理以下logcommandsreallogtransfersanonymous,realinbound, 源代码网整理以下#allthefollowingdefaultto"yes"foreverybodydeletenoguest, 源代码网整理以下overwritenoguest,anonymous#overwritepermission? 源代码网整理以下renamenoguest,anonymous#renamepermission? 源代码网整理以下chmodnoanonymous#chmodpermission? 源代码网整理以下umasknoanonymous#umaskpermission? 源代码网整理以下#specifytheuploaddirectoryinformationupload/var/ftp* 源代码网整理以下#directoryaliases……[note,the":"isnotrequired]aliasinc:/incoming 源代码网整理以下#cdpathcdpath/incomingcdpath/pubcdpath/ 源代码网整理以下#path-filter…… 源代码网整理以下path-filteranonymous/etc/pathmsg^[-A-Za-z0-9_.]*$^.^-path-filterguest/etc/pathmsg^[-A-Za-z0-9_.]*$^.^- 源代码网整理以下#specifywhichgroupofuserswillbetreatedas"guests".guestgroupftponly 源代码网整理以下email 源代码网整理以下loginfails3classlocalreal*classremoteanonymousguest* 源代码网整理以下下面我们逐句进行讲解,并给出每条设置的含义,以便大家触类旁通,以便根据自己FTP服务器的具体情况进行合理的设置。 源代码网整理以下1.格式:loginfails[次数]功能:设定当用户登录到FTP服务器时,允许用户输错密码的次数。 源代码网整理以下实例:loginfails3:密码输入错误三次就切断连接。 源代码网整理以下2.格式:class[类名][real/guest/anonymous][IP地址]功能:这个指令的功能设定FTP服务器上用户的类别。并可对客户端的IP地址进行限制,允许某部分的IP地址或全部的IP地址访问。而在FTP服务器上的用户基本上可以分为以下三类:real在该FTP服务器有合法帐号的用户;guest有记录的匿名用户;anonymous权限最低的匿名用户实例:classlocalreal*:定义一个名为local的类,它包含了在任何地方登录(*代表所有IP地址)的real用户。 源代码网整理以下classremoteanonymousguest*:定义一个名为remote的类,它包含了在任何地方登录的anonymous用户和guest用户。 源代码网整理以下3.格式:limit[类别][人数][时间][文件名]功能:这个指令的功能为设置指定的时间内指定的类别允许连接的指定人数上限。当达到人数上限的时候,显示指定文件的内容。 源代码网整理以下实例:limitremote100Any/etc/ftpd/toomany.msg:在任何时间内,remote类的访问用户达到100人时,将不再允许无法产生新的连接,当第101位客户要连接时,连接将失败,并象用户出示文件/etc/ftpd/toomany.msg的内容。 源代码网整理以下4.格式:message[文件名称][指令]功能:当用户执行所指定的指令时,系统将指定的文件内容显示出来。 源代码网整理以下实例:message/etc/ftpd/welcome.msglogin:当用户执行login命令时,也就是登录到FTP服务器上的时候,系统将显示文件/etc/ftpd/welcome.msg的内容。 源代码网整理以下5.格式:compress[yes/no][类别]功能:设置哪一个类别的用户可以使用compress(压缩)功能。 源代码网整理以下实例:compressyeslocalremote:允许local和remote两个类别的用户都能使用compress(压缩)功能。 源代码网整理以下6.格式:tar[yes/no][类别]功能:设置哪一个类别的用户可以使用tar(归档)功能。 源代码网整理以下实例:taryeslocalremote:允许local和remote两类的用户都能使用tar功能。 源代码网整理以下7.格式:private[yes/no]功能:设定是否支持群组对文件的取用。 源代码网整理以下实例:privateyes:支持群组对文件的取用。 源代码网整理以下8.格式:passwd-check[none/trivial/rfc822][enforce/warn]功能:设定对匿名用户anonymous的密码使用方式。 源代码网整理以下none表示不做密码验证,任何密码都可以登录;trival表示只要输入的密码中含有字符“@”就可以登录;rfc822表示密码一定要符合RFC822中所规定的E-Mail格式才能登录;enfore表示输入的密码不符合以上指定的格式就不让登录;warn表示密码不符合规定时只出现警告信息,仍然能够登录。 源代码网整理以下实例:passwd-checkrfc822warn:希望能够得到符合规定的E-Mail作为密码,但如果不是,也允许登录。 源代码网整理以下9.格式:logcommand[real/guest/anonymous]功能:设置哪些用户登录后的操作记录在文件/usr/adm/xferlog中。 源代码网整理以下实例:logcommandreal:当real用户登录后,将他的操作记录下来。由于其它用户权限较低,所以操作不会引起太大的安全隐患,所以一般只需记下real用户的操作就可以了。 源代码网整理以下10.格式:logtransfers[real/guest/anonymous][inbound/outbound]功能:设置哪些用户的上载(inbound)和下载(outbound)操作做日志。 源代码网整理以下实例:logtransferanonymousguestinboundoutbound:对于匿名用户要更加的关注它们的文件操作,所以无论上载、下载都进行记录。 源代码网整理以下logtransferrealinbound:对于合法用户则只记录他的上载记录。 源代码网整理以下11.格式:shutdown[文件名]功能:FTP服务器关闭的时间可以设置在后面所指定的文件中,当设置的时间一到,便无法登录FTP服务器了,要恢复的话只有将这个文件删掉。而这个文件必须由指令/bin/ftpshut来生成。 源代码网整理以下实例:shutdown/etc/ftpd/shut.msg12.格式:delete[yes/no][real/anonymous/guest]功能:设置是否允许指定用户使用delete命令删除文件。默认是允许。 源代码网整理以下实例:deletenoanonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行delete命令。 源代码网整理以下13.格式:overwrite[yes/no][real/anonymous/guest]功能:设置是否允许指定用户覆盖同名文件。默认是允许。 源代码网整理以下实例:overwritenoanonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户覆盖同名文件。 源代码网整理以下14.格式:rename[yes/no][real/anonymous/guest]功能:设置是否允许指定用户使用rename命令来为文件改名。默认是允许。 源代码网整理以下实例:deletenoanonymous:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行rename命令改变文件名。而对有记录的匿名用户则适当的放宽,允许他们使用改名命令。 源代码网整理以下15.格式:chmod[yes/no][real/anonymous/guest]功能:设置是否允许指定用户使用chmod命令更改文件权限。默认是允许。 源代码网整理以下实例:deletenoanonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行chmod命令更改文件权限。 源代码网整理以下16.格式:umask[yes/no][real/anonymous/guest]功能:设置是否允许指定用户使用umask命令。默认是允许。 源代码网整理以下实例:deletenoanonymous:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行umask命令。 源代码网整理以下17.格式:upload[根目录][上载目录][yes/no][用户][权限][dirs/nodirs]功能:对可以上载的目录进行更加详细的设置。 源代码网整理以下实例:upload/home/ftpd*no:表示在子目录/home/ftpd下不允许上载;upload/home/ftpd/binno:表示在子目录/home/ftpd/bin下不允许上载;upload/home/ftpd/etcno:表示在子目录/home/ftpd/etc下不允许上载;upload/home/ftpd/pubyesreal0644dirs:允许用服务器上的合法用户在子目录/home/ftpd/pub目录下能上载权限为0644(也就是-rw-r——r——)的文件,而且在这个目录下可以新建子目录。 源代码网整理以下upload/home/ftpd/incomingyesrealguestanonymous0644dirs:允许所有的用户在子目录/home/ftpd/incoming下能上载权限为0644的文件,而且在这个目录下可以新建子目录。 源代码网整理以下18.格式:alias[目录别名][目录名]功能:给指定目录设置一个别名,在切换目录时就可以使用较短的目录别名。 源代码网整理以下实例:aliasinc:/incoming:为子目录incoming设置一个别名inc:。 源代码网整理以下19.格式:email[guest的E-Mail地址]功能:只要将某些E-Mail地址设置在这个地方,那么这些用户登录到FTP服务器时,他的身份将为guest,一般权限比real低一些,比anonymous高。 源代码网整理以下实例:email 源代码网整理以下20.格式:deny[IP地址/域名][说明文件]功能:这个设置可以限制哪一些IP地址或域名的用户无法登入FTP服务器。 源代码网整理以下实例:deny*.com.tw/etc/ftpd/deny.msg:设置凡是域名是以“。com.tw”结束的域名,都禁止其访问。而将/etc/ftpd/deny.msg的内容显示给用户看。 源代码网供稿. |
