占位图像 用户ID: 密码: 验证码: 登录 注册     占位图像
 
教育168搜索

a
频道信息
学前教育 基础教育
小学 初中
高中 高等教育
心理学 机械工程
园林 IT教育
办公软件 Director
Authorware 图形图象
FIREWORKS CORELDRAW
Maya PhotoShop
AutoCAD 3D
操作系统 Windows xp
Windows Vista Linux
Windows 2003 Windows 2000
FreeBSD 注册表
网站制作 FLASH
Dreamweaver CSS教程
装修设计 LightScape
装修风水 方案设计
英语 商务外语
素质教育 法制教育
企业培训
最新更新
·教你制作可以随身携带的Fre
·FreeBSD5.3与Apa
·FreeBSD5.3 Apa
·初学者入门:FreeBSD系
·FREEBSD下搭建支持JS
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSDhandboo
·FreeBSD下Apache
·FreeBSDhandboo
·FreeBSD4.7 Qma
·FREEBSD升级及优化全攻

点击排行
·FreeBSD网站平台建设全
·初学者入门:FreeBSD系
·教你制作可以随身携带的Fre
·FreeBSD5.3 Apa
·FreeBSD5.3与Apa
·FreeBSDhandboo
·porttree更新
·FreeBSD命令lastc
·FreeBSDkernel编
·在FreeBSD5.0上配置
·FreeBSDhandboo
·FreeBSD命令lastc
·FreeBSD上的软件安装方
·FreeBSD中文化全攻略
·利用FreeBSD组建安全的
·FreeBSDhandboo
·在FreeBSD上运行Win
·FreeBSD与Linux的

FreeBSDFTP的架設
发布日期:2005-3-28  浏览:453次
关键字:

當你的FreeBSD安裝好後就內建FTP,只是預設不啟動它而已,有人覺得FreeBSD內建的ftpd太陽春,會另外用別的ftpd來取代,常見的替代方案有:proftpd,pureftp......等,不過要隨時注意更新,因為FTP程式常常被找到有安全漏洞。

1以FreeBSD內建的ftpd提供服務

一般說來,當你安裝好FreeBSD,FTP的服務程式/usr/libexec/ftpd就有了
只要修改一下/etc/inetd.conf,FTP服務就已經可以提供給有本機帳號的人使用

1-1打開FTP服務

FreeBSD系統的預設ftpd提供daemon模式(standalone)和由inetd啟動ftpd兩種方式
兩種方式比較起來,daemon的方式適合對同一時間連線使用多,負載較大的主機

1-1-1方法一:daemon模式(standalone)

1-1-1-1立即啟動ftpddaemon

如果只是要馬上啟動服務只要執行:

/usr/libexec/ftpd-D-l-l

參數說明:

  • -D:讓ftpd以daemon的方式啟動。
  • -l:叫syslogd記錄每次的連線,用兩次-l則可以連使用的動作都記錄
      -l要留下連線記錄還需要配合修改/etc/syslog.conf才會啟動記錄

ftpd還有很多的參數,可以manftpd查看。

1-1-1-2如何讓FreeBSD開機時自動啟動ftpd

如果只用前面的方法啟動ftpddaemon,下次系統重新開機後就沒了,為了讓它能自動啟動,我們可以把啟動指令放入/etc/rc.local中或是仿/usr/local/etc/rc.d的檔案,自己寫個ftpd.sh。

例一:

ee/etc/rc.local

在裡面放一行:

/usr/libexec/ftpd-D-l-l

例二:

仿/usr/local/etc/rc.d中的檔案,新增一個叫ftpd.sh的script:

ee/usr/local/etc/rc.d/ftpd.sh

裡面放入下面的內容:


#!/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/killallftpd>/dev/null&&echo-n'ftpd'
;;
*)
echo"Usage:`basename$0`{start|stop}">&2
;;
esac

exit0

存好檔後再更改一下檔案的權限,讓它可以執行:

chmod554/usr/local/etc/rc.d/ftpd.sh

這樣,當FreeBSD開機時就會自動啟動ftpd,也可以利用/usr/local/etc/rc.d/ftpdstop來停止服務,執行時要加什麼參數就修改ftpd_flag那行。

1-1-2方法二:由inetd來啟動ftpd

這種方式,想當然爾,就是要修改/etc/inetd.conf囉:

ee/etc/inetd.conf

先檢查一下/etc/inetd.conf中有沒有下面這行:

#ftpstreamtcpnowaitroot/usr/libexec/ftpdftpd-l

如果像上面那行一樣,開頭是井字號,表示現在FTP服務預設是被關閉的。井字號表示註解,不使用,只要把井字號去掉改成下面的樣子:

ftpstreamtcpnowaitroot/usr/libexec/ftpdftpd-l

存檔後執行下面的指令:

kill-HUP`cat/var/run/inetd.pid`

讓inetd重新抓取/etc/inetd.conf設定檔就好了

注意:上面的`是Esc鍵下面那鍋毛毛蟲的按鍵哦,可別打成單引號

1-2停止FTP服務

如果要停止FTP服務,看之前是以daemon模式啟動還是inetd模式啟動而有所不同。

1-2-1daemon模式

daemon模式可以執行下列指令來終止ftpd的程序:

killallftpd

如果之前是將ftpd放在/etc/rc.local中來由系統在開機時自動啟動,可以用下面的方法來停止自動提供FTP服務。

先打開/etc/rc.local來編輯,執行:

ee/etc/rc.local

將檔案中,執行ftpd那行的最前面加個井字號,儲存好即可。

1-2-2inetd模式

當初是以inetd模式來提供服務的,則要修改inetd的設定檔/etc/inetd.conf,並讓inetd重新讀取設定。

先打開/etc/inetd.conf來編輯,執行:

ee/etc/inetd.conf

將設定檔中,有ftpd那行的前面加上井字號後,儲存設定檔。

讓inetd重讀設定檔,執行下面指令:

kill-HUP`cat/var/run/inetd.pid`

如果要確認FTP服是否已經停止了,可以執行:

netstat-na

看看下面這行是不是已經消失了:

tcp400*.21*.*LISTEN

1-3限制使用者只能在自己目錄活動(chroot)

如果沒有特殊設定,使用者用自己的帳號FTP到主機後,可以自由的切換任意目錄的,如果不想讓它亂跑則要做以下設定。

1-3-1方法一:利用/etc/ftpchroot

FreeBSD的ftpd以/etc/ftpchroot來控制哪些人或群組要如何chroot,所以我們開啟/新增這個設定檔來編輯。

ee/etc/ftpchroot

在檔案裡面放入我們要管制的人或群組:

gsyan
foo
@staff

上面的設定使得gsyan,foo及屬於staff群組的人都只能在自己目錄活動。

說明:

小老鼠開頭的表示後面接的名稱為群組。

有方法可以只開放一個帳號不chroot其它全部chroot嗎?

最近FreeBSD內建的ftpd在/etc/ftpchroot又多了可設定的東東,如果manftpchroot可以看到說明,就表示可以使用下面的的設定來達到只開放部份帳號不鎖定在個人目錄的目的。

首先開啟/etc/ftpchroot來編輯:

ee/etc/ftpchroot

假設admin是管理員的帳號,讓admin可以在系統中到處游走,就裡面放入下面三行:

admin/
ftp.
@www

儲存好就可以用ftp連線看看,上面的設定有底下的效果:

  • 第一行設定:admin登入時會切換到/
  • 第二行設定:匿名登入時則保持原來的方式,只能在帳號指定的公用目錄活動。
  • 第三行設定:其它使用者則只能在個人目錄中的www資料夾中活動。

第三行應用在server有apache提供使用者放網頁,而apache設定UserDir=www時,以後只要告訴使用者:『請將做好的網頁直接用自己的帳號ftp到主機即可』,以前都要解釋半天,請他ftp後把網頁放到www資料夾,不過,記得先將使用者的www目錄先建立好,不然可是會連登入都無法登入哦!!

在FreeBSD4.8R以後的/etc/ftpchroot又新增了功能,詳細的設定可以manftpchroot(不過,之前的版本沒這鍋man)。

1-3-2方法二:利用/etc/login.conf

這個方法是利用使用者資料庫(系統密碼檔/etc/master.passwd)中loginclass的欄位,來設定使用者隸於的class,然後在/etc/login.conf中設定各class在FTPchroot的動作為何,在/etc/ftpchroot不方便設定時,適用於要處理很多人的狀況。

開啟/etc/login.conf來修改,執行:

ee/etc/login.conf

然後找到下面default:開頭的哪幾行,類似下面的內容:

default:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
...................略

加下面這一行:

:ftp-chroot:\

變成:

default:\
:ftp-chroot:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
...................略

然後執行下列這行指令,把login.conf轉成資料庫格式

cap_mkdb/etc/login.conf

這樣,所有的帳號都會做chroot,活動的範圍就限定在自己的目錄中。


想全部管制,但又想開放系統管理用的帳號不做chroot呢?

前面的方法我們設定的是default這個loginclass要做FTP的chroot,也就是所有人共同的設定,想讓系統管理可以到處游走,就設定一個系管的class,並且將ftp-chroot的屬性去掉即可達到部份開放的目的。

開啟/etc/login.conf新增系管的loginclass叫admin,並加入ftp-chroot為否的設定:

ee/etc/login.conf

新增下面幾行(注意藍色的部份),注意:除了前面defaults:下的ftp-chroot部份,我們在下面另外新增一個loginclass叫admin:


default:\
:ftp-chroot:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
...................略

admin:\
:ftp-chroot@:\
:tc=default:

...................略

然後執行下列這行指令,把login.conf轉成資料庫格式:

cap_mkdb/etc/login.conf

注意:上面在admin這個class中用的是:

:ftp-chroot@:\

ftp-chroot多了個小老鼠哦!它代表這個值要相反的意思,也就不做ftp-chroot。

再來,我們要告訴系統,誰屬於admin這個loginclass,直接修改帳號資料庫,執行

vipw

修改管理員(不做chroot)的loginclass為admin

例如:

假設系統管理員gsyan原來的帳號資料是:

gsyan:*:1000:1000::0:0:大雄:/home/gsyan:/bin/tcsh

要將它的loginclass修改為admin,就改為下面的樣子:

gsyan:*:1000:1000:admin:0:0:大雄:/home/gsyan:/bin/tcsh

都修改完了就儲存檔案,利用FTP軟體以不同身份登入測試看看。

說明:

FreeBSD中/etc/master.passwd密碼欄位依序為:

帳號名稱:密碼:UID:GID:class:強制換密碼的時間:有效時間:資料:家目錄:shell

所以要改的loginclass是第五個欄位。

關於密碼檔的格式可以man5passwd查看

將不同身份的使用者分為幾個loginclass,並利用/etc/login.conf來設定各身份能夠使用的系統資源是滿不錯的管制工具,非常值得好好的研究,詳細的內容可以manlogin.conf

1-4提供匿名(訪客用)的FTP服務

讓在系統中沒有帳號訪客可以下載FTP站中的檔案,這種叫匿名的FTP服務(AnonymousFTP),要提供這種服務必須有一個叫ftp的帳號並建立好相關的目錄及檔案,這部份如果不清楚,利用/stand/sysinstall來做是最輕鬆不過的。底下是設定的步驟:

1.呼叫/stand/sysinstall,執行:

/stand/sysinstall

2.當出現安裝點單『/stand/sysinstallMainMenu』,按方向鍵移到『Configure』,然後按空白鍵

3.進入到『FreeBSDConfigurationMenu』後,按方向鍵移到『Networking』,然後按空白鍵

4.進入到『NetworkServicesMenu』後,按方向鍵移到『AnonFTP』,後按空白鍵

5.進入到『AnonymousFTPConfiguration』後,輸入下面的資料:

6.輸入完畢後就按OK

7.接著輸入FTP的GID(使用預設值,直接按Enter鍵就可以)。

8.接著,詢問是否要產生進站歡迎詞(welcomemessage),直接按Enter鍵就可以。

9.輸入進站的歡迎詞:

10.編輯完好後按Esc鍵,再按Enter鍵兩次即可存檔離開。

11.接著都選點單最上面的Exit即可。

关键字:

相关信息 用户评论
·教你制作可以随身携带的FreeBSD系统
·FreeBSD5.3与Apache2.0建立列目录
·FreeBSD5.3 Apache ssl认证
·初学者入门:FreeBSD系统的安装与优化
·FreeBSD下Apache2.0运行模型分析及性能调整
·FreeBSDhandbook中文版12存储
·FreeBSDhandbook中文版10安全
·FreeBSDhandbook中文版15串口通讯
·FreeBSDhandbook中文版14声卡
·FreeBSDhandbook中文版11打印(1)基本设置
·FreeBSDhandbook中文版11打印(1)基本设置
·FreeBSDhandbook中文版11打印(2)高级打印机设置A.过滤器
·FreeBSDhandbook中文版11打印(2)高级打印机设置B.Header
·FreeBSDhandbook中文版8用户和基本的帐户管理
·在FREEBSD5中使用MRTG画出Packet图表
·FreeBSDhandbook中文版5XWindow系统
·FREEBSD下搭建支持JSP的WEBSERVER
·FreeBSD4.7 Qmail Mysql Vpopmail QmailAdmin Sq

 

更多评论

验证码:
验证码