Linuxサーバーでハッカーを捕まえるためのSSHハニーポットを作成する方法
サーバーの認証ログを見たことがあれば、インターネットに接続されているサーバーはすべて、ハッカーからのログイン試行が絶えず行われていることをご存知でしょう。
サーバーが完全に未知の趣味のサーバーである場合でも、自動化されたスクリプトがそれを検出し、SSHを使用する際にブルートフォース攻撃を継続的に試みます。複雑なパスワードやその他のセキュリティ対策を使用している限り、侵入する可能性は低くなりますが、成功する可能性は常にあります。
幸いなことに、これらのハッカーをサーバーに閉じ込めて、問題を引き起こさないように気を散らしておくための便利で楽しい方法があります。
SSHハニーポットとは何ですか?
簡単に言うと、SSHハニーポットは、サイバー犯罪者を引き付け、標的にするように仕向けるために、ぶら下がっている果物のように見えることを意図したおとりです。しかし、それは実際の標的ではなく、ハッカーは手遅れになるまでそれを認識しないことがよくあります。
ハニーポットはさまざまな形をとることができ、さまざまな用途があります。気を散らすだけの場合もありますが、攻撃者に関する情報を収集するために使用される場合もあります。
多くの政府機関は、ハニーポットを使用して犯罪者を捕まえ、攻撃に誘い込みますが、後で捕まえるために情報を収集するだけです。ただし、ハニーポットは、企業で働くシステム管理者や、Linuxサーバーを楽しみのために運営している愛好家でも使用できます。
SSHハニーポットを使用する理由
誰かが自分のサーバーにSSHハニーポットを実装したいと思う理由はたくさんあります。場合によっては、それを使用して、それらからの将来の接続をブロックできるようにすることができます。おそらく、システム上の実際のターゲットからそれらを引き離したいだけです。または、教育目的である可能性があります。攻撃がどのように機能するかを学ぶのに役立ちます。
このガイドでは、主にハニーポットを注意散漫として使用しています。具体的には、ハッカーがサーバーのより脆弱な部分を攻撃するのを妨げ、他の誰かのサーバーを攻撃するには忙しすぎます。
そして、少なくともこの場合、使用される方法は1、2回の笑いにも適しています。
SSHでトラップ
基本的に、私たちがやりたいのは、ハッカーがSSHログインをブルートフォースしようとしたときにハッカーをトラップすることです。これを行うにはいくつかの方法がありますが、最も簡単な方法の1つは、非常に長いSSHバナーをゆっくりと送信することです。
このように、ハッカーの自動化されたスクリプトはバナーを待って立ち往生します。これは、数日または数週間ではないにしても、数時間続く可能性があります。スクリプトは自動化されているため、ハッカーはスクリプトにあまり注意を払っていない可能性があり、かなりの時間が経過するまでスクリプトがスタックしていることに気付かないでしょう。
これは、ハッカーのスクリプトがスタックしていて、それ自体で抜け出すことができないため、ふざけて「SSHターピット」と呼ばれることもあります。
これには、SSHの基本的な使用法を知っている必要があります。 SSHの使用方法がわからない場合は、このガイドを読んで開始してください。
エンドレス
これを実現するために使用しているプログラムはエンドレスと呼ばれ、skeetoによって作成されています。
サーバーにログインしたら、リポジトリのクローンを作成します。 (git
が必要です インストールしました。)
git clone https://github.com/skeeto/endlessh
サーバーにリポジトリができたので、そのディレクトリに切り替えてコンパイルする必要があります。
cd endlessh make
プログラムをコンパイルしようとすると、エラーが発生する場合があります。これは、プログラムがコンパイルする必要のある依存関係が欠落していることを意味している可能性があります。欠落していると表示されている依存関係を確認してから、ディストリビューションのパッケージマネージャーを使用してインストールする必要があります。
コンパイルするプログラムを入手したら、それをbinディレクトリに移動して、パスに配置します。
sudo mv endlessh /usr/local/bin
パスで検出されていることを再確認する必要があります。
which endless
/usr/local/bin/endlessh
を出力する必要があります 道。そうでない場合は、正しいディレクトリに移動されたことを確認する必要があります。
その後、プログラムをサービスデーモンに変えて、systemd
として機能できるようにします。 サービス。
sudo cp util/endlessh.service /etc/systemd/system/
それが完了したら、サービスを有効にして、バックグラウンドで実行されるようにします。
sudo systemctl enable endlessh
デフォルトでは、endlesshは1024を超えるポートでのみ機能しますが、ハッカーをだまして攻撃を試みることができるように、デフォルトのSSHポートを使用する必要があります。これを行うには、サービスファイルを編集する必要があります。
この例では、nanoを使用して構成ファイルを編集していますが、選択したテキストエディターを自由に使用してください。
sudo nano /etc/systemd/system/endlessh.service
ファイルが開いたら、#文字を削除して次の行のコメントを解除します。
#AmbientCapabilities=CAP_NET_BIND_SERVICE
次に、この行の先頭に#を追加します:
PrivateUsers=true
ファイルを保存して、次のコマンドを実行します:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
endlesshが実行するポートを認識できるように、構成ファイルを作成してセットアップする必要があります。最初に新しいディレクトリを作成してから、構成ファイルを作成する必要があります。
sudo mkdir -p /etc/endlessh sudo vim /etc/endlessh/config
構成ファイルには、1行だけが必要です。これにより、SSHのデフォルトポートであるポート22で実行するようにendlesshに指示されます。これは、ハッカーにとってより魅力的なターゲットになるようにするためです。デフォルトのSSHポートが開いていることを確認してから、侵入を試みます。
構成ファイルに次のように入力します。
Port 22
エンドレスサービスを開始する必要があります。
sudo systemctl start endlessh
これですべてです。これで、デフォルトのSSHポートで無限に実行され、すでにハッカーをトラップしています。
テストする
ハニーポットが意図したとおりに機能していることを確認するために、少しの間ハッカーのふりをして、サーバー上のSSHにアクセスしてみてください。
ssh root@<server-ip-address>
すべてが正しく設定されている限り、ssh
が表示されます。 コマンドがスタックし、何もしていません。あなた(または実際のハッカー)がこのコマンドを発行したときに実際に何が起こっているかを見てみましょう。
同じコマンドを繰り返しますが、-vvv
を追加します 詳細オプションを使用するにはフラグを立てます。
ssh -vvv root@<server-ip-address>
これで、この小さなツールがどのようにあなたをトラップし、サーバー上のSSHにアクセスできないようになっているのかが明らかになるはずです。ゆっくりと1行ずつ、非常に大きなSSHバナーをクライアントに送信します。
そしてもちろん、ハッケはこれをボットで自動化したので、数日ではないにしても何時間も無駄にした後まで、これが起こっていることに気づきません。
よくある質問
1。これにより、ハッカーがSSHにアクセスできなくなりますか?
これはかなり良い抑止力ですが、ハッカーを完全に阻止することは保証されていません。注意深いハッカーは、サーバー上にハニーポットを作成したことに最終的に気づき、サーバー上のSSHにアクセスするためにさまざまなポートを試す可能性があります。
ただし、これは、ぶら下がっている果物だけを探しているハッカーを防ぐのに十分なはずです。
2。このプログラムがデフォルトのポートで実行されている場合、SSHを使用するにはどうすればよいですか?
SSHが実行されるポートを変更する必要があります。これは、サーバーにハニーポットがない場合でも、ハッカーが他のポートをスキャンする前に常にデフォルトのポートを最初に試すため、良い習慣です。
3。構成ファイルに追加できる他のオプションはありますか?
はい、遅延速度の変更など、変更できる設定は他にもいくつかあります。
オプションのリストは、Githubリポジトリのサンプル構成ファイルで確認できます。
最後の言葉
サーバーにハニーポットを設定してハッカーをトラップし、ハッカーが他の何も攻撃できないように気を散らしておく方法を学んだので、サーバーへのSSHアクセスを保護する唯一の方法とは言えません。
>サーバーをさらに保護するために暗号化キーを使用してSSHにログインする方法を示すこの記事を確認してください。
-
リバースSSHトンネルを使用してPCへの外部接続を許可する方法
運が良ければ、インターネットサービスプロバイダー(ISP)から専用のIPアドレスが提供されます。ルーターにいくつかのポート転送ルールを追加することで、ホームサーバーをセットアップし、インターネットで利用できるようにすることができます。ただし、ISPがそのIPをネイバーと共有するように設定している場合、ポート転送は役に立ちません。他のプロバイダーは、ファイアウォールルールを介して着信接続をブロックするだけです。 仮想プライベートサーバーを使用すると、これらの制限をすべて回避できます。 RAMが512MB未満の場合でも、ネットワークトラフィックをリダイレクトするだけなので、何でも機能します。これ
-
カスタム絵文字を作成してDiscordサーバーに追加する方法
このサービスでは、独自のカスタマイズされた反応を作成できるため、Discordは自分自身を表現するのに最適な場所です。標準の絵文字パッケージはあまりにも当たり障りのないように見えますか? Discordでは、自分の絵文字をアップロードして、友達に感動を与えることができます。クリエイティブになり、独自のカスタム絵文字をDiscordサーバーに追加する方法を知りたい場合は、このガイドでプロセスを説明します。 不和のためのカスタム絵文字の基本 Discordにカスタム絵文字を追加するには、サーバーの所有者であるか、有効な絵文字を管理する権限を持っている必要があります。許可を得ている人は、最大50個