プロが教えるわが家の防犯対策術!

YamahaRT54iというブロードバンドルータを利用しております。
このルータのパケットフィルタリング設定項目に、
インターネットからローカルネットワークへの、送信元ポートが20番のものについては、通過を許可するという設定があります。
これはつまりftpの設定で、ftpでパッシブモードではなくアクティブモードで通信する場合、ファイル転送用の通信路としてftpサーバーの20番ポートからクライアントであるこちら側へ経路が張られるから、これを許可しないと暗黙のdenyによってはじかれてしまいftp通信がうまくいかなくなることへの回避策なのですが、
これがオンにされることでどうしてftp通信がうまくいくのか理解できません。
というのもローカルネットワークはルータのNATによって隠蔽されているはずで、たとえローカルネットワークへのftpdata通信を許可したところで、送信先のローカルアドレスがわからないはずであり、したがって通信が成立するはずがないのですが、しかし実際にはうまくいきます。
例えばローカルネットワーク内でWebサーバーを運用した場合、ルータにてルータの80番ポートへのアクセスをWebサーバー機に転送するポートフォワーディングを設定しなければ通信がうまくいきません。しかしftpに関してそのような設定は一切行っておりません。にもかかわらず通信がうまくいくのはどうしてなのでしょうか?
説明が下手でわかりにくいでしょうが、よろしくお願いします。
長々と失礼しました。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

試してみました。

確かにポート20からの通過を許可する静的フィルタ設定のみでNATを通過しますね。本来そのようなことは発生しないはずですので、ファームウェアがftpを知っていてftpdataポートを特別扱いしているものと解する他はないかと思います。

  Release note for YAMAHA NetVolante RTA54i
  http://www.rtpro.yamaha.co.jp/RT/docs/relnote/RT …

のリビジョンRev.4.05.14(最新)のリリースノートの中に

「[12] NAT/IPマスカレードで、FTPとして認識するポート番号を設定できるようにした。」(nat descriptor ftp port DESC PORT [PORT...])

というものがあります。この設定のデフォルト値は21と書いてあるのですが、試しに

  nat descriptor ftp port 200 22 (注:ディスクリプタ番号200は、RT54iのWANポート側のデフォルトディスクリプタ番号)

と設定するとコマンド設定一覧にnat descriptor ftp port 200 22が表示され、ftpでftpdataを使った転送(dirコマンドの実行等)ができなくなります。

  nat descriptor ftp port 200 21

を実行するとコマンド設定一覧にnat descriptor ftp portが表示されなくなり、再度ftpdataを使った転送ができるようになります。

ですので、この機能は標準でオンになっており、NATはポート21の通信(特にPORTコマンド)を、言わば勝手に監視し、動的フィルタと同じ動作をしているものと考えられます。
    • good
    • 0
この回答へのお礼

疑問が解けました。ありがとうございます。
このftpとして監視するポートを指定する機能、最新のリビジョンで搭載されたそうですが、それ以前からftpに関しては前述のフィルタリング設定をオンにすることで何も問題はありませんでした。
ということはこのftpポートを監視するという機能自体は、最新のリビジョンで新たに搭載されたものではなくて、もとからあったものなのですね。それで、最新のリビジョンではそのポートを指定できるようになった、ということなのですね。

お礼日時:2005/10/22 11:09

> この機能はルータなら大概はもっているものなのでしょうか?



具体的な製品知識はありませんが、NATルータならば大概持っていると思います。少なくともRT54i特有というような機能ではありません。
NATとFTPの相性の悪さは昔から有名な問題です。

> 何か名称はついていないのでしょうか?

知りません。多分一般的に通じる名称はないと思います。
より深く勉強したいということであれば、LinuxのIPマスカレードや、そのFTPについての拡張である"ip_masq_ftp"について調べるのが良いと思います。
    • good
    • 0
この回答へのお礼

追加情報ありがとうございます。
"ip_masq_ftp"なるものの存在を初めて知りました。次の休みのときにでもいろいろといじってみようと思います。

お礼日時:2005/10/23 10:25

アクティブモードの場合は、クライアントからサーバに対して、必ずPORTというコマンドが送られます。


PORTコマンドにはデータ接続で使うためのポート番号の情報が含まれます。
ルータはこれを解釈して、そこに書いてあるポートを一時的に開けます。このPORTコマンドには当然コマンドを発行したクライアントのアドレス(この場合ローカルアドレス)も記述されてます。
ですから、ルータは誰のために一時的にポートを開けたのか知っているわけです。
    • good
    • 0
この回答へのお礼

なるほど!ありがとうございます。疑問が解けました。
すみません。ちょっと質問なのですが、この機能はルータなら大概はもっているものなのでしょうか?また、何か名称はついていないのでしょうか?

お礼日時:2005/10/22 11:11

内容がよくわからない部分もあるのですが、



FTPサーバはインターネット側にあるんですよね。
(「インターネットからローカルネットワークへの、
 送信元ポートが20番のものについては...」からも
 そう思いますし。)

そして、例で出されたWebサーバはLAN側にあるんですよね。

であれば、FTPがうまくいくのは、LAN内からインターネット上の
Webサーバにアクセスが可能であることと同じ理屈では
ないでしょうか?

もし、インターネットからローカルネットワークへの、
送信元ポート80番を「拒否」したら、インターネット上の
Webサーバにはアクセスできないです。

NATしててもインターネット上のサーバへのアクセスが
可能なのは、NATしているルータが、送信元のIPとポート番号、NAT後のIPアドレスとポート番号などを覚えていて
リプライが来たら再度送信元に変換するので問題ないです。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
自分で読み返しても理解しがたいひどい質問文でした。お詫びします。
ご存知かと思いますが整理のために書きます。ftpのアクティブモードでの通信は、まずNATの内側のPCクライアントから、NATの外側つまりネット上のftpサーバーの21番ポートへ向けてコネクションが張られます。しかしこのコネクションは制御用で、実際にデータの送受信に使われるのはこのコネクションではなく、最初のコネクションが張られたあとに今度はftpサーバー側の20番ポートからクライアント側へコネクションが張られ、これがデータ送受信に使われます。これは通常のNATの内側から外側への通信とは決定的な違いあって、通常の通信であればコネクションが内側から外側へ張られ、以降の通信はそれのみを使って行うのですが、ftpの場合はそうではなく、内側から外側へ張られたコネクションとは別に、外側から内側へ張られるコネクションがあります。
seiiiichiさんがおっしゃるように、通常の通信であれば、NATの内側のあるPCをAとすると、Aの1024番ポートからgoogleの80番ポートへ通信パケットが発生し、このパケットがルータに到達した時点でルータはパケットの送信元アドレスをグローバルIPに、送信元ポートをランダムなものに書き換えます。そして書き換える前のパケットの送信元アドレス・ポート、書き換え後のポート、送信先のアドレス・ポートを記録します。そしてパケットがgoogleに届き、googleからのリプライが返ってきたとき、送信元アドレス・ポートが元パケットの送信先アドレス・ポートと一致し、送信先ポートが上記で書き換えたランダムなものと一致すれば、そのパケットの送信先アドレスをAのアドレスに、送信先ポートを1024に書き換えてNATの内側へ流します。これなら通信がうまくいくことは納得できます。しかしftpサーバーの20番ポートからAへのコネクションについては、発生元が外部からですから、ルータは記録を行っていないのです。つまり、サーバーの20番ポートからクライアントのランダムなポート番号へコネクションを張ろうとしてもルータにはその記録はないので、このパケットは破棄されるはずです。ということはftpに関して特例的な機能があるはずなのですが、説明書その他を調べてもそういった記述はないのです。ですから、疑問に思い質問した次第でした。

お礼日時:2005/10/21 10:01

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QルーターにてFTPポート開放設定(ポートマッピング)時のポート番号のつけ方

こんにちは
自宅LANにパソコン(192.168.0.5)とNAS(192.168.0.6)がありルーター経由でWANとつながっています。
現在ルーターにて192.168.0.5のポート20、21を開放する設定をしておりWAN側からFTPクライアントで自宅パソコンの共有フォルダにアクセスできています。
ここで更にWAN側からNASにもアクセスしたいのですが、WAN側から192.168.0.6に接続するには何番のポートを開放すればよいのでしょうか?(FTPのWell Known Portである20、21は既に使っていますので何番ポートを使えばいいのかが分かりません)

よろしくお願いします。

Aベストアンサー

NASがファイル共有に使ってるポートを割り当てるのですが、
NASはFTPでファイル共有しているのでしょうか?

その場合NASのポートかPCのFTPサーバのポートどちらかを変更して、
ポートが重ならないようにするだけでは駄目なんでしょうか?

FTPクライアントソフトでポート指定して接続させる事は可能なはずですから

QFTPサーバのPassiveポートが変わる

Windows2003 Serverにて、IIS,SMTP,POP3,FTPサービスを起動し、
サーバはグローバルIPを取得してWebを公開して利用しています。

今までFTPをPORTモードでしか使っておらず、今回、PASVモードでも使えるように
しようとして「PassivePortRange」を「10000-11000」と設定しました。
サーバと同じセグメントにあるLANのPCからはPROTモードでもPASVモードでも
接続(上記設定のPassivePrtRange内のポートで接続)して利用できるのですが、
WAN側からはPORTモードでしか接続できません。
クライアントではFFFTPを利用していますが、WANからPASVモードで接続しようとすると、
サーバ接続まではできた後、リスト取得時のPASVコマンド発行後に帰ってくるサーバからの
ポート番号が、上記設定内のポート番号とは程遠い(60000番台)が帰ってきてリスト取得に
失敗していまいます。

ルータはYAMAHAのRT58iを利用し、グローバルIPでのサーバ参照は
IP mascaradeを設定して公開しています。
サーバ側の設定はLANで設定したポートで接続できているので問題ないと思われ、
ルータの設定のフィルタ設定が悪いのだと思いますが、どこが悪いのか、
どう設定すれば良いのかが分かりません。
どなたか、分る方がいらっしゃいましたら教えてください。
よろしくお願い致します。

Windows2003 Serverにて、IIS,SMTP,POP3,FTPサービスを起動し、
サーバはグローバルIPを取得してWebを公開して利用しています。

今までFTPをPORTモードでしか使っておらず、今回、PASVモードでも使えるように
しようとして「PassivePortRange」を「10000-11000」と設定しました。
サーバと同じセグメントにあるLANのPCからはPROTモードでもPASVモードでも
接続(上記設定のPassivePrtRange内のポートで接続)して利用できるのですが、
WAN側からはPORTモードでしか接続できません。
クライアントではFFFT...続きを読む

Aベストアンサー

ルーターがFTPのポートのパケットの内容を監視して、Passiveモードの時にポート番号を書き換えているのでしょう。

http://www.rtpro.yamaha.co.jp/RT/manual/rt58i/Cmdref.pdf
のコマンドリファレンスの129ページ、「FTPとして認識するポート番号の設定」で、デフォルトでは21番ポートを監視する設定になっていることが判るかと。
無効にする設定があるのかどうか不明ですので、この監視ポートを別の未使用なポートに振り直してしまうというのはどうでしょうか?

QVPN接続でVPNから先のサーバーに到達できない。

PC 特に、通信関係に関しては、素人同然のものです。

会社のサーバーに自宅からアクセスしようと、VPN 接続を試みています。
VPN そのものは接続を確認できたのですが、VPN から先、つまり、会社のサーバー (IBM System i) に到達できません。
( 当然ですが ping も通りません )
会社の他の同僚は、問題なく使用できているのですが、私のところだけつながりません。

念のためですが、VPN そのものは接続できています。
その先にあるサーバーにアクセスできないのです。
言わずもがなですが、自宅の PC で、通常のネット環境には問題はありません。
インターネットも、メールも問題なく動作しています。


この場合、System i に到達できない理由として、どのような事が考えられるのでしょうか?

ちなみに、会社側のルーターは、以前、別のルーターを使用していたのですが、その時は、問題なく使用できていた、という実績があります。
その時と、自宅環境は変わっていないはずです。( 少なくとも意識して変更した事はありません )

素人考えでは、なんらかの、アドレスの指定が重複しているのでは??
と考えているのですが、デフォルト・ゲートウェイとか、IP アドレスとか、自宅側のルーターのアドレスだとか、そのあたりではないかと思っているのですが
下手に変更すると、ネットそのものに繋がらなくなくなってしまいます。

変更するにしても、一箇所だけではなく、何箇所か整合性をとって変更する必要があるかと思いますが、詳しいところまでは知らないので、苦労しています。
御存知の方がおられたら、お教え頂けませんでしょうか?

冒頭述べましたように、当方、パソコン、特に、通信関係に関しては、ほぼ、素人同然です。
他に、似たような質問も見かけたのですが、少し、難しくて理解できませんでしたので、質問させて頂きました。

一応、環境の説明をしておきます。

●自宅のPC
(メーカー) ショップメイド
(OS) Windows XP Professional Version 2002 Service Pack 3
●自宅のルーター・通信回線
(通信回線) NTT Bフレッツ
(ルーター) NEC RV-230NE
(プロバイダー) BIGLOBE
●会社のルーター
(ルーター) Buffalo BHR-4GRV
●会社のサーバー
IBM System i ( AS/400 )

尚、現状、自宅のネット環境は、私が知りえる範囲で以下の通りです。

< VPN 接続前の ipconfig コマンドの結果 >
Ethernet adapter ローカル エリア接続:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1


< VPN 接続後の ipconfig コマンドの結果 >
Ethernet adapter ローカル エリア接続:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1

PPP adapter XXXXX:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.8
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 192.168.1.8

( PPP adapter XXXXX の部分は、VPN 接続先の会社側のものかと思います。XXXXX は会社名なので伏せさせて頂きました)

VPN 接続した状態で、サーバー IBM System i のアドレス 192.168.1.201 に対して ping コマンドを発行すると
C:\>ping 192.168.1.201

Pinging 192.168.1.201 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.1.201:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

以上のように、timed out となってしまいます。

また、補足情報ですが、会社側のルーターの設定で、ルーターのデフォルト・ゲートウェイが、私の自宅と同じ、192.168.1.1 であり、これが原因ではないかと思い、192.168.1.150 に変更しました。
しかし、結果は、何も変わりませんでした。
他の同僚については、問題なく繋がっています。

以上です。
長文になってしまいましたが、何卒、宜しくお願い致します。

PC 特に、通信関係に関しては、素人同然のものです。

会社のサーバーに自宅からアクセスしようと、VPN 接続を試みています。
VPN そのものは接続を確認できたのですが、VPN から先、つまり、会社のサーバー (IBM System i) に到達できません。
( 当然ですが ping も通りません )
会社の他の同僚は、問題なく使用できているのですが、私のところだけつながりません。

念のためですが、VPN そのものは接続できています。
その先にあるサーバーにアクセスできないのです。
言わずもがなですが、自宅の PC で、通常...続きを読む

Aベストアンサー

自宅とVPN接続先(会社)サブネットが同じ 192.168.1.0/24 なのでこのような結果になってしまいますね。

対応としては、
(1)自宅のネットワークを 192.168.1.0/24 以外にする
(2)VPN接続後にルーティング情報を追加する
になると思います。

(1)が可能であればこちらの方がいいですね。

(2)は 192.168.1.201 のサーバのみに接続出来ればいいのであれば以下のコマンドをVPN接続が確立した後に実行します。

route add 192.168.1.201 mask 255.255.255.255 192.168.1.8 metric 1 if xxx

xxxは route print コマンドで出てくるVPN接続のインターフェースIDです。
(if以降は無くてもいいかもです)
192.168.1.8の部分も接続時に可変となる可能性がありますのでその都度「PPP adapter XXXXX:」側のIPアドレスに合わせます。

これで 192.168.1.201 だけならば接続出来ると思います。
複数のサーバに接続が必要ならばその分このコマンドを実行する必要があります。

毎回毎回VPN接続時に入力が必要なので可能なら(1)ですね。

自宅とVPN接続先(会社)サブネットが同じ 192.168.1.0/24 なのでこのような結果になってしまいますね。

対応としては、
(1)自宅のネットワークを 192.168.1.0/24 以外にする
(2)VPN接続後にルーティング情報を追加する
になると思います。

(1)が可能であればこちらの方がいいですね。

(2)は 192.168.1.201 のサーバのみに接続出来ればいいのであれば以下のコマンドをVPN接続が確立した後に実行します。

route add 192.168.1.201 mask 255.255.255.255 192.168.1.8 metric 1 if xxx

xxxは route print コマン...続きを読む

QVPN接続後Pingが通らない。

現在以下の内容をローカルで繋いてリモートアクセスのVPNテストを行っています。

PC1→(LAN2)YAMAHARTX1200(LAN1)→PC2

PC1にYMS-VPN7をインストールしました。

VPNを接続する前にPC1からPC2へPingをすると応答はOKなのですが、

その後PC1からリモートアクセスでVPN接続すると、Pingが通らなくなります。

ファイアーウォールは特に設定していません。

原因が分かる方がいらっしゃいましたら教えていただけますでしょうか。

宜しくお願い致します。

Aベストアンサー

VPN通信を設定すると、別途ファイアーウォール設定にて、LAN内の1台及び全てに対して、ポート開放しないと、外部とは、個別VPN通信できません。
TTPT用、IPsec用ポートをそれぞれ開放しておく事で、以前どおり、通信可能になります。
YAMAHAで、サポート説明して頂けます。

QDHCPサーバやFTPサーバをWindows上で簡易的に作りたいです

Windows7上で、簡易的なDHCPサーバやFTPサーバを立てて、クライアントPCにIPを割り振ったり、ファイルサーバをしてみたいですが、簡単で品質良いフリーソフトや安価シェアウェアでお薦めなアプリはございますか? またそのアプリについて設定方法が書かれてるページがあれば教えて下さい。

Aベストアンサー

メジャーな物は、BlackJumboDog ですね。
http://www.forest.impress.co.jp/library/software/blackjmbdog/
>Webサーバー、メールサーバー、プロキシーサーバー、FTPサーバー、DHCPサーバー、DNSサーバーの機能を備えたサーバーソフト。
最近は使ってませんが、Windows95時代はよくお世話になりました。


人気Q&Aランキング