FTP - アクティブモード -
FTPにはアクティブモードとパッシブモードがあります。アクティブモードではコントロールコネクションに
ポート番号 [ 21 ] を使用し、データコネクションにポート番号
[ 20 ] を使用します。アクティブモードでは
コントロールコネクションはクライアントからFTPサーバに接続を開始しますが、データコネクションでは
FTPサーバからクライアントに接続を開始します。アクティブモードにおいてFTPトラフィックのみを許可
したい場合は、Fa0/0にACLを inbound
で適用するという前提であれば、以下のコンフィグとなります。

Cisco(config)# access-list 101 permit tcp
host 192.168.1.1 host 10.1.1.1eq ftp
Cisco(config)# access-list 101 permit tcp
host 192.168.1.1 host 10.1.1.1eq ftp-data
Cisco(config)# interface FastEthernet 0/0
Cisco(config-if)# ip access-group 101 in
|
FTP - パッシブモード -
FTPのアクティブモードの場合、FTPサーバからクライアントにデータコネクションの接続開始を行うこと
から、ファイアウォール環境下では外部からの接続開始となりセキュリティ上問題になることがあります。
FTPのパッシブモードでは、データコネクションもコントロールコネクションもクライアントからの接続開始
となります。パッシブモードでは、アクティブ同様にFTPサーバ側でコントロールコネクションにポート番号
[ 21 ] を使用しますが、データコネクションにはポート番号
[ 20 ] ではなくウェルノウンポート番号以外の
ポート番号を使用します。このポート番号はクライアントがサーバにデータコネクションの接続を開始する
前に、サーバがクライアントに「このポート番号を宛先として!」とFTPサーバのポート番号と通知します。
FTPパッシブモードにおいて、そのFTPトラフィックのみを許可したい場合は、FastEthernet0/0にACL
を inbound で適用するという前提であれば、以下のコンフィグとなります。パッシブモードでは、FTP
サーバで使用するデータコネクション用のポート番号はウェルノウンポート番号以外を使用することから
gt 1023 = greater than 1023 = 1023番より大きいポート番号と指定しています。※「gt
1024」は間違い。

Cisco(config)# access-list 101 permit tcp
host 192.168.1.1 host 10.1.1.1eq ftp
Cisco(config)# access-list 101 permit tcp
host 192.168.1.1 host 10.1.1.1gt 1023
Cisco(config)# interface FastEthernet 0/0
Cisco(config-if)# ip access-group 101 in
|
※ FTPクライアントがパッシブモードであるにもかかわらず、ポート番号20と21を指定したアクティブモード用のACLでも
通信することができる現象が発生した場合、それはFTPにおいてパッシブモードからアクティブモードへと自動的に変更
しているのです。詳しくはキャプチャー解析する際に
ICMP type3 cod13 を受信した後のFTPシーケンスをご確認ください。
[ established ] によりピンポイントにFTPトラフィックを指定
ACLのキーワードに [ established ]
というものがあります。このキーワードをACLで指定することにより
[ ACK ] または [ RST ] ビットの立っているパケットがACLの合致対象となります。つまり、これはTCP
トラフィックのみ対象としたキーワードです。このACLを実装させることにより、例えばTCPセッションを
開始することができるのは「内部ネットワークからのみとする」といったセキュリティをACLで実装できます。
下図では、ACL101において[ established ]
を指定しており、それをF0/0に inbound で適用しています。
このコンフィグレーションによりセグメントAからのみTCPセッションを開始することができるようになります。

Cisco(config)# access-list 101 permit tcp
any any established
Cisco(config)# interface FastEthernet 0/1
Cisco(config-if)# ip access-group 101 in
|
この established を使用することで、許可するFTPトラフィックをよりピンポイントに指定することができます。
アクティブモードの場合、データコネクションはサーバ側からTCPセッションを開始することから、クライアント
側から送信される、データコネクションにおけるFTPパケットには必ず
[ Ack ] ビットが立つことになります。
また、コントロールコネクションはクライアント側からTCPセッションが開始されることから、サーバから送信
されるFTPパケットには[ Ack ] ビットが立つことになります。以下では、両方のI/FにACLを適用しています。
Cisco(config)# access-list 101 permit tcp
host 192.168.1.1 host 10.1.1.1eq ftp
Cisco(config)# access-list 101 permit tcp
host 192.168.1.1 host 10.1.1.1eq ftp-data
established
Cisco(config)# interface FastEthernet 0/0
Cisco(config-if)# ip access-group 101 in
Cisco(config)# access-list 102 permit tcp
host 10.1.1.1 eq ftp host 192.168.1.1 established
Cisco(config)# access-list 102 permit tcp
host 10.1.1.1 eq ftp-data host 192.168.1.1
Cisco(config)# interface FastEthernet 0/1
Cisco(config-if)# ip access-group 101 in
|
上記同様に考えて、FTPのパッシブモードで両方のI/FにACLを適用させた場合のコンフィグは以下です。
Cisco(config)# access-list 101 permit tcp
host 192.168.1.1 host 10.1.1.1eq ftp
Cisco(config)# access-list 101 permit tcp
host 192.168.1.1 host 10.1.1.1gt 1023
Cisco(config)# interface FastEthernet 0/0
Cisco(config-if)# ip access-group 101 in
Cisco(config)# access-list 102 permit tcp
host 10.1.1.1 eq ftp host 192.168.1.1 established
Cisco(config)# access-list 102 permit tcp
host 10.1.1.1 gt 1023 host 192.168.1.1 established
Cisco(config)# interface FastEthernet 0/1
Cisco(config-if)# ip access-group 101 in
|
役立ちACL その1 : PingとTracerouteの戻りの許可
( inbound適用 )
PINGを実行した時やTraceを実行した時に送出されるICMP
Type8 Code0の [ echo request ] に対して
応答がある場合、Type0 Code0の [ echo-replay
] が返されるので先ずこれを許可する必要があります。
次に、Traceの場合は、ICMP Type11 Code0の
[ time Exceeded ] を返すことにより経路内に存在する
ルータを順に並べた一覧を出力していくのでこれを許可する必要があります。最後の
[ unreachble ] は
あて先に対する経路をルータが保持していない時などに診断メッセージを通知してくれます。ICMP詳細
Cisco(config)# access-list 101 permit icmp
any any echo-replay
Cisco(config)# access-list 101 permit icmp
any any time-exceeded
Cisco(config)# access-list 101 permit icmp
any any unreachable
|
役立ちACLその2 : ルーティングトラフィックの許可
( inbound適用 )
I/F上で [ 着信ACL ] を適用する際にはルーティング更新がフィルタリングされないように注意が必要です。
ルーティングプロトコルパケットがフィルタリングされないように、以下のACLにより許可する必要があります。
RIP
Cisco(config)# access-list 101 permit udp
any any eq rip
|
BGP
Cisco(config)# access-list 101 permit tdp
any any eq 179
|
IGRP
Cisco(config)# access-list 101 permit igrp
any any
|
EIGRP
Cisco(config)# access-list 101 permit eigrp
any any
|
OSPF
Cisco(config)# access-list 101 permit ospf
any any
|
Resource : ネットワークセキュリティテキスト IP ACLの設定 Cat3560 ACLの設定 traffic Filterling IP Application ACL FTP
|