Uncategorized

ワンライナーで認証付のプロキシサーバをDockerとSquidで立てる

アプリケーションがプロキシを使ってくれるかテストをしたかったので、Dockerでsquidを立てました。
Squidは伝統的なプロキシサーバです。
以下のコマンドで3128番でユーザID: user1、パスワード: password1 で認証されるプロキシサーバが立ちます。

 

docker stop squid-proxy;docker rm squid-proxy;docker run -d --name squid-proxy -p 3128:3128 sameersbn/squid:latest bash -c "\
apt-get update && \
apt-get install -y apache2-utils && \
htpasswd -b -c /etc/squid/passwords user1 password1 && \
chown proxy:proxy /etc/squid/passwords && \
chown proxy:proxy /dev/stdout && \
chmod 640 /etc/squid/passwords && \
echo 'http_port 3128
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm Squid Proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
access_log stdio:/proc/self/fd/1 squid
cache_log stdio:/proc/self/fd/1
cache_store_log stdio:/proc/self/fd/1' > /etc/squid/squid.conf && \
squid -N"; docker logs -f squid-proxy

もちろん再現性を高めたり、細かく設定を変えたりするにはDockerファイルを作った方がいいです。

認証が要らない場合は以下で。

docker stop squid-proxy;docker rm squid-proxy;docker run -d --name squid-proxy -p 3128:3128 sameersbn/squid:latest bash -c "\
chown proxy:proxy /dev/stdout && \
echo 'http_port 3128
http_access allow all
access_log stdio:/proc/self/fd/1 squid
cache_log stdio:/proc/self/fd/1
cache_store_log stdio:/proc/self/fd/1' > /etc/squid/squid.conf && \
squid -N"; docker logs -f squid-proxy