SSH サーバーが接続要求に応答しない

SSH サーバーが接続要求に応答しない

OpenSSH を使用して、ローカル マシンに SSH サーバーを設定しようとしています。リモート ホストからローカル SSH サーバーに SSH 接続しようとすると、SSH サーバーが応答せず、要求がタイムアウトになります。この問題には、私が単に見落としているだけの、非常に明白な修正方法があるはずです。

リモート ホストから SSH 接続しようとすると、次のようになります。

yoshimi@robots:/$ ssh -vv [email protected]
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 99.3.26.94 [99.3.26.94] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: connect to address 99.3.26.94 port 22: Connection timed out
ssh: connect to host 99.3.26.94 port 22: Connection timed out

robotsリモート ホストはどこにあり、99.3.26.94ローカル SSH サーバーはどこにありますか。

SSHが実行中

volt@arnold:~$ ps -A | grep sshd
 5784 ?        00:00:00 sshd

arnoldローカル SSH サーバーはどこにありますか。

ルーターにポート転送が設定されている

自宅のルーターを、ポート 80 と 22 を SSH サーバーに転送するように設定しました。興味深いことに、ポート 80 は問題なく動作し、Apache Web ディレクトリに直接接続されます。ポート 22 はそうではありません。

NMapはフィルタリングされていると言っている

yoshimi@robots:/$ nmap -p 22 99.3.26.94

Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-02 14:45 EDT
Nmap scan report for 99-3-26-94.lightspeed.bcvloh.sbcglobal.net (99.3.26.94)
Host is up (0.33s latency).
PORT   STATE    SERVICE
22/tcp filtered ssh

Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds

robotsリモート ホストはどこにあり、99.3.26.94ローカル SSH サーバーはどこにありますか。

それは IPTables ではない (と思う)

volt@arnold:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

...そして、他のファイアウォールは設置していません。これは比較的新しい Debian netinst です。

それで:他に何があるでしょうか?確かに、トラフィックを無視するのはファイアウォールのようなものだと思われますが、ルーターでも、iptables でも​​、SSH サーバー上の別のファイアウォールでもない場合は、他に一体何があるのでしょうか?

編集: NetStat サーバーの出力

SSH サーバーから:

tcp6       0      0 :::22                   :::*                    LISTEN      5784/sshd       

答え1

非常に残念な自己回答

この問題を 1 日放置して、再び取り組んだところ、不思議なことに、すべてが正常に動作していることがわかり、ほっとすると同時に不安になりました (安心するよりも不安のほうが大きかったです)。

それで、問題は何だったのでしょうか?

ルーター、SSHサーバー、SSHクライアントマシンのいずれの設定も変更または調整されていません。適切な設定にもかかわらず、ルーターが着信トラフィックを適切に処理できなかったと言っても過言ではありません。本当にポート転送に対処するように設計されているため、必要な変更を実装するのにしばらく時間がかかりました。

でももう6時間くらい経ってるよ!!

そうだね、わかってるよ。一日中何がおかしいのか考えていたけど、結局見つからなかったんだ。なかった何も問題はありません。明らかに、ルーターの設定が有効になるまでに 6 時間 (場合によってはそれ以上) かかることがあります。

それで、これが私の問題であるかどうかはどうすればわかるのでしょうか?

この冒険中に私が見つけた気の利いたツールは ですtcpdump。この小さなツールはトラフィックをスニッフィングし、実際に何が起こっているかについて貴重な洞察を提供します。さらに、このツールには、見たいものを正確に絞り込むことができる優れたフィルタリング機能があります。たとえば、次のコマンドです。

tcpdump -i wlan1 port 22 -n -Q inout

tcpdumpwlan1 インターフェイス ( = 'interface') 経由のトラフィックをポート 22 のみで探すように指示し-i、DNS 名前解決を無視し ( = 'no name resolution')、着信-nトラフィックと発信トラフィックの両方を確認します ( 、 、または;がデフォルトです)。-Qinoutinoutinout

リモート マシン経由で接続を試みているときに SSH サーバーでこのコマンドを実行すると、問題が正確にどこにあるのかがすぐに明らかになります。基本的に、次の 3 つの可能性があります。

  1. もしあなたが見ているなら着信リモートマシンからのトラフィックですが、発信なしローカル サーバーからのトラフィックの場合、問題はサーバーにあります。おそらく、ファイアウォール ルールなどを変更する必要があるでしょう。
  2. もしあなたが見ているなら受信と送信の両方しかし、リモート マシンが応答を受信しない場合、ルーターに問題がある可能性が最も高くなります。ルーターは着信トラフィックを許可していますが、発信パケットをドロップしています。
  3. もしあれば交通量は全くないこれもおそらくルーターの問題です。リモート マシンのSYNパケットは、サーバーに到達する前にルーターによって無視され、ドロップされます。

そして、問題がどこにあるのかがわかれば、修正は(通常は)簡単です。

関連情報