- PR -

透過型SSLproxy について

1
投稿者投稿内容
tetu
会議室デビュー日: 2006/05/25
投稿数: 2
投稿日時: 2006-05-25 20:59
こんにちわ、透過proxyについて質問があります。

現在RedHat9で透過Proxyの構築を行っており、
iptablesを使用し80ポートの通信をリダイレクトさせ8080ポートで待ち受けている
Squidに引き渡す仕組みをとっております。
そこで、80番ポートに限らず443番ポートのSSL通信も8080にリダイレクトさせようとしているのですがどうしてもうまくいきません。
以下のような形で80番ポートをリダイレクトさせる方法と同じ方法でiptableを設定しているのですが、SSLだけsquidが拾ってくれない状態です。squidのAccessログにも何も表示されてない状態で原因がわかりません。

iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 443 -j REDIRECT --to-port 8080

さまざまなWebを検索してみたのですが有効な情報が無かったため、
知っているかたがいらっしゃいましたら何卒ご教授いただけないでしょうか。

よろしくお願いします。
非武装エリア
大ベテラン
会議室デビュー日: 2004/03/03
投稿数: 202
お住まい・勤務地: 日本・たこ部屋
投稿日時: 2006-05-26 10:39
それは残念ながらできません。

理由:
透過Proxyの動作理論を考えてみてください。
これは、クライアントが『普通』のアクセスとしてリクエストしたhttpパケットを途中でフック(覗き見)して代理応答する仕組みです。(クライアントは明示的にProxyを指定していない部分に着目してください)
SSLは end to end で暗号化による安全な通信を確立させるための仕組みです。 このため、明示的にクライアントでhttpsもProxyを使うように指定するのと違い、透過ProxyでSSLのフックを許すなら通信の安全は保障されないことになります。(誰か第三者が立てた透過ProxyでSSLを透過できることの恐怖を考えてください)
このため、クライアントで明示的に(https)Proxyとして指定されていない透過ProxyではSSLを代理することはできません。
透過proxyを使う場合には、sslに関してはクライアント−サーバ間をダイレクトに接続できるようにする必要があります。
1

スキルアップ/キャリアアップ(JOB@IT)