こんにちは、takazonessです。
今回、AWSとSoftEtherとUbuntuを使い、VPNを構築しました。
結構簡単にできたので皆さんに共有したいと思います!
参考にした記事
https://qiita.com/ak-sakatoku/items/e8b6a29470b1716435ca
https://qiita.com/Tateshm/private/a7ae8b7bb276d604b046
前提条件
まず前提条件として
・Ubuntuを使用し、EC2インスタンスの構築
・ポートの開放
TCP : 22 (SSH)
UDP : 500
UDP : 4500
こちらを行ってください。
今回はアーキテクチャタイプが64ビット(×86)
のものを使用しいるため、64ビット(Arm)
でインスタンスを作成されると、不具合が発生する可能性がありますのでご注意ください。
以下、推奨インスタンスタイプ
t2.micro
t3.micro
t3a.micro
上記のインスタンスタイプで構築すれば、基本問題ないはずです。多分。
ダウンロード
まずはダウンロードから!
https://www.softether-download.com/ja.aspx?product=softether
こんな感じで、選択していき、一番最新のものを選びましょう!
以下、ダウンロードと展開コマンド
# ダウンロード
wget https://www.softether-download.com/files/softether/v4.43-9799-beta-2023.08.31-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.43-9799-beta-2023.08.31-linux-x64-64bit.tar.gz
# 展開
tar zxvf softether-vpnserver-v4.43-9799-beta-2023.08.31-linux-x64-64bit.tar.gz
インストール
次にインストールしていきます。
# make
cd vpnserver
make
cd ..
# ファイル権限を付与
sudo chown root:root -R /opt/vpnserver
VPN起動前設定
次にVPNサーバの設定をしていきます。
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9001 qdisc fq_codel state UP group default qlen 1000
link/ether 06:de:48:1f:65:13 brd ff:ff:ff:ff:ff:ff
inet 10.0.11.55/20 metric 100 brd 10.0.15.255 scope global dynamic ens5
valid_lft 2789sec preferred_lft 2789sec
inet6 fe80::4de:48ff:fe1f:6513/64 scope link
valid_lft forever preferred_lft forever
まず、ip addr
と打ち、2番目の項目の英数字を覚えておきましょう!(ここではens5
、以後NIC
と呼びます。)
SoftEther VPN Serverは起動してから設定を行うので、まずサービスとして登録させ、起動させましょう!
まず、以下のコマンド打ちましょう。
sudo vi /etc/systemd/system/vpnserver.service
打つと、エディタの画面に移るので、下記内容を入力してください!
[Unit]
Description=SoftEther VPN Server
After=network.target auditd.service
ConditionPathExists=!/opt/vpnserver/do_not_run
[Service]
Type=forking
EnvironmentFile=-/opt/vpnserver
ExecStartPre=/sbin/ip link set dev <NICの名前> promisc on
ExecStart=/opt/vpnserver/vpnserver start
ExecStop=/opt/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure
# Hardening
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full
ReadOnlyDirectories=/
ReadWriteDirectories=-/opt/vpnserver
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST
CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
[Install]
WantedBy=multi-user.target
起動!!!!!
これで起動前設定は完了です!
実際に起動していきましょう!
sudo systemctl daemon-reload
sudo systemctl start vpnserver
sudo systemctl status vpnserver
sudo systemctl enable vpnserver
無事起動に成功したら、vpncmd
というツールで設定を行います!
もしvpncmd
が入っていなかったら、下記コマンドを入力しましょう。
sudo apt install vpncmd
(あってるとは思いますが、間違えたらすみません)
VPN起動後設定
次に起動後の設定をしていきます!
$ vpncmd
↓
1を選択
[空のままで2回Enter]
vpnserver> ←この表記になったら以下を順番に入力していきましょう
HubCreate <任意の名前でHUB名>
Hub <任意の名前で作ったHUB名>
UserCreate <任意のユーザ名> /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet <任意のユーザ名> /PASSWORD:<任意のパスワード>
IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /DEFAULTHUB:<任意の名前で作ったHUB名>
→事前共有キー設定に移行 <任意の事前共有キー>
DhcpSet /START:192.168.30.10 /END:192.168.30.200 /MASK:255.255.255.0 /EXPIRE:7200
/GW:192.168.30.1 /DNS:192.168.30.1 /DNS2:none /DOMAIN:none /LOG:yes
/PUSHROUTE:"10.0.0.0/255.255.0.0/192.168.30.1"
/PUSHROUTE:"10.0.0.0/255.255.0.0/192.168.30.1"
の部分、特に10.0.0.0/255.255.0.0
の部分は環境によって違うので、
https://qiita.com/Tateshm/private/a7ae8b7bb276d604b046
↑この記事を参考にしてみてください!
最後に
ここまで、見てくださりありがとうございました。
正直かなり見づらい部分もあると思いますので、分かりづらい部分ありましたらコメントくだされば幸いです。