FreeBSD FTP 的架设教程
<p>當你的 FreeBSD 安裝好後就內建 FTP ,只是預設不啟動它而已, 有人覺得 FreeBSD 內建的 ftpd 太陽春,會另外用別的 ftpd 來取代, 常見的替代方案有:proftpd , pureftp ......等,不過要隨時注意更新,因為 FTP 程式常常被找到有安全漏洞。</p><h4>1 以 FreeBSD 內建的 ftpd 提供服務</h4>
<p>一般說來,當你安裝好 FreeBSD ,FTP 的服務程式 /usr/libexec/ftpd 就有了<br />只要修改一下 /etc/inetd.conf , FTP 服務就已經可以提供給有本機的人使用</p>
<h4>1-1 打開 FTP 服務</h4>
<p>FreeBSD 的預設 ftpd 提供 daemon 模式(stand alone)和由 inetd 啟動 ftpd 兩種方式<br />兩種方式比較起來,daemon 的方式適合對同一時間連線使用多,負載較大的主機</p>
<h4>1-1-1 方法一:daemon 模式 (stand alone)</h4>
<h4>1-1-1-1 立即啟動 ftpd daemon</h4>
<p>如果只是要馬上啟動服務只要執行:</p>
<blockquote><p><strong>/usr/libexec/ftpd -D -l -l</strong></p></blockquote>
<p>參數說明:</p>
<ul><li>-D :讓 ftpd 以 daemon 的方式啟動。</li><li>-l :叫 syslogd 記錄每次的連線,用兩次 -l 則可以連使用的動作都記錄<br /> -l 要留下連線記錄還需要配合修改 /etc/syslog.conf 才會啟動記錄</li></ul>
<p>ftpd 還有很多的參數,可以 <strong>man ftpd</strong> 查看。</p>
<h4>1-1-1-2 如何讓 FreeBSD 開機時自動啟動 ftpd</h4>
<p>如果只用前面的方法啟動 ftpd daemon,下次重新開機後就沒了,為了讓它能自動啟動,我們可以把啟動指令放入 /etc/rc.local 中或是仿 /usr/local/etc/rc.d 的檔案,自己寫個 ftpd.sh 。</p>
<p>例一:</p>
<blockquote><p><strong>ee /etc/rc.local</strong></p></blockquote>
<p>在裡面放一行:</p>
<blockquote><p><strong>/usr/libexec/ftpd -D -l -l</strong></p></blockquote>
<p>例二:</p>
<p>仿 /usr/local/etc/rc.d 中的檔案,新增一個叫 ftpd.sh 的 script :</p>
<blockquote><p><strong>ee /usr/local/etc/rc.d/ftpd.sh</strong></p></blockquote>
<p>裡面放入下面的內容:</p>
<table align="center" border="1" cellpadding="8" cellspacing="1" style="width:600px"><tbody><tr><td><pre>#!/bin/sh
ftpd_flag="-l -l -S"
ftpd="/usr/libexec/ftpd"
case "$1" in
start)
[ -x ${ftpd} ] && ${ftpd} -D ${ftpd_flag} > /dev/null && echo -n ' ftpd
;;
stop)
/usr/bin/killall ftpd > /dev/null && echo -n ' ftpd'
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
;;
esac
exit 0</pre></td></tr></tbody></table>
<p>存好檔後再更改一下檔案的權限,讓它可以執行:</p>
<blockquote><p><strong>chmod 554 /usr/local/etc/rc.d/ftpd.sh</strong></p></blockquote>
<p>這樣,當 FreeBSD 開機時就會自動啟動 ftpd ,也可以利用 <strong>/usr/local/etc/rc.d/ftpd stop</strong> 來停止服務,執行時要加什麼參數就修改 ftpd_flag 那行。</p>
<h4>1-1-2 方法二:由 inetd 來啟動 ftpd</h4>
<p>這種方式,想當然爾,就是要修改 /etc/inetd.conf 囉:</p>
<blockquote><p><strong>ee /etc/inetd.conf</strong></p></blockquote>
<p>先檢查一下 /etc/inetd.conf 中有沒有下面這行:</p>
<table align="center" border="1" cellpadding="5" cellspacing="1" style="width:600px"><tbody><tr><td>#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</td></tr></tbody></table>
<p>如果像上面那行一樣,開是井字號,表示現在 FTP 服務預設是被關閉的。井字號表示註解,不使用,只要把井字號去掉改成下面的樣子:</p>
<table align="center" border="1" cellpadding="5" cellspacing="1" style="width:600px"><tbody><tr><td><span style="color:#0000ff"><strong>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</strong></span></td></tr></tbody></table>
<p>存檔後執行下面的指令:</p>
<blockquote><p><strong><strong>kill -HUP `cat /var/run/inetd.pid`</strong></strong></p></blockquote>
<p>讓 inetd 重新抓取 /etc/inetd.conf 設定檔就好了</p>
<p><span style="color:#ff0000">注意:上面的 <strong><span style="color:#0000ff">`</span> </strong>是 Esc 鍵下面那鍋毛毛蟲的按鍵哦,可別打成單引號</span></p>
<p></p>
<h4>1-2 停止 FTP 服務</h4>
<p>如果要停止 FTP 服務,看之前是以 daemon 模式啟動還是 inetd 模式啟動而有所不同。</p>
<h4>1-2-1 daemon 模式</h4>
<p>daemon 模式可以執行下列指令來終止 ftpd 的程序:</p>
<blockquote><p><strong>killall ftpd</strong></p></blockquote>
<p>如果之前是將 ftpd 放在 /etc/rc.local 中來由在開機時自動啟動,可以用下面的方法來停止自動提供 FTP 服務。</p>
<blockquote><p>先打開 /etc/rc.local 來編輯,執行:</p>
<blockquote><p><span style="color:#0000ff">ee /etc/rc.local</span></p></blockquote>
<p>將檔案中,執行 ftpd 那行的最前面加個井字號,儲存好即可。</p></blockquote>
<h3>1-2-2 inetd 模式</h3>
<p>當初是以 inetd 模式來提供服務的,則要修改 inetd 的設定檔 /etc/inetd.conf ,並讓 inetd 重新讀取設定。</p>
<blockquote><p>先打開 /etc/inetd.conf 來編輯,執行:</p>
<blockquote><p><strong>ee /etc/inetd.conf</strong></p></blockquote>
<p>將設定檔中,有 ftpd 那行的前面加上井字號後,儲存設定檔。</p>
<p>讓 inetd 重讀設定檔,執行下面指令:</p>
<blockquote><p><strong>kill -HUP `cat /var/run/inetd.pid`</strong></p></blockquote></blockquote>
<p>如果要確認 FTP 服是否已經停止了,可以執行:</p>
<blockquote><p><strong>netstat -na</strong></p></blockquote>
<p>看看下面這行是不是已經消失了:</p>
<blockquote><p><strong>tcp4 0 0 *.21 *.* LISTEN</strong></p></blockquote>
<p></p>
<h4>1-3 限制使用者只能在自己目錄(chroot)</h4>
<p>如果沒有特殊設定,使用者用自己的 FTP 到主機後,可以自由的切換任意目錄的,如果不想讓它亂跑則要做以下設定。</p>
<h3>1-3-1 方法一:利用 /etc/ftpchroot</h3>
<p>FreeBSD 的 ftpd 以 /etc/ftpchroot 來控制哪些人或群組要如何 chroot ,所以我們開啟/新增這個設定檔來編輯。</p>
<blockquote><p><strong>ee /etc/ftpchroot</strong></p></blockquote>
<p>在檔案裡面放入我們要管制的人或群組:</p>
<table align="center" border="1" cellpadding="5" cellspacing="1" style="width:600px"><tbody><tr><td><strong>gsyan<br />foo<br />@staff</strong></td></tr></tbody></table>
<p>上面的設定使得 gsyan, foo 及屬於 staff 群組的人都只能在自己目錄。<br /><br />說明:</p>
<blockquote><p>小老鼠開的表示後面接的名稱為群組。</p></blockquote>
<p></p>
<p><strong>有方法可以只開放一個不 chroot 其它全部 chroot 嗎?</strong><br /><br />最近 FreeBSD 內建的 ftpd 在 /etc/ftpchroot 又多了可設定的東東, 如果 <span style="color:#0000ff"><strong>man ftpchroot</strong></span> 可以看到說明,就表示可以使用下面的的設定來達到只開放部份不鎖定在個人目錄的目的。</p>
<p>首先開啟 /etc/ftpchroot 來編輯:</p>
<blockquote><p><strong>ee /etc/ftpchroot</strong></p></blockquote>
<p>假設 admin 是管理員的,讓 admin 可以在中到處游走,就裡面放入下面三行:</p>
<table align="center" border="1" cellpadding="8" cellspacing="1" style="width:600px"><tbody><tr><td><strong>admin /<br />ftp .<br />@ www</strong></td></tr></tbody></table>
<p>儲存好就可以用 ftp 連線看看, 上面的設定有底下的效果:</p>
<ul><li>第一行設定:admin 登入時會切換到 /</li><li>第二行設定:匿名登入時則保持原來的方式,只能在指定的公用目錄。</li><li>第三行設定:其它使用者則只能在個人目錄中的 www 資料夾中。</li></ul>
<p>第三行應用在 server 有 apache 提供使用者放網頁, 而 apache 設定 <strong>UserDir=www</strong> 時,以後只要告訴使用者: 『請將做好的網頁直接用自己的 ftp 到主機即可』, 以前都要解釋半天,請他 ftp 後把網頁放到 www 資料夾, 不過,記得先將使用者的 www 目錄先建立好,不然可是會連登入都無法登入哦!!</p>
<p>在 FreeBSD 4.8R 以後的 /etc/ftpchroot 又新增了功能,詳細的設定可以 <strong>man ftpchroot</strong> (不過,之前的版本沒這鍋 man )。</p>
<h3>1-3-2 方法二:利用 /etc/login.conf</h3>
<p>這個方法是利用使用者資料庫 (密碼檔 /etc/master.passwd) 中 login class 的欄位,來設定使用者隸於的 class ,然後在 /etc/login.conf 中設定各 class 在 FTP chroot 的動作為何,在 /etc/ftpchroot 不方便設定時,適用於要處理很多人的狀況。</p>
<blockquote><p>開啟<span style="color:#ff0000"> </span>/etc/login.conf 來修改,執行:</p>
<blockquote><p><strong>ee /etc/login.conf</strong></p></blockquote>
<p>然後找到下面 default: 開的哪幾行,類似下面的內容:</p></blockquote>
<table align="center" border="1" cellpadding="5" cellspacing="1" style="width:600px"><tbody><tr><td>default:\<br /> :copyright=/etc/COPYRIGHT:\<br /> :welcome=/etc/motd:\<br />...................略</td></tr></tbody></table>
<blockquote><p>加下面這一行:</p>
<blockquote><p><strong>:ftp-chroot:\</strong></p></blockquote>
<p>變成:</p></blockquote>
<table align="center" border="1" cellpadding="5" cellspacing="1" style="width:600px"><tbody><tr><td>default:\<br /> <span style="color:#0000ff"><strong>:ftp-chroot:\</strong></span><br /> :copyright=/etc/COPYRIGHT:\<br /> :welcome=/etc/motd:\<br />...................略</td></tr></tbody></table>
<blockquote><p>然後執行下列這行指令,把 login.conf 轉成資料庫格式</p>
<blockquote><p><strong>cap_mkdb /etc/login.conf</strong></p></blockquote>
<p>這樣,所有的都會做 chroot,的範圍就限定在自己的目錄中。</p></blockquote>
<p><br /><strong>想全部管制,但又想開放管理用的不做 chroot 呢?</strong></p>
<p>前面的方法<strong>,</strong>我們設定的是 default 這個 login class 要做 FTP 的 chroot,也就是所有人共同的設定,想讓管理可以到處游走,就設定一個系管的 class ,並且將 ftp-chroot 的屬性去掉即可達到部份開放的目的。</p>
<blockquote><p>開啟 /etc/login.conf 新增系管的 login class 叫 admin,並加入 ftp-chroot 為否的設定:<span style="color:#0000ff"><strong> </strong></span></p>
<blockquote><p><strong>ee /etc/login.conf</strong></p></blockquote>
<p>新增下面幾行(注意藍色的部份), 注意:除了前面 defaults: 下的 ftp-chroot 部份,我們在下面另外新增一個 login class 叫 admin:</p></blockquote>
<table align="center" border="1" cellpadding="5" cellspacing="1" style="width:600px"><tbody><tr><td><p><br />default:\<br /> <span style="color:#0000ff"><strong>:ftp-chroot:\</strong></span><br /> :copyright=/etc/COPYRIGHT:\<br /> :welcome=/etc/motd:\<br />...................略<br /><br /><span style="color:#0000ff"><strong>admin:\<br /> :ftp-chroot@:\<br /> :tc=default:</strong></span></p>
<p>...................略</p></td></tr></tbody></table>
<blockquote><p>然後執行下列這行指令,把 login.conf 轉成資料庫格式:</p>
<blockquote><p><strong>cap_mkdb /etc/login.conf</strong></p></blockquote>
<p>注意:上面在 admin 這個 class 中用的是:</p>
<blockquote><p>:ftp-chroot<span style="color:#0000ff"><strong>@</strong></span>:\</p></blockquote>
<p>ftp-chroot 多了個小老鼠哦!它代表這個值要相反的意思,也就不做 ftp-chroot。</p>
<p>再來,我們要告訴,誰屬於 admin 這個 login class ,直接修改資料庫,執行</p>
<blockquote><p><strong>vipw</strong></p></blockquote>
<p>修改管理員 (不做 chroot) 的 login class 為 admin</p>
<p>例如:</p>
<blockquote><p>假設管理員 gsyan 原來的資料是:</p>
<blockquote><p>gsyan:*:1000:1000::0:0:大雄:/home/gsyan:/bin/tcsh</p></blockquote>
<p>要將它的 login class 修改為 admin ,就改為下面的樣子:</p>
<blockquote><p>gsyan:*:1000:1000:<span style="color:#0000ff"><strong>admin</strong></span>:0:0:大雄:/home/gsyan:/bin/tcsh</p></blockquote></blockquote>
<p>都修改完了就儲存檔案,利用 FTP 軟體以不同身份登入測試看看。</p>
<p>說明:</p>
<blockquote><p>FreeBSD 中 /etc/master.passwd 密碼欄位依序為:</p>
<p>名稱:密碼:UID:GID:<strong>class</strong>:強制換密碼的時間:有效時間:資料:家目錄:shell</p>
<p>所以要改的 login class 是第五個欄位。</p>
<p>關於密碼檔的格式可以<strong> man 5 passwd</strong> 查看</p></blockquote></blockquote>
<p>將不同身份的使用者分為幾個 login class,並利用 /etc/login.conf 來設定各身份能夠使用的資源是滿不錯的管制工具,非常值得好好的研究,詳細的內容可以 <strong>man login.conf</strong> 。</p>
<h2>1-4 提供匿名(訪客用)的 FTP 服務</h2>
<p>讓在中沒有訪客可以下載 FTP 站中的檔案,這種叫匿名的 FTP 服務 (Anonymous FTP),要提供這種服務必須有一個叫 ftp 的並建立好相關的目錄及檔案,這部份如果不清楚,利用 /stand/sysinstall 來做是最輕鬆不過的。底下是設定的步驟:</p>
<blockquote><p>1.呼叫 /stand/sysinstall ,執行:</p>
<blockquote><p><strong>/stand/sysinstall </strong></p></blockquote>
<p>2.當出現安裝點單『/stand/sysinstall Main Menu』, 按方向鍵移到『<span style="color:#0000ff">Configure</span>』,然後按<strong><span style="color:#0000ff">空白鍵</span></strong></p>
<p><img alt="" src="https://img.jbzj.com/do/uploads/allimg/081125/1813560.gif" /></p>
<p>3.進入到『FreeBSD Configuration Menu』後,按方向鍵移到『<span style="color:#0000ff">Networking</span>』,然後按<strong><span style="color:#0000ff">空白鍵</span></strong></p>
<p><img alt="" src="https://img.jbzj.com/do/uploads/allimg/081125/1813561.gif" /></p>
<p>4.進入到『Network Services Menu』後,按方向鍵移到『<span style="color:#0000ff">Anon FTP</span>』,後按<strong><span style="color:#0000ff">空白鍵</span></strong></p>
<p><img alt="" src="https://img.jbzj.com/do/uploads/allimg/081125/1813562.gif" /></p>
<p>5.進入到『Anonymous FTP Configuration』後,輸入下面的資料:</p>
<p><img alt="" src="https://img.jbzj.com/do/uploads/allimg/081125/1813563.gif" /></p>
<p>6.輸入完畢後就按 <strong>OK</strong> 。<br /><br />7.接著輸入FTP的 GID (使用預設值,直接按 Enter 鍵就可以)。</p>
<p><img alt="" src="https://img.jbzj.com/do/uploads/allimg/081125/1813564.gif" /></p>
<p>8.接著,詢問是否要產生進站歡迎詞 (welcome message),直接按 Enter 鍵就可以。</p></blockquote>
<p><img alt="" src="https://img.jbzj.com/do/uploads/allimg/081125/1813565.gif" /></p>
<blockquote><div style="float:left"><p>9.輸入進站的歡迎詞:</p>
<p><img alt="" src="https://img.jbzj.com/do/uploads/allimg/081125/1813566.gif" /></p>
<p>10.編輯完好後按 Esc 鍵,再按 Enter 鍵兩次即可存檔離開。<br /><br />11.接著都選點單最上面的 <strong>Exit</strong> 即可。</p></div></blockquote>
<p><strong>/stand/sysinstall 幫你做了什麼事?!</strong></p>
<blockquote><ul><li>新增 FTP 用的 (一般都叫 ftp)</li><li>新增 FTP 用的群組</li><li>新增 FTP 用的目錄</li><li>新增檔案到 ~ftp/etc/ (group,passwd,ftpmotd)</li><li>設定各目錄的權限:</li></ul></blockquote>
<table align="center" border="1" cellpadding="5" cellspacing="1"><tbody><tr><td>目錄名稱</td><td>擁有者</td><td>權限</td></tr><tr><td>~ftp</td><td>root</td><td>a-w</td></tr><tr><td>~ftp/etc</td><td>root</td><td>555 (目錄權限)<br />444 (pwd.db group ftpmod 三個檔案)</td></tr><tr><td>~ftp/pub</td><td>root</td><td>a-w</td></tr></tbody></table>
<blockquote><p>一定要注意各目錄的權限,目錄只要有 Write 的權限,訪客就可以任意上載/修改/刪除檔案,如果 FTP 主機被有心人士發現可以任意上載檔案,呵~網路流量可能會直線爆增。</p></blockquote>
<p>相關檔案:</p>
<ul><li>/etc/ftpusers 不可使用來 ftp 連線的黑名單</li><li>/etc/ftpchroot 需要做 chroot 的/群組清單</li><li>/etc/ftphosts 虛擬站台的設定檔</li><li>/etc/ftpwelcome 進站的歡迎詞</li><li>/etc/ftpmotd 登入成功後會自動顯示的訊息</li><li>/var/run/nologin 顯示訊息並拒絕登入(這檔案存在時 ftpd 會顯示內容並拒絕登入)</li><li>/var/log/ftpd 記錄用匿名方式登入時的傳輸狀況(必須有 -S 的參數,且該檔存在)</li></ul>
<p>其它詳細的設定、參數請自行 <strong>man ftpd</strong> 。<br /> </p>
<h2>1-5 讓 fptd 可以記錄傳輸狀況</h2>
<p>ftpd 的啟動參數有 -l 可以讓負責記錄的 syslogd 將 FTP 連線情形記錄下來,不過我們必須先設定 /etc/syslog.conf ,並且讓 syslogd 重新讀取設定檔,才能發生作用。</p>
<p>下面是設定的步驟:</p>
<blockquote><p>1.產生空的記錄檔 /var/log/ftpd ,執行下面的指令:</p>
<blockquote><p><strong>touch /var/log/ftpd</strong></p></blockquote>
<p>2. 修改 syslod 的設定檔</p>
<blockquote><p>開啟 /etc/syslog.conf 來編輯:</p>
<blockquote><p><strong>ee /etc/syslog.conf</strong></p></blockquote>
<p>找到含有 mail.info 的那一行</p>
<blockquote><p><strong>mail.info /var/log/maillog</strong></p></blockquote>
<p>在前述那行的下面新增一行:</p>
<blockquote><p><strong>ftp.* /var/log/ftpd</strong></p></blockquote>
<p>加完以後,按 Esc 鍵,再按兩次 Enter 鍵,將設定檔儲存好。</p></blockquote>
<p>3.讓 syslogd 重新讀取 /etc/syslog.conf</p>
<blockquote><p>執行下面的指令通知 syslogd 重新讀取設定:</p>
<blockquote><p><strong>kill -HUP `cat /var/run/syslogd.pid` </strong></p></blockquote>
<p>※ 注意:<span style="color:#0000ff"><strong>`</strong></span> 是按鍵盤上毛毛蟲那個按鍵哦!</p>
<p></p></blockquote></blockquote>
<h1>2 FTP 的架設─pure-ftpd</h1>
<ul><li><span style="color:#e6a306">另一個不錯的 FTP</span></li></ul>
<p></p>
<h1>3 以 wu-ftpd 架設 FTP (建議用別的方案取代<strong>)</strong></h1>
<p><strong><span style="color:#0000ff">雄曰:<br />現在都直接用 FreeBSD 內建的 ftpd ,下面的部份已經好久沒用囉!都是舊資料啦,希望不會誤導。</span></strong></p>
<p>wu-ftp (Washington University FTP) 由於功能強大,過去在 Unix Like 的主機上被廣為採用,或許是用的人多,也成為大家研究的焦點, 經常被發現有安全漏洞,所以安裝後一定要經常注意相關訊息,隨時更新。</p>
<h2>3-1 安裝 wu-ftpd</h2>
<p>方法一:用 packages</p>
<blockquote><p>pkg_add -v ftp://ftp.tku.edu.tw/OS/FreeBSD/packages/packages-stable/Latest/wu-ftpd.tgz</p></blockquote>
<p>方法二:用 ports</p>
<blockquote><p>編譯 wu-ftpd 時需要用到 autoconf213 ,記得要先安裝好該工具,並確認 ports tree 中有 /usr/ports/devel/autoconf213 才不會出現錯誤。</p>
<p>如果沒有可以執行下面指令安裝 autoconf213 及抓取 ports 相關檔案:</p>
<blockquote><p>pkg_add -v ftp://ftp.tku.edu.tw/OS/FreeBSD/packages/packages-stable/Latest/autoconf213.tgz</p>
<p>cd /usr/ports/devel<br />ncftpget -R ftp://freebsd.csie.nctu.edu.tw/pub/ports/ports/devel/autoconf213<br />cd /usr/ports/ftp<br />ncftpget -R ftp://freebsd.csie.nctu.edu.tw/pub/ports/ports/ftp/wu-ftpd</p></blockquote>
<p>準備好後即可準備進行編譯及安裝:</p>
<blockquote><p>cd /usr/ports/ftp/wu-ftpd<br />make<br />make install</p></blockquote></blockquote>
<h2>3-2 修改設定檔</h2>
<p>wu-ftpd 會用到的設定檔如下:</p>
<ul><li>/usr/local/etc/ftpaccess :主設定檔</li><li>/usr/local/etc/ftpconversions :設定檔案傳輸時,壓縮/解壓縮的程式</li><li>/usr/local/etc/ftpusers :黑名單,列入本檔中的無法以 FTP 登入</li><li>/usr/local/etc/ftpgroups :黑名單,屬於本檔中群組者無法以 FTP 登入</li><li>/usr/local/etc/ftphosts :黑名單,列入本檔中的機器無法以 FTP 登入</li></ul>
<p>安裝完後,在 /usr/local/etc 就會有一些 ftp*.sample 的範例,我們複製一份來修改:</p>
<blockquote><p><strong>cd /usr/local/etc<br />cp ftpaccess.sample ftpaccess<br />cp ftpconversions.sample ftpconversions<br />cp ftpusers.sample ftpusers<br />cp ftpgroups.sample ftpgroups<br />cp ftphosts.sample ftphosts</strong></p></blockquote>
<p>只要稍加修改就可以用囉!</p>
<blockquote><p>ftpaccess 中常用的設定:</p></blockquote>
<table align="center" border="1" style="width:600px"><tbody><tr><td>功能</td><td>語法</td></tr><tr><td>定義類別(class)</td><td><strong>class</strong> 類別名稱 成員(real,guest,anonyous) 連線網址<br />class TP real,guest,anonymous *.tp.edu.tw</td></tr><tr><td>限制上線人數及時段</td><td><strong>limit</strong> class名稱 人數 時間 訊息檔(絕對路徑)<br />limit TP 50 any /usr/local/etc/ftp.msg.Full<br />讓 TP 這個 class 同時最多 50 個連線,滿了就顯示 ftp.msg.Full中的內容</td></tr><tr><td>連線記錄</td><td><strong>log commands</strong> class名稱<br /><strong>log transfers</strong> class名稱 inbound,outbound</td></tr><tr><td>控制可執行的指令</td><td><strong>delete</strong> yes 或 no 類別<br /><strong>overwrite</strong> yes 或 no 類別<br /><strong>rename</strong> yes 或 no 類別<br /><strong>chmod</strong> yes 或 no 類別<br /><strong>umask</strong> yes 或 no 類別</td></tr><tr><td>連線時只顯示主機名稱,不顯示版本...</td><td><strong>greeting brief</strong></td></tr><tr><td>連線做 chroot</td><td><strong>restricted-uid</strong> 使用者<br />restricted-uid * (將所有使用者 chroot)</td></tr><tr><td>不做 choot</td><td><strong>unrestricted-uid</strong> 使用者<br />unrestricted-uid gsyan (gsyan不做 chroot)</td></tr></tbody></table>
<p>wu-ftp 可以做的事實在太多了,其它的設定 <strong>man ftpaccess</strong> 包您可以滿載而歸。</p>
<h2>3-3 修改 /etc/inetd.conf</h2>
<p>我們打算讓 wuftpd 以<strong><span style="color:#0000ff"> </span></strong>inetd 的模式提供服務,所以要先修改 /etc/inetd.conf ,然後讓 inetd 重新讀取設定檔。</p>
<blockquote><p>開啟 /etc/inetd.conf 來修改:</p>
<blockquote><p><span style="color:#0000ff"><strong>ee /etc/inetd.conf</strong></span></p></blockquote>
<p>將含有 ftp 開的那行改為下面的內容:</p>
<blockquote><p><span style="color:#0000ff"><strong>ftp stream tcp nowait root /usr/local/libexec/ftpd ftpd -a</strong></span></p></blockquote>
<p>然後讓 inetd 重新讀取設定檔,執行下面的指令:</p>
<blockquote><p><span style="color:#0000ff"><strong>kill -HUP `cat /var/run/inetd.pid`</strong></span></p></blockquote></blockquote>
<p>最後利用 netstat -na 來觀察服務是否啟動,或是以 FTP 軟體來測試。</p>
<p>記得隨時注意安全警示,有問題要馬上更新程式,以免被駭!</p>
頁:
[1]