docker: OpenVPN DockerFile
OpenVPNとFRRを使って3拠点を接続するネットワークの構築をする。
OpenVPNとFRRはdockerのNWモード=’host’で動作させる。
OpenVPNはdocker hubにあるものを使えばよいが、今回は自作してみる。
FROM alpine:3.12.0
WORKDIR /etc/files/OVPN
Run set -x && \
/bin/sh && \
apk update && \
apk upgrade && \
apk add --no-cache bash && \
apk add --no-cache curl && \
apk add --no-cache vim && \
apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
apk del tzdata && \
apk add --no-cache openvpn && \
mkdir -p /etc/files/CA && \
mkdir -p /etc/files/OVPN/ccd && \
mkdir -p /etc/files/OVPN/log && \
rm -rf /var/cache/apk/*
#
ENTRYPOINT ["/etc/files/OVPN/start.sh"]
CMD ["sleep"]
Dockerfileのbuildを行っておく。
# docker build ./ -t ovpn:alpine_3.12.0r1
docker起動時のstartupスクリプトを作成する。NWmode=’host’で動作させるのでiptables等は記載せず、必要ならホスト側で設定しておく。
# vi start.sh
#!/bin/bash
if [ $1 = "sleep" ]; then
echo "sleep start"
while true
do
sleep 100
done
fi
mkdir -p /dev/net
if [ ! -c /dev/net/tun ]; then
mknod /dev/net/tun c 10 200
chmod 666 /dev/net/tun
fi
openvpn --config /etc/files/OVPN/config.conf
start.shには実行権限を付与しておく。
# chmod +x start.sh