OpenVPN on WSL2
https://github.com/pritunl/pritunl
WSL2 の環境にOpenVPN を導入してみました。
Pritunl を管理ツールとして使いました。
外出先から自宅環境のファイルサーバの参照、EPGStation の操作、WSL2 への接続、Windows 10 へのリモートデスクトップ接続、等ができます。
今まではRaspberry Pi をVPN サーバにしていました。
リスクがある気もしますが移行を検討してみます。
環境
- Windows 10 Insider Preview Build 20197
- WSL2 (Ubuntu 20.04)
- openvpn 2.4.7
- pritunl 1.29.2530.72
ℹ️Wireguard を指定する項目が増えていました - mongodb 3.6.9
- WSL2 (Ubuntu 20.04)
- v6 プラスでインターネット接続
v6 プラス接続環境の調査
- 公開IPv4 アドレスと公開IPv6 アドレスを確認
https://test-ipv6.com/ - 公開IPv6 アドレスから公開可能なポート番号を確認
http://ipv4.web.fc2.com/map-e.html - 公開するポート番号を決定
例えば60000/tcp
を選択
⚠️tcp になります。 - Windows 10 のローカルIPアドレスを確認 例えば、
>ipconfig
192.168.11.2
構築(WSL)
- WSL2 でsystemd を有効化
https://github.com/arkane-systems/genie/$ sudo apt install daemonize dbus policykit-1
$ wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo apt update; sudo apt upgrade
$ sudo apt-get install -y dotnet-runtime-3.1
$ curl -s https://packagecloud.io/install/repositories/arkane-systems/wsl-translinux/script.deb.sh | sudo bash
$ sudo apt install -y systemd-genie - pritunl を導入
https://github.com/pritunl/pritunl$ sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list << EOF
deb https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.2 multiverse
EOF
$ sudo tee /etc/apt/sources.list.d/pritunl.list << EOF
deb https://repo.pritunl.com/stable/apt focal main
EOF
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv E162F504A20CDF15827F718D4B7C549A058F8B6B
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A
$ sudo apt-get update
$ sudo apt-get --assume-yes install pritunl mongodb-server$ genie -s
$ sudo systemctl start pritunl mongodb
$ sudo systemctl enable pritunl mongodb - ポートフォワードのスクリプト
443/tcp と60000/tcp をWindows 10 からWSL2 へ転送する。/home/ubuntu/bin/wsl-portforward.sh
IP=$(ip -f inet -o addr show eth0 | cut -d\ -f 7 | cut -d/ -f 1)
for PORT in 443 60000; do
/mnt/c/Windows/system32/netsh.exe interface portproxy delete v4tov4 listenport=$PORT
/mnt/c/Windows/system32/netsh.exe interface portproxy add v4tov4 listenport=$PORT connectaddress=$IP
done
構築(Windows 10)
- Firewall の受信許可
- 60000/tcp
- WSL 側のwsl-portforward.sh を起動 ⚠️タスクスケジューラでWindows 10 起動時に実行するように設定
wsl -u root bash /home/ubuntu/bin/wsl-portforward.sh
- pritunl の起動 ⚠️タスクスケジューラでWindows 10 起動時に実行するように設定
wsl -u root genie -c systemctl start pritunl mongodb
- WSL 側のPritunl の設定
https://192.168.11.2
にアクセスし、画面の指示に従ってログインした後、サーバを設定します。
4.1Users
>>Add Organization
4.2Users
>>Add User
4.3Servers
>>Add Server
⚠️公開IPv4 アドレスと60000/tcp を指定
4.4Servers
>>Attach Organization
4.5Servers
>>Start Server
- クライアント設定ファイルの生成
5.1Users
>>Click to download profile
5.2username.tar
を展開して.ovpn ファイルを抽出
構築(ルータ)
- ポート変換の設定
- ポート: 60000/tcp
- 宛先: 192.168.11.2
Android クライアントからの利用
- OpenVPN アプリで.ovpn ファイルをインポート
- 接続
Comment