Proxyサーバーとして有名なSquidをRockyLinux9.3/UbuntuLinux 22.xにインストール(ソースからコンパイル)する方法をご紹介します。
AlmaLinuxやそのほかRHEL互換OSであれば、同様に以下の手順で導入可能だと思います。
Squidは、2023年12月現在、6.6が最新版となります。
また、本インストールではあらかじめOpenSSLのインストールが必要となります。
OpenSSLのインストール方法は以下を参考にしてください。
RockyLinux 9.xとUbunt22.xにOpenSSL 3.2.xをインストールする(ソースからビルド)
インストール
bash
cd /usr/local/src
wget https://www.squid-cache.org/Versions/v6/squid-6.9.tar.gz
tar xvzf squid-6.9.tar.gz
cd squid-6.9
./configure \
--with-large-files \
--enable-ssl-crtd \
--with-openssl=/usr/local/ssl \
--enable-security-cert-generators \
--enable-security-cert-validators\
--enable-linux-netfilter \
--with-default-user=daemon
make -j 8
make install
権限設定を変更する
bash
chown -R daemon:daemon /usr/local/squid
起動ファイルを作成する
起動ファイルは、CentOSのRPMを利用し、若干カスタマイズします。
squid.service
cat > /usr/lib/systemd/system/squid.service << EOF
[Unit]
Description=Squid caching proxy
After=syslog.target network.target nss-lookup.target
[Service]
Type=forking
LimitNOFILE=16384
#EnvironmentFile=/etc/sysconfig/squid
#EnvironmentFile=/usr/local/squid/etc/squid.conf
Environment="SQUID_CONF=/usr/local/squid/etc/squid.conf"
ExecStartPre=/usr/local/squid/libexec/cache_swap.sh
ExecStart=/usr/local/squid/sbin/squid \$SQUID_OPTS -f \$SQUID_CONF
ExecReload=/usr/local/squid/sbin/squid \$SQUID_OPTS -k reconfigure -f $SQUID_CONF
ExecStop=/usr/local/squid/sbin/squid -k shutdown -f \$SQUID_CONF
TimeoutSec=0
[Install]
WantedBy=multi-user.target
EOF
cache_swap.shを作成します。
vi /usr/local/squid/libexec/cache_swap.sh
bash:cache_swap.sh
#!/bin/bash
if [ -f /etc/sysconfig/squid ]; then
. /etc/sysconfig/squid
fi
SQUID_CONF=${SQUID_CONF:-"/usr/local/squid/etc/squid.conf"}
CACHE_SWAP=`sed -e 's/#.*//g' $SQUID_CONF | \
grep cache_dir | awk '{ print $3 }'`
for adir in $CACHE_SWAP; do
if [ ! -d $adir/00 ]; then
echo -n "init_cache_dir $adir... "
squid -N -z -F -f $SQUID_CONF >> /usr/local/squid/var/logs/squid.out 2>&1
fi
done
chmod +x /usr/local/squid/libexec/cache_swap.sh
設定ファイルの編集
デフォルトだと、ipv6でしかポートをlistenしないため、変更する
vi /usr/local/squid/etc/squid.conf
変更箇所
http_portに「0.0.0.0:ポート番号」とし、前にipv4の0.0.0.0を追加する
squid.confの変更箇所
http_port 0.0.0.0:3128
起動ユーザーをdaemonを指定する
squid.confの最下部に追加
cache_effective_user daemon
cache_effective_group daemon
保存する
起動と自動起動設定
bash
systemctl start squid
systemctl enable squid
設定ファイルに誤りが無いかをチェックする
/usr/local/squid/sbin/squid -k check