トポロジ
標準ACLの作成
設定
送信元アドレスとワイルドカードを使用してアクセスリストを作成します。アクセスリストの番号は1~99または1300~1999から選ぶことが出来ます。
hostは0.0.0.0または/32の省略形です。
anyは0.0.0.0 255.255.255.255の省略形でどのIPアドレスにも該当します。
R2(config)#access-list 1 deny 1.1.1.1 0.0.0.0
R2(config)#access-list 1 deny host 11.11.11.11
R2(config)#access-list 1 deny 12.12.12.12 /32
R2(config)#access-list 1 deny host 13.13.13.13 log
R2(config)#access-list 1 permit any
R2(config)#end
R2#sh access-lists
Standard IP access list 1
10 deny 1.1.1.1
20 deny 11.11.11.11
30 deny 12.12.12.12
40 deny 13.13.13.13 log
50 permit any
R2#
作成したACLをIFに適応します。通信がIFに対してinboudで設定するのか、outboudで設定するのかによってinとoutを使い分けます。
R2(config)#interface GigabitEthernet 0/1
R2(config-if)#ip access-group 1 in
R2(config-if)#end
通信確認
R2で拒否している送信元からの通信をすることが出来ません。
R1#ping 3.3.3.3 source 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
U.U.U
Success rate is 0 percent (0/5)
R1#ping 3.3.3.3 source 11.11.11.11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 11.11.11.11
U.U.U
Success rate is 0 percent (0/5)
R1#ping 3.3.3.3 source 12.12.12.12
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 12.12.12.12
U.U.U
Success rate is 0 percent (0/5)
R1#ping 3.3.3.3 source 13.13.13.13
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 13.13.13.13
U.U.U
Success rate is 0 percent (0/5)
R1#ping 3.3.3.3 source 14.14.14.14
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 14.14.14.14
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/5 ms
R1#
R2ではaclの設定でlogオプションを設定している通信についてはログが出力されています。
*Mar 17 09:27:15.030: %SEC-6-IPACCESSLOGNP: list 1 denied 0 13.13.13.13 -> 3.3.3.3, 1 packet
番号付き拡張ACLの作成
標準 ACL は照合に送信元アドレスのみを使用しますが、拡張 ACL の送信元アドレスと宛先アドレスを照合操作に使用したり、オプションのプロトコル タイプ情報を使用してより詳細な制御を行うことができます。
設定
標準ACLは送信元アドレスの指定のみでしたが、拡張ACLでは宛先アドレスやプロトコルなど詳細な情報を記載することが出来ます。プロコトルはポート番号で指定ができ、eq(等しい)やneq(等しくない)、gt(大きい)やlt(小さい)、rangeなどで指定ができます。
R2(config)#no access-list 1
R2(config)#access-list 100 deny icmp 1.1.1.1 0.0.0.0 3.3.3.3 0.0.0.0
R2(config)#access-list 100 deny icmp host 11.11.11.11 3.3.3.3 0.0.0.0
R2(config)#access-list 100 deny icmp host 12.12.12.12 3.3.3.3 0.0.0.0 log
R2(config)#access-list 100 deny tcp any any eq telnet
R2(config)#access-list 100 deny tcp any any neq 53
R2(config)#access-list 100 deny udp any any gt 100
R2(config)#access-list 100 deny udp any any lt 30
R2(config)#access-list 100 deny udp any any range 40 70
R2(config)#access-list 100 permit icmp any any
R2(config)#end
R2#show access-list
Extended IP access list 100
10 deny icmp host 1.1.1.1 host 3.3.3.3
20 deny icmp host 11.11.11.11 host 3.3.3.3
30 deny icmp host 12.12.12.12 host 3.3.3.3 log
40 deny tcp any any eq telnet
50 deny tcp any any neq domain
60 deny udp any any gt 100
70 deny udp any any lt 30
80 deny udp any any range 40 70
90 permit icmp any any
名前付きACLの作成
番号付きACLではaccess-listコマンドを使用して作成していましたが、名前付きACLではip access-list コマンドを使用して作成します。standardコマンドで標準、extendedコマンドで拡張ACLを作成できます。名前の箇所は数字を使用することもできます。標準であれば1-99、拡張であれば100-199を使用できます。
設定
R2(config)#no access-list 100
R2(config)#ip access-list standard TEST1
R2(config-std-nacl)#deny 1.1.1.1 0.0.0.0
R2(config-std-nacl)#deny host 11.11.11.11
R2(config-std-nacl)#permit any
R2(config-std-nacl)#exit
R2(config)#ip access-list extended TEST2
R2(config-ext-nacl)#deny icmp host 12.12.12.12 3.3.3.3 0.0.0.0 log
R2(config-ext-nacl)#end
R2#show access-lists
Standard IP access list TEST1
10 deny 1.1.1.1
20 deny 11.11.11.11
30 permit any
Extended IP access list TEST2
10 deny icmp host 12.12.12.12 host 3.3.3.3 log
20 permit icmp any any
R2#
ACLでの時間範囲での設定
時間範囲を使用すると、時刻と曜日に基づいて拡張 ACL を選択的に適用できます。
時間範囲を使用する利点は次のとおりです。
- アプリケーション (IP アドレスとマスクのペアおよびポート番号で識別される) などのリソースへのユーザー アクセスをより詳細に制御できます。
- ログメッセージを制御できます。ACL エントリは、1 日の特定の時間にのみトラフィックをログに記録するように設定できます。したがって、ピーク時に生成された多くのログを分析する必要がなく、アクセスを拒否するだけで済みます。
タイムレンジの設定
下記の設定例では平日の8時から12時と、13時から17時の設定、2025年1月1日の設定をしています。
R2(config)#no ip access-list standard TEST1
R2(config)#no ip access-list extended TSTT2
R2(config)#time-range test
R2(config-time-range)#periodic weekdays 8:00 to 12:00
R2(config-time-range)#periodic weekdays 13:00 to 17:00
R2(config-time-range)#exit
R2(config)#time-range test2
R2(config-time-range)#absolute start 00:00 1 jan 2025 end 23:59 1 jan 2025
R2(config-time-range)#end
R2#show time-range
time-range entry: test (inactive)
periodic weekdays 8:00 to 12:00
periodic weekdays 13:00 to 17:00
time-range entry: test2 (inactive)
absolute start 00:00 01 January 2025 end 23:59 01 January 2025
R2#
ACLへの適応
下記の例では2025年1月1日の通信は拒否をして平日日中帯の通信は許可するようにACLの設定とタイムレンジの設定を紐づけています。
番号ACLを使用していますが名前付きACLでも適応方法はほぼ同じです。
R2(config)# access-list 100 deny tcp any any time-range test
R2(config)# access-list 100 permit tcp any any time-range test3
R2(config)#end
ACLにコメントを含める
remarkコマンドを使用してACLに関するコメントを記載することが出来ます。コメントは100文字以下の制限があります。
設定
R2(config)#access-list 1 remark This is the test
R2(config)#access-list 1 deny 1.1.1.1
R2(config)#access-list 1 permit any
R2(config)#ip access-list extended TEST
R2(config-ext-nacl)#remark This is the test2
R2(config-ext-nacl)#permit tcp any any
R2(config-ext-nacl)#end
R2#
名前付き MAC 拡張 ACL の作成
VLANまたはレイヤ2インターフェイス上で非IPv4トラフィックに対してフィルタリングすることが出来ます。
設定
RT1のmacアドレスを指定してRT1からの通信を拒否するように設定することが出来ます。
RT1でmacアドレスを手動で設定しておきます。
R1(config)#int g0/0
R1(config-if)#mac 1234.5678.90ab
mac access-list extendedコマンドを使用してMAC拡張ACLを作成します。
SW1(config)#mac access-list extended TEST1
SW1(config-ext-macl)#deny host 1234.5678.90ab any
SW1(config-ext-macl)#permit any any
SW1(config)#exit
SW1(config)#interface GigabitEthernet 0/0
SW1(config)#mac access-group TEST1 in
SW1(config)#end
SW1#sh access-lists TEST1
Extended MAC access list TEST1
deny host 1234.5678.90ab any
permit any any
SW1#
動作確認
R1#ping 100.10.10.11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.10.10.11, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)
R1#
設定を外すと通信ができるようになります。
SW1(config-if)#no mac access-group TEST1 in
R1#ping 100.10.10.11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.10.10.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/2/2 ms
R1#
非IPトラフィックのフィルタリング
以下の設定はdecnetトラフィック(EtherType DECnet Phase IV トラフィック)のみを拒否して、それ以外の通信を許可する設定となります。
SW2(config)#mac access-list extended TEST2
SW2(config)#deny any any decnet-iv
SW2(config)#permit any any
SW2(config)#end
SW2#show access-lists
VACL(VLAN Maps)の作成
VACLとはVLANに通信するトラフィックに対して制御できるACLです。
VLANマップの作成
VLANマップは下記のようなフローで作成します。
1.ACLの作成
2.vlan access-mapコマンドを使用して作成したACLを紐づけて、そのACLの通信に対してactionコマンドを使用してdropまたforwardで動作を設定します。
以下の設定例は次のような制御になります。
・すべてのUDPパケットを転送します。(ACL101)
・すべてのICMPパケットをドロップします。(ACL icmp-match)
・すべてのTCPパケットを転送します。(ACL tcp-match)
・ほかのすべてのIPパケットをドロップします。(暗黙のdeny)
・すべての非IPパケットを転送します。(名前付きMAC拡張ACLのみで照合され、特に設定がないため)
SW1(config)#access-list 101 permit udp any any
SW1(config)#ip access-list extended icmp-match
SW1(config-ext-nacl)#permit icmp any any
SW1(config-ext-nacl)#ip access-list extended tcp-match
SW1(config-ext-nacl)#permit tcp any any
SW1(config-ext-nacl)#exit
SW1(config)#vlan access-map TEST 10
SW1(config-access-map)#match ip address 101
SW1(config-access-map)#action forward
SW1(config-access-map)#exit
SW1(config)#vlan access-map TEST 20
SW1(config-access-map)#match ip address icmp-match
SW1(config-access-map)#action drop
SW1(config-access-map)#exit
SW1(config)#vlan access-map TEST 30
SW1(config-access-map)#match ip address tcp-match
SW1(config-access-map)#action forward
SW1(config-access-map)#end
VLANマップのVLANへの適応
vlan filterコマンドを使用して対象のVLANにVLANマップを適応させます。
SW1(config)#vlan filter TEST vlan-list 100
SW1(config)#end
設定確認
show vlan access-mapコマンドを使用することで設定されているVLANマップを確認することが出来ます。
SW1#show vlan access-map
Vlan access-map “TEST” 10
Match clauses:
ip address: 101
Action:
forward
Vlan access-map “TEST” 20
Match clauses:
ip address: icmp-match
Action:
drop
Vlan access-map “TEST” 30
Match clauses:
ip address: tcp-match
Action:
forward
動作確認
ACLの制御によってping疎通ができなくなっています。
R1#ping 100.10.10.11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.10.10.11, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)
R1#
VACLロギングの設定
vlan access-mapは通常通り作成します。
SW1(config)#access-list 101 permit ip any any
SW1(config)#vlan access-map TEST 10
SW1(config-access-map)#match ip address 101
logコマンドを使用してIPパケットをドロップしてログに記録するようにします。
SW1(config-access-map)#action forward log
SW1(config-access-map)#exit
VACLロギングパラメータを設定します。
maxflowコマンドでログテーブルのサイズを設定します。ログテーブルがいっぱいになると新しいフローからログに記録されたパケットをドロップします。
thresholdコマンドでログの閾値を設定します。5分間隔の前にフローの閾値に達するとログメッセージが出力されます。
SW1(config)#vlan access-log maxflow 800
SW1(config)#vlan access-log threshold 4000
SW1(config)#end