web-dev-qa-db-ja.com

ネットワークエラーでLinuxサーバーにログインできないのはなぜですか:接続がタイムアウトしました

こんにちは、sshを介したRed Hat Enterprise Linuxサーバーへの接続に問題があります。次のエラーが表示されます:「ネットワークエラー:接続がタイムアウトしました」

サーバーはVLANにあり、アクセスできるはずです。pingはできますが、PuTTYまたはWinSCPを介して接続できません。デフォルトのポート22でリッスンします。動的IPと、静的IPを持っている同僚がサーバーに接続する必要があるたびに、自分のIPをhosts.allowファイルに追加します。最初は正常に機能しましたが、最近は機能しなくなりました。ホストではないと確信しています。 .allowの問題は、IPが許可されなかったときに、「サーバー接続が予期せず閉じられました」などの別のエラーメッセージが表示され、5秒以内に再接続しようとしたためです。エラーが異なり、実行する必要があると思います。ネットワークのファイアウォールがある場合、以前は別のIPでログインできたのに、今はログインできない理由がわかりません。ファイアウォールが特定のIPアドレスをブロックし、他のIPアドレスを許可する可能性はありますか?

2
user62154

「接続がタイムアウトしました」はファイアウォールの問題のようです。接続をネットワークレベルで実行される個々の手順に分解してみてください。

  • ping -n $ HOSTNAME
  • telnet $ IP_ADDRESS 22

Pingは、名前のIPへの解決をテストし、そのホストにpingを実行できることをテストします。 pingを実行できる場合は、ネットワークに接続していることがわかります。 pingを実行できない場合でも、pingが除外される可能性があるため、接続できないことを意味するわけではありません。

TelnetおよびtelnetのpingからSSHポートへのIPアドレスを使用します。それが何秒もかかり、「接続がタイムアウトしました」と報告する場合、実際にはファイアウォールが邪魔になっているように見えます。

あなたが言うように、tcpwrappersが問題だった場合、それは「接続が予期せず閉じられた」結果である可能性があります。何らかの理由でSSHが実行されていない場合、「接続が拒否されました」というエラーが発生します。

サーバーにルートアクセス権がある場合は、iptables-save | less(またはLinuxでない場合は同様)でホストファイアウォールを確認します。そこにない場合は、ネットワークを実行している人に、そこに存在する可能性のあるファイアウォールをチェックしてもらう必要があります。

iptables-saveが何も返さない場合、それはmay rootとして実行していないことを意味します。ただし、ルールがないことを意味する場合もあります。ただし、20行以上の出力が返される場合は、ファイアウォールが設定されている可能性があります。

一時的なファイアウォール許可ルールを追加して、次のコマンドを実行することにより、ファイアウォールが問題であるかどうかをテストできます。

iptables -I INPUT -m tcp -p tcp --dport 22 -j ACCEPT

それはおそらくssh接続を許可するでしょうただし診断がより難しい悪いNATルールのようなファイアウォールにいくつかのより深い問題があります。ファイアウォールを無効にしてみることができます(Fedora/CentOS/RHEL) "Sudo service iptables stop"(Debian/Ubuntu) "Sudo ufw disable"のようなコマンドで(Debian/Ubuntuではufw以外のものを実行している可能性がありますが、私が知っている「標準」はありませんの)。

とはいえ、考慮したいことの1つは、VPNのセットアップです。そうすれば、リモートIPが何であるかは関係ありません。証明書またはキーを使用して、VPN接続を認証し、ファイアウォールで許可される可能性のあるVPN上の静的IPアドレスを取得します。TCPラッパー。

4