拡張アクセスリスト設定

拡張アクセスリスト設定

拡張アクセスリストは標準アクセスリストよりも、より細かな条件でトラフィックを抽出することができます。

対応しているプロトコルは、標準アクセスリストと同じく、IPの他にIPXにも対応していますが、現在、IPXが使用されることがほとんどないため、CCNA試験では拡張IPアクセスリストのみが出題されます。
そのため、今回は拡張IPアクセスリストの設定方法について紹介していきます。


拡張IPアクセスリストの作成

拡張IPアクセスリスト書式
(config)# access-list [ACL番号(100~199)] [permit | deny] [プロコトル] [送信元IP] {送信元ポート} [宛先IP] {宛先ポート} {オプション}
※{}は省略可能

トランスポート層の情報であるプロトコル(TCP、UDP等)やポート番号まで指定できるため、それらの情報から特定のアプリケーションに対しての制御をすることが可能です。

プロトコルポート番号の指定方法(例)
ipany(全て)
tcp eq (等しい) eq 80
neq(等しくない) neq 80
lt(より小さい) lt 1024
gt(より大きい) gt 1023
range(範囲) range 1024 65535
udp eq (等しい) eq 69
neq(等しくない) neq 69
lt(より小さい) lt 1024
gt(より大きい) gt 1023
range(範囲) range 1024 65535
icmp echo(エコー要求)
echo-reply(エコー応答)

ポート番号は、数字をそのまま記述する他に、キーワードで記述する方法もあります。

ポート番号キーワード
20ftp-data
21ftp
23telnet
25smtp
80www
110pop3

では実際に下図のようなネットワークを組み、拡張IPアクセスリストを作成してみます。

ネットワーク構成


RouterA(config)#access-list 100 deny tcp host 192.168.0.10 host 10.0.0.100 eq www
RouterA(config)#access-list 100 permit ip any any

※hostキーワードを使用して記述しています。「host 192.168.0.10」は「192.168.0.10 0.0.0.0」と同意です。

1行目で送信元IPが「192.168.0.10」のホストから宛先「10.0.0.100」のTCP80番宛のパケットを拒否するよう指定しています。
2行目でその他全てのパケットを許可するよう指定しています。標準IPアクセスリスト同様、この指定がないと暗黙の拒否が働き、全てのパケットが拒否されてしまいます。


拡張IPアクセスリストの適用

標準IPアクセスリスト同様、作成したアクセスリストをインターフェイスに適用することで、パケットフィルタリングとして機能するようになります。
インターフェイスへはインバウンド、アウトバウンドのどちらかに適用することになります。

ip access-groupコマンド書式
(config-if)# ip access-group [ACL番号] [in | out]

RouterA(config)#interface ethernet 0
RouterA(config-if)#ip access-group 100 in

上記では拡張IPアクセスリスト100をehternet0インターフェイスのインバウンドに適用させています。


以上で、拡張IPアクセスリストを使用したパケットフィルタリングの設定は完了です。
この構成だと、「PC A」から「WEB SV」上のHPを閲覧することができ、「PC B」からは閲覧できません。

今回は、iperf(アイパーフ)というツールを使って設定がうまくいっているか確かめてみます。
※iperfの詳しい使い方については別の記事で紹介します。

まず、iperfのサーバを「WEB SV」上に立てます。

C:\Users\gran>iperf -s -p 80
------------------------------------------------------------
Server listening on TCP port 80
TCP window size: 8.00 KByte (default)
------------------------------------------------------------

-pオプションで待ち受けるポートを指定できます。
今回はWebサーバに見立てて、ポート80番で待ち受けるよう指定します。

続いてiperfのクライアントを「PC A」から実行します。

$ iperf -c 10.0.0.100 -p 80
------------------------------------------------------------
Client connecting to 10.0.0.100, TCP port 80
TCP window size:   129 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.1 port 49159 connected with 10.0.0.100 port 80
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  8.56 MBytes  7.18 Mbits/sec

「PC A」から「WEB SV」ポート80番宛ての通信に成功していることを確認できます。

では、「PC B」から実行してみます。

$ iperf -c 10.0.0.100 -p 80
connect failed: Connection refused
write1 failed: Broken pipe
------------------------------------------------------------
Client connecting to 10.0.0.100, TCP port 80
TCP window size:   128 KByte (default)
------------------------------------------------------------
write2 failed: Broken pipe
[  3] local 192.168.0.10 port 49157 connected with 10.0.0.100 port 80
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 0.0 sec  0.00 Bytes  0.00 bits/sec

「PC B」から「WEB SV」ポート80番宛ての通信には失敗していることを確認できます。
つまり、意図したとおりに動作しているということになります。

では、もうひとつ、「PC B」から「WEB SV」ポート81番宛ての通信を確認してみます。まずは、iperfのサーバをポート81番で待ち受けます。

C:\Users\gran>iperf -s -p 81
------------------------------------------------------------
Server listening on TCP port 81
TCP window size: 8.00 KByte (default)
------------------------------------------------------------

続いてiperfのクライアントを「PC A」から実行します。

$ iperf -c 10.0.0.100 -p 81
------------------------------------------------------------
Client connecting to 10.0.0.100, TCP port 81
TCP window size:   129 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.10 port 49162 connected with 10.0.0.100 port 81
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  8.61 MBytes  7.21 Mbits/sec

こちらは成功しています。
拡張IPアクセスリスト100では、ポート80番宛てのトラフィックのみ遮断するように指定しているので、「PC B」からでも80番以外のポートへの通信は成功します。



拡張IPアクセスリストの確認

ルータに作成されている拡張IPアクセスリストの確認はshow ip access-listsコマンドを使用します。

RouterA#show ip access-lists
Standard IP access list 1
    10 deny   192.168.0.10
    20 permit 192.168.0.0, wildcard bits 0.0.0.255 (535 matches)
Standard IP access list 2
    10 permit any
Extended IP access list 100
    10 deny tcp host 192.168.0.10 host 10.0.0.100 eq www (6 matches)
    20 permit ip any any (19386 matches)

インターフェイスに適用している標準IPアクセスリストを確認するにはshow ip interfaceコマンドを使用します。

RouterA#show ip interface ethernet 0
Ethernet0 is up, line protocol is up
  Internet address is 192.168.0.100/24
  Broadcast address is 255.255.255.255
  Address determined by non-volatile memory
  MTU is 1500 bytes
  Helper address is not set
  Directed broadcast forwarding is disabled
  Outgoing access list is not set
  Inbound  access list is 100
  Proxy ARP is enabled
  Local Proxy ARP is disabled
  Security level is default
  ~ 省略 ~

これらはshow running-configコマンドでも確認できます。

タグ