[FreeBSD 10]_FTP 架設範例 NCKU CSNA HW03-1

今天的文章,嘿嘿嘿…就是要在FBSD架上古時代的FTP…

然後筆記下一些進階的技巧,並且完成以下事情:

Requirements
1.Anonymous login

•Root directory: /home/ftp
•Can upload files and create directories. Deleting or modifying files is not permitted.

2.Normal user login

•Root directory: /home (must contain public and user’s home directory)
•Privilege: full access for /home/public and user’s home directory

 

 

FBSD基本上已經內建一個FTPD的基本款FTP,如果要強的功能請裝VSFTP,不過上面的需求FTPD就可以搞定一切了

首先先要開啟FTP,可以用STANDALONG或者inetd的方式開啟,這兩個的區別在於STANDALONG是一直保持FTPD在記憶體中常駐著

inetd的方式是讓inetd去LISTEN PORT,有要求送入對應PORT再去HOOK把對應服務叫起來

詳細的說明參考:http://mail.lsps.tp.edu.tw/~gsyan/freebsd2001/srv_ctrl.html 以及 https://www.freebsd.org/doc/zh_CN/books/handbook/network-inetd.html

 

1.這裡因為FTP需求不大,所以用後者來完成,如果你還沒有開啟inetd的人,

請去/etc/rc.conf加入一行:inetd_enable=”YES”,然後重開機

 

2.啟動inetd之後,編輯inetd的設定檔,在/etc/inetd.conf

大概在第九行的地方把ftp的comment拿掉,我這裡只拿v4的,如果你要一併listen來自v6的要求,一樣拿掉下一行tcp6的就可以了

# $FreeBSD: release/10.0.0/etc/inetd.conf 251794 2013-06-15 20:29:07Z eadler $
#
# Internet server configuration database
#
# Define *both* IPv4 and IPv6 entries for dual-stack support.
# To disable a service, comment it out by prefixing the line with '#'.
# To enable a service, remove the '#' at the beginning of the line.
#
ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l
#ftp    stream  tcp6    nowait  root    /usr/libexec/ftpd       ftpd -l
#ssh    stream  tcp     nowait  root    /usr/sbin/sshd          sshd -i -4
#ssh    stream  tcp6    nowait  root    /usr/sbin/sshd          sshd -i -6
#telnet stream  tcp     nowait  root    /usr/libexec/telnetd    telnetd
#telnet stream  tcp6    nowait  root    /usr/libexec/telnetd    telnetd
#shell  stream  tcp     nowait  root    /usr/libexec/rshd       rshd

 

3.重新讓inetd reload:

# kill    -HUP    `cat /var/run/inetd.pid`
或者

# /etc/rc.d/inetd rcvar

然後檢查服務是否被正確listen
# netstat -na

如果有看到
tcp4 0 0 *.21 *.* LISTEN

就ok

》開始配置需求的第一點:

Anonymous login

•Root directory: /home/ftp
•Can upload files and create directories. Deleting or modifying files is not permitted.

 

1.新增匿名登入的帳號ftp,可以用ftp或者anonymous這兩個名稱當作ftp的匿名登入帳號名稱(系統自動會去帶入)

# pw adduser ftp
# mkdir /home/ftp
# chown ftp:ftp /home/ftp

基本上/home/ftp如果你沒動system mask,預設權限是755,所以對匿名使用者來說可以w(第一欄的user權限),但在刪除的時候會看第三欄的user權限,所以自然就殺不掉啦~

所以就完成需求第一點

 

 

》開始配置需求的第二點:

Normal user login

•Root directory: /home (must contain public and user’s home directory)
•Privilege: full access for /home/public and user’s home directory

 

1.新增一個public資料夾在/home底下命名為public,然後權限777(如果你不想要別的使用者可以刪除別人的資料就是755摟)

# mkdir /home/public
# chmod 777 /home/public

 

2.把user登入目錄調整到/home底下,新增且編輯/etc/ftpchroot,假如你的User是SA103,則內容是

SA103 /home
@FTPUSER /home #這代表FTPUSER群組登入之後限制在/home資料夾為最上層

 

需求第二點就可以配置完成啦~

 

以上,很陽春的FBSD內建FTPD簡單示範,詳細可以參考文末引用來源

 

 

 

thx for:

http://wiki.weithenn.org/cgi-bin/wiki.pl?FTP-%E5%88%A9%E7%94%A8%E5%85%A7%E5%BB%BA%E7%9A%84_Ftpd_%E4%BE%86%E6%8F%90%E4%BE%9B_FTP_%E6%9C%8D%E5%8B%99

http://mail.lsps.tp.edu.tw/~gsyan/freebsd2001/ftp.html

http://www.twbsd.org/cht/book/ch15.htm

Leave a comment

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料