1. はじめに
- 2025/10に、Squidに重大な脆弱性が発見されたとのニュースあり。
- 恒久対策としてはバージョン 7.2 へのアップグレードとなるが、すぐできない人向けのワークアラウンドとして、「email_err_data off」の設定を行うべしとのこと。それが対策として十分なのかなどについては正確なことは言えないが、取り急ぎその設定を入れると何が変わるのかを動作確認し、設定変更内容を理解する。
2. やったこと
- Amazon Linux 2023 に Squid をインストールする。
- 「email_err_data off」の設定を追加することにより、クライアントからのどういうアクセス時に、Squidからの応答がどのように変わるのかを確認する。
3. 構成図
4. 手順
4.1 事前準備
- パブリックサブネットにEC2インスタンス(Amazon Linux 2023)を起動、EIPを付与する。
- Squid をインストールする。現時点(2025/10)では、dnf でインストールするとバージョンは 6.13 (今回の脆弱性のあるバージョン)となる。
- 手順や初期設定については以前の記事(以下)を参照。
4.2 Squidの初期設定
- 作業用PCからこのSquidを経由して、GoogleやYahooなどのサイトにアクセスできるよう初期設定を行う。
/etc/squid/squid.conf
# 作業用PCのSRCIPを許可
acl localnet src x.x.x.x/32
http_access allow localnet
# アクセスポートを変更
http_port 8080
# Squidの管理者メールアドレスを設定(ダミー)
cache_mgr squidmanager@abcdefg.com
- 作業用PCから、Squid経由でGoogleなどにアクセスできることを確認する。
C:\Users\mksamba>curl --proxy http://[squidserverのEIP]:8080 https://www.google.com
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ja"><head>
...
4.3 email_err_data 設定の確認
4.3.1 email_err_data の設定行がない場合
- email_err_data の設定行がない場合(デフォルトでは設定されていない)の動作を確認する。
- クライアントが存在しないページ「http://abcde.fghij」にアクセスしようとすると、エラーページとなる。curlの場合は以下。
C:\Users\knmat>curl --proxy http://[squidserverのEIP]:8080 http://abcde.fghij
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta type="copyright" content="Copyright (C) 1996-2024 The Squid Software Foundation and contributors">
~略~
<p>Your cache administrator is <a href="mailto:squildmanager@abcdefg.com?subject=CacheErrorInfo%20-%20ERR_DNS_FAIL&body=CacheHost%3A%20ip-10-0-0-33.ap-northeast-3.compute.internal%0D%0AErrPage%3A%20ERR_DNS_FAIL%0D%0AErr%3A%20%5Bnone%5D%0D%0ADNS%20ErrMsg%3A%20Name%20Error%3A%20The%20domain%20name%20does%20not%20exist.%0D%0ATimeStamp%3A%20Tue,%2021%20Oct%202025%2014%3A45%3A58%20GMT%0D%0A%0D%0AClientIP%3A%20119.100.100.100%0D%0A%0D%0AHTTP%20Request%3A%0D%0AGET%20%2F%20HTTP%2F1.1%0AHost%3A%20abcde.fghij%0D%0AUser-Agent%3A%20curl%2F8.14.1%0D%0AAccept%3A%20*%2F*%0D%0AProxy-Connection%3A%20Keep-Alive%0D%0A%0D%0A%0D%0A">squildmanager@abcdefg.com</a>.</p>
- プロキシ設定を行ったFirefoxで、同様に「http://abcde.fghij」にアクセスした場合は以下。administratorのメールアドレスがリンク(mailto)として表示され、リンク先にはエラーの情報が列記される。(ユーザにこのエラー画面が出た場合、ユーザはSquidの管理者に、エラー内容を含むメールを出せるように、という開発思想なのかなと想定)
- なお、squid.conf にて、明示的に「email_err_data on」の行を追記しても同様の動作となる。
4.3.2 email_err_data off の場合
- squid.conf に 「email_err_data off」の行を追記した場合の動作を確認する。
/etc/squid/squid.conf
# email_err_data を明示的にoffに設定
email_err_data off
# 設定を反映
$ sudo squid -k reconfigure
- 存在しないページ「http://abcde.fghij」にアクセスしようとすると、エラーページとなる。curlの場合は以下。mailtoの後についていたエラー情報の列記がなくなる。
C:\Users\knmat>curl --proxy http://56.155.124.41:8080 http://abcde.fghij
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
~略~
<p>Your cache administrator is <a href="mailto:squildmanager@abcdefg.com">squildmanager@abcdefg.com</a>.</p>
<br>
- プロキシ設定を行ったFirefoxで「http://abcde.fghij」にアクセスした場合は以下。administratorのメールアドレスがリンク(mailto)として表示されるが、エラー情報の列記がなくなる。(ここに余計な情報が載る場合があるという脆弱性のようなので、この機能を止めて対処可能ということみたい)
5. 所感
- 設定変更による動作の変化内容が確認できた。ワークアラウンドとしてこの対処で適切なのであれば、設定変更作業自体は簡単なのですぐに行えそう。


