LoginSignup
0
0

ACL(Access Control Lists)

Last updated at Posted at 2024-01-21

概要

通信の制御に使用される。ACLの内容に基づいてパケットフィルタリング(ルータに送られてくる通信を許可・拒否する通信に分けること)を行う。様々な種類が存在する。

標準ACL

パケットの送信元IPアドレスをチェックする。

  • 番号付き標準ACL:1~99(IOS 12.0以降では1300~1900も可)の値を指定
  • 名前付き標準ACL:名前を示す文字列を指定

拡張ACL

送信元IPアドレス、宛先IPアドレス、プロトコル番号、送信元ポート番号、宛先ポート番号をチェックする。

  • 番号付き拡張ACL:100~199(IOS 12.0以降では2000~2699も可)の値を指定
  • 名前付き拡張ACL:名前を示す文字列を指定

作成時の注意点

  • ACLは上の行から順番に検索し該当行があった場合、それ以降の行の検索は行わない。そのため、各順番を間違えると、想定外の動きをしてしまう。
  • 「すべて拒否(deny)」という暗黙の行が存在する。ACLのどの行にも当てはまらなかった場合、パケットは破棄されることになる。
  • 標準ACLは宛先に近い場所、拡張ACLは送信元に近い場所に適用させる
  • 名前付きアクセスリストは特定の行を指定した削除や、シーケンス番号の振り直しができる。

ワイルドカードマスク

OSPFと同様にフィルタリングの条件となる送信元や宛先を指定する際に使用する。特定の送信元や宛先を指定する際、省略形を用いることができる。チェックするビットには0、無視するビットには1を指定する。

  • 1つのIPアドレスのみを条件とするワイルドカードマスク
    特定のIPアドレスだけを指定する場合は、ワイルカードマスクで0.0.0.0を指定すればよいが、ワイルドカードマスクを使用せずにhost [IPアドレス]の表記で表すことも出来る。

キャプチャ.PNG

書式の位置が変わるのに注意すること

  • 全てのIPアドレスを条件とするワイルドカードマスク
    下の図のようにanyと指定することが可能

キャプチャ1.PNG

ACLの適用

インターフェースに適用できるACLの数は、レイヤ3プロトコル(IPやIPX)ごとに in方向とout方向に1つずつとなる。2つ以上のACLを適用しようとすると上書きされる。

  • インバウンド(IN)で適用した場合
    ルータのインターフェイスにパケットが届いたときにACLによるチェックが行われる。

  • アウトバウンド(OUT)で適用した場合
    ルーティングテーブルの検索などの処理が行われた後、ルータからパケットが出ていくときにACLによるチェックが行われる。ただし、ルータ自身が送信する通信はチェックの対象とならない。

標準ACLの設定

1. 標準ACLを作成する

access-listコマンド

書式:access-list [ACL番号] [permit | deny] [送信元IPアドレス] [ワイルドカードマスク]
番号付き標準ACLを作成するコマンド。グローバルコンフィギュレーションモードで行う必要がある。1~99(IOS 12.0以降では1300~1900も可)の値を指定する。

ip access-list standardコマンド

書式:ip access-list standard [ACL名]
名前付き標準ACLを作成するコマンド。グローバルコンフィギュレーションモードで行う必要がある。コマンドを実行すると、標準ACLコンフィグレーションモードに移行し、プロンプトも以下のように変更され条件を指定していく。

標準ACLコンフィグレーションモード
(Config-std-nacl)#[permit | deny] [送信元IPアドレス] [ワイルドカードマスク]

2.インターフェイスに適用する

ip access-groupコマンド

書式:ip access-group [ACL番号 | ACL名] [in | out]
作成した標準ACLをインターフェイスに適用するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。in/outはインバウンドとアウトバウンドのこと。頭にnoを付けると、適用が解除される。
宛先に近いインターフェイスに適用することが推奨される。

show access-listsコマンド

書式:show access-lists [ACL番号 | ACL名]
作成されたACLを確認するコマンド。特権EXECモードで行う必要がある。対象のACLを指定しない場合は全てのACLが表示される。

インターフェイスの適用を確認する場合は、show ip interfaceコマンドかrunning-configから確認することができる。

アクセスグループ100の詳細
Router#show access-lists 100
Extended IP access list 100
    permit tcp host 192.168.10.1 host 192.168.20.1 eq www
    deny icmp host 192.168.10.1 host 192.168.20.1 echo

拡張ACLの設定

拡張ACLでは標準ACLより細かくパケットのフィルタリングをすることが可能。

1.拡張ACLを作成する

access-listコマンド

書式:access-list [ACL番号] [permit | deny] [プロトコル] [送信元IPアドレス] [ワイルドカードマスク] [送信元ポート番号] [宛先IPアドレス] [ワイルドカードマスク] [オプション]
番号付き拡張ACLを作成するコマンド。グローバルコンフィギュレーションモードで行う必要がある。

各項目 内容
ACL番号 100~199(IOS 12.0以降では2000~2699も可)の値を値を指定する
permit 指定した条件に一致したパケットを許可
deny 指定した条件に一致したパケットを拒否
プロトコル ip,tcp,udp,icmpなどのプロトコルを指定する
送信元ポート番号 省略可能。[プロトコル]で指定した際に指定することができる
オプション [プロトコル]で指定したプロトコルによって指定できる値が異なる
オプション 内容
established 内部から発信する通信の戻りのパケットは許可したいが、外部からは、拒否したいという場合に使用する
log 条件が一致した情報を記録する。トラフィックの監視、分析、またはトラブルシューティングの際に役立つが、このキーワードを指定した条件文が多数がある場合、機器の負荷が高くなるので注意が必要
log-input パケットを受け取ったインターフェースや、送信元MACアドレス含むログが出力される
プロトコル 説明 オプション例
ip IPに関する項目。省略するとIPを使用する全通信を指定可能 dscpなど
tcp パラメータ+ポート番号。パラメータはeq(等しい)、neq(等しくない)、lt(小さい)、gt(大きい)、ポート番号は数字またはポート名で指定する eq www,eq 80
udp パラメータ+ポート番号。指定方法はtcpと一緒 eq snmp,eq 161
icmp ICMPのメッセージタイプ echo,echo-reply
プロトコル プロトコルナンバー 説明 オプション例
ip IPに関する項目。省略するとIPを使用する全通信を指定可能 dscpなど
tcp 6 パラメータ+ポート番号。パラメータはeq(等しい)、neq(等しくない)、lt(小さい)、gt(大きい)、ポート番号は数字またはポート名で指定する eq www,eq 80
udp 17 パラメータ+ポート番号。指定方法はtcpと一緒 eq snmp,eq 161
icmp 1 ICMPのメッセージタイプ echo,echo-reply
EIRGP 88
OSPF 89
簡単な例
##端末192.168.1.11からネットワーク172.16.1.0/24へのIP通信を拒否する
(config)#access-list 100 deny ip host 192.168.1.11 172.16.1.0 0.0.0.255

##全ての送信元からWebサーバ172.16.0.11へのHTTP通信のみを許可する
(config)#acess-list 100 permit tcp any host 172.16.0.11 eq www

##PC192.168.1.11からネットワーク172.16.1.0/24へのエコー要求を拒否する
(config)#access-list 100 deny icmp host 192.168.1.11 172.16.1.0 0.0.0.255 echo-reply

拡張ACLにも最後に全て拒否するdeny ip any anyという暗黙のdenyの行が存在する。

ip access-list extendedコマンド

書式:ip access-list extended [ACL名]
名前付き拡張ACLを作成するコマンド。グローバルコンフィギュレーションモードで行う必要がある。実行すると、拡張ACLコンフィギュレーションモードに移行し、プロンプトも以下のように変更され条件を指定していく。

拡張ACLコンフィグレーションモード
(config-ext-nacl)#[permit | deny] [プロトコル] [送信元IPアドレス] [ワイルドカードマスク] [送信元ポート番号] [宛先IPアドレス] [ワイルドカードマスク] [オプション]

2.インターフェイスに適用する

ip access-groupコマンド

書式:ip access-group [ACL番号 | ACL名] [in | out]
インターフェイスコンフィギュレーションモードで実行し、標準ACL同様に適用する。標準ACLは宛先に近いインターフェイスに設定することが推奨されるが、拡張ACLは送信元に近いインターフェイスに適用することが推奨される。

ACLの削除

no access-listコマンド

書式:no access-list [ACL番号 | ACL名]
ACLの削除をするコマンド。グローバルコンフィギュレーションモードで行う必要がある。対象のACLの全てのエントリを削除することは出来るが、特定の行を消すことはできない

特定の行だけを削除する場合は、標準ACLコンフィギュレーションモードでnoコマンドを行う必要がある。

特定の行の削除
(config-std-nacl)#no [シーケンス番号]
アクセスリスト3を削除
Router# conf t
Router(config)#no access-list 3

VTYアクセス制御

ACLは、物理インターフェイスだけではなくVTY回線に適用することも可能。Telnet、SSH接続を利用したルータへのリモートアクセスを制御することができる。適用する場合、送信元IPアドレスのみを条件とするだけでよい。

キャプチャ2.PNG

access-classコマンド

書式:access-class [ACL番号 | ACL名] [in | out]
VTYアクセス制御を行うコマンド。標準ACLを作成し、VTYのラインコンフィギュレーションモードで行う必要がある。

オプション 内容
in 標準ACLで指定された送信元からのアクセスを制御する
out 標準ACLが設定されているルータにVTY回線で接続し、そこからさらに別のルータへVTYアクセスする際に制御される。

ACLの設定例

ACLの設定例

キャプチャ22.PNG

ルーター、スイッチ、PC間をストレートケーブル、サーバとルータ間をクロスオーバーケーブルでつなぎ、各PC、サーバの「IP Configuration」を開き、IPv4アドレスの設定を行う。

  • PC001⇒192.168.10.1/24
  • PC002⇒192.168.10.2/24
  • PC003⇒192.168.10.3/24
  • Server1⇒192.168.20.1/24
  • Server2⇒192.168.30.1/24

各PC、サーバのデフォルトゲートウェイ⇒192.168.10.254

RT1の設定
Router#show running-config 
Building configuration...

Current configuration : 737 bytes
!
version 15.1
(省略)
interface GigabitEthernet0/0
 ip address 192.168.10.254 255.255.255.0
 duplex auto
 speed auto
!
interface GigabitEthernet0/1
 ip address 192.168.20.254 255.255.255.0
 duplex auto
 speed auto
!
interface GigabitEthernet0/2
 ip address 192.168.30.254 255.255.255.0
 duplex auto
 speed auto
 (省略)
Server1のindex.html
<html>
<h1>Hello CCNA S1</h1>
</html>
Server2のindex.html
<html>
<h1>Hello CCNA S2</h1>
</html>

標準ACLの設定例

標準ACLの設定例①

キャプチャ23.PNG

RT1の設定
Router>enable 
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#access-list 1 permit host 192.168.10.1
Router(config)#access-list 1 deny any
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip access-group 1 ?
##?マークで確認することが出来る
  in   inbound packets
  out  outbound packets
Router(config-if)#ip access-group 1 in
Router(config-if)#end
RT1の設定確認
Router#show access-lists 1
Standard IP access list 1
    permit host 192.168.10.1
    deny any

Router#show running-config 
Building configuration...

Current configuration : 821 bytes
!
(省略)
interface GigabitEthernet0/0
 ip address 192.168.10.254 255.255.255.0
 ip access-group 1 in
 duplex auto
 speed auto
(省略)

設定後疎通確認を行うと、PC002、PC003は以下の通りになる

疎通確認
C:\>ping 192.168.20.1

Pinging 192.168.20.1 with 32 bytes of data:

Reply from 192.168.10.254: Destination host unreachable.
Reply from 192.168.10.254: Destination host unreachable.
Reply from 192.168.10.254: Destination host unreachable.
Reply from 192.168.10.254: Destination host unreachable.

Ping statistics for 192.168.20.1:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\>ping 192.168.30.1

Pinging 192.168.30.1 with 32 bytes of data:

Reply from 192.168.10.254: Destination host unreachable.
Reply from 192.168.10.254: Destination host unreachable.
Reply from 192.168.10.254: Destination host unreachable.
Reply from 192.168.10.254: Destination host unreachable.

Ping statistics for 192.168.30.1:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
標準ACLの設定例②

キャプチャ24.PNG

RT1の設定確認
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
##ワイルドカードマスクにて指定する
Router(config)#access-list 2 permit 192.168.10.2 0.0.0.0
Router(config)#access-list 2 deny 0.0.0.0 255.255.255.255
Router(config)#
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip access-group 2 in
RT1の設定確認
Router#show running-config 
Building configuration...

Current configuration : 883 bytes
!
version 15.1
(省略)
interface GigabitEthernet0/0
 ip address 192.168.10.254 255.255.255.0
 ip access-group 2 in
 duplex auto
 speed auto
(省略)
access-list 1 permit host 192.168.10.1
access-list 1 deny any
access-list 2 permit host 192.168.10.2
access-list 2 deny any
(省略)

設定後疎通確認を行うと、PC002は疎通しPC001、PC003は疎通されない

標準ACLの設定例③

キャプチャ33.PNG

RT1の設定
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#access-list 3 deny 192.168.10.0 0.0.0.255
Router(config)#access-list 3 deny any
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip access-group 3 in
Router(config-if)#end

設定後疎通確認を行うと、PCからサーバに向けての通信がすべて拒否された。

標準ACLの設定例④

キャプチャ34.PNG

RT1の設定
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface GigabitEthernet 0/0
##設定したアクセスグループ3の適用を解除
Router(config-if)#no ip access-group 3 in
Router(config-if)#exit
Router(config)#interface GigabitEthernet 0/2
Router(config-if)#ip access-group 3 out

設定後、192.168.30.0側のサーバとの疎通ができず、192.168.20.0側のサーバとの疎通のみ出来るようになる

標準ACLの設定例⑥

キャプチャ35.PNG

RT1の設定
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface GigabitEthernet 0/2
Router(config-if)#no ip access-group 3 out
Router(config-if)#exit
Router(config)#interface GigabitEthernet 0/1
Router(config-if)#ip access-group 3 out
Router(config-if)#exit
Router(config)#end

設定後、192.168.20.0側のサーバとの疎通ができず、192.168.30.0側のサーバとの疎通のみ出来るようになる

拡張ACLの設定例

拡張ACLの設定例①

キャプチャ36.PNG

RT1の設定
Router#conf t
##アクセスリスト100でPC001からServer1へのHTTP通信を許可する
Router(config)#access-list 100 ?
  deny    Specify packets to reject
  permit  Specify packets to forward
  remark  Access list entry comment
Router(config)#access-list 100 permit ?
  ahp    Authentication Header Protocol
  eigrp  Cisco's EIGRP routing protocol
  esp    Encapsulation Security Payload
  gre    Cisco's GRE tunneling
  icmp   Internet Control Message Protocol
  ip     Any Internet Protocol
  ospf   OSPF routing protocol
  tcp    Transmission Control Protocol
  udp    User Datagram Protocol
Router(config)#access-list 100 permit tcp host 192.168.10.1 host 192.168.20.1 eq ?
  <0-65535>  Port number
  ftp        File Transfer Protocol (21)
  pop3       Post Office Protocol v3 (110)
  smtp       Simple Mail Transport Protocol (25)
  telnet     Telnet (23)
  www        World Wide Web (HTTP, 80)
Router(config)#access-list 100 permit tcp host 192.168.10.1 host 192.168.20.1 eq www
##アクセスリスト100でPC001からServer1へのpingを拒否する
Router(config)#access-list 100 deny ?
  ahp    Authentication Header Protocol
  eigrp  Cisco's EIGRP routing protocol
  esp    Encapsulation Security Payload
  gre    Cisco's GRE tunneling
  icmp   Internet Control Message Protocol
  ip     Any Internet Protocol
  ospf   OSPF routing protocol
  tcp    Transmission Control Protocol
  udp    User Datagram Protocol
Router(config)#access-list 100 deny icmp host 192.168.10.1 host 192.168.20.1 ?
  <0-256>               type-num
  echo                  Echo (ping)
  echo-reply            Echo reply
  host-unreachable      Host unreachable
  net-unreachable       Net unreachable
  port-unreachable      Port unreachable
  protocol-unreachable  Protocol unreachable
  ttl-exceeded          TTL exceeded
  unreachable           All unreachables
  <cr>
Router(config)#access-list 100 deny icmp host 192.168.10.1 host 192.168.20.1 echo
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip access-group 100 in

設定後、192.168.10.1からServer1へのHTTP通信は許可され画面表示されたが、ping通信は拒否された

拡張ACLの設定例②

キャプチャ37.PNG

RT1の設定
Router#conf t
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip access-group 100 in
Router(config)#access-list 100 deny tcp host 192.168.10.1 host 192.168.30.1 eq 80
Router(config)#access-list 100 permit icmp host 192.168.10.1 host 192.168.30.1 echo
Router(config)#end

設定後、192.168.10.1からServer2へのping通信は許可されが、HTTP通信は拒否され画面が表示されなかった

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0