ふと、思い立って自宅のネットワーク構成を以下のように変更しました。
サーバを別のセグメントに配置してCiscoルータのACLで保護しようという計画。
構成を変更し、自分のPCからサーバまでpingが通ることを確認し、いざTera termでSSH接続しようとしたところ。。。
OKボタンが押せない(汗)
しかも、SSHだけでなくFTPもリモートデスクトップもつながらない。。。
この問題、まったく別のトラブルが重なったせいで原因の特定に時間がかかりました。
以下、切り分けの流れ
2014/10/18 追記
最終的に使用していたバッファロールータのルーティング機能に問題があったため、他社製のルータに変更。
以後は、クライアントPCのファイヤーウォールを無効化しなくても別セグメントへの疎通が可能になりました。
まず、サーバまでpingが通るので、障害箇所はOSI参照モデルでいうところのトランスポート層以上ということになります。
サーバの設定の問題かな、と見当をつけ設定を色々いじってみました。(ちなみにCentos)
iptablesやSELinuxを無効化したり、hosts.allowファイルを見直してみたり。。。
しかし、状況は変わりませんでした。
Wiresharkでパケットをキャプチャしてみたところ、どうもTCPのコネクションが確立していない。しかもパケットの様子からして、サーバ側で接続を拒否しているという感じではなそうでした。
ではルータでパケットのフィルタリングがかかっているのか?と考え、まずはCiscoルータの設定を確認。しかし、そもそもACL自体設定してませんでした。試しに、サーバ、Ciscoルータ、PCという構成で接続を確認したところ、SSHもFTPもリモートデスクトップも問題なくつながりました。
Ciscoルータの正常性が確認できたので続いてBuffaloルータの設定を確認。しかし、Buffaloルータもパケットフィルタリングの設定はありませんでした。
さ~て、次は何すんべ、という段になり、もう一度スマホからConnect Botでサーバにつなげてみることを決意。
「もう一度」というのは、割と最初の段階でスマホからサーバへの接続を試してみて失敗していたからです。
あくまで確認の意味でもう一度スマホから接続を試みたところ。。。
あれ?
つながった。
なんで?前回は失敗したのに。。。
で、よく考えてみたら、前回試したときはBuffaloルータの隔離機能がONになっていたため、無線ホストからサーバへの接続は拒否されていたのでした。(記事冒頭で述べた「まったく別のトラブル」というのはコレ)
そうなると、これはもうPC側の問題であることが濃厚。
Windowsのファイヤーウォールを無効化してSSHしてみたところ。。。
つながったー!
SSHもFTPもリモートデスクトップもつながったー!
本来、クライアントのファイヤーウォールの無効化なんて真っ先に思いつきそうなものですが、今までWindowsのファイヤーウォールが原因でつまずいたことなんて、ほとんど無かったので、あまり頭にありませんでした。
しかし、サーバに接続するたびにファイヤーウォールを無効化するなんて面倒くさいし、セキュリティ的にもよろしくないので、きちんと設定しなければ。
以上