BLOGTIMES
2019/02/18

TLSv1.0 → TLSv1.2 変換を squid でやってみる

  ssl 
このエントリーをはてなブックマークに追加

Windows XP の IE6 をどうしても TLSv1.2 対応させる必要があったので、squid を利用て TLSv1.0 → TLSv1.2 変換してみました。

自分で書いておいて何ですがこういうやりかたは全くお勧めできません。

基本的な動作原理は MITM 攻撃

TLS は通信が暗号化されているので、通常の方法では外部からプロトコルを変換することはできません。
今回は squid 側で TLS を一旦平文に戻て、squid が再び TLS をかける方式になります。

サーバー <=== TLS v1.2 ===> squid <=== TLS v1.0 ===> Windows XP / IE6

上記を見ると分かりますが、やり方がMITM(中間者攻撃 )なんですよね。
squid はオリジナルのサーバーの秘密鍵を当然ながら保持していないので、証明書を自分が生成した証明書に差し替えます。
従って、クライアントでは証明書が信頼されていないという警告が出ることになります。

セットアップ

CentOS 7 だと比較的簡単にセットアップできます

# squid のインストール yum install squid # CA証明書の生成 cd /etc/squid mkdir ssl_cert chown squid:squid ssl_cert chmod 700 ssl_cert cd ssl_cert openssl req -new -newkey rsa:2048 -subj /CN="ssl-bump CA"/O="ssl-bump CA" -sha256 -days 3650 -extensions v3_ca -nodes -x509 -keyout myCA.pem -out myCA.pem # 証明書を生成するためのディレクトリを初期化 rm -rf /var/lib/ssl_db /usr/lib64/squid/ssl_crtd -c -s /var/lib/ssl_db chown squid:squid -R /var/lib/ssl_db

設定ファイルはこんな感じでしょうか。

/etc/squid/squid.conf

acl localnet src 192.168.0.0/16 acl CONNECT method CONNECT http_access allow localnet http_access allow localhost http_access deny all http_port 3128 ssl-bump cert=/etc/squid/ssl_cert/myCA.pem \ key=/etc/squid/ssl_cert/myCA.pem \ generate-host-certificates=on \ dynamic_cert_mem_cache_size=4MB \ options=ALL acl step1 at_step SslBump1 ssl_bump peek step1 ssl_bump bump all sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER forwarded_for off request_header_access Referer deny all request_header_access X-Forwarded-For deny all request_header_access Via deny all request_header_access Cache-Control deny all

最後に firewalld の設定を変えて、デーモンを起動します。

firewall-cmd --add-service=squid firewall-cmd --runtime-to-permanent systemctl start squid systemctl enable squid

あとは Windows のプロキシ設定でこのマシンを指定すれば OK。

動作チェック

以下のようなサイトを利用してみるとチェックが楽です。

参考


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10775
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン