0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[FTP] vsftpdでRFC959と異なる挙動をした話

Posted at

背景

今はほとんど使われていないとされているFTPですが、
ふとどのようなパケットの送受信が行なわれているのか気になったのがきっかけです。

実行環境

  • Mac
    • Virtual Box
      • CentOS7
      • vsftpd v.3.0.2

FTPサーバー構築手順等は割愛します。

実通信の確認

実際にFTPの通信を見ていきます。
今回はアクティブモードで実行しました。
クライアントとサーバーは次のIPとなっています。

  • FTPクライアント(= Mac) : 192.168.1.5
  • FTPサーバー(= vsftpd) : 192.168.1.8

無事パケットキャプチャが取れて一安心、と思いきや…

次のパケットキャプチャはFTPサーバーのデータのダウンロードに用いられる、RETRコマンド実行時のものです。
vsftpd_retr_active.png
あれ、、、

RFC959では以下のようになっています。

7.  TYPICAL FTP SCENARIO

   User at host U wanting to transfer files to/from host S:

   In general, the user will communicate to the server via a mediating
   user-FTP process.  The following may be a typical scenario.  The
   user-FTP prompts are shown in parentheses, '---->' represents
   commands from host U to host S, and '<----' represents replies from
   host S to host U.

      LOCAL COMMANDS BY USER              ACTION INVOLVED

      ftp (host) multics<CR>         Connect to host S, port L,
                                     establishing control connections.
                                     <---- 220 Service ready <CRLF>.
      username Doe <CR>              USER Doe<CRLF>---->
                                     <---- 331 User name ok,
                                               need password<CRLF>.
      password mumble <CR>           PASS mumble<CRLF>---->
                                     <---- 230 User logged in<CRLF>.
      retrieve (local type) ASCII<CR>
      (local pathname) test 1 <CR>   User-FTP opens local file in ASCII.
      (for. pathname) test.pl1<CR>   RETR test.pl1<CRLF> ---->
                                     <---- 150 File status okay;
                                           about to open data
                                           connection<CRLF>.
                                     Server makes data connection
                                     to port U.
      
                                     <---- 226 Closing data connection,
                                         file transfer successful<CRLF>.
      type Image<CR>                 TYPE I<CRLF> ---->
                                     <---- 200 Command OK<CRLF>
      store (local type) image<CR>
      (local pathname) file dump<CR> User-FTP opens local file in Image.
      (for.pathname) >udd>cn>fd<CR>  STOR >udd>cn>fd<CRLF> ---->
                                     <---- 550 Access denied<CRLF>
      terminate                      QUIT <CRLF> ---->
                                     Server closes all
                                     connections.

引用元 : ftp://ftp.rfc-editor.org/in-notes/rfc959.txt

原因は時間あるときに探ってみたいと思います。
原因わかる方いらっしゃいましたらコメントいただけると嬉しいです。

一先ず新しくVM(Windows 10)を作成&3cdaemonでRFC通りのフローを確認できたのでここまでとします。
(IP等は上記と同一ではありませんのでご了承ください)
3cdaemon_retr_active.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?