KUSONEKOの見る世界

CentOS 8 で Privoxy を使用する

CentOS 8で、Privoxyのインストールをしました。
dnfではインストールできず、ソースをビルドしインストールしましたので、そのメモを残しておきます。
また、フィルターには280blockerを使用しました。

Privoxyインストール

ユーザ作成

まずprivoxyユーザを作成します。
ユーザディレクトリやログインは不要のため、無効にするオプションを入れています。
useradd -M -s /sbin/nologin privoxy

ビルドとインストール

CentOS 8のdnfではPrivoxyのインストールはできず、rpmも落ちていないため、ソースからビルドします。

autoconfのインストール

そのままでは、./configureができないため、autoconfを入れます。
dnf install autoconf

Privoxyのビルドとインストール

wget https://www.privoxy.org/sf-download-mirror/Sources/3.0.28%20%28stable%29/privoxy-3.0.28-stable-src.tar.gz
tar -xvf privoxy-3.0.28-stable-src.tar.gz
cd privoxy-3.0.28-stable
autoheader
autoconf
./configure --disable-toggle --disable-editor --disable-force
make
make install USER=privoxy GROUP=privoxy
設定ファイルは、/usr/local配下に配置されます。

SYSTEMDのユニットファイル作成

vi /usr/lib/systemd/system/privoxy.service
[Unit]
Description=Privoxy Web Proxy With Advanced Filtering Capabilities
Wants=network-online.target
After=network-online.target

[Service]
Type=forking
PIDFile=/run/privoxy.pid
ExecStart=/usr/local/sbin/privoxy --pidfile /run/privoxy.pid --user privoxy /usr/local/etc/privoxy/config

[Install]
WantedBy=multi-user.target

280blockerインストール

CentOS 7用のRPMでも一応使えたので、それを使用しました。
ただ、adblock2privoxy コマンドで直接URLを指定してダウンロードができません。
ソースからインストールすればできるかもしれません。

インストール

dnf install https://s3.amazonaws.com/ab2p/adblock2privoxy-1.4.2-1.el7.centos.x86_64.rpm

Privoxy用フィルタの作成

URLを直接指定しても失敗するため、wgetしてからadblock2privoxyを実行しています。
wget https://280blocker.net/files/280blocker_adblock.txt
adblock2privoxy -p /usr/local/etc/privoxy -t 280.task 280blocker_adblock.txt

Privoxyの設定

vi /usr/local/etc/privoxy/config
listen-address  127.0.0.1:8118
↓
listen-address  0.0.0.0:8118

#以下をどこかに追加
actionsfile ab2p.system.action
actionsfile ab2p.action
filterfile ab2p.system.filter
filterfile ab2p.filter
フィルターを更新する場合は以下でできるはず。
wget https://280blocker.net/files/280blocker_adblock.txt
adblock2privoxy -t 280.task

起動

systemctl daemon-reload
systemctl start privoxy
systemctl enable privoxy

あとは、ブラウザ等でプロキシを指定すれば動くはずです。

iptablesやnftablesを使用している場合は、その許可の設定をお忘れなく。

2021/04/04 追記

Privoxy が HTTPS Inspection に対応していました。
以下の記事で、機能を確認しています。
> Privoxy が HTTPS Inspection に対応したので試してみた