web-dev-qa-db-ja.com

IPTABLESを使用してSquidの周りにHTTPS(443)パススルーを作成するにはどうすればよいですか?

透過プロキシとして機能するマシンでUbuntuとSquidを実行し、ネットワーク上の多くのPCのデフォルトゲートウェイを使用しています。つまり、インターネットにバインドされたすべてのアクティビティは、ルーター(192.168.1.1)に向かう前にフィルター処理されるインターフェイスを介して行われます。 。 HTTPS/SSL(443)は機能しません。これは、ポート443のパケットが着信し、ルールが指定されていないために壁にぶつかるからです。

Iptablesを使用して443接続のパススルーを作成するにはどうすればよいですか?

-----------------編集-----------------------

イカボックスを指すようにSSLのプロキシ設定を設定した後、httpsを機能させることができました。ただし、Linuxルーター(私はそうです)を作成している場合、プロキシを実行しない限りSSLが機能しないことを意味しますか? LinuxボックスのIPアドレスは192.168.1.235で、winXPを実行しているテストコンピューターをデフォルトゲートウェイとして設定しました。確かに、プロキシに触れることなく443 SSLを「パススルー」できるようにする方法はありますか?

また、httpsがまったく機能していない理由についても少し混乱しています... 443を処理するiptablesには、ルートや何かがありません。これに光を当てていただければ幸いです。

1
atomicharri

HTTPSを透過的にプロキシすることはできません。透過プロキシを使用すると、クライアントはリモートサーバーと通信していると見なします。 HTTPSを使用すると、SSL接続を作成しようとします。SSL接続は、リモート証明書をホスト名と比較することによってリモートホストを認証します。あなたのイカは正しい証明書を持っていないので、これは機能しません。

ただし、HTTPSのプロキシ方法を知っているクライアントはプロキシへの接続を開き、基本的にプロキシを介して接続をトンネリングするCONNECT要求を発行するため、HTTPS接続をプロキシすることはできます。

ポート443への直接アクセスをブロックし、HTTPSを使用する場合は、プロキシを使用するようにブラウザーを構成する必要があることをユーザーに通知するのが最善の方法です。

4
David Pashley

これは構成について少し想定していますが、これは必要なものに近いはずです。 LAN側がeth1であると仮定します。

iptables -I INPUT -i eth1 -p tcp --dport 443 -j ACCEPT

これにより、宛先ポートが443のLAN側から着信するすべてのパケットがACCEPTターゲットにジャンプし、次にルーターにジャンプします。これも、すでに設定されていることを前提としています。

お役に立てば幸いです。

編集:インターフェースが1つしかないことについてのコメントごとに:

送信元アドレスベースのルールが必要になります。次に、必要に応じてアドレスを変更します。

iptables -I INPUT -p tcp -s 192.168.1.0/24 --dport 443 -j ACCEPT

0
Sam Halicke