これはおそらく大規模なnoobの質問ですが、Googleの検索結果は役に立たないため、ここで具体的なものを見つけることができませんでした。
友達のためにIRC、HTTP、SSHをホストするだけのサーバーを作りました。私は以前にこのようなことをしたことがあり、私の知る限りすべてうまくいきました。しかし、今日、初めてサーバーを適切に起動してから数分後、今夜気づくまでほぼ1日中、SSHを介してブルートフォース攻撃を受けていました。彼らは、中国やベトナムなどのビジネスから DigitalOcean’s アドレスまで、さまざまなIPアドレス全体からチェックしていました。
直接のIPアドレスは誰とも共有していませんでした。DNSは1〜2日しかセットアップされていませんでした。私の友人サークル(私が信頼する人)の外にいる誰かがサーバーが存在することを知る方法はなく、誰も私をハッキングする理由はありません。
ですから、私の質問は、漏えいしなかったとすれば、これらの人々はどのようにしてすぐに私のIPアドレスを取得したのでしょうか。
IPv4アドレスの範囲はそれほど大きくありません。
クラスAネットワーク(/8
)には約1600万のホストがあり、理論的には256個あります。その結果、インターネットには約4,294,966,784のホストがあります。もちろん、これは概算です。
多くのアドレス範囲は実際に予約されています(例:127.0.0.0/8
、10.0.0.0/8
)、その他は実際にはNATされた内部ネットワークを表す1つのアドレスです。しかし、単純な包絡線計算から判断すると、それはその球場のどこかにあると言えます。
攻撃者ができることは、SSHなどの特定のサービスに対して1つのサブネットを大量にスキャンすることです。多数のホスト(32ホストなど)を取得し、ターゲットサブネットを均等に分割するだけです。ポート22のSSHホストのみをスキャンし、どのホストが応答するかを確認します。
攻撃者は自分でブルートフォース攻撃を仕掛けようとするか、そのアクティブホストのリストを他の誰かに売って攻撃を仕掛けることができます。
そのようなリストを作るのにどれくらい時間がかかりますか?攻撃者がスキャンする32ホストのクラスAネットワーク全体(1600万ホスト)を1秒あたり約100ホストでスキャンしたいとすると、概算では90分になります。もちろん、時間はホストの速度や数によって異なりますが、その範囲内である必要があります。
IPアドレスはプライベートではありません。今日では、IPv4インターネット全体を数分でスキャンすることが可能です。 [〜#〜] zmap [〜#〜] などは、このようなスキャンに使用できるツールです。 [〜#〜] nmap [〜#〜] は、開いているポートまたはSSHなどのサービスをスキャンするためにIPアドレスで使用できます。
Shodan のようなオンラインデータベースには、インターネット上のデバイスとサービスの膨大なリストがあります。
プライベートネットワークをスキャンしてデバイスのインベントリを作成するアプリを開発しました。クラスBネットワーク全体を一度にスキャンできるように拡張したかったのです。一度に10,000個の「ping」パケットを送信し、すべての回答を並行して待つことで、数分(正しく思い出せば5回)でそれを実行する関数を書くことができました
それらはすべて同じネットワーク上にあり、より高速なものは多くのエラーにヒットするため、これには調整要因が含まれました。また、NIOおよびJavaは未処理のパケットごとにスレッドに座らなければなりませんでした-今日インターネットでは、おそらくもっと速くそれを行うことができます。
したがって、5分* 255(約1日)は、クラスaをスキャンするのにかかった時間です。つまり、20年前のコード(各ボットを使用して、255台のコンピューターの小さなボットネットで毎日インターネット全体をスキャンできます。クラスAを毎日スキャンします)。現実的には、1日のうちに1台のコンピューターからipv4スペース全体をスキャンし、同じコードでのミスに対する複数回の再試行を含めることができます。
ただし、すべてのデバイスの65kポートをすべてスキャンすると、約65,535倍の時間がかかります。
これは20年前に私に起こりました-しかし、彼らが開いているSSHポートをスキャンしているだけであることがわかりました(多分telnet/ftpもそうですが、それでも私はTHOSEをインターネットに配置しないことを知っていました!)。 SSHポートを5桁のポート番号に移動しましたが、二度と気になりませんでした。
また、SSHパスワードを無効にし、常に公開/秘密鍵を使用してください。これを使用すると、より使いやすくなり、他の人がハッキングするのがはるかに難しくなります。