セキュリティ : Cisco ASA 5500-X シリーズ次世代型ファイアウォール

ASA 8.3 以降: FTP/TFTP サービスの有効化の設定例

2015 年 11 月 25 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

このドキュメントでは、ネットワークの Outside に居るユーザが DMZ ネットワーク内の FTP と TFTP のサービスにアクセスするために必要な手順を説明しています。

File Transfer Protocol (FTP)

FTP には 2 つの形式があります。

  • アクティブ モード

  • パッシブ モード

http://www.cisco.com/c/dam/en/us/support/docs/security/asa-5500-x-series-next-generation-firewalls/113110-asa-enable-ftp-01.gif

アクティブ FTP モードでは、クライアントがランダムな非特権ポート(N>1023)から FTP サーバのコマンド ポート(21)へ接続します。 次に、クライアントによるポート N+1 のリスニングが開始され、FTP コマンド ポート N+1 が FTP サーバへ送信されます。 次に、サーバによってローカルのデータ ポート(ポート 20)からクライアントの指定されたデータ ポートへ再度接続が行われます。

パッシブ FTP モードでは、クライアントによってサーバへの接続がどちらも開始され、サーバからクライアントへの着信データ ポート接続に対するフィルタリングが行われるファイアウォールの問題が解決されます。 FTP 接続が開かれると、クライアントによって 2 つのランダムな非特権ポートがローカルに開かれます(N>1023 および N+1)。 最初のポートからポート 21 上でサーバに接続されます。 ただし、この後で port コマンドを発行して、そのデータ ポートへのサーバの接続を許可する代わりに、クライアントから PASV コマンドが発行されます。 この結果、サーバによってランダムな非特権ポート(P>1023)が開かれ、port P コマンドがクライアントへ送信されます。 次に、データを転送するために、クライアントによってサーバ上でポート N+1 からポート P への接続が開始されます。 セキュリティ アプライアンスで inspection コマンドが設定されていない場合、Inside ユーザからのアウトバウンドに向けた FTP はパッシブ モードでのみ動作します。 また、FTP サーバへのインバウンドに向けた Outside ユーザは、アクセスを拒否されます。

詳細は、『PIX/ASA 7.x: バージョン 8.2 および それ 以前が付いている Cisco 適応性があるセキュリティ アプライアンス モデル(ASA)の同じ 設定のための FTP/TFTP サービス 設定例を有効に して下さい

Trivial File Transfer Protocol(TFTP; トリビアル ファイル転送プロトコル)

RFC 1350 で記述されるように、TFTP は、TFTP サーバとクライアントの間でファイルの読み書きを行うための単純なプロトコルです。 TFTP では、UDP ポート 69 が使用されます。

前提条件

要件

この設定を行う前に、次の要件が満たされていることを確認します。

  • 必要なインターフェイス間で基本的な通信が存在する。

  • DMZ ネットワークにいる FTP サーバ設定されるあります。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • 8.4(1) ソフトウェア イメージを実行する ASA 5500 シリーズ適応性があるセキュリティ アプライアンス モデル

  • FTP サービスが稼働する Windows 2003 Server

  • TFTP サービスが稼働する Windows 2003 Server

  • ネットワークの Outside に配置されたクライアント PC

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

ネットワーク構成図

このドキュメントでは、次のネットワーク構成を使用しています。

http://www.cisco.com/c/dam/en/us/support/docs/security/asa-5500-x-series-next-generation-firewalls/113110-asa-enable-ftp-02.gif

注: この設定で使用している IP アドレッシング方式は、インターネット上で正式にルーティング可能なものではありません。 これらは、ラボ環境で使用された RFC 1918 のアドレスです。

関連製品

この設定も Cisco 適応性があるセキュリティ アプライアンス モデル 8.3 およびそれ以降と使用することができます。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

セキュリティ アプライアンスは、アダプティブ セキュリティ アルゴリズム機能によって、アプリケーション検査をサポートしています。 アダプティブ セキュリティ アルゴリズムで使用されるアプリケーションのステートフル インスペクションによって、セキュリティ アプライアンスは、ファイアウォールを通過する各コネクションをトラッキングし、これらのコネクションが有効であることを確認します。 また、ファイアウォールはステートフル インスペクションによってコネクションの状態も監視し、状態テーブルに情報を格納します。 管理者定義のルールに加えて状態テーブルを使用することで、フィルタリングの決定が、過去にファイアウォールを通過したパケットによって確立されたコンテキスト情報に基づいて行われるようになります。 アプリケーション検査の実装は、次の処理で構成されています。

  • トラフィックを識別する。

  • トラフィックに検査を適用する。

  • インターフェイス上での検査をアクティブ化する。

高度なプロトコル処理

FTP

一部のアプリケーションでは、Cisco セキュリティ アプライアンス アプリケーションの検査機能による特別な処理が必要です。 これらのタイプのアプリケーションでは、通常、IP アドレッシング情報がユーザ データ パケットに埋め込まれるか、動的に割り当てられたポートにセカンダリ チャネルが開かれます。 アプリケーション検査機能は、Network Address Translation(NAT; ネットワーク アドレス変換)とも共に動作し、埋め込まれたアドレッシング情報の場所を識別するのに役立ちます。

埋め込みのアドレッシング情報の識別に加えて、アプリケーション検査機能ではセッションが監視され、セカンダリ チャネルのポート番号が判断されます。 多くのプロトコルによってセカンダリの TCP ポートまたは UDP ポートが開かれ、パフォーマンスが向上します。 既知のポートで初期セッションが使用され、動的に割り当てられたポート番号がネゴシエーションされます。 アプリケーション検査機能では、これらのセッションが監視され、動的なポート割り当てが識別され、特定のセッションの間にこれらのポートでのデータ交換が許可されます。 このような動作は、マルチメディアおよび FTP のアプリケーションでみられます。

FTP プロトコルでは、FTP セッションごとに 2 つのポートを使用するために、特別な処理が必要です。 FTPプロトコルはデータの転送のためにアクティブにされたとき 2 つのポートを使用します: 制御通信路およびポート 21 および 20 を使用する Dチャネル、それぞれ。 コントロール チャネルを介して FTP セッションを開始するユーザは、そのチャネルを介してすべてのデータ要求を行います。 次に、FTP サーバによって要求が開始され、サーバ ポート 20 からユーザのコンピュータへポートが開かれます。 FTP では、データ チャネル通信のために常にユーザ ポート 20 が使用されます。 FTP 検査がセキュリティ アプライアンスでイネーブルになっていない場合、この要求は廃棄され、FTP セッションでは要求されたデータが転送されません。 FTP 検査がセキュリティ アプライアンスでイネーブルになっている場合、セキュリティ アプライアンスによってコントロール チャネルが監視され、データ チャネルを開く要求が認識されます。 FTP プロトコルによって、データ チャネル ポート番号の詳細がコントロール チャネル トラフィックに埋め込まれると、セキュリティ アプライアンスによるデータ ポート変更に対するコントロール チャネルの検査が必要になります。 セキュリティ アプライアンスによって要求が認識されると、データ チャネル トラフィック用の窓口が一時的に開かれますが、これはセッションの間中、開かれたままです。 この方法で、FTP 検査機能によってコントロール チャネルが監視され、データ ポートの割り当てが識別され、セッションの間中、データ ポートでのデータ交換が許可されます。

セキュリティ アプライアンスによって、デフォルトではグローバル検査クラスマップを経由して FTP トラフィックのポート 21 の接続が検査されます。 また、セキュリティ アプライアンスでは、アクティブとパッシブの FTP セッションの間での差異が認識されます。 FTP セッションではパッシブ FTP データ転送がサポートされますが、セキュリティ アプライアンスでは inspect ftp コマンドを介してユーザからのデータ ポート要求が認識され、1023 より大きい番号の新規データ ポートが開かれます。

FTP アプリケーション検査によって、FTP セッションが検査され、次の 4 つのタスクが実行されます。

  • 動的なセカンダリ データ接続の準備

  • FTP コマンド応答シーケンスの追跡

  • 監査証跡の生成

  • NAT を使用した埋め込み IP アドレスの変換

FTP アプリケーション検査によって、FTP データ転送のセカンダリ チャネルが準備されます。 ファイルのアップロード、ファイルのダウンロード、またはディレクトリ リストのイベントに応答してチャネルが割り当てられますが、これらのチャネルは事前にネゴシエートされる必要があります。 ポートは、PORT コマンド、または PASV(227)コマンドを介してネゴシエートされます。

TFTP

TFTP 検査はデフォルトでイネーブルになっています。

セキュリティ アプライアンスによって TFTP トラフィックが検査され、必要に応じて TFTP クライアントとサーバの間でのファイル転送を許可するために connection と nat(pat) 変換が動的に作成されます。 具体的には、インスペクション エンジンによって TFTP 読み取り要求(RRQ)、書き込み要求(WRQ)、およびエラー通知(ERROR)が検査されます。

動的なセカンダリ チャネルと PAT 変換は、必要に応じて有効な RRQ または WRQ の受信時に割り当てられます。 その後、このセカンダリ チャネルはファイル転送またはエラー通知のために TFTP によって使用されます。

セカンダリ チャネルを介したトラフィックを開始することができるのは TFTP サーバだけであり、TFTP クライアントとサーバの間に不完全なセカンダリ チャネルが最大で 1 つだけ存在できます。 サーバからのエラー通知によって、セカンダリ チャネルが閉じられます。

TFTP トラフィックをリダイレクトするためにスタティック PAT が使用される場合は、TFTP 検査をイネーブルにする必要があります。

基本的な FTP アプリケーション検査の設定

デフォルトでは、デフォルトのアプリケーション検査トラフィックをすべて照合する 1 つのポリシー(グローバル ポリシー)が設定に含まれており、これによりすべてのインターフェイス上のトラフィックに検査が適用されます。 デフォルトのアプリケーション検査トラフィックには、各プロトコルのデフォルトのポートに対するトラフィックが含まれています。 適用できるグローバル ポリシーは 1 つだけなので、グローバル ポリシーを変更する場合、たとえば、非標準ポートに検査を適用したり、デフォルトではイネーブルになっていない検査を追加したりする場合は、デフォルトのポリシーを編集するか、またはデフォルトのポリシーをディセーブルにしてから新しいポリシーを適用する必要があります。 すべてのデフォルトのポートのリストについては、『デフォルトの検査ポリシー』を参照してください。

  1. policy-map global_policy コマンドを発行します。

    ASA(config)#policy-map global_policy
    
  2. class inspection_default コマンドを発行します。

    ASA(config-pmap)#class inspection_default
    
  3. inspect FTP コマンドを発行します。

    ASA(config-pmap-c)#inspect FTP
    

    inspect FTP strict コマンドを使用するオプションが用意されてます。 このコマンドでは、FTP 要求に埋め込まれたコマンドの Web ブラウザによる送信を回避することで、保護されたネットワークのセキュリティが向上します。

    インターフェイス上で strict オプションをイネーブルにすると、FTP 検査によって次の手順が適用されます。

    • セキュリティ アプライアンスによって新しいコマンドが許可されるには、FTP コマンドが確認応答される必要がある。

    • セキュリティ アプライアンスによって、埋め込まれたコマンドが送信される接続が廃棄される。

    • 227 コマンドおよび PORT コマンドがチェックされ、これらがエラー文字列に表示されていないことが確認される。

    警告 警告: strict オプションを使用すると、FTP の RFC に厳密に準拠していない FTP クライアントでは失敗することになる可能性があります。 strict オプションの使用についての詳細は、『strict オプションの使用』を参照してください。

設定例

デバイス名 1
ASA(config)#show running-config 

 ASA Version 8.4(1) 
!
hostname ASA
domain-name corp.com
enable password WwXYvtKrnjXqGbu1 encrypted
names
!
interface Ethernet0/0
 nameif Outside
 security-level 0
 ip address 192.168.1.2 255.255.255.0 
!
interface Ethernet0/1
 nameif Inside
 security-level 100
ip address 10.1.1.1 255.255.255.0
!
interface Ethernet0/2
 nameif DMZ
  security-level 50
  ip address 172.16.1.12 255.255.255.0 
!
interface Ethernet0/3
 no nameif
 no security-level
 no ip address
!
interface Management0/0
  no nameif
 no security-level
 no ip address
!

!--- Output is suppressed.


!--- Permit inbound FTP control traffic. 

access-list 100 extended permit tcp any host 192.168.1.5 eq ftp

!--- Permit inbound FTP data traffic.

access-list 100 extended permit tcp any host 192.168.1.5 eq ftp-data
!

!--- Object groups are created to define the hosts. 

object network DMZ
host 172.16.1.5
object network DMZ-out
host 192.168.1.5

!--- Configure manual NAT

nat (DMZ,outside) source static DMZ DMZ-out
access-group 100 in interface outside
class-map inspection_default
 match default-inspection-traffic
!
!
policy-map type inspect dns preset_dns_map
 parameters
  message-length maximum 512

policy-map global_policy
 class inspection_default
  inspect dns preset_dns_map 
  inspect ftp 
  inspect h323 h225 
  inspect h323 ras 
  inspect netbios 
  inspect rsh 
  inspect rtsp 
  inspect skinny 
  inspect esmtp 
  inspect sqlnet 
  inspect sunrpc 
  inspect tftp 
  inspect sip 
  inspect xdmcp 
!

!--- This command tells the device to 
!--- use the "global_policy" policy-map on all interfaces.

service-policy global_policy global
prompt hostname context 
Cryptochecksum:4b2f54134e685d11b274ee159e5ed009
: end
ASA(config)#

標準外 TCPポートの FTPプロトコル インスペクションを設定して下さい

これらの設定行で標準外 TCP ポートのための FTPプロトコル インスペクションを設定できます(新しいポート番号によってを取り替えて下さい):

access-list ftp-list extended permit tcp any any eq XXXX
!
class-map ftp-class
  match access-list ftp-list
!
policy-map global_policy
  class ftp-class
   inspect ftp

基本的な TFTP アプリケーション検査の設定

デフォルトでは、デフォルトのアプリケーション検査トラフィックをすべて照合する 1 つのポリシー(グローバル ポリシー)が設定に含まれており、これによりすべてのインターフェイス上のトラフィックに検査が適用されます。 デフォルトのアプリケーション検査トラフィックには、各プロトコルのデフォルトのポートに対するトラフィックが含まれています。 適用できるグローバル ポリシーは 1 つだけです。 したがって、グローバル ポリシーを変更する場合、たとえば、非標準ポートに検査を適用したり、デフォルトではイネーブルになっていない検査を追加したりする場合は、デフォルトのポリシーを編集するか、またはデフォルトのポリシーをディセーブルにしてから新しいポリシーを適用する必要があります。 すべてのデフォルトのポートのリストについては、『デフォルトの検査ポリシー』を参照してください。

  1. policy-map global_policy コマンドを発行します。

    ASA(config)#policy-map global_policy
    
  2. class inspection_default コマンドを発行します。

    ASA(config-pmap)#class inspection_default
    
  3. inspect TFTP コマンドを発行します。

    ASA(config-pmap-c)#inspect TFTP
    

設定例

デバイス名 1
ASA(config)#show running-config 

 ASA Version 8.4(1) 
!
hostname ASA
domain-name corp.com
enable password WwXYvtKrnjXqGbu1 encrypted
names
!
interface Ethernet0/0
 nameif Outside
 security-level 0
 ip address 192.168.1.2 255.255.255.0 
!
interface Ethernet0/1
 nameif Inside
 security-level 100
ip address 10.1.1.1 255.255.255.0
!
interface Ethernet0/2
 nameif DMZ
  security-level 50
  ip address 172.16.1.12 255.255.255.0 
!
interface Ethernet0/3
 no nameif
 no security-level
 no ip address
!
interface Management0/0
  no nameif
 no security-level
 no ip address
!

!--- Output is suppressed.


!--- Permit inbound TFTP traffic. 

access-list 100 extended permit udp any host 192.168.1.5 eq tftp
!

!--- Object groups are created to define the hosts. 

object network DMZ
host 172.16.1.5
object network DMZ-out
host 192.168.1.5

!--- Configure manual NAT

nat (DMZ,outside) source static DMZ DMZ-out
access-group 100 in interface outside
class-map inspection_default
 match default-inspection-traffic
!
!
policy-map type inspect dns preset_dns_map
 parameters
  message-length maximum 512

policy-map global_policy
 class inspection_default
  inspect dns preset_dns_map 
  inspect ftp
  inspect h323 h225 
  inspect h323 ras 
  inspect netbios 
  inspect rsh 
  inspect rtsp 
  inspect skinny 
  inspect esmtp 
  inspect sqlnet 
  inspect sunrpc 
  inspect tftp 
  inspect sip 
  inspect xdmcp 
!

!--- This command tells the device to 
!--- use the "global_policy" policy-map on all interfaces.

service-policy global_policy global
prompt hostname context 
Cryptochecksum:4b2f54134e685d11b274ee159e5ed009
: end
ASA(config)#  

確認

設定を確認するために正常に show service policy コマンドを奪取 しましたり、使用します。 また、show service ポリシー Inspect FTP コマンドを使用してだけ FTP インスペクションに出力を制限して下さい。

ASA#show service-policy inspect ftp
         Global Policy:
          Service-policy: global_policy
           Class-map: inspection_default
            Inspect: ftp, packet 0, drop 0, reste-drop 0
        ASA#

トラブルシューティング

現在 この設定に関する特定なトラブルシューティングの情報がありません

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 113110