web-dev-qa-db-ja.com

2行ほどでドロップしたSSH接続

私は実際には少し奇妙な問題を抱えています。 Ubuntu Server 12.04を実行していますが、最小限のパッケージセット:ベースシステム、sshd、およびIRCサーバーを使用しています。他の誰かがIRCネットワークに接続するようにサーバーを構成できるようにする必要があります。ただし、lsまたはcatの2行後にドロップしているようです。

オッダー、これはこのサーバーでのみ発生し、私はPuTTYまたはsshクライアントを使用してまったく再現することができませんでした。これを診断するにはどこを調べるべきですか? auth.logは通常の接続と認証を示し、ドロップに関する詳細は提供しません。 fail2banには、発信元IPアドレスに関する違反はありません。

これは、転送されたポートを持つ仮想マシンです(ブリッジモードであり、通常のネットワーク接続があります)。ローカルで、LAN経由で、およびリモートロケーションからPuTTYを使用して問題なく接続できます。他の人はLinuxでsshを使用して接続できますが、接続が切断されます。

クライアントからのログ

サーバー側のログには、異常なものは何もありません。

4
hexafraction

開始する前に、両端のシステム時刻が同期されていることを確認してください。これは、後で比較するのに役立ちます。

TCPポート22でフィルター処理された両端でtcpdumpを実行します。クライアントがPuTTYを使用していることに言及しているため、Windowsを想定しています。 Wireshark for Windowsを入手でき、tcpdumpの代わりに使用できるキャプチャ機能があります。

tcpdumpを使用すると、tcpdump -w/tmp/ssh.pcap -s0 -ieth0 port 22などのようになります。 Windows上のWiresharkでは、GUIを使用してポート22に対してフィルター処理されたキャプチャを設定し、キャプチャをディスクに保存できます。

次に、wiresharkで両方のキャプチャを開きます。切断点を見つけます。接続のシャットダウンを開始した端を確認できるはずです(FINまたはRST接続は最初にどこから到着しますか?)

また、サードパーティのホスト(ルーター、ISPなど)が接続に干渉していないかどうかを確認することもできます。たとえば、反対側から送信されたことのない到着パケットを見つけた場合、これを識別します。これが発生している場合、RSTパケットである可能性があります。

1
Robie Basak

LTS14.04(以前は12.04からアップグレードされていました)から古い12.04サーバーに接続する際にこの問題が発生しました

問題は実行後のMTU関連であることがわかりました

Sudo ip li set mtu 1480 dev eth0

問題はなくなります..... 1500に戻すと戻ります

(有線eth0接続を使用していると仮定)

0
user118917

奇妙なsshタイムアウトが発生しましたが、次の方法で解決しました。

Sudo sysctl -w net.ipv4.tcp_keepalive_time=50 \
 net.ipv4.tcp_keepalive_intvl=10 \
 net.ipv4.tcp_keepalive_probes=5 

これが役立つかどうかはわかりませんが、試してみる価値があるかもしれません。

0
Colin Ian King

問題のより良い説明なしではわかりにくい(「ドロップ」とはどういう意味ですか?TCPティアダウン?TCP RST?接続の停止?)パスMTUの検出に問題がある可能性があります...

SSHよくある質問:シェルから大量の出力を生成すると、SSHセッションがログオンの途中でハングします...

PMTU(パスMTU)ディスカバリー

0
Steven K