Help us understand the problem. What is going on with this article?

Dockerでproxyサーバ

はじめに

Dockerでsquidによるproxyサーバを構築。
特別なことはしてません。

対象機器および環境

検証環境

  • CentOS8(8.1.1911)
  • Docker(19.03.5)
  • squid(4.4)

作業内容

firewallでmasqueradeを設定

firewall-cmd --add-masquerade --zone=public --permanent
firewall-cmd --reload

Dockerイメージの準備

再利用できるようにイメージをつくっておきます。
Dockerfileと設定ファイルを置くための適当なディレクトリを作成しておきます

mkdir -p /opt/docker/proxy
cd /opt/docker/proxy

Dockerfileを作成

/opt/docker/proxy/proxy.df
FROM centos:centos8
ENV TZ='Asia/Tokyo'
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime ; \
    dnf -y update ; dnf install -y squid ; \
    sed -i -e "s/http_port 3128/http_port 8080/" /etc/squid/squid.conf ;  \
    systemctl enable squid ; \
    dnf -y install rsyslog ;
COPY rsyslog.conf /etc
CMD [ "/usr/sbin/init" ]

syslog転送用の設定

ローカルのログファイルの変更を検知するモジュール imfile を利用して、リモートへsyslogを転送します。
転送先は別のエントリで作成した syslogサーバにUDP:514で指定しています。
ネットワークサービス用のDockerネットワーク infraserv-network に所属させているため、 syslog というホスト名で転送ができるようになっています。

/opt/docker/proxy/rsyslog.conf
module(load="imfile")
input(type="imfile"
      file="/var/log/squid/access.log"
      tag="pseudolog_squid_access_log"
      facility="local0"
      severity="notice")
:syslogtag, isequal, "pseudolog_squid_access_log" @syslog:514

Dockerfileからイメージをビルドしてコンテナ作成

Dockerfileが作成できたら、ビルドします。

docker build --force-rm -t infraserv:proxy . -f ./proxy.df && \
docker run --cap-add sys_admin --security-opt seccomp:unconfined  -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
  --network infraserv-network -it -d --name proxy --hostname proxy  -p 8080:8080 infraserv:proxy

もし、dnfでコケたら、以下のコマンドが効くかもしれない。

# firewall-cmd --add-masquerade --permanent
# firewall-cmd --reload

動作確認

診断くん、などでチェック。
http://taruo.net/e/

bashaway
2019/1/1よりQiita利用開始しました。よろしくお願いします。 趣味は自宅ラボ&ホビープログラム。いまはcactiのcisco用コンフィグ取得プラグインの作成中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした