2014年02月02日

外部からNASへFTPとRTX

詳しくないんで,間違ったことを書いている可能性がありますので,気がつかれた方は是非コメントで教えて下さい.

ルータはYamahaのRTX810を想定してます.例を挙げてるだけです.pp select 1は省略


まずFTPでは,クライアントからサーバのポート21にアクセスされる.
この時点でログインが成される.ここでは,FTPを繋げるための制御コネクションが形成されるだけなので注意.
よって,FTPクライアントからログインが成功しない場合は,
1.サーバの制御コネクションポート(通常21)に通信できていない
2.クライアントのログイン情報が正しくない
の二つになるかと.
1の場合,ルータかNASの設定にミスがある.

ルータの場合,NAPTや静的IPフィルタに問題があるのではないだろうか
1.NAPTで外側と内側のポートマッピングが出来ているか?
nat descriptor masquerade static 1000 7 192.168.100.234 tcp 21
2.静的IPフィルタで外からのアクセスを許可しているか?
ip filter 200006 pass-log * 192.168.100.234 tcpflag=0x0002/0x0017 * 21
ip pp secure filter in 200006
ここで,tcpflag=0x0002/0x0017は,SYNだけを通すらしいですよ.よくわかりません.
http://webdev.seesaa.net/article/242186304.html
最初はtcpflag=0x0002/0x0017をtcpにして通ることを確認してから,最後にSYN設定にした方がいいかも.
以上で,NASにコネクションは通るはずなのです.多分


で,コネクション確立後に,データコネクションが始まります.FTPでは,ポートモードとパッシブ(PASV)モードが.
このへん良く分からんのですが,
・ポートモードでは20を使用.サーバからセッションを張ろうとするので,クライアント側のルータのNAPTと動的フィルタリングで…もにょもにょ…上手くいかない場合が多い?
・PASVモード:使用するパッシブポート範囲はNASが指定し伝え,そこにクライアントからセッション貼るので,クライアント側のNAPTは通る.ルータ側のNAPTが設定できれば上手くいく.

PASVモードのみを考えます.
外から中へ,パッシブポートが動的に変化する通信なので,多分2つの方法があります.
1.パッシブ範囲をNAPTで常時公開する.(動くと思うけどやったことない)
2.YAMAHA様に任せる.*これで説明
ip filter dynamic 200020 * 192.168.100.234 ftp
ip pp secure filter in 200006 dynamic 200020
これでうまくいくと思います.



**上手くいかずに失敗したのをつらつらと
制御ポ−トを21ではなく23421にしたところ,PASVの後のリスト取得が出来なかった.
227 Entering Passive Mode (192,168,100,234,217,9)
のあと,Timeoutしました.
ここで,217,9がPASVポートで,217*256+9=55552+9=55561となります.

内部IPを吐いてることが原因かもしれないですが,
FileZillaでは,代わりにサーバのアドレスを使用してくれるらしいので多分そこでは無い.
また,FTPデーモンによっては外側IPを吐くように設定できる場合もあるようですが,KURO-N4B2ND4ではそのような設定がありません.
試行錯誤した結果,制御コネクションを21以外にするとFTPと認識せずに動的フィルタを適用できないのではないかと思いつき,ポートを21に変更したところ,上手く動きました.

PASV後に上手くいかない場合は,ポートを21にしてはいかがでしょう.
posted by にゃんこ at 20:35| Comment(0) | TrackBack(0) | NAS
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/86557041
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック