git cloneして、docker-compose upを実行するだけ
Docker on AWS EC2で、
1
2
3
4
$ git clone https://github.com/eidera/softethervpn-docker
$ cd softethervpn-docker
$ vi docker-compose.yml
ユーザー名やパスワードなどを好きな値に編集
とやっておいた上で、
1
$ docker-compose up
するだけで、ユーザー認証としてパスワード認証を用いたL2TP over IPSecなVPNサーバが立ち上がります。
docker-compose up
からの所要時間は約1分。あっという間ですね。
dockerのホストマシンで、下記のポートが使えるようになっていればOKです。
- UDP 4500
- UDP 500
ユーザー名やパスワード、共有シークレットなどは、以下のものをお好みのものに変更して下さい。
Argument | Default value |
---|---|
SOFTETHER_URL | ※長いので表外に記載 |
HUB_NAME | MyHub |
HUB_PASSWD | hogehoge |
USER_NAME | MyVpnUser |
USER_PASSWD | fugafuga |
COMMON_SECRET | hogefuga |
- SOFTETHER_URLのdefault value
ディレクトリ構成
1
2
3
4
.
├── build
│ └── Dockerfile
└── docker-compose.yml
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: '3'
services:
vpn:
container_name: vpn
build:
context: .
dockerfile: ./build/Dockerfile
args:
SOFTETHER_URL: "https://jp.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Source_Code/softether-src-v4.22-9634-beta.tar.gz"
HUB_NAME: MyHub
HUB_PASSWD: hogehoge
USER_NAME: MyVpnUser
USER_PASSWD: fugafuga
COMMON_SECRET: hogefuga
volumes:
- vpn_data:/usr/vpnserver
ports:
- '500:500/udp'
- '4500:4500/udp'
volumes:
vpn_data:
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
FROM amazonlinux:2017.03
RUN yum install -y gcc make ncurses-devel openssl-devel readline-devel wget
ARG SOFTETHER_URL="https://jp.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Source_Code/softether-src-v4.22-9634-beta.tar.gz"
ARG HUB_NAME="DefaultHub"
ARG HUB_PASSWD="DefaultHubPassword"
ARG USER_NAME="DefaultUser"
ARG USER_PASSWD="DefaultUserPassword"
ARG COMMON_SECRET="commonsec"
RUN cd / && \
mkdir -p softether_vpn && \
cd softether_vpn && \
wget ${SOFTETHER_URL} && \
tar zxvf *.tar.gz && \
cd $(tar ztvf *.tar.gz| head -n1 | awk '{print $NF}') && \
cp -f src/makefiles/linux_64bit.mak Makefile && \
make && \
make install && \
make clean && \
rm -rf /softether_vpn
RUN /usr/vpnserver/vpnserver start && \
sleep 5 && \
vpncmd /SERVER localhost /ADMINHUB:DEFAULT /CMD HubCreate ${HUB_NAME} /PASSWORD:${HUB_PASSWD} && \
vpncmd /SERVER localhost /ADMINHUB:${HUB_NAME} /CMD UserCreate ${USER_NAME} /GROUP:none /REALNAME:none /NOTE:none && \
vpncmd /SERVER localhost /ADMINHUB:${HUB_NAME} /CMD UserPasswordSet ${USER_NAME} /PASSWORD:${USER_PASSWD} && \
vpncmd /SERVER localhost /ADMINHUB:${HUB_NAME} /CMD IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /PSK:${COMMON_SECRET} /DEFAULTHUB:${HUB_NAME} && \
vpncmd /SERVER localhost /ADMINHUB:${HUB_NAME} /CMD SecureNatEnable && \
vpncmd /SERVER localhost /ADMINHUB:${HUB_NAME} /CMD NatEnable && \
vpncmd /SERVER localhost /ADMINHUB:${HUB_NAME} /CMD DHCPEnable && \
/usr/vpnserver/vpnserver stop
CMD /usr/vpnserver/vpnserver execsvc
EXPOSE 500/udp 4500/udp
vpnの設定内容を他のものに変更したい場合には、vpncmdのコマンドに渡せるオプションなどの詳細を以下で確認できます。
EC2インスタンスを作成したばかりの状態からの手順
ec2-user
で実行するときの手順になってます。ユーザー名を変更する場合は読み替えて下さい。
- UDP 4500, UDP 500を開けておく
1
2
3
4
5
6
7
sudo yum -y install docker git
wget -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m`
sudo mv docker-compose-`uname -s`-`uname -m` /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo chown root:root /usr/local/bin/docker-compose
sudo usermod -a -G docker ec2-user
※ここで一旦ログアウト
1
2
3
4
sudo /etc/init.d/docker start
git clone https://github.com/eidera/softethervpn-docker
cd softethervpn-docker
docker-compose up
以上。
EC2インスタンスには、インバウンドに下記のポートを開けたセキュリティグループを付与するのを忘れずに。
- UDP 4500
- UDP 500
Macから接続する場合、VPNの設定をした後、詳細
のすべてのトラフィックをVPN接続経由で送信
にチェックを入れると、IPアドレスがVPNサーバーのものに変わります。