ACLの目的
Access Control Listの略。
ACLに基づきルータに送られてくるパケットの制御(通信許可、拒否)すなわちパケットフィルタリングを行う。
ACLの種類
標準ACL | 拡張ACL | |
---|---|---|
チェック内容 | 送信元IPアドレス | 送信元IPアドレス 宛先IPアドレス プロトコル番号 送信元ポート番号 宛先ポート番号 |
番号付きACL | 1~99(100個) IOS 12.0以降 1,300~1,999(700個) |
100~199(100個) +IOS 12.0以降 2,000~2,699(700個) |
名前付きACL | 名前を示す文字列 | 名前を示す文字列 |
ACLのルール
-フィルタリングする条件を1行ずつ記述
-上から順番に制御を実施
-該当する制御があれば実施し終了
-該当する制御がない場合、すべて拒否(暗黙のdeny)
ワイルドカードマスク
フィルタリング条件としてOSPFと同様ワイルドカードマスクを使う。
※書き方はサブネットマスクの逆
-
1つのIPアドレスのみを条件とするとき
①192.168.1.12 0.0.0.0
②host 192.168.1.12 -
全てのIPアドレスのみを条件とするとき
①0.0.0.0 255.255.255.255
②any
ACLの適用
ルータのインターフェイスに適用。インバウンドとアウトバウンドで1つずつ適用可。
-
インバウンド
ルータのインターフェイスがパケット受信時にチェック -
アウトバウンド
ルータのインターフェイスがパケット送信時にチェック
※ただしルータ自身が送信する通信はチェック対象外(?不明)
標準ACLの設定、確認など #出る
①標準ACLを作成
- 番号付き標準ACLを作成
(config)#access-list <ACL No.> <permit|deny> <送信元IPアドレス> <ワイルドカードマスク>
※同じ番号を指定してaccess-listコマンドを実行すると、その番号付き標準ACLに条件行が追加
※暗黙のdenyは自動で最後に追加
【練習】:ACL No.=1で192.168.0.0/24からの通信を拒否、残りの通信を許可
Router1(config)#access-list 1 deny 192.168.0.0 0.0.0.255
Router1(config)#access-list permit any
- 名前付き標準ACLを作成
(config)#ip access-list standard <ACL name>
このコマンドにより、標準ACLコンフィグレーションモードに遷移する。その後条件を追加
(config-std-nacl)#<permit|deny> <送信元IPアドレス> <ワイルドカードマスク>
②インターフェイスに適用
作成した標準ACLはインターフェイスコンフィグレーションモードで次のコマンドを実行
(config-if)#ip access-group <ACL No.|ACL name> <in|out>
※頭に"no"を付けると適用を解除
※標準ACLは宛先に近いインターフェイスへの運用が推奨
【練習】:Fa0/0のアウトバウンドにACL No.=1を適用
Router1(config)#interface FastEthernet 0/0
Router1(config-if)#ip access-group 1 out
【練習】:同様のことを名前付き標準ACL(TEST)で設定、インターフェイスに適用。
Router1(config)#ip access-list standard TEST
Router1(config-std-nacl)#deny 192.168.0.0 0.0.0.255
Router1(config-std-nacl)#permit any
Router1(config-std-nacl)#exit
Router1(config)#interface FastEthernet 0/0
Router1(config-if)#ip access-group TEST out
③標準ACLの確認
#show access-lists <ACL No.|ACL name>
※指定時は対象のACLのみ表示。指定しないと全ACLが表示。
【練習】:標準番号付きACL(ACL No.=1)を確認
Router1#show access-lists 1
standard IP access list 1
10 deny 192.168.0.0, wildcard bits 0.0.0.255
20 permit any
【練習】:標準名前付きACL(ACL name = TEST)を確認
Router1#show access-lists TEST
standard IP access list TEST
10 deny 192.168.0.0, wildcard bits 0.0.0.255
20 permit any
④標準ACLを適用したインターフェイスを確認
【練習】:Fa0/0に適用されたACLを確認(show ifで)
Router1#show ip interface FastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
internet addrss is 172.16.0.1/24
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1500 bytes
Helper address is not set
Directed boradcast forwarding is disabled
Outgoing access list is 1
Inbound access list is not set
Proxy ARP is enabled
【練習】:適用されたACLを確認(running-configで)
Router1#show running-config
(省略)
interface FastEthernet 0/0
ip address 172.16.0.1 255.255.255.0
ip access-group 1 out
duplex auto
speed auto
!
(省略)
access-list 1 deny 192.168.0.0 0.0.0.255
access-list 1 permit any
拡張ACLの設定、確認など #よく出る
①拡張ACLを作成
- 番号付き拡張ACLを作成
(config)#access-list <ACL No.> <permit|deny> <プロトコル> <送信元IPアドレス> <ワイルドカードマスク> [<送信元ポート番号>] <宛先IPアドレス> <ワイルドカードマスク> [<オプション>]
※同じ番号を指定してaccess-listコマンドを実行すると、その番号付き標準ACLに条件行が追加
※暗黙のdenyは自動で最後に追加
※プロトコル、オプション例
プロトコル | 説明 | オプション |
---|---|---|
ip | IPに関する項目。省略するとIPを使用する全通信を指定可能 | dscpなど |
tcp | パラメータ+ポート番号。 パラメータはeq(=), neq(≠), lt(小さい),gt(大きい) ポート番号は数字またはポート名で指定 |
eq www, eq 80 |
udp | パラメータ+ポート番号。指定方法はtcpと同じ | eq snmp, eq 161 |
icmp | ICMPのメッセージのタイプ | echo (エコー要求), echo-reply(エコー応答)など |
【練習】:端末192.168.1.11からのネットワーク172.16.1.0/24へのIP通信を拒否
Router1(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通信のみを許可
Router1(config)#access-list 100 permit permit tcp any host 172.16.0.11 eq www
【練習】:端末192.168.1.11からのネットワーク172.16.1.0/24へのエコー要求を拒否
Router1(config)#access-list 100 deny icmp host 192.168.1.11 172.16.1.0 0.0.0.255 echo
②インターフェイスに適用
作成した拡張ACLはインターフェイスコンフィグレーションモードで次のコマンドを実行
(config-if)#ip access-group <ACL No.|ACL name> <in|out>
※頭に"no"を付けると適用を解除
※拡張ACLは送信元に近いインターフェイスへの運用が推奨
【練習】:
PC01(192.168.0.11)からWebサーバに対してポート番号80のアクセスを拒否
PC02(192.168.0.12)からWebサーバに対してポート番号23のアクセスを拒否
それ以外の送信元からすべての宛先へのアクセスを許可
Router1(config)#access-list 100 deny tcp host 192.168.0.11 host 172.16.0.11 eq 80
Router1(config)#access-list 100 deny tcp host 192.168.0.12 host 172.16.0.11 eq 23
Router1(config)#access-list 100 permit ip any any
※ eq 23はeq telnetと記述可能
【練習】:作成した番号付き拡張ACLをインターフェイスFa0/1にインバウンド適用
Router1(config)#interface FastEthernet 0/1
Router1(config-if)#ip access-group 100 in
【練習】:同様の内容を名前付き拡張ACL(EXTEST)をインターフェイスFa0/1にインバウンド適用
Router1(config)#ip access-list extended EXTEST
Router1(config-ext-nacl)#deny tcp host 192.168.0.11 host 172.16.0.11 eq 80
Router1(config-ext-nacl)#deny tcp host 192.168.0.12 host 172.16.0.11 eq 23
Router1(config-ext-nacl)#permit ip any any
Router1(config-ext-nacl)#exit
Router1(config)#interface FastEthernet 0/1
Router1(config-if)#ip access-group EXTEST in
③拡張ACLの確認
番号付きACLを確認(show access-listsで)
Router1#show access-lists
Extended IP access list 100
10 deny tcp host 192.168.0.11 host 172.16.0.11 eq www
20 deny tcp host 192.168.0.12 host 172.16.0.11 eq telnet
30 permit ip any any (231 matches)
名前付きACLを確認(show access-listsで)
Router1#show access-lists
Extended IP access list EXTEST
10 deny tcp host 192.168.0.11 host 172.16.0.11 eq www
20 deny tcp host 192.168.0.12 host 172.16.0.11 eq telnet
30 permit ip any any (231 matches)
適用されたACLを確認(running-configで)
Router1#show running-config
(省略)
!
interface FastEthernet 0/1
ip address 172.16.0.1 255.255.255.0
ip access-group 100 in
duplex auto
speed auto
!
(省略)
access-list 100 deny tcp host 192.168.0.11 host 172.16.0.11 eq 80
access-list 100 deny tcp host 192.168.0.12 host 172.16.0.11 eq 23
access-list 100 permit ip any any
⑤ACL削除
(config)#no access-list <ACL No.|ACL name>
※特定の行を消せない。