squid3.4.9のtransparent(透過)について

自宅のプロキシサーバのVerUpで少し躓いたのでメモ。

2015/1/7現在CentOS-Baseに登録されているsquid3.1系も悪くは無いのだが、セキュリティ的に3.4系に乗り換えた方がよさそうだと聞いたので変更する事に。

squidのconfはVerによってディレクティブが使えなくなったりするので念のためBackup。ここまではよかった。

rootユーザになるかsudo付きで作業する。

このあとsquidサイトにあるバイナリをyumでインストールできるようにレポジトリ追加。新規で/etc/yum.repos.d/squid.repoなどを作る。

priority指定はCentOS-Baseより若い番号で指定。でインストール。

これで2015/1/7現在squid3.4.9がインストールされる。

ここで先ほど取っておいたsquid.confを書き直す。ちなみに我が家のsquidはキャッシュはされていない。squidclamavと連携のために存在する。要するに端末のウィルスチェックだけでは不安なので経路上に一段かませている。squid.confはこんな感じ。(3.4.9用)

ここでミソは1,2行目と9,10行目。

1,2行目は透過プロキシを設定している。

3.1系だとひとつのPortで透過とブラウザプロキシ両方まかなえたのだが、3.4系ではtransparent指定した場合、そのPortでブラウザプロキシを設定すると、Port80とぶつかり通信できなくなるばかりか、ループ状態に陥るのでCPUリソースを食いつぶす。手がつけられたからよかったものの、危うくサーバを再インストールする可能性もあったのだ。squidサイトにPortを分けて書かれたサンプルがあったのでそれを見て設定。なおSSLも透過させる事ができそうなサンプルだったのだが

SSLは証明書を正確に受け取れる状態にしたい。

ということからあえてSSL透過まではしていない。SSLで経路を安全にするくらいだ。ウィルスもそうそう入ってくるとは思っていない。危険な考え方ではあるが。

続いては9,10行目。これは3.1系では設定しておかなければLocalhostでプロキシを経由させる場合通信できないのだが、3.4系ではlocalhost,to_localhostは予約済みとなっていて設定自体不要であるためコメントアウトしてある。

このconfを使ってsquidを起動する。

そしてiptablesで設定している透過用のPortを書き換えれば動くようになる。

ちなみにDenyOSとDenyBrowserはそのままの意味でパッチも当てることもできないようなOS等は通信禁止にしている。

スポンサーリンク
広告
広告

シェアする

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

フォローする

スポンサーリンク
広告