BLOGTIMES
2011/01/17

iptablesのnatででftpのPASVモードを通す

  ftp  iptables 
このエントリーをはてなブックマークに追加

以前にiptablesでNATを組んでいたんですが、なぜかFTPのパッシブモード(PASV)が通らなくて困ってしまいました。デバッグモードで通信を眺めてみるとコントロールコネクションは開くのですが、データコネクションが開かないようです。これはどうもNATの設定が怪しいとしか思えないので、いろいろググって調べてみたところ、ちょうど下記のエントリを見つけました。この手順に従って2つのモジュールをロードしたところ正常に通信できるようになりました。

iptablesでftpを通す

iptablesでFTPを通すには20番ポートと21番ポートをあけるだけではpassive modeのFTPはうまく通してくれません。ip_conntrack_ftpとip_nat_ftp二つのモージュールをロードする必要があります。(ip_nat_ftpは必須ではないかも・・・)
[root@www etc]# modprobe ip_conntrack_ftp [root@www etc]# modprobe ip_nat_ftp

さらに設定が消えないようにに下記の定義を追加しました。

/etc/sysconfig/iptables-config

IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"

考えたらFTPは相手先にIPやポートを直接通知しちゃうので、その部分を強制的に書き換えてあげる必要があるんですね。
このあたりの事情はiptablesチュートリアルの「複雑なプロトコルとコネクション追跡」あたりを読むとよくわかります。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4016
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン