リモートサーバーへのSSH接続を誤って禁止しています...次は何ですか?


61

もう一度言いましょう、私たちは皆、間違いを犯します。

簡単な歴史:私がレンタルしているVPS(Debian)で何かしらのことをしていたとき、奇妙な振る舞いに気づきました。netstatコマンドを使用して、SSHを介した許可されていない接続を見ました。私は何をすべきかわからなかったので、次を使用して彼の接続を閉じることにしましたiptables

iptables -A INPUT -p tcp --dport ssh -s IP -j DROP

しかし、私は疲れている、と書いた

iptables -A INPUT -p tcp --dport ssh -j DROP

そして私は自分自身(そして他のみんな)を追い出しました...

どうすれば修正できますか?



1
いいえ、彼はマシンですべてのsshパケットをブロックしているからです。誤って設定されたサブネットでは、そのMACアドレスのtcpdumpを実行し、arp-ingしているサブネットを取得してから、同じサブネットに仮想nicを設定して通信します。
ドン・ファニング別名jfalcon

50
少なくとも、許可されていない個人のアクセスを確実に削除しました。
CVn

2
次回は、おそらく死者のスイッチが便利でしょう。
ウェインコンラッド

2
あなたのホストは誰ですか?多くのVMホストは、リモートロケーションからアクセスできない場合にSSHを使用できるシリアルコンソールを提供します。
ジョン

回答:


60

いくつかの選択肢があります。

  • IPMI / "KVM" /サーバーへのコンソールアクセスがあるかどうかを確認します。これにより、物理キーボードが接続されているかのようにサーバーを制御できます。
  • 提供されない場合は、VMをリカバリLinux CDから起動できるかどうかを確認し(一部のプロバイダーはこれを提供します)、ファイアウォールルールをそのように修正してから通常どおり起動します。
  • コンソールへのアクセスがない場合、リカバリのために起動するか、ボリュームを別のVMにアタッチする前に(Amazonの場合、user3550767の回答を信用)、ルールを保存していない場合は、Ankh2054の最初の再起動の回答を試すことができます(保存する機会が得られる前に自分を追い出したからです。コントロールパネルを使用するか、またはグレースフルリブート時にinitスクリプトが自動的にルールを保存する場合(クレジット@ jfalcon、@ joshudson)、グレースフルリセット/パワーオフ(別名ハードリブートまたはハードシャットダウン)を使用して電源を入れ直します。

    この欠点を考慮してください(再起動中に書き込まれたデータが失われたり、起動時にファイルシステムのチェックが必要になる場合があります。


1
vpsサーバーによっては、彼が到達できるリモートアクセスがない場合があります。vmware、kvm、xenなどのシステムにはコンソールがありますが、一般消費向けには設定されていません。この形式のパブリックコントロールを許可するクローズはopenstackです。
jfalcon別名ドンファニング

4
つまり、Amazon / googleスペースにある場合は、ドライブのスナップショットを作成し、別の仮想マシンからマウントして修正を行うことができます。
jfalcon別名ドンファニング

47

IPtablesルールをまだ保存していない場合は、VPSでサーバーを再起動し(利用可能な場合)、ルールが消えます。


initスクリプトがシャットダウン中にiptablesを保存しない限り。
jfalcon別名ドンファニング

3
@jfalcon:だからこそ、仮想プラグを抜くように頼むことができます。
joshudson

22
@jfalconシャットダウン時に自動保存するのは悪い考えです...システムによって盲目的に実行されるものではなく、システム管理者による意識的な決定を保存してください。
CVn

@joshudson:リブートモンキーに何をすべきかを正確に伝え、電源を強制的にオフにする必要があります。シャットダウンを開始するだけではありません。
jfalcon別名ドンファニング

@MichaelKjörling:この哲学も間違っています。これはVPSなので、おそらく彼はアプリケーションをサンドボックス化しており、誰が電源スイッチを押すかを制御できません。また、VPSホスティングがどのようにビルドを構成したのかわかりません。シャットダウン時の保存に問題はありません。彼の間違いは彼の間違いだった。そもそもスマートな動きは、SSHを非標準ポートに置くか、パニック状態の反応に反応する代わりにfail2banを使用することでした。
jfalcon別名ドン・ファニング

30

これが、人が配置されたヘルプラインの目的です。サービスプロバイダーに連絡し、オペレーターの1人にルールを削除してもらいます。


3

破損したインスタンスを修正する一般的な方法は、それをシャットダウンして、作業中のインスタンスにルートボリュームをアタッチすることです。その後、そこにボリュームをマウントし、ログを表示したり、構成ファイルを編集したりできます。その後、ボリュームをデタッチして、独自のインスタンスで起動できます。


2
AWS VPSesに当てはまります。一般的に真実ではありません。
-MadHatter

@MadHatter正確な詳細は異なる場合がありますが、VPSプロバイダーが、ルートファイルシステムをマウントおよび修正できる場所から既知の作業イメージで起動する方法を提供しない場合、顧客がいったんビジネスを停止することを期待しますその制限について学びました。
カスペルド

通常、彼らはコンソールアクセスを提供することでそれを行いますので、シングルユーザーモードで、またはレスキューメディア(通常はISOとして抽象化)から起動できます。私はそれが、2番目のVPSが(一時的に)要件である、AWSの問題を処理する奇妙な方法よりもはるかに一般的であることを提出します。
MadHatter

@MadHatter 2つのアプローチのどちらがおかしいと思われるかは、あなたが最もよく知っているものに非常によく依存します。そして、どちらのアプローチでも仕事は完了です。これは、これまでのところ単一のVPSプロバイダーでのみそのようなアクセスが必要だったので、私が本当にコメントできない最も一般的な方法です。
カスペルド

@kasperd:いいえ、使用するVPSプロバイダーがサポートするものによって異なります。それは選択の問題ではありません。AWSを使用している場合、ボリュームを別のVPSにマウントします。より一般的なVPSプロバイダーを使用している場合は、シングルユーザーまたはレスキューメディアから起動します。私はこの点を(完全にではなく)まともではありませんが、プロバイダーのサポートされているメソッドが何であるかを見つけて使用する必要があることを理解することが重要であるためです。たとえば、HETZNERは、とAWSの方法を使用しようとすると、単純に動作しませんを 1つのHETZNERのvserverのは(私の知る限り)別のFSを見ることができないので、。
マッドハッター

3

正式な回答:VPS管理パネルにアクセスし、何らかの方法でローカルアクセス(仮想KVM)を取得するか、呼び出します。

再び落ちるのを防ぐための手順/ルールの説明:

  1. IP、ルーティング、およびファイアウォールルールの変更があり、これらが変更されてアクセスがブロックされる可能性があります。
  2. また、VPSのみではなく、専用のネットワークデバイス構成にも適用されます

だから、あなたはどちらかと、のような..私はいつもその前の状態にネットワークの設定をリセットする方法を作るためにお勧めのオープンバックグラウンドセッションを回復できることを100%確信している場合を除きscreennohupまたはtmux、でもcronこのために働くことができ、追加iptables -Fまたは何かを以前の状態にリセットする他の望ましい手段。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.