Top過去ログ目次掲示板

作成日:2006年03月19日 作成:おやじ
掲示板で過去に質問された内容です。

No.5754 ftps設定について。


No.5754 投稿時間:2006年03月19日(Sun) 19:45 投稿者名:うじき URL:
タイトル:ftps設定について。

はじめまして、質問させて頂きます。
今現在、ftpサーバ(windows)を自宅で稼動しており、もう一
つftpサーバを設置したいと考え、debianでftpサーバをproftpd
で稼動しております。起動はinet経由でしております。

ssl経由で接続を行いたいと思い、設定を行いました。
smartftpを使い、LAN内のIPアドレス(ポート21)でPORT
モードで接続を行ったところ、問題なく通信できております。

ただ、WAN側からの通信が接続できておりません。デフォルト
から設定を変更したproftpd.confの内容は下記の通りです。
<IfModule mod_tls.c>
TLSEngine on
TLSProtocol SSLv23
TLSLog /var/log/proftpd/tls.log
TLSCipherSuite
ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

TLSRequired on

TLSRSACertificateFile /etc/apache2/ssl/server.crt
TLSRSACertificateKeyFile /etc/apache2/ssl/server.key

TLSVerifyClient off
</IfModule>

UseReverseDNS off
IdentLookups off
# Port 21 is the standard FTP port.
Port 21
PassivePorts 4000 4030
MasqueradeAddress 自宅サーバのドメイン(ダイナミッ
ク)

ルータ(baffaloの broadstation、BBR-4HG)でのアドレス変換
の設定は下記の通りに設定しております。

WAN側ポート 2211→ LAN側IP(debian)ポート21
WAN側ポート 4000〜4030→ LAN側IP(debian)ポート4000〜4030

smartftpで自宅ドメイン(ポート2211)に明示的SSL、PASVモ
ードで接続、以下のログが表示され、それ以上先に進めません

Resolving host name "自宅ドメイン"
Connecting to 自宅ドメインのIP Port: 2211
Connected to 自宅ドメイン.
Server closed connection

上手く接続できる方法、設定等足りない箇所をご指摘頂けたら
と思います。

失礼致します。


No.5755 投稿時間:2006年03月20日(Mon) 21:33 投稿者名:おやじ URL:
タイトル:状況が変ですね。中途半端にルータが関与しているのかも・・。

> 今現在、ftpサーバ(windows)を自宅で稼動しており、もう一
> つftpサーバを設置したいと考え、debianでftpサーバをproftpd
> で稼動しております。起動はinet経由でしております。
>
> ssl経由で接続を行いたいと思い、設定を行いました。
> smartftpを使い、LAN内のIPアドレス(ポート21)でPORT
> モードで接続を行ったところ、問題なく通信できております。
>
> ただ、WAN側からの通信が接続できておりません。デフォルト
> から設定を変更したproftpd.confの内容は下記の通りです。
> <IfModule mod_tls.c>
> TLSEngine on
> TLSProtocol SSLv23
> TLSLog /var/log/proftpd/tls.log
> TLSCipherSuite
> ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
>
> TLSRequired on
>
> TLSRSACertificateFile /etc/apache2/ssl/server.crt
> TLSRSACertificateKeyFile /etc/apache2/ssl/server.key
>
> TLSVerifyClient off
> </IfModule>
>
> UseReverseDNS off
> IdentLookups off
> # Port 21 is the standard FTP port.
> Port 21
> PassivePorts 4000 4030
> MasqueradeAddress 自宅サーバのドメイン(ダイナミッ
> ク)
>
> ルータ(baffaloの broadstation、BBR-4HG)でのアドレス変換
> の設定は下記の通りに設定しております。
>
> WAN側ポート 2211→ LAN側IP(debian)ポート21
> WAN側ポート 4000〜4030→ LAN側IP(debian)ポート4000〜4030
>
> smartftpで自宅ドメイン(ポート2211)に明示的SSL、PASVモ
> ードで接続、以下のログが表示され、それ以上先に進めません
> 。
> Resolving host name "自宅ドメイン"
> Connecting to 自宅ドメインのIP Port: 2211
> Connected to 自宅ドメイン.
> Server closed connection

ここのsmartftpのメッセージを見ると、何が起きているか良くわかりませんね。
「Connected to 自宅ドメイン.」で2211番ポートでFTPがつながったと思ったら、何もメッセージが出ずにコネクションがサーバ側から切られていますよね。
FTPサーバまでの到達性がない場合(ルータの設定やファイヤウォールでFTPデーモンにパケットが届かない場合や、FTPデーモンが起動していない場合。)は、そもそも「Connected to 自宅ドメイン.」メッセージがでるはずがありません。従って、制御コネクション(21番ポート)はサーバまで到達したと考えるのが順当と思います。もしそうなら、PrftpdにつながったならWelcomメッセージぐらいでるはずなのに、サーバから切ってきているように見えますのでここがよくわかりません。SSLとかPASVとか以前の問題です。FTPの21番ポートの制御コネクションが張れていないように見えます。
 Proftpdのログはどうなってますか?つながってますか?パケットキャプチャすれば、ある程度切り分けできるのでは?
後、WindowsでPASVは使用できてますか?できているならWinodwsのFTPデーモンは何を使用されていますか? 更にデーモンでPASV対応されてますか? もしデーモンでPASV対応していないのにPASVができているなら、ルータがFTPのPASV対応をサポートしているはずなので、FTP通信をモニタしているはずです。そうならば、LAN側は21番ポートをモニタしているのに、WAN側は2211に変換しているので何か中途半端にルータが関与しておかしくなっている可能性があります。
 そうであれば、Proftpdも2211で動かして、ポートフォワーディングだけ行えばルータのPASV対応機能が動かなくなるのでうまくいく可能性があります。


No.5758 投稿時間:2006年03月22日(Wed) 20:18 投稿者名:うじき URL:
タイトル:遅くなってすみません。

> ここのsmartftpのメッセージを見ると、何が起きているか良くわかりませんね。
> 「Connected to 自宅ドメイン.」で2211番ポートでFTPがつながったと思ったら、何もメッセージが出ずにコネクションがサーバ側から切られていますよね。
> FTPサーバまでの到達性がない場合(ルータの設定やファイヤウォールでFTPデーモンにパケットが届かない場合や、FTPデーモンが起動していない場合。)は、そもそも「Connected to 自宅ドメイン.」メッセージがでるはずがありません。従って、制御コネクション(21番ポート)はサーバまで到達したと考えるのが順当と思います。もしそうなら、PrftpdにつながったならWelcomメッセージぐらいでるはずなのに、サーバから切ってきているように見えますのでここがよくわかりません。SSLとかPASVとか以前の問題です。FTPの21番ポートの制御コネクションが張れていないように見えます。
>  Proftpdのログはどうなってますか?つながってますか?パケットキャプチャすれば、ある程度切り分けできるのでは?
> 後、WindowsでPASVは使用できてますか?できているならWinodwsのFTPデーモンは何を使用されていますか? 更にデーモンでPASV対応されてますか? もしデーモンでPASV対応していないのにPASVができているなら、ルータがFTPのPASV対応をサポートしているはずなので、FTP通信をモニタしているはずです。そうならば、LAN側は21番ポートをモニタしているのに、WAN側は2211に変換しているので何か中途半端にルータが関与しておかしくなっている可能性があります。
>  そうであれば、Proftpdも2211で動かして、ポートフォワーディングだけ行えばルータのPASV対応機能が動かなくなるのでうまくいく可能性があります。




お返事ありがとうございます。
proftpdのログですが、ftp,tls共にLAN内からの接続はログは表示されますが、WAN側からの接続は全く表示されません。
WINDOWSのデーモンはIIS6.0を使用しており、PASVモードに対応しております。WAN、LAN共にPASVで接続できます。
etherealでキャプチャしたところ、以下のログが表示されました。
checksum: 0x4dcc [incorrect, should be 0x86c0]
正直、このログで何を直せばいいのか全くわかりません。申し訳ございません。
ルータのアドレス変換の設定をWAN側2211ポート⇔サーバ側2211ポートに変更しても、状況は同じでした。
proftpd.confのPASSIVEPORTの記述を消しても、状態は変わりません。


No.5760 投稿時間:2006年03月22日(Wed) 22:08 投稿者名:おやじ URL:
タイトル:サーバまで来ていないのでは?

> proftpdのログですが、ftp,tls共にLAN内からの接続はログは表示されますが、WAN側からの接続は全く表示されません。
> WINDOWSのデーモンはIIS6.0を使用しており、PASVモードに対応しております。WAN、LAN共にPASVで接続できます。
> etherealでキャプチャしたところ、以下のログが表示されました。
> checksum: 0x4dcc [incorrect, should be 0x86c0]

これしかでないのですか? etherealがうまく動いていないないようなので(termcapがない?)、tcpdumpでも良いかもしれません。

> 正直、このログで何を直せばいいのか全くわかりません。申し訳ございません。
> ルータのアドレス変換の設定をWAN側2211ポート⇔サーバ側2211ポートに変更しても、状況は同じでした。
> proftpd.confのPASSIVEPORTの記述を消しても、状態は変わりません。

前にも書きましたが、そもそもWAN側からの2211番アクセスがサーバの21(2211)番に来ていないのではないですか?iptablesは止まっているか、適切に開けてますよね?
SSL以前の話なので、まずはSSL関係の設定を止めて2211番でPASVがうまくいくようにしないと始まらないので、設定を削除(コメントアウト)して、サーバも2211で起動してから、下記でtcpdumpを起動しておいて、WAN側から2211にFTPしたらどうなりますか?

# tcpdump -nX host 192.168.1.100 and port 2211

192.168.1.100はサーバのIPです。つながったときに、少なくとも下記のようなメッセージがでなければ、サーバまでパケットは来てないので、ルータの設定やファイヤウォール等を調べるしかないと思います。これは、家庭内の例ですが192.168.1.2の1106番ポートから192.168.1.100の2211番に接続要求があったときの例で、うまくいくときはこの後にいろいろ続きます。まずは、家庭内で接続してみてtcpdumpが動くことを確認してから、やると良いのでは?

時間 IP 192.168.1.2.1106 > 192.168.1.100.2211: F 1867600827:1867600827(0) ack 104 ・・・


No.5770 投稿時間:2006年03月26日(Sun) 03:46 投稿者名:うじき URL:
タイトル:Re: サーバまで来ていないのでは?

またまた返事が遅くなり、申し訳ございません。
SSL関連を全て削除し、再起動し、tcpdumpで以下のコマンドを叩いてみました。
tcpdump -nX host 192.168.11.100 and port 2211
ですと、全くログが残りません。
portのところを21番にすると
03:39:43.226846 IP WANのIP.62273 > 192.168.11.100.21: F 1:1(0) ack 2 win 16968
という風に表示されており、netstatコマンドだと
LANのIP:21 WANのIP:62976 ESTABLISHED
と表示されているので、接続はやっぱり1度されているのかな?という感じです。ただ、やはりsmartftp、他のクライアント(nextftp)でも接続はできません。
telnet サーバのWANIP 2211で接続すると、接続はされてるんですが、すぐに切断されます。
何故なのかちょっとわかりませんが、ルータを初期化しようかなとも考えています。
原因がやはりつかめないので初期化しても一緒かもしれませんが…本当に質問に丁寧に答えていただき、ありがとうございます。ここを治したほうがいいんじゃ?というのがあったらまた、アドバイス頂けたら幸いです。


No.5771 投稿時間:2006年03月26日(Sun) 05:41 投稿者名:おやじ URL:
タイトル:WAN側からのアクセスといってますが、実は家庭内のクライアントからテストしてませんか?

> SSL関連を全て削除し、再起動し、tcpdumpで以下のコマンドを叩いてみました。
> tcpdump -nX host 192.168.11.100 and port 2211
> ですと、全くログが残りません。
> portのところを21番にすると
> 03:39:43.226846 IP WANのIP.62273 > 192.168.11.100.21: F 1:1(0) ack 2 win 16968
> という風に表示されており、netstatコマンドだと
> LANのIP:21 WANのIP:62976 ESTABLISHED
> と表示されているので、接続はやっぱり1度されているのかな?という感じです。ただ、やはりsmartftp、他のクライアント(nextftp)でも接続はできません。

上記の説明で「21番だと接続される」という意味が理解できません。
最初に2211でテストしたということは、このサーバは2211で動かしているからですよね。それで、ログがでないのなら2211番宛てのパケットがサーバまで来ていないという事実がわかりますよね。
その後、tcpdumpを21番にするとログがでるというのは有り得ない話ですし、そういうテストをすること事態が想像がつかないのですが?
この間に「サーバを21番に変えて、ルータの設定もWindows向けからLinuxに変更して」という説明が抜けているということですよね。

> telnet サーバのWANIP 2211で接続すると、接続はされてるんですが、すぐに切断されます。

上記で、21番に変更した説明がないのとこのtelnet接続の表現を見て、ふと思ったのですが、このtelnetした端末、即ちFTPのクライアントだと思いますが、これは本当にインターネット側に繋がれている端末なのですか?もしかして、家庭内の端末なのではありませんか? もし、そうならできなくて当たり前、即ちルータがどうしようもなくなって切っているからなので・・・。
家庭内端末からルータのWAN側IPを指定してWebやFTPが接続できるルータがありますが、その種のルータは、特定の通信をモニタして折り返し接続をしているのでこういうことができます。その処理の対象外の通信(2211番の通信等)や暗号化されたFTPSなどは中身を見ようがないので、その処理ができません。こういう機能を持つルータが結構あり、説明書にも書いていないので意識して使っていないケースがあります。
家庭内からルータのWAN側をアクセスして、それでサーバにアクセスできること自体が、ルータ本来の機能であるルーティングという観点で少し変な動きをしているな?と気がつけば問題ないのですが、知らないで使っていると今回ようなケースが発生します。
もし、上記ならWAN側から試験するしかないです。


No.5772 投稿時間:2006年03月26日(Sun) 06:36 投稿者名:うじき URL:
タイトル:Re: WAN側からのアクセスといってますが、実は家庭内のクライアントからテストしてませんか?

> 上記の説明で「21番だと接続される」という意味が理解できません。
> 最初に2211でテストしたということは、このサーバは2211で動かしているからですよね。それで、ログがでないのなら2211番宛てのパケットがサーバまで来ていないという事実がわかりますよね。
> その後、tcpdumpを21番にするとログがでるというのは有り得ない話ですし、そういうテストをすること事態が想像がつかないのですが?
> この間に「サーバを21番に変えて、ルータの設定もWindows向けからLinuxに変更して」という説明が抜けているということですよね。
>

21番というのはproftpd.confで設定してるftpポート番号です。
wan側で指定するのは2211ですが、サーバ側で受けるのは21番ということと自分は理解してるのですが、間違ってたらすみません。
ですので、21番なら出るのではないかなと思ったら、先程記述したようなログが出力されました。
ちなみにルータの変換をWINDOWSサーバ21番→linuxサーバ21番に変更したのですが…やはり応答は変わりありません。ルータなのかなと思っていたのですが、サーバ側の何かしらの設定が間違ってるのかなとも思えてきました。

> 上記で、21番に変更した説明がないのとこのtelnet接続の表現を見て、ふと思ったのですが、このtelnetした端末、即ちFTPのクライアントだと思いますが、これは本当にインターネット側に繋がれている端末なのですか?もしかして、家庭内の端末なのではありませんか? もし、そうならできなくて当たり前、即ちルータがどうしようもなくなって切っているからなので・・・。
> 家庭内端末からルータのWAN側IPを指定してWebやFTPが接続できるルータがありますが、その種のルータは、特定の通信をモニタして折り返し接続をしているのでこういうことができます。その処理の対象外の通信(2211番の通信等)や暗号化されたFTPSなどは中身を見ようがないので、その処理ができません。こういう機能を持つルータが結構あり、説明書にも書いていないので意識して使っていないケースがあります。
> 家庭内からルータのWAN側をアクセスして、それでサーバにアクセスできること自体が、ルータ本来の機能であるルーティングという観点で少し変な動きをしているな?と気がつけば問題ないのですが、知らないで使っていると今回ようなケースが発生します。
> もし、上記ならWAN側から試験するしかないです。

確かにおっしゃる通り、家庭内からでサーバIPに接続していますが、家庭外、全く別の場所からも試験しております。このルータの設定なのかどうかわかりませんが、windowsのftpは家庭内からでもドメインでアクセスしておりますし、httpsはdebianで運用していますが、これもドメイン名でアクセスできます。確かに2211番の通信に対応してないとなると家庭内から接続しても意味がないですが、別の場所からでもやはり接続できないので…何かしらの設定の間違いがあるのではないかと思います。


No.5773 投稿時間:2006年03月26日(Sun) 09:34 投稿者名:おやじ URL:
タイトル:TCP Wrapper?

> 21番というのはproftpd.confで設定してるftpポート番号です。
> wan側で指定するのは2211ですが、サーバ側で受けるのは21番ということと自分は理解してるのですが、間違ってたらすみません。
> ですので、21番なら出るのではないかなと思ったら、先程記述したようなログが出力されました。

21番で動かしているなら当然の結果で、これはサーバまでパケットは来ているということで、ルータ関係の設定は問題ないということですよね。問題は、その先に出てたであろう切断時のログなのですが・・。
下記を見ると、通信に関与するタイプのルータなので21番を使うと問題が出る可能性があるので2211番のほうが確実。これはNo.5755で説明した内容で、21番は止めるべきです。

まずやらなければならないのは、SSLは後回しにして、Proftpdを2211番で動かし、PASVで通信できるようにすることです。
従って、ルータは2211宛てのパケットを2211のまま、Linuxサーバのアドレスにポートマッピングする。フィルタを設定しているならその通信を開ける。
PASV通信用の設定(MasqueradeAddress,PassivePorts)をProftpdに行う。
この状態で、tcpdumpで2211を指定しておいて、インターネット側から(この通信に関しては家庭内からは不可)、ドメイン:2211でFTPアクセス(PASV)してみる。
つながって切れたらそのログを分析する。ポイントは切れるところのログで、その一番大事なログに関して今まで提示されていないのは何故か?気になります。
debianは一回しか触ったことがないのでわかりませんが、TCP Wrapperが効いていて/etc/hosts.denyあたりにデフォルトで何か('ALL: ALL'とか)設定されてませんか?

> 確かにおっしゃる通り、家庭内からでサーバIPに接続していますが、家庭外、全く別の場所からも試験しております。このルータの設定なのかどうかわかりませんが、windowsのftpは家庭内からでもドメインでアクセスしておりますし、httpsはdebianで運用していますが、これもドメイン名でアクセスできます。確かに2211番の通信に対応してないとなると家庭内から接続しても意味がないですが、別の場所からでもやはり接続できないので…何かしらの設定の間違いがあるのではないかと思います。

このタイプのルータは、ネットワーク上でユーザが知らないうちに勝手に変換動作をしてしまうので、SSL専用なら話は別ですが21番でFTPのSSL通信はできません。ftpsはhttpsとは通信の仕組みが違うので、このあたりは同列で考えるとうまくいきません。

http://www.aconus.com/~oyaji/router/pasv.htm


No.5774 投稿時間:2006年03月27日(Mon) 19:45 投稿者名:うじき URL:
タイトル:Re: TCP Wrapper?

> 21番で動かしているなら当然の結果で、これはサーバまでパケットは来ているということで、ルータ関係の設定は問題ないということですよね。問題は、その先に出てたであろう切断時のログなのですが・・。
> 下記を見ると、通信に関与するタイプのルータなので21番を使うと問題が出る可能性があるので2211番のほうが確実。これはNo.5755で説明した内容で、21番は止めるべきです。
>
> まずやらなければならないのは、SSLは後回しにして、Proftpdを2211番で動かし、PASVで通信できるようにすることです。
> 従って、ルータは2211宛てのパケットを2211のまま、Linuxサーバのアドレスにポートマッピングする。フィルタを設定しているならその通信を開ける。
> PASV通信用の設定(MasqueradeAddress,PassivePorts)をProftpdに行う。
> この状態で、tcpdumpで2211を指定しておいて、インターネット側から(この通信に関しては家庭内からは不可)、ドメイン:2211でFTPアクセス(PASV)してみる。
> つながって切れたらそのログを分析する。ポイントは切れるところのログで、その一番大事なログに関して今まで提示されていないのは何故か?気になります。
> debianは一回しか触ったことがないのでわかりませんが、TCP Wrapperが効いていて/etc/hosts.denyあたりにデフォルトで何か('ALL: ALL'とか)設定されてませんか?
>

すみません、それが間違いだったみたいです。
proftpd.confのポートを2211にして家庭内からドメイン(FTPS)で接続したところ、問題なく通信できました。
TCP Wrapperや他アクセス制限はかけてなかったので、ポートの問題だったようです。

> このタイプのルータは、ネットワーク上でユーザが知らないうちに勝手に変換動作をしてしまうので、SSL専用なら話は別ですが21番でFTPのSSL通信はできません。ftpsはhttpsとは通信の仕組みが違うので、このあたりは同列で考えるとうまくいきません。

21番ではFTPのSSLはできないみたいですが、2211番だと普通に上手くいきました。
質問に丁寧に答えて頂き、ありがとうございました。



掲示板▲頁先頭