CCNA対策 9回目 [アクセスリストについて]

・アクセスリスト(ACLAccess Control List])

特定のトラフィック(データ通信)を抽出します。

送信元のIPアドレスなどからリストの作成をします。

これを元に受信するか破棄するかを「パケットフィルタリング機能」で選択します。

また、NATはNAT変換の前後で活用されます。

そのほかにVPN(暗号通信の対象パケットの判断など)、QoS、ダイナミックルーティングなどでも組み合わせて活用されています。

<種類>

例)

アクセスリスト番号          アクセスリスト種類

1~99/1,300~1,999(IOS12.0以降)      標準IP

100~199/2,000~2,699(IOS12.0以降)     拡張IP 

600~699                 AppleTalk

800~899                 標準IPX

900~999                 拡張IPX

1,000~1,099                 IPX-SAP

*名前*                   名前付きIP

 

上記で、赤太字のリストはCCNAで主に出題される内容になります。

 

・標準アクセスリスト

送信元IPアドレスのみを使用します。

上記例で記載したIPXも併用できますが、現在はIPX([Internetwork Packet eXchange]Novell社のプロトコル)自体の使用が少ないです。

ex)

Router> enable

Router# config t

Router(config)# access-list *リスト番号* *注1)許可の有無* *送信元IPアドレス* *ワイルドカードマスク*

注1)permit:許可 deny:否定

ワイルドカードの設定により、NWアドレスが一致しているIPアドレスのパケットを登録します。

また、送信元IPアドレスワイルドカードマスクを使用することで一部のIPアドレスのみ登録することもできます。

ex)

Router(config)# access-list 1 deny XXX.XXX.XXX.39 0.0.0.216

上記の場合、ホストアドレスは216ですので11011000となります。

ですのでこの「1」のある桁を除いたIPアドレス(39、47、55)のパケットを拒否します。

特定のホストを指定する場合は、その送信元のIPアドレスを入力したのちワイルドカードマスクに[0.0.0.0]を入力します。また、ホストアドレスのため

access-list *リスト番号* *許可の有無* host *送信元IPアドレス*

と入力することもできます。

すべてを表す場合は

access-list *リスト番号* *許可の有無* any

と入力します。

また、条件の設定されていないIPアドレスは拒否されます。

(条件以外は自動で「deny」が設定されているのと同義)

そのため、これを「暗黙のdeny any」と呼びます。

 

これらのリストをそれぞれのインターフェイスに適応することによって

パケットフィルタリングを機能させます。

ex)

Router> enable

Router# config  t

Router(config)# interface

Router# interface ethernet 0

Router(config-if)# ip access-group *リスト番号* *注2)インアウトの設定*

注2)in:インバウンド側 out:アウトバウンド側

内側NWに接するEthernetポートをインバウンド、外側をアウトバウンドとしてパケットの通過拒否の判断をしています。

インバウンド側は送信前に判断するのに対してアウトバウンド側はパケットが一度ルータを通じて宛先確認などの処理(ルーティング処理)をした後に判断します。

よってインバウンド側で設定するほうが効率は良くなりますが、条件によってはアウトバウンド側で設定する必要も出てきます。

 

<アクセスリストの確認>

show ip access-listsコマンド]を使用します。

ex)

Router> enable

Router# show ip access-lists


Standard IP access list 1

     10  deny     XXX.XXX.XXX.XXX

     20  permit  XXX.XXX.XXX.XXX

Standard IP access list 2

~省略~

<インターフェイスのアクセスリストの確認>

show ip interfaceコマンド]を使用します。

ex)

Router# show ip interface *ethernet*

Ethernet is up, line protocol is down

~省略~

Directed broadcast forwarding is disabled

Outgoing access list is not set

Inbound access list is *リスト番号*

Proxy ARP is enabled

~省略~

 

・拡張アクセスリスト

ex)

Router> enable

Router# config t

Router(config)# access-list *リスト番号* *注3)許可の有無* *注4)プロトコル* *送信元IPアドレス* *送信元ポート* *宛先IP* *宛先ポート* *オプション*

注3)permit:許可 deny:否定

注4)

プロトコルとポート番号の指定方法例

  ahp           Authentication Header Protocol
  eigrp         Cisco's EIGRP routing protocol
  esp           Encapsulation Security Payload
  gre           Cisco's GRE tunneling
  icmp          Internet Control Message Protocol
  igmp          Internet Gateway Message Protocol
  ip            Any Internet Protocol
  ipinip        IP in IP tunneling
  nos           KA9Q NOS compatible IP over IP tunneling
  object-group  Service object group
  ospf          OSPF routing protocol
  pcp           Payload Compression Protocol
  pim           Protocol Independent Multicast
  sctp          Stream Control Transmission Protocol
  tcp           Transmission Control Protocol
  udp           User Datagram Protocol

で、オプション部分にポート番号の指定等を行います。

IP          → any

ICMP       → echo(要求)、echo-reply(応答)

TCP,UDP    → eq(=)、neq(≠)、lt( less than )、gt( greater than )、range

                        ex)eq 80  ,  lt  1024  ,  range 1024 65535

また、一部のポート番号はキーワードに変換ができます。

20→ftp-data

21→ftp

23→telnet

25→smtp[Simple Mail Transfer Protocol]

80→www

110→pop3

送信元ポート、宛先ポート、オプションは省略が可能です。

上記を加味して何文か例示します。

ex1)

Router(config)# access-list 100 deny tcp host XXX.XXX.XXX.XXX host XXX.XXX.XXX.XXX eq www

(host は、サブネットマスク0.0.0.0を省略する場合に使用できます)

ex2)

Router(config)# access-list 100 permit udp any eq 123 host XXX.XXX.XXX.XXX eq 123

ex3)

Router(config)# access-list 100 deny ip any any

 

同様に、インターフェイスに適用します。

コマンドは[ip access-group コマンド書式]で同様に適応します。

 

<アクセスリストの確認>

同様に[show ip access-listsコマンド]を使用します。

<インターフェイスのアクセスリストの確認>

同様に[show ip interfaceコマンド]を使用します。

 

・iperfツールによる設定の確認

iperfサーバをWEB SVに立てます。

コマンドプロンプト

ex)

C : \Users> iperf -s -p 80

--------------------------------------------

Server listening on TCP port 80

TCP window size: 8.00 KByte (default)

--------------------------------------------

iperfのクライアントを実行します。

ex)

$ iperf -c XXX.XXX.XXX.XXX -p 80

---------------------------------------------------------

Client connecting to XXX.XXX.XXX.XXX, TCP port 80

TCP window size:     129 KByte (default)

---------------------------------------------------------

[   3] local XXX.XXX.XXX.XXX port 45678 connected with XXX.XXX.XXX.XXX port 80

[  ID] Interval     Transfer     Bendwidth

[   3] 0.0-10.0 sec 10.0 MBytes  n.n Mbits/sec

上記から、80番での通信はできています。

 

・名前付きアクセスリスト

標準アクセスリスト、拡張アクセスリスト共に番号で認識しています。

これを文字列で認識させることができます。

IOS 11.2以降から可能)

<特徴>

標準アクセスリスト、拡張アクセスリストでは一度設定してしまうと特定の行が削除できません(例:リストであるIPを拒否した→これを削除したいけど消せない)。一から作りなおす必要があります。

名前付きアクセスリストにすると、この特定の行の削除が可能になります。

作成していきます。

ip access-list standard コマンド]で作成して名前付き標準IPアクセスリスト設定モードに遷移します。[exitコマンド]で退出します。

ex)

Router> enable

Router# config  t

Router(config)# ip access-list standard *名前*

Router(config-std-nacl)#

設定例

Router(config-std-nacl)# deny XXX.XXX.XXX.XXX 0.0.0.255

Router(config-std-nacl)# permit any

同様にアクセスリストに設定されていないIPアドレスは暗黙のdeny anyが適用されています。

 

インターフェイスに適用します。

コマンドは[ip access-group コマンド書式]で同様に適応します。

 

名前付き拡張IPアクセスリストを設定する場合は

ip access-list extended コマンド]を使用します。

名前付き拡張IPアクセスリスト設定モードに遷移します。[exitコマンド]で退出します。

Router> enable

Router# config  t

Router(config)# ip access-list extended *名前*

Router(config-ext-nacl)# 

設定例

Router(config-ext-nacl)# deny tcp host XXX.XXX.XXX.XXX host XXX.XXX.XXX.XXX eq www

Router(config-ext-nacl)# permit ip any any

 

特定の行を削除したい場合は、行頭に[no]を付けてその行と同じ内容を入力します。

設定例

Router(config-ext-nacl)# no deny tcp host XXX.XXX.XXX.XXX host XXX.XXX.XXX.XXX eq www

 

<アクセスリストの確認>

同様に[show ip access-listsコマンド]を使用します。

<インターフェイスのアクセスリストの確認>

同様に[show ip interfaceコマンド]を使用します。

 

 

参考

CCNA対策から学ぶネットワーク運用ガイド2 ほか