最近、悪意のあるSSHログイン試行の分析について 記事 を読みました。これは私に考えさせられました、私のDebianボックスのSSHユーザー名とパスワードの組み合わせは珍しいですか?私はブルートフォース辞書攻撃の標的にされていましたか? / var/log/auth.log.0を見てみましょう:
Sep 23 07:42:04 SLUG sshd[8303]: Invalid user tyjuan from 210.168.200.190
Sep 23 07:42:09 SLUG sshd[8305]: Invalid user tykeedra from 210.168.200.190
Sep 23 07:42:14 SLUG sshd[8307]: Invalid user tykeem from 210.168.200.190
Sep 23 07:42:19 SLUG sshd[8309]: Invalid user tykeshia from 210.168.200.190
Sep 23 07:42:25 SLUG sshd[8311]: Invalid user tyla from 210.168.200.190
Sep 23 07:42:30 SLUG sshd[8313]: Invalid user tylan from 210.168.200.190
Sep 23 07:42:35 SLUG sshd[8315]: Invalid user tylar from 210.168.200.190
Sep 23 07:42:40 SLUG sshd[8317]: Invalid user tyler from 210.168.200.190
Sep 23 07:42:45 SLUG sshd[8319]: Invalid user tylerfrank from 210.168.200.190
Sep 23 07:42:50 SLUG sshd[8321]: Invalid user tyliah from 210.168.200.190
Sep 23 07:42:55 SLUG sshd[8323]: Invalid user tylor from 210.168.200.190
だからそれはよく見えません。攻撃の標的にされており、ユーザー名とパスワードの組み合わせの一部が弱いことがわかったので、どうすればよいか知りたいです...
[〜#〜]更新[〜#〜]
加害者が残した損害を元に戻すためのアドバイスはありますか?
多くの人がDenyHostsを提案しているようですが、私のシステムでは Fail2Ban で多くの成功を収めています。 (構成可能な)数の障害を監視し、アクションを実行します-私のサーバーでは、そのアクションはiptablesを使用してホストからのすべてのトラフィックをドロップすることです。 10回のログイン失敗の後、彼らは禁止され、それで終わりです。
これをLogcheckと組み合わせて使用するので、サーバーで何が起こっているかを常に把握できます。
誰かが実際にシステムに侵入したという証拠がある場合(投稿したログはこれの証拠ではありません)、唯一の解決策は、保持する必要のあるすべてのデータをバックアップし、マシンをワイプし、再インストールして、復元することです。バックアップから。そうでなければ、確認する方法はありません。
有効なログイン試行もログインされているため、ブルートフォース試行の後に成功が表示された場合は、何か問題が発生したことを示しています。
DenyHosts を使用して、疑わしいSSHトラフィックのログを監視し、特定のポイントでホストを自動的にファイアウォールで遮断するように設定しています。
負荷パターン、ログインアクティビティ、定期的なトラフィックスニッフィング、実行中のプロセスと開いているポートの監視、tripwireなどのツールを使用したファイルの整合性の確認など、マシンが侵害されていないかどうかを監視する方法は他にもさまざまあります。
1つだけを実行する場合は、システム負荷の監視は侵害を検出する非常に効果的な方法です。侵害されたほとんどのマシンは、大量のスパムを送信したり、大量のトラフィックを受信したりするために使用されるためです。あなたが価値の高いターゲットであり、ホストをゾンビに変える以外の理由で人々が特にあなたに侵入しようとしている場合は、おそらく役に立ちませんが、それでも価値があります。さらに、プロファイリングと、より多くのハードウェアまたはより優れたソフトウェアに投資する必要がある時期を把握するために、監視負荷が必要です。
また、予期しないことについてauth.logなどを調べて、包括的なログ分析を行う必要があります。ログファイル分析は競争の激しい市場であり、問題はまだ解決されていませんが、ログウォッチのような無料のツールがあり、毎日要約を送信するように構成できます。
レイヤーによるセキュリティ!
非常に高価なTripwireを忘れてください。代わりにAIDEを使用してください。無料でセットアップが簡単です(ただし、除外する一時ディレクトリを決定したり、構成したりするのに少し時間がかかります)。
実行すると、すべてのファイルのデータベースが構築されます。もう一度実行すると、変更されたファイルがわかります。
もう1つ行うことは、拒否ホストタイプのブロッカーを備えたCSFをインストールすることです。ユーザーが繰り返しログインに失敗すると、ファイアウォールルールに追加されます。 SSHログインに公開鍵を要求することもできます。スクリプトキディは、好きなだけログインを試みることができます。
"* ... determine if my Linux box has been infiltrated?"
「* ...加害者が残したダメージを元に戻しますか?」
忘れてください。攻撃があった場合は、最初から再インストールすることをお勧めします(新しいインストールの穴をプラグインするようにしてください)。バックドアやステルスプロセスに気付かないのは非常に簡単です。再インストールすることをお勧めします。
「* ...これが今後起こらないようにしますか?」
セキュリティアップデート
厳しいファイアウォール
強力なパスワード
不要なサービスをオフにする
logcheck 、 portsentry 、および tripwire などのツールを見てください。ランダムな辞書SSHの試行では非常に一般的であるため、それほど心配する必要はありません。ランダムな難読化のためにポートを変更したいかもしれませんが、それでも時々ランダムな試みが見られます。それはインターネット上にマシンがあることです。
これらの攻撃を防ぐためにサーバーで使用しているものの1つは、 DenyHosts です。 DenyHostsは、悪意のあるユーザーがログインを試みるのを阻止します。インストールしてから、ログファイルのログイン試行エントリがはるかに少なくなりました。
追加の認証として公開鍵と秘密鍵のペアを使用することをお勧めします。そうすれば、ユーザーは正しいキーがないとSSH経由でログインできません。野蛮なフォーサーを推測するのはかなり不可能でしょう。これについての素晴らしい記事が見つかります ここ 。
これだけでパスフレーズを使用すると、SSH認証にはかなり強固になります。しかし、もっと多くの脆弱性があります!開いているポートを使用するすべてのアプリケーションに注意してください。それらにバグが含まれている場合、悪用者がシステムを追い抜く可能性があります。良い例は、現在使用しているwebstatsソフトウェアのバグのためにサーバーにインストールされたスパムボットでした。
Fail2banは、アクセスログのリアルタイムアナリサーです。ログイン試行に失敗したIPをブロックするように構成できます。これにより、sshポートを移動することなく、辞書攻撃を回避できます。 chkrootkitとrootkithunterは侵入をチェックするための優れたユーティリティです。侵入が成功した場合のベストプラクティスは、データ(および実行可能ファイルではなくデータのみ)をコピーし、システムがクリーンであることを100%確認することは非常に難しいため、ワイプして再インストールすることです。
あなたの箱が侵害されたことを示唆するものはここには何もありません。パスワードがかなり弱い場合でも、ユーザー名ごとに1回のログイン試行のみをスローする辞書攻撃が成功する可能性は非常に低くなります。
ただし、パスワードが弱いことがわかっている場合は、パスワードを強化してください。私は個人的にpwgen(Debianによってパッケージ化されています)が好きです。実行するたびに、yodieCh1、Tai2daci、またはChohcah9など、覚えやすいかなり強力な、ただし比較的発音しやすいパスワード候補が多数生成されます。
ただし、システムが危険にさらされていることを示す他の証拠がある場合は...軌道からそれを削除します。それが確実な唯一の方法です。
実行不可能なデータはおそらく回収可能ですが、実行可能なコンテンツ(MS Officeドキュメントや一部の構成ファイルなどが含まれる可能性があります)を含むものはすべて、手動で調べてそれがないことを確認するつもりでない限り、移動する必要があります敵対的になったり、敵対的である可能性を受け入れたり、システムに損傷を与えたり、それを維持した場合に将来の再妥協の道を提供したりするため。
私が気に入っている小さな追加の保護の1つは、着信ssh接続をレート制限して、辞書攻撃などを遅くすることです。これだけですべてが保護されるとは思わないでください。ただし、パスワード認証の無効化など、他の回答の提案に加えてこれを使用してください。
Iptablesの使用:
$ iptables -A INPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 22 -j DROP
このスレッドには、次のような不適切なアドバイスがあります。
代わりに/etc/ssh/sshd_config
を調整して、セキュリティを向上させます。
PermitRootLogin no
あなたが箱であるならば、潜入しています。ボックスを再構築します。
Sshが有効になっていると常に発生します。高いポートに移動します。
「Tripwire」と呼ばれる侵入検知に優れたプログラムがありますが、インストールはかなり困難です。他に何もない場合は、問題を理解するために、ドキュメントを読む必要があります。
マシンをインターネットに接続する前に、侵入検知をインストールする必要があります。
そして、SSH接続をIPホワイトリストに登録して、全世界がそのようなことを試すことさえできないようにすることをお勧めします。
Linuxボックスが侵入されているかどうかを確認するにはどうすればよいですか?
読み取り専用メディア(livecd)から起動し、ファイルをバックアップまたは元のメディアと比較します。
奇妙な振る舞いを探しましょう。もちろん、これは、ハッキングの前に時間をかけて「正常」なものをよく理解する場合に最も簡単です。
投稿したエラーは妥協を示すものではありません。ちょうど誰かがしようとしている。
加害者が残したダメージを元に戻すにはどうすればよいですか?
システムが危険にさらされる前に、再インストールしてバックアップから復元します。
見る:
どうすればこれが将来発生するのを防ぐことができますか?
見る:
将来のセキュリティ問題を防ぐために、[〜#〜] ossec [〜#〜]を見ることができます。これを使用して、ファイルの整合性チェックを行います。サーバーでのログ監視も非常に完全で設定も簡単です。メール通知を送信したり、コマンドラインまたはWebインターフェイスを介してアラートを確認したりできます...
ウェブサイトから取得:
「OSSECは、オープンソースのホストベースの侵入検知システムです。ログ分析、ファイルの整合性チェック、ポリシーの監視、ルートキットの検出、リアルタイムのアラート、アクティブな応答を実行します。」
ログ分析それはあなたのサーバーのログファイルをチェックし、ルールを介してあなたに警告することができます(たくさん事前に定義されており、あなたはあなた自身のものを追加することができます)
サーバー上でファイルが変更されているかどうかを確認できるように、機能のようなファイル整合性トリップワイヤー/エイド
ポリシーの監視:いくつかの「ベストプラクティス」のセキュリティルールを確認します
ルートキットの検出:rkhunter、chkrootkitのような機能
リアルタイムのアラートとアクティブな応答:アラートに自動的に反応するようにossecを構成できます(これは使用しませんが、失敗した接続試行が多すぎるホストへのSSHアクセスをブロックするために使用できます)
本当に良い製品で、とてもアクティブです
ボックスを硬化させるには、lynisまたはbastilleを使用することもできます
箱を見て、何が出入りしているかを確認し、不審なものを探すことができます。この投稿を参照してください: https://stackoverflow.com/questions/124745/sniffing-network-traffic-for-signs-of-virusesspyware
rkhunterまたはchkrootkit、あるいはその両方を使用します。ボックスを外側からスキャンして、開いているポートを確認します
とにかく、あなたが持っているのが無効なユーザーだけなら、心配する必要はありません:)
非常に異なる何か:IPアドレスで Google を使用してみてください!トルコから自分自身を [〜#〜] starturk [〜#〜] と呼ぶハッカーがあなたのサイトをハッキングしようとした可能性があります。
システムに対するブルートフォース攻撃のように見えますが、このハッカーが1回試行しただけで、他のサイトに移動した可能性があります。
多くの人が指摘しているように、Tripwire/AIDEはシステムの変更を探すための最良の方法です。残念ながら、既知の良好なシステムで構成する必要があるため、牛はその納屋から出てしまいます。
少なくとも始めるのに役立つかもしれない1つのことは、RPMデータベースを使用してファイルのmd5sumsをチェックすることです。基本的な要点は次のとおりです。
rpm -qa | xargs rpm -V
これはさまざまな理由で完璧ではありません。まず、ローカルRPMデータベースが理論的に変更されている可能性があります。次に、ほとんどのディストリビューションはプリリンクを使用し、RPMはプリリンクを認識しません。 MD5は合法的なプロセスから変更されたように見える場合があります。
最善のアドバイスはこれです:あなたが危険にさらされているかどうかわからない場合は、本当に再構築の時です。