ネットワークACLとは?ネットワークの通信制御についてポイントを解説

大手電機メーカー系のSierに入社後、インフラエンジニアとしてLinuxサーバーの構築や保守・運用、ソフトウェアの開発業務を経験。アイティベル入社後は、IT領域の執筆などを行う。


昨今、利用する通信デバイスが増えてきており、社内から社外、クラウドなどさまざまな宛先への通信が多くなっています。宛先への安全な通信手段としてネットワークACL(アクセスコントロールリスト)を活用し、宛先を直接指定して、安全な通信を実現します。
ここでは、ネットワークACL の意味や設定、ほかの機能との違いについて解説します。

目次

1. ネットワークACL(Access Control List)とは

ネットワークACLは、ネットワークアクセス制御リストやアクセスコントロールリストとも呼ばれ、ネットワーク上の特定の宛先へのアクセスの可否を設定したリストです。
このリストはルーターやスイッチを経由するパケットを、設定した条件に基づいて通信の許可、拒否を制御するものです。
あわせてよく耳にするキーワードとして、フィルタリングがあります。これはACLを用いてウェブサイトへのアクセスを制限する仕組みです。
ACLはネットワークだけでなく、システムやファイルへのアクセスを管理する際にも利用しますが、今回はネットワークに特化して解説していきます。

ACLが利用できる機器

ACLは主にアプリケーションの機能、ネットワーク機器の機能として具備されています。対応する機器として、シスコシステムズなどの高価な業務用ルーターから、安価なブロードバンドルーターまで、ほぼすべての機器でACLを設定できます。

2. 社内ネットワークにおけるACLの役割

ACLが実際に社内のネットワークでどのように利用されているかについて解説していきます。

社内ネットワークの全体像

ACLの制御を理解するために、社内ネットワークの全体構成をイメージしましょう。
多くの企業では、社内ネットワークから外部のリソースへのアクセスを制御するために、境界部分にはルーターやファイアウォールが設置されています。

図のネットワーク構成図では、インターネットにあるWebサーバーと通信する際、ルーターとファイアウォールが社内から社外に出ていく通信をチェックし、アクセスやデータのやり取りを制御しています。
ネットワークACLは、これらのデバイスに設定され、特定の宛先へのアクセスを許可や制限ができます。

ACLの機能と限界

ACLはネットワークセキュリティの重要なツールですが、すべてのセキュリティリスクを制御できるわけではありません。
ACLだけでは不十分な点と、ほかのセキュリティツールとの連携について解説していきます。

すべてのセキュリティ保証は不可能

ACLは特定の宛先への通信のみを制御するため、すべてのセキュリティ脅威からデータを保護できるわけではありません。

詳細分析はできない

ACLはトラフィックの送信元・送信先アドレス、ポート番号などに基づいてパケットをフィルタリングしますが、通信内容そのものの解析は行えません。

高度な脅威を検出できない

暗号化されたトラフィックやアプリケーションレベルの攻撃を直接、検出することはできません。そのため、ファイアウォールやIDS(侵入検知システム)などほかのセキュリティ対策と組み合わせて使用する必要があります。

簡潔にいえば、ACLはネットワークセキュリティの一環として重要ですが、ほかのセキュリティ製品と組み合わせて使用し、全体的な保護を強化することが推奨されます。
しかし、実際には、実際には簡易な構成で最低限の通信の制御をしている場合もあるでしょう。

重要なのは、ACLがどのような通信を制御し、どの種類のリスクに対応可能かを理解し、社内ネットワークを安全に利用できるようにセキュリティを設計することです。

3. ACLの仕組み、制御の理解

本項ではACLがどのように通信を制御しているのかについて解説していきます。

ACLの種類

ACLには大きく分けて、標準ACLと拡張ACLがあります。

・標準ACL

標準ACLは、通信パケットに含まれる「送信元IPアドレス」を利用して制御します。たとえば、社内サーバーに対する外部からのアクセスを制限したい場合は、標準ACLを使用して特定のIPアドレスからの接続のみを許可します。

・拡張ACL

拡張ACLは通信パケットに含まれる「送信元IPアドレス」に加え、「宛先IPアドレス」、「プロトコル番号」、「送信元ポート番号」、「宛先ポート番号」を含む、より詳細な情報を利用して制御できます。たとえば、社内ネットワークからインターネットへのアクセを細かく制御したい場合に拡張ACLを適用します。

社内ネットワークからインターネット上のWebサーバーやメールサーバーなどへのアクセス(HTTPやHTTPS)だけを許可し、それ以外のサービスへの使用を制限するといった細かいポリシー設定を行います。標準ACLと比べて制御できる項目が多くなるため、より精密なトラフィックのフィルタリングが可能です。

これらACLを接続要件やネットワーク構成にあわせて、使い分けることが重要です。

ACLとファイアウォール(FW)の違い

ネットワークACLを理解する際に必ず出てくる機器、機能にファイアウォールがあります。いずれもネットワークの境界部分にある制御装置で、先の構成図でも社内からインターネットへの出口に設置されています。

ACLとファイアウォールは通信パケットを条件に基づいてフィルタリングし、アクセス制御する機能は同じです。が、ACLはルーターやスイッチに組み込まれており、基本的なトラフィックのフィルタリング機能を提供するため、設定が簡易で、導入が手軽です。
ACLは特定の条件に基づいてパケットの通信を許可、拒否して、アクセス制御を実現しています。

一方、通信の振る舞いや対象通信前後のパケットを考慮した細かいアクセス制御、フィルタリングの高速な処理を求める場合は、ファイアウォールの利用をおすすめします。ファイアウォールは詳細な設定が可能であり、自社にマッチした高度なセキュリティポリシーを適用できます。
単純なアクセス制御にはネットワークACLが適していますが、より包括的なセキュリティ制御が求められる場合は、ファイアウォールやUTM(統合脅威管理)が必要となるでしょう。

あわせて読みたい
ファイアウォールとは?基本的な機能や重要性、選定する際のポイントを詳しく解説 近年、社内ネットワークへの不正アクセスによるセキュリティ事故が多発しています。セキュリティ対策の一つとして、多くの企業で導入されているのが「ファイアウォール...

セキュリティグループとは

ACLはルーターに機能として実装されているものだけでなく、クラウドサービスの通信制御でも利用されます。昨今、セキュリティグループというワードもACLと同様に耳にすることが増えています。Microsoft AzureやAWSなど、クラウド環境ではセキュリティグループがACLの役割を果たしています。

AWSでは「ネットワークACL」と「セキュリティグループ」という名称が使われ、Microsoft Azureでは「ネットワークセキュリティグループ」が類似の機能として提供されています。
これらは、各クラウドサービスのネットワークの中で、通信する宛先の情報から許可、拒否する機能であり、制御対象としてインスタンス、またはサブネット単位で通信を制御できます。

インバウンドとアウトバウンドとは

ACLを設定するうえでルーターの受信(インバウンド)と送信(アウトバウンド)の理解は不可欠です。インバウンドは、社内のネットワークに入ってくる通信を指し、アウトバウンドは社内から外部へ送られる通信を指します。

ACLを設定する際に、通信の方向と宛先の理解は重要です。ルーターのどちら側のインターフェースにどのようなACLを設定するかについては、送信元のネットワーク構成や宛先のIPアドレス、サブネットなどを把握し、それに基づいて適切なルールを設定します。結果として安全な通信を実現できます。

暗黙のDeny

ACLの設定を理解するうえで重要なポイントとなるのが暗黙のDenyです。

ACLは設定した1行目から順番に条件に合致するかを確認し、その通信を許可または拒否します。すべての行に合致しなかった場合、多くの機器では既定で最後に「Deny any」が表示されます。この設定をすると、定義されていない情報以外の通信はすべて拒否され、不要な通信を通さない仕組みになります。

4. ACL設計のベストプラクティス

ACLを利用するために意識しておくべき点を解説します。

どの通信を制御したいのかを明確にする

制御したい通信の種類を明確にし、どのトラフィックを許可し、どれを拒否するかを提示します。

通信の方向性とACLの種類の理解

通信の方向性を間違えるとセキュリティ上のリスクにもなりえます。インバウンドとアウトバウンドを正確に理解し、それに応じて標準ACLまたは拡張ACLを選択します。

たとえばリモートワークに必要なVPN接続を許可したい場合、社外からの不正アクセスを防ぎ、特定のIPアドレスからの接続のみを許可するために、標準ACLを使用します。

また自社が保有するオンラインサービスに対して、アクセス制御を行う際は、拡張ACLを使用して特定のポート番号(HTTPやHTTPSなど)のみを開放し、他は閉鎖して、不要なポート経由の攻撃リスクを低減させます。

宛先のサブネット(セグメント)単位で設定する

宛先が複数ある場合、信頼できるセグメントであればグルーピングすると、管理しやすくなります。

具体的には、同じセキュリティ要件を持つ複数の宛先IPアドレスをひとつのセキュリティグループやアクセスルールとしてまとめると、一括したアクセス制御を行えます。実際のビジネスシーンでは、特定のプロジェクトチームや部門ごとにネットワークセグメントを設定し、そのセグメント内でのみリソース共有を許可する方法が取られる場合があります。

ACLを設計する際には、宛先のセグメント単位での設定を利用し、ネットワークのセキュリティ強化と管理の簡素化のバランスを図ることが大切といえるでしょう。

すべての通信を遮断しないように事前に設定内容を読み解く

間違えた設定をすると、どこに対してもアクセスができなくなり、最悪の場合、設定や管理すらできなくなってしまうため、注意が必要です。設定を適用する前には、すべてのACL設定を慎重に検証し、特に拒否ルールは意図した通信を遮断しないように確認しましょう。

また、すべての変更を一度に適用するのではなく、部門ごとなど段階的に適用していくと、影響範囲を限定でき、問題が発生した場合にすぐに対応できます。

設定に矛盾が生じないように意識して設計する

同じ宛先に許可と拒否をしてしまうと、どのルールが優先されるかが不明確になり、予期しないセキュリティリスクや通信の問題を引き起こすおそれがあります。

具体的には新しいルールを追加する前に、既存のルールと重複または矛盾していないかを確認し、既存のルールと矛盾する場合は、必要に応じて既存のルールを調整するか、新しいルールの追加を再考します。

また、アクセス制御のポリシーを文書化しておくと、ACLの設計時に参照でき、矛盾を避けられます。

5. ACLの設定手順

この項ではACLの具体的な設定について解説します。

ACLはフィルタリングする条件を1行ずつ設定していきます。
ルーターは受信したパケットがACLの1行目から順番に設定された条件に合致するかを確認し合致した条件の通信を許可、または拒否します。
サブネット(セグメント)単位で設定する際には、ワイルドカードマスクを利用します。

標準ACLのコマンド設定例

標準ACLを設定する場合は、ルーターのアウトバウンド側で送信元IPを制御します。
標準ACLの設定は以下のように設定します。

(config)# access-list <ACL番号> <permit / deny> <送信元アドレス> <ワイルドカードマスク>

具体的な設定


通信要件:
・[192.168.0.0/24] のネットワークから、Webサーバーへの通信を許可する。
・[192.168.11.11] のホストから、Webサーバーへの通信を拒否する
・それ以外のネットワークの通信は拒否する。

(config)# access-list 1 deny 192.168.11.11 0.0.0.255
(config)# access-list 1 permit 192.168.0.0 0.0.0.255

ACLを確認する場合は以下を使用します。

# show access-list [<ACL番号> | <ACL名>]

拡張ACLのコマンド設定例 

拡張ACLは双方向の設定が可能なため、インバウンドでIPアドレス、ポート番号で柔軟に制御できます。

(config)# access-list < ACL番号 > < permit / deny > < プロトコル > < 送信元アドレス > < ワイルドカードマスク > [< 送信元ポート番号 >] < 宛先IPアドレス > < ワイルドカードマスク > [< オプション >]

具体的な設定
通信要件:
・[192.168.11.11]のホストから、[10.1.1.31]のWebサーバーに対してポート番号80の通信を拒否する
・[192.168.11.12]のホストから、[10.1.1.31]のWebサーバーに対してポート番号23の通信を拒否する
・上記を除く全ホストからの宛先へのIP通信を許可する

(config)# access-list 100 deny tcp host 192.168.11.11 host 10.1.1.31 eq 80
(config)# access-list 100 deny tcp host 192.168.11.12 host 10.1.1.31 eq 23
(config)# access-list 100 permit ip any any

この事例ではすべての通信を許可する設定を行っていますが、最後には暗黙の「deny all」を適用すれば、設定されたルールに一致しない「すべてのトラフィックが拒否」できます。
これらは一例ですが、設定内容は通信要件に従って、設定内容を設計し、疑似環境で試験をしてからコマンドを投入することをおすすめします。
最近はGUI(マウスや指などで操作できる画面)で設定を行える機器も出てきているため、具体的な設定内容やコマンドは機器のマニュアルを確認しましょう。

6. ACLを活用したセキュリティ強化

ACLで実現できるセキュリティの要素について解説します。

アクセス制御

ACLを利用すると、特定の場所から指定したリソースへのアクセスの制御ができるため、権限を持たない端末やユーザーからの悪意のある攻撃や不正なアクセスを防げます。セキュリティの脆弱性を効果的に低減できます。

外部からの通信を遮断

ウイルス感染などで遠隔操作された端末から発生する通信を遮断し、マルウェアなどの侵入を阻止して、社内ネットワークを保護します。また、内部から指定の宛先以外への通信を制限すると、不正なデータ漏えいを防ぎ、情報流出のリスクを軽減します。

段階的なセキュリティレベルの強化

ACLは数多くのルーターに機能として実装されているので、手軽に通信の制御を実装できます。
しかし、セキュリティを意識して通信要件が高度化、複雑化してくる場合にはネットワークACLで対応しきれない場合もあるため、ファイアウォールやUTM(統合脅威管理)などを活用して、セキュリティレベルを上げることをおすすめします。

7. ACLの管理とメンテナンスのポイント

この項ではACLを運用していくうえで必要なポイントについて解説します。

定期的な監査とレビュー

長く運用しているとネットワークの構成が変わることでACLに設定されている内容と乖離するおそれがあります。そのため、アクセスログを監査して、不適切な宛先設定が残っていないかなどを監査する必要があります。

管理者ユーザーアカウントの厳格な管理

管理者の入れ替わりや権限変更が生じた場合、権限が古いとセキュリティインシデントを引き起こすリスクがあります。管理者アカウントと権限の定期的な棚卸を実施し、適切な担当者に適切な権限が付与されているかを確認します。

継続的なモニタリング

昨今、標的型攻撃など気づかないうちにトラブルが発生してしまう可能性があるので、日々アクセスログの内容を確認し、異常なトラフィックパターンや想定しないエラーが発生していないかなどチェックする必要があります。

最新情報の収集と適用

導入している機器に、新しい脆弱性が発見されるおそれもあるため、機器のベンダーから提供されるセキュリティ情報などを定期的に確認し、必要であれば修正プログラムの適用を検討します。

関係者への教育

担当者がACLの設定内容や制御の内容を理解するとともに、トラブルが発生した際に即時に対応できるように、定期的な教育とトレーニングの機会を持つ必要があります。

これらを実現するためには、適切なツールの選定と活用が推奨されます。次章で詳しく解説します。

8. ACLを効率的に管理する方法

ACLの効率的な管理は、複雑化するネットワーク環境でセキュリティを維持するうえで不可欠です。この章では、ACLを効率的に管理するためのツールと機能について解説します。

ACLを効率的に管理できるツールと機能

昨今利用するデバイスの種類が増え、クラウド環境の利用増加に伴い、ネットワークの制御が複雑化しているため、ACLを効率的に管理できるツールや機能が登場しています。
セキュリティインシデントおよびイベント管理(SIEM)ツールは、ルーターにあるACLに連携して一括して管理できます。
このツールを用いてアクセスログを監視すれば、不適切な通信や異常なトラフィックを検知できます。

アクセスリストを動的に管理する

セキュリティインシデントおよびイベント管理(SIEM)ツールは不適切な通信を監視し、事前に定義した基準に基づいてACLの設定を遮断できます。くわえて、アラートを確認した後に担当者が主導でACL設定を変更するといった対応も可能です。

効率的な管理の実現に対応できない機器やツールもあるため、利用する機器やバージョンは事前に確認をしましょう。
また、管理、運用を効率化するツールは既存機器に追加で準備が必要なので、実現したい要件と予算を考慮し、ツールの選定、導入を進めたほうがよいでしょう。

9. まとめ

ネットワークACLは社内のネットワークで必要な通信以外を制御するうえで簡易に設定ができる機能です。正しく理解し、適切な場所に適切な設定をすれば、安全なネットワークを実現できます。
ただし、ACLだけでは要件をクリアできない場合は、必要な機器やサービスを連携すれば、セキュリティリスクを軽減できます。規模が大きくなると管理が煩雑になるためツールを活用して、効率よく管理していくことが重要です。
まずは実際に試してみて、理解を深めていくことをおすすめします。

目次