2012年10月12日 星期五

基於嵌入式系統實現linux中busybox內建的ftpd支援IPv6協定


研究背景
雖然IPv61994年就已被IETF指定作為IPv4的下一代標準,但卻仍未普及,為了避免系統的轉換陣痛,是否先來適應一下各種網路協定的通用性,所先先來看看FTP


研究動機
於嵌入式系統ARM 6410,Linux中實現基於IPv6FTP 傳輸模型

研究目的
        使用busybox內建的ftp server來實現基於 IPv6 FTP協定,並達成下列四項主要功能
1.      帳號與密碼登入
2.      訪問目錄結構及文件列表
3.      上傳及下載檔案
4.      新增目錄及刪除目錄或檔案
       
研究方法
使用BusyBox v1.19.4 內建的ftpd ,發現Anonymous FTP server這句(如圖1-1),表示僅提供匿名登入使用,且無法單獨使用ftpd 指令,必需搭配使用inetdtcpsvd二種方法來使用,因此確認無法使用帳號密碼登入了.


(1-1)

方法1:使用inetd來管理ftpd
/etc/inetd.conf 新增內容 21 stream tcp6 nowait root ftpd ftpd -w /ftpd_dir,一般而言網路上的文章都是教大家使用tcp而不是tcp6.這是重點,因為tcp6向下相容tcp,所以別再使用tcp.請改用tcp6。執行指令inetd即可,可以使用netstat -npl觀察ftp server有沒有啟動。如果沒看到可以檢查看看inetd是否有執行。

方法2:使用tcpsvd
執行tcpsvd :: 21 ftpd -w /ftpd_dir &。這裡又有一個重點,網路上寫的都是tcpsvd 0 21 ftpd -w /ftpd_dir &。這樣只可以支援ipv4,所以不要使用0,請改成::這樣子不論是IPv4IPv6都可以使用哦。

結論與建議
該下結論了,看來使用busybox內建的ftpd 除了第一個條件(帳號與密碼登入)無法達成外,還算是不錯的選擇,不過帳號與密碼登入好像是以經是必要的功能了.不然誰都可以登入.那多不安全啊.看來下次要研究一下其他的ftp軟體是否可行了.還有幾個候選的名單,oftpd,vsftpd,pure-ftpd,proftpd,wu-ftpd,glftpd等等,下一次預計研究vsftpd

沒有留言: