4
1

AWSとSoftEtherとUbuntuを使って、VPNを構築した話

Last updated at Posted at 2024-03-13

こんにちは、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
スクリーンショット 2024-03-13 181826.png
こんな感じで、選択していき、一番最新のものを選びましょう!

以下、ダウンロードと展開コマンド

# ダウンロード
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

打つと、エディタの画面に移るので、下記内容を入力してください!

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
↑この記事を参考にしてみてください!

最後に

ここまで、見てくださりありがとうございました。
正直かなり見づらい部分もあると思いますので、分かりづらい部分ありましたらコメントくだされば幸いです。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1