FTP - Active FTP, Passive FTP -



 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



← ACL - RACL, VACL, RACL その2 -   ACL - アクセスリストとは -

ネットワークエンジニアとして

Copyright(C) 2002-2008 Cool. All Rights Reserved