Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

pivpnでRaspberry PiにWireGuardをインストールしてVPNサーバーを構築

備忘録です。

Raspberry Piの初期設定、静的IP割当、ポート開放についての内容は省きます。

最近はテレワークなどの影響でVPNが注目される機会が多いらしいですね。

僕はただ自宅内ファイルサーバーに保存してあるエロ動画を外出先で見たいだけです。

環境:
サーバー:Raspberry Pi model B+ Raspbian 9.13
ルーター:NURO光から借りているFG4023B

Raspberry Pi側の設定

なにはともあれ、pivpnを利用してWireGuardをインストールします。

GitHubでインストール方法が書かれているので、Installationの中から好きな方法を選びましょう。

GUIで進むので、特に迷うことはないと思います。

インストールが完了したら、以下のコマンドを入力します。

$ pivpn add

すると、以下のように入力を求められます。

Enter a Name for the Client:

ここには、接続する端末の名前を入れてください。自分がわかれば何でも良いです。
入力すると、以下の結果が出力されます。

::: Client Keys generated
::: Client config generated
::: Updated server config
::: WireGuard restarted
======================================================================
::: Done! 名前.conf successfully created!
::: TWOozora.conf was copied to /home/pi/configs for easy transfer.
::: Please use this profile only on one device and create additional
::: profiles for other devices. You can also use pivpn -qr
::: to generate a QR Code you can scan with the mobile app.
======================================================================

書かれている通り、/home/pi/configsにクライアント用のconfファイルがあります。
このファイルをscpなりコピペなりでクライアント側に持ってきてください。接続の際に必要です。

次に、パケットのフォワードを許可します。

/etc/sysctl.conf を編集してください。

#net.ipv4.ip_forward=1 ここのコメントアウトを外して
net.ipv4.ip_forward=1 # こうする

最後に、クライアントがLANへルーティングできるように設定します。
/etc/wireguard/wg0.conf を編集します。
恐らく、現状のwg0.confはこうなっていると思います。

[Interface]
PrivateKey = <秘密鍵>
Address = <IP>
ListenPort = 51820 #ルーターで設定するポート番号はこれ
### begin <追加したやつ> ###
[Peer]
PublicKey = <公開鍵>
PresharedKey = <鍵>
AllowedIPs = <IP>
### end <追加したやつ> ###

この[Interface]の項目に、以下を追記します。

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

ラズパイはこれで終わりです。

接続側

まず、WireGuardのクライアントソフトをダウンロードします。
現状、iOS,Android,Mac,Windowsはアプリストアか公式サイト、各種Linuxはパッケージ管理システムからダウンロードできます。

僕はMacとAndroidで試したので、それを元に説明します。

プラスボタンを押して、ラズパイ側で生成されたconfファイルを指定します。

以上です。

さいごに

流れだけ書くと非常に簡単ですね。
僕の場合は情報が散乱していたので、中々手惑いました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
6
Help us understand the problem. What are the problem?