Linux Server Deployment & SSH Mastery · レッスン

侵入検知と防御

Fail2Banなどの侵入検知システム(IDS)を設定し、侵入防止システム(IPS)の原則を理解して、サーバーを積極的に防御します。

レッスン 3/411 ステップ

「侵入検知と防御」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

ファイアウォールの先へ:アクティブディフェンス

サーバーセキュリティの最後のレッスンへようこそ。防御に不可欠なファイアウォールと監査について学んできました。しかし、執拗な攻撃者がこれらの防御を回避しようとしたらどうでしょうか。

このレッスンでは、侵入検知システム(IDS)と侵入防止システム(IPS)を紹介します。これらのツールはアクティブディフェンスの層を追加し、サーバー上の悪意のある活動を検知して阻止するのに役立ちます。

IDSとは

侵入検知システム(IDS)は、不審な活動を常に監視する警備員のようなものです。攻撃を示すパターンがないか、サーバーのネットワークトラフィックやシステムログを監視します。

  • パッシブ監視:IDSは脅威を検知し、通知します。
  • ブロックは行わない:侵入を能動的にブロックしたり防止したりすることはありません。役割は通知に限られます。
  • 例:SnortやSuricataなどのツールは、送受信データを分析するネットワークベースのIDSとして機能します。

IPSとは

侵入防止システム(IPS)は、IDSの概念をさらに発展させたものです。IPSは通知するだけでなく、検知した脅威を阻止するために能動的に介入します。

  • アクティブ保護:悪意のあるIPアドレスを自動的にブロックしたり、不審な接続を終了したり、有害なパケットを破棄したりできます。
  • 防止を重視:リアルタイムで侵入の成功を防ぐことが目的です。
  • Fail2Ban:今回取り上げる、ホストベースのIPSとして広く使われている例です。

Fail2Banの紹介

Fail2Banは、強力なオープンソースのホストベースIPSです。SSH、Webサーバー、メールサーバーなどのログファイルをスキャンし、繰り返されるログイン失敗やその他の不審なパターンを探します。

指定した時間内に単一のIPアドレスからの失敗が多すぎると、Fail2Banはサーバーのファイアウォールルールを自動的に更新し、そのIPアドレスを一時的または恒久的に禁止します。

Fail2Banの仕組み

Fail2Banは、次の3つの主要な概念に基づいて動作します。

  • フィルター:ログファイル内で探すパターンを定義する正規表現です(例:'failed password for root')。
  • Jail:フィルターとアクションを組み合わせたものです。監視するログファイル、使用するフィルター、フィルターの条件に一致したときに実行するアクションを指定します。
  • アクション:IPが禁止されたときに実行されるコマンドです。通常は、iptablesやufwなどのファイアウォールルールを変更して送信元IPをブロックします。

Fail2Banのインストール

Fail2Banは、ほとんどのLinuxディストリビューションのデフォルトリポジトリで利用できます。ここでは、UbuntuなどのDebianベースのシステムにインストールします。

まずパッケージリストを更新し、次にfail2banパッケージをインストールします。

sudo apt update
sudo apt install fail2ban

基本設定:jail.local

Fail2Banの主な設定ファイルは/etc/fail2ban/jail.confです。ただし、更新時に上書きされる可能性があるため、このファイルを直接編集してはいけません。

代わりに、/etc/fail2ban/jail.localという名前でコピーを作成し、そこで変更を行います。このファイルの設定がjail.confの設定を上書きします。

jail.localで設定できる主なグローバル設定は次のとおりです。

  • bantime:IPを禁止する期間(例:10分間の10m)。
  • findtime:失敗した試行を数える時間枠(例:10m)。
  • maxretry:IPを禁止するまでの失敗回数(例:5)。

SSH保護の有効化

Fail2Banの最も一般的な用途の1つは、ブルートフォース攻撃からSSHを保護することです。/etc/fail2ban/jail.localファイルには、「jail」と呼ばれるサービスごとのセクションがあります。

SSHのjailを有効にするには、通常、[sshd]セクションでenabled = trueを設定するだけです。bantime、findtime、maxretryの値をカスタマイズすることもできます。

編集後、変更を反映するためにFail2Banを再起動します。

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h

sudo systemctl restart fail2ban

Fail2Banの監視

Fail2Banを設定して起動したら、ステータスを確認し、IPが実際に禁止されているかを確認するとよいでしょう。そのためにはfail2ban-clientコマンドを使用できます。

Fail2Ban全体のステータスを確認するには、次のようにします。

sudo systemctl status fail2ban

確認問題:Fail2Banの設定

SSHサービスを保護するようにFail2Banを設定しました。maxretry = 3とbantime = 1hを設定しています。

攻撃者がSSH経由でログインを試みます。

  1. 10:00:00にログイン失敗
  2. 10:00:30にログイン失敗
  3. 10:01:00にログイン失敗
  4. 10:01:30にログイン失敗

findtimeが10分に設定されている場合、攻撃者のIPアドレスはどうなるでしょうか。

まとめ:IDS、IPS、Fail2Ban

よくできました。サーバーにアクティブな防御層を追加する方法を学びました。

  • IDS(侵入検知システム)は、不審な活動を検知して通知します。
  • IPS(侵入防止システム)は、脅威を検知して通知し、能動的にブロックします。
  • Fail2Banは、ログをスキャンして悪意のあるパターンを探し、ファイアウォールルールを更新して問題のあるIPアドレスを禁止するホストベースのIPSです。
  • Fail2Banのインストール、jail.localでのグローバル設定、SSHなど特定のjailの有効化、ステータスの監視について学びました。

Fail2Banを導入すると、ブルートフォース攻撃やその他の自動化された脅威に対するサーバーの耐性が大きく向上します。これらのスキルを練習し、堅牢で安全なシステムを構築できるようになりましょう。

無料で開始

AI チューターと学ぶ Linux Server Deployment & SSH Mastery — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
12
レッスン
48

よくある質問

「侵入検知と防御」レッスンは無料ですか?

はい。「侵入検知と防御」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

「侵入検知と防御」で何を学びますか?

Fail2Banなどの侵入検知システム(IDS)を設定し、侵入防止システム(IPS)の原則を理解して、サーバーを積極的に防御します。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「侵入検知と防御」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. サーバーセキュリティ監査
  2. 高度なファイアウォールルール(IPTables)
  3. 侵入検知と防御
  4. 集中ロギングとSIEM連携
← Linux Server Deployment & SSH Masteryに戻る