標準アクセスリスト
アクセスリストはトラフィックを条件によって分類することができる
特定のパケットフローを特定し制御することができる条件リスト
パケットを識別する際に送信元アクセスからのパケットをチェックする
設定は送信元アドレスとワイルドカードでできる。省略も可能
そもそもパケットにはIP、TCP,UDPヘッダがある。
レイヤ3 | 送信元IPアドレス、宛先IPアドレス、プロトコル |
レイヤ4 | 送信元ポート、宛先ポート |
標準アクセスリストでは、レイヤ3の送信元IPアドレスのみチェック
拡張アクセスリストでは、レイヤ3,4全ての項目がチェックできる。
番号付きACL
ACLには番号をつけて識別することが可能で標準/拡張ACLによって利用できる番号がわかれている
Ipv4 | 1~99 1300~1999 |
Ipv6 | 100~199 2000~2699 |
ワイルドカードマスク
ワイルドカードマスクは直前に設定したIPアドレスに対して
「どの部分をチェックするか」を決めるもの。
ACLの条件文でIPアドレスを指定する場合はワイルドカードを使用する
ワイルドカードは32ビットの値で8ビットずつドットで区切って10進数で表す。
0はチェックして、1は無視する
例
全ビットをチェック | 0.0.0.0 |
全ビットを無視 | 255.255.255.255 |
なお、特定のホストアドレスを指定したい場合、host
全てのアドレスを指定する場合、any でも代用可能
例
アクセスリスト[1]で192.168.0.1/24からのパケットを許可した場合
(config)access-list 1 permit 192.168.0.1 0.0.0.255
ACLをインターフェイスへ適用する
ACLをインターフェイスへ適用する
ACLを適用したいコンフィグインターフェイスモードに移動して
(config-if)#ip access-group <acl-number> {in | out}
特定の送信元IPアドレスのみ対象のインターフェースの
から転送できないようにする
例 192.168.0.0/24からきたパケットをserial 0/0から転送させない
(config)#access-list <acl-number> deny 192.168.0.0 0.0.0.255
(config)#access-list <acl-number> permit 0.0.0.0 255.255.255.255
(config)#interface serial 0/0
(config-if)#ip access-group <acl-number> out
permitとdenyの順番
denyをどの順番を置いたとしても
permitがdenyより先にマッチしてしまうとそこで条件が終了して
denyを無視してパケットが通過してしまう。
なので、条件が細かいものほど先に記述する。
例
deny
deny
permit ここで 通過する。
permit 1ホストのみ
permit 1ホストのみ
deny 上記の合計2ホストにマッチしなかったら拒否
permit any aclには暗黙のdenyがあるため残り全て許可を置く
番号付き拡張アクセスリストの条件順番
プロトコル 送信元IPアドレス 送信元ポート 宛先IPアドレス
宛先ポート
プロトコルを決めた後に 送信元のIP、ポート 宛先IP、ポートと
覚えたらよい
(config)#access-list <acl-number> {permit | deny} <protocol> <sr> <wrc> <port>
<sr> <wrc><port>
例 192.168.100.64/24からのサーバ172.16.24.100のSSH接続のみ拒否する場合
(config)#access-list 100 deny tcp 192.168.100.64 0.0.0.255 host 172.16.24.100 eq 22
(config)#access-list 100 permit ip any any
(config)line vty 0 4 (ルータのリモートアクセス用の仮想ポートに移動)
(config-line)#access-class 100 in (access-classに変わるから要注意)
拡張ACLのコンフィグレーションモードに移動して設定する
シーケンス番号は低い数値から優先される
(config)#ip access-list extended TEST
(config-ext-nacl)#5 permit ip ~~~
(config)#show access-lists
5 permit ip ~~~
10 deny ~~~
20 deny ~~~
ACLの確認コマンド
#show access-lists 全てのIPリストを表示
#show ip access-lists <acl-numbers> 特定のACLのみ
#show ip access-lists すべてのIPv4のACLを表示