アクセスコントロールリストを実際に使う
ACLがルールに基づいてトラフィックを許可または拒否する仕組みを学びます。
「アクセスコントロールリストを実際に使う」はCoddyKit上の無料Network+ Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNetwork+ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Network+ Academyコースには全4レッスンが含まれています。
ACLとは
ACL(Access Control List)は、トラフィックの特性に基づいて許可または拒否する、順序付けられたルールの集合です。ルーター、スイッチ、ファイアウォールはACLを使用して、通過を許可するパケットと破棄するパケットを決定します。
各ルール、つまりACE(Access Control Entry)は、送信元アドレス、宛先、プロトコル、ポートなどの条件でトラフィックに一致させ、許可または拒否のアクションを適用します。
ACLが照合する項目
一般的なACLルールでは、次の項目を調べます。
- 送信元IPアドレス(誰が送信しているか)
- 宛先IPアドレス(どこへ向かっているか)
- プロトコル(TCP、UDP、ICMP)
- ポート番号(どのサービスか)
これらを組み合わせることで、あるサーバーへのWebトラフィックだけを許可し、それ以外はすべて拒否する、といった正確なルールを作成できます。これにより、きめ細かくアクセスを制御できます。
上から下への処理
ACLは上から下へ評価され、最初に一致したルールで処理を停止します。そのため順序が非常に重要です。上の方に広範なルールを置くと、その下にある、より具体的なルールまで到達せず、上書きされてしまうことがあります。
一般的なベストプラクティスは、具体的なルールを先に置き、広範なルールを後に置くことです。これにより、包括的なエントリより先に、詳細な例外が評価されます。
暗黙の拒否
ほとんどのACLは、見えない暗黙の全拒否で終わります。明示的に許可されていないトラフィックはすべて破棄されます。このデフォルト拒否の動作はセキュリティ機能ですが、許可したはずのトラフィックがブロックされるため、必要な許可を忘れた初心者は戸惑うことがあります。
どのルールにも一致しなければ、トラフィックはデフォルトで拒否されることを常に覚えておきましょう。許可したいものは、明示的に許可する必要があります。
標準ACLと拡張ACL
ルーターには、従来から次の2種類のACLがあります。
- 標準ACLは送信元IPアドレスだけでフィルタリングします。大まかな制御ですが、シンプルです。
- 拡張ACLは送信元、宛先、プロトコル、ポートでフィルタリングし、はるかに正確に制御できます。
実際のポリシーでは、単に誰を許可するかではなく、どの送信元がどのサービスに到達できるかを指定する必要があるため、拡張ACLの方がはるかによく使われます。
インバウンドとアウトバウンド
ACLは方向を指定してインターフェースに適用します。インバウンドはインターフェースに入ってくるトラフィック、アウトバウンドはインターフェースから出ていくトラフィックです。同じルールでも、方向と適用先のインターフェースによって効果が異なります。
ACLを正しいインターフェースに正しい方向で配置することが不可欠です。正しいルールでも、間違ったインターフェースに適用すると、意図したトラフィックをフィルタリングできません。
ステートレスとステートフル
基本的なACLはステートレスです。以前のトラフィックを記憶せず、各パケットを単独で判断します。一方、ステートフルファイアウォールは接続を追跡するため、アウトバウンドトラフィックを許可すると、それに対応する返信も自動的に許可します。
ステートレスACLでは、両方向に明示的なルールが必要です。そのため、一般的なトラフィックのフィルタリングには、ステートフルファイアウォールの方が扱いやすく、よく使われます。
ACLの例
次のシンプルなルーターACLを例に、サービスを許可しながら、それ以外をすべてブロックするルールの組み合わせ方を確認しましょう。
access-list 101 permit tcp any host 10.0.0.5 eq 443
access-list 101 deny ip any any
! Permit HTTPS to the web server, deny all elseACLの一般的な用途
ACLは、既知の悪意あるIPアドレスのブロック、サーバーに到達できるサブネットの制限、ネットワークデバイスへの管理アクセスの制御、VLANやゾーン間のフィルタリングなど、さまざまなセキュリティ業務に利用できます。
ACLは基盤となる柔軟なツールです。セグメンテーションと組み合わせることで、ゾーン間の境界を強制的なルールに変え、どのトラフィックを通過させるかを正確に決定できます。
ACLの落とし穴
よくあるミスには、ルールの順序に関する誤り(広範なルールが具体的なルールを隠してしまう)、暗黙の拒否を忘れること、ACLを間違ったインターフェースや方向に適用すること、管理用トラフィックまで拒否してデバイスから自分を締め出してしまうことなどがあります。
ACLは慎重に計画して文書化し、変更をテストしてください。また、制限の厳しいルールを適用する前に、リモート管理アクセスが引き続き許可されることを必ず確認しましょう。
全体をまとめる
ACLは、許可/拒否ルールを順序付けて並べたリストです。上から順に処理し、最初に一致した時点で停止します。最後には暗黙の拒否があります。拡張ACLは送信元、宛先、プロトコル、ポートでフィルタリングし、インターフェースにインバウンドまたはアウトバウンドで適用します。ACLを適切に使用すれば、セグメンテーションを強制してデバイスを保護できますが、ルールの順序と配置には細心の注意が必要です。
確認テスト
ACLについての知識を確認しましょう。
まとめ
ACLは、送信元、宛先、プロトコル、ポートに基づいて照合する、順序付けられた許可/拒否ルールのリストです。ルールは上から下へ処理され、最初に一致した時点で停止します。許可されていないものは暗黙の全拒否によって破棄されます。拡張ACLは最もきめ細かく制御でき、インターフェースにインバウンドまたはアウトバウンドで適用します。ルールの順序と配置には注意が必要です。
よくある質問
「アクセスコントロールリストを実際に使う」レッスンは無料ですか?
はい。「アクセスコントロールリストを実際に使う」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Network+ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Network+ Academyコースには全4レッスンが含まれています。
「アクセスコントロールリストを実際に使う」で何を学びますか?
ACLがルールに基づいてトラフィックを許可または拒否する仕組みを学びます。 ブラウザで直接実行するハンズオンコードでNetwork+ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Network+ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのNetwork+ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「アクセスコントロールリストを実際に使う」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このNetwork+ Academyレッスンでコードを書いて実行できますか?
はい。すべてのNetwork+ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ネットワークにおけるCIAトライアド
- 多層防御と階層化セキュリティ
- ネットワークのセグメンテーションとゾーン
- アクセスコントロールリストを実際に使う