透過的なプロキシ、またはCiscoとSquidを友達にする方法

その活動の性質上、基本的に(基本的にはCSC-SSMなどの追加の高価なモジュールなしで)Cisco ASAの幸運な所有者から、このメーカーの他のSOHO \ SMBルーターのように、かなり弱いURLフィルタリングとプロキシ機能に関する苦情をよく耳にしましたそして、最もシンプルなプロサーバーでもできるその他の利点。



ただし、この状況から抜け出す方法は非常に簡単です。 この記事では、Cisco ASA5510 + Squidバンドルがどのように機能するかの例を示します。これは素晴らしい仕事をします。



私たちは、世界へのルーターであるASAと、Squidが新しくインストールされたLinux(私の場合はCentOS 5.6)上の単純なサーバーである、完全に構成されたASAがあると仮定します。 Squidは非表示プロキシモードで動作する必要があります。



この経済はすべて、 WCCPプロトコルによって接続されています 。 深く掘り下げることなく、簡単に言うと、これはシスコが開発したコンテンツリダイレクトおよびWebキャッシングプロトコルです。 WCCPはIOSファームウェアバージョン12.1以降で実行され、このプロトコルの2つのバージョンWCCPv1およびWCCPv2があります。 プロトコルの2番目のバージョンをより高度なものとして使用して、世界に向けられたすべてのトラフィックをポート80にリダイレクトします。



それでは始めましょう。

ASAのアドレスは192.168.1.254、Linux-192.168.1.253です。

まず、ACLを後で配布するオブジェクトを作成します。

そのうち2つがあります。

なぜ2を尋ねますか?

私は答えます-管理コンピューターにプロキシーを通過させたくありません)。



object network admin_pc host 192.168.1.10
      
      





 object network local_net subnet 192.168.1.0 255.255.255.0
      
      







関連するACL:



 access-list redirect_to_squid extended deny tcp object admin_pc any eq www
      
      





 access-list redirect_to_squid extended permit tcp object local_net any eq www
      
      







WCCP自体をアクティブにします。



 wccp web-cache redirect-list redirect_to_squid password cisco
      
      





 wccp interface inside web-cache redirect in
      
      







説明:

1. tsiskaとsquidの間でMD5認証を使用するためにパスワードを指定します

2. WCCPをリッスンするインターフェイス(内部)を必ず指定してください。



これでASAのセットアップが完了しました。

イカに渡します。 これはそれほど複雑ではありません。

squidのモードを透明に変更します。



 http_port 3128 transparent
      
      







次に、ASAのアドレスを指定します。



 wccp2_router 192.168.1.254
      
      







そして必要なバンチ設定:



 wccp2_forwarding_method 1
      
      





 wccp2_return_method 1
      
      





 wccp2_service standard 0 password=cisco
      
      







説明:

1. wccp2_forwarding_method 1は、GREトンネルを使用してルーターとsquidの間でパケットを転送することを意味します。 Ciscoルーターはこの特定の方法を使用しますが、L2スイッチはwccp2_forwarding_method 2-L2 Redirectを使用します。

2. wccp2_return_method 1-ほぼ同じこと。これは、squidが突然パケットを処理しないと判断した場合に、パケットをルーターに返す方法です。

3. ASAで以前に指定されたパスワードで非動的Webキャッシュ(標準0)を使用します



以上で、Squidのセットアップは終了です。 ファイルを使用したファイナライズの第2段階に進みます。



前述のように、リンク間でGREトンネルを上げる必要があります。ここで、Webキャッシュトラフィックが実行されます。



 modprobe ip_gre
      
      





 iptunnel add wccp0 mode gre remote 192.168.1.254 local 192.168.1.253 dev eth0
      
      





 ifconfig wccp0 192.168.1.253 netmask 255.255.255.255 up
      
      







そして、Iptablesを使用して、GREトンネルを介してsquidポートに到達するすべてのトラフィックをラップするようにしてください。



 -A PREROUTING -p tcp -m tcp -i wccp0 -j REDIRECT --to-ports 3128
      
      







それは基本的にそれです。 構成を保存し、wccp0インターフェースのif-upおよびif-downスクリプトを作成し、Squidを再起動するだけです。

作業を確認します。



 asa#sh ip wccp Global WCCP information: Router information: Router Identifier: 192.168.1.254 Protocol Version: 2.0 Service Identifier: web-cache Number of Service Group Clients: 1 Number of Service Group Routers: 1 Total Packets s/w Redirected: 464271 Service mode: Open Service access-list: -none- Total Packets Dropped Closed: 0 Redirect access-list: redirect_to_squid Total Packets Denied Redirect: 15217 Total Packets Unassigned: 1006 Group access-list: -none- Total Messages Denied to Group: 0 Total Authentication failures: 0 Total Bypassed Packets Received: 0 asa#sh ip wccp web-cache detail WCCP Client information: WCCP Client ID: 192.168.1.253 Protocol Version: 2.0 State: Usable Initial Hash Info: 00000000000000000000000000000000 00000000000000000000000000000000 Assigned Hash Info: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF Hash Allotment: 256 (100.00%) Packets s/w Redirected: 44549 Connect Time: 1h07m Bypassed Packets Process: 0 Fast: 0 CEF: 0 Errors: 0
      
      







すべてが正常に機能し、すべてが機能します。

そして今、マラフェットを指揮することはすでに可能です:より細かいフィルタリングのためにSquidGuardを固定し、上司のために美しい統計を表示するためにSARGなど 誰が好きですか。 しかし、これは別の話です。興味が示されたら、これらのプロセスを説明できます。



ご清聴ありがとうございました。すべての質問にお答えします。



All Articles