本文へ移動

インフラ転職コンパスわからないところから、ひとつずつ。

メニュー

拡張ACLはL3・L4をどう見る?IP・プロトコル・ポートの設定例

「社内PCからWebサーバーのHTTPSだけ許可したい」。この要件をCiscoの設定へ写すとき、IPだけでなくTCPとポートまで選べるのが拡張ACLです。

最初は一行が長く見えますが、送信元、宛先、プロトコル、ポートへ分ければ読めます。ここでは一つのHTTPS要件を例に、L3・L4のどの情報を使うかを順番に説明します。入力例は、設定の意味を理解するためのものです。

拡張ACLは、パケットの複数の条件を組み合わせる

標準IPv4 ACLは主に送信元IPを条件にします。拡張IPv4 ACLは送信元・宛先IPに加え、IPプロトコル、TCP/UDPのポート、ICMPのタイプなどを条件にできます。

L3はここではIPの情報、L4はTCP/UDPの情報と考えてください。「誰から誰へ」と「どの通信か」を分けて指定できます。

要件表の項目 ACLが参照する部分 例
送信元・宛先 IPヘッダー(L3) 10.10.0.0/16 → 172.28.31.10
通信種別 IPプロトコル番号(L3) TCP、UDP、ICMP
サービス TCP/UDPヘッダーのポート(L4) 宛先TCP/443
ICMPの種類 ICMPタイプ echoなど。TCP/UDPポートではない

拡張という名前でも、アプリの中身や接続状態を何でも判定できる意味ではありません。単純なインターフェースACLと、ステートフルFWの動作は区別します。

一つのHTTPS要件を、IPとTCPの条件へ分解する

送信元10.10.0.0/16から、宛先172.28.31.10のTCP443へ接続する例です。permit tcpでTCPを選び、そのあとに送信元、宛先、宛先ポートを記述します。

0.0.255.255はワイルドカードマスクです。0のビットは一致、1のビットは比較しない指定なので、この例では先頭の10.10が一致する範囲を表します。

IPヘッダーとTCP/UDPヘッダーをACL構文へ対応させる図
  1. STEP 01通信要件表
  2. STEP 02L3 IP条件
  3. STEP 03L4 プロトコル/ポート
  4. STEP 04名前付き拡張ACL
ip access-list extended APP-ACL
 10 permit tcp 10.10.0.0 0.0.255.255 host 172.28.31.10 eq 443

最後のeq 443は宛先側に書かれているため、宛先ポート443を選びます。送信元の指定の後ろへ書けば、送信元ポートの条件になります。位置にも意味があるので、前から順に読んでください。

返信ではIPとポートの向きが逆になります。別方向のACLがあるなら、その返信の条件も必要です。要求の一行をそのまま反対側に置いて済むとは限りません。

host、any、eq、rangeは、範囲を読み分ける

hostは一つのIPを指定する書き方です。anyはすべてのIPを表します。ワイルドカードで範囲を表す場合は、サブネットマスクと同じ数値をそのまま置かないようにします。

eqは一つのポート、rangeは連続するポート範囲です。必要なサービスが一つなら、その条件へ絞ると要件との対応が明確になります。

クライアントの送信元ポートは通常、一時ポートです。Webの443を送信元へ固定すると、普通のクライアントからの要求に合わない場合があります。

サービス名を使う場合も、対象OSでその名前がどの番号を表すかを確認します。同じ番号でもTCPとUDPは別の条件です。

ICMPとestablishedは、TCPポートの説明から切り離す

ICMPはTCP/UDPのポートを持ちません。pingの要求ならecho、返信ならecho-replyなど、タイプを使って条件を細かくします。到達不能通知やPath MTU Discoveryに必要な通知も、要件に合わせて検討します。

TCPのestablishedは、ACKやRSTのフラグを見る条件です。実際にその接続が開始され、許可された状態かを全部追跡するステートフルFWとは違います。

「戻り通信ならestablishedで全部安全」という説明にはしません。何のビットを見る条件か、何を保証しないかを確認します。

ICMP、TCP、UDPを別の行へ整理すると、ポートを持たない通信へポート条件を書こうとする混乱も減らせます。

名前付きACLは、要件と行番号を対応させて管理する

ip access-list extended APP-ACLのように名前を付けると、用途を示しながら行を管理できます。シーケンス番号は行の評価順を表すので、追加する位置も確認します。

通信要件のIDとACEの番号を対応させておくと、そのpermitが何のためかを説明できます。名前を付けただけで通信へ適用されたわけではなく、適用インターフェースとin/outも必要です。

NATがある場合は、その評価点で見えるIPへ条件を合わせます。送信元・宛先、プロトコル、ポート、方向、NAT前後を一つの表にすると、設定と試験がつながります。

既存ACLへの追加では、上位の広いpermitやdenyに先に一致しないかを確認します。新しい一行だけでなく、全体を上から読むことが必要です。

許可・拒否・返信を試して、条件の境界を確かめる

TCP443が通ることに加え、許可していないTCP22などが止まることを確認します。さらに戻り通信と、既存の業務通信も試します。

装置では対象ACEのカウンターを試験前後で比較し、端末側の結果と合わせます。成功・失敗だけでなく、どの条件で判定したかを残します。

拡張ACLの読み方は、長い一行を順に分けることです。「送信元から宛先へ、TCPの宛先443」と読めれば、要件から設定へ写す練習ができます。

次は図へ適用場所と方向を書き、その場所を通るパケットの値とACLの行が一致するかを確認してみてください。

動画・筆者の投稿で補足する

文章と図で流れをつかんだら、関連する動画も参考にしてください。画面の表示や操作は、機種・ソフトウェアの版によって異なる場合があります。

Xの元ポスト

拡張ACLはL3のIPとL4のTCP・UDP・ポート番号を理解して設定すると整理したポスト。

ACL入門 後編

関連する動画・筆者の投稿:2025年5月14日 / 筆者のX投稿 / @yeiquer12 / 設計構築チャンネル

確認に使った公式資料
最近の記事
ピックアップ