みなさんこんにちは。
公共Wi-Fiに接続しているときのセキュリティや、海外にいるときに日本のサイトにアクセスできないとき、ありませんか?
そんなときはVPNを使えば解決しますが、市販のVPNサービスは料金が高かったり、セキュリティ面で不安があったりするケースがありますよね。
そう。VPSを契約しておけば自前のVPNサーバを安価で持てます!
というわけでさっそく説明していきます。
VPSの準備
今回もお馴染み、さくらのVPSを利用します。
契約したのは最も安価な512MBコースです。
VPNサーバを建てるだけであればこれで十分です。

契約が完了すれば早速OSのインストールに移ります。
- OSインストール方法 : 標準OS
- OS : Ubuntu
- バージョン : 20.04 amd64
- 管理ユーザー名 : ubuntu (規定値)
- 管理ユーザーのパスワード : 任意
- スタートアップスクリプト : 無し
- パケットフィルター設定 : パケットフィルターを利用しない
選択が完了したら”内容確認”を押して、インストールが完了するまでしばしの休憩。1分くらいで完了しちゃいます。
Ubuntuの初期設定
VPSが起動したら、ローカルマシンからsshでVPSへ接続します。
ssh <管理ユーザー名>@<VPSのIPアドレス>
システムを最新の状態にします。
sudo apt update
sudo apt upgrade -y
Wireguardのインストール&設定
パッケージのインストールをします。
sudo apt install wireguard -y
Config値の生成方法は過去記事を参照ください。
Config値を生成できたら、wg0.confファイルに書き込みます。
sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = CHrkctsZ7U/s0BtNchogehogeBuHhFgCG8OYOUo=
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = AQyX7QO/QrhogehogeC0UkCs=
AllowedIPs = 10.0.0.2/32
[Peer]
PublicKey = 8urJscsS1skhogehogegUgU=
AllowedIPs = 10.0.0.3/32
[Peer]
PublicKey = XFNLXhdENuNYhogehogecxdEs=
AllowedIPs = 10.0.0.4/32
パケットの転送を許可します。
sudo nano /etc/sysctl.conf
“net.ipv4.ip_forward=1″という行がコメントアウトされている場合はコメントアウトを解除します。
変更が完了したら下記を実行して変更の適用をします。
sudo sysctl -p
ufwを使用して、ポートの制限を行います。
下記はWireguardで標準ポート(51820)を使用する場合の一例です。
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 53/udp
sudo ufw allow 51820/udp
sudo ufw enable
VPSの起動時にWireguardが自動で起動する設定をします。
sudo systemctl enable wg-quick@wg0
最後にWireguardを起動します。
sudo systemctl start wg-quick@wg0
以上になります。
さくらのVPSではバックアップ機能がないので、別のVPSでも試してみてもいいかなと思いましたが。
それはまた別の記事で。
Pi-holeをインストールするのはWireguardを整備した後に実施するのがいいのかも。
あと、Pi-holeインストール時のNIC選択画面ではens3ではなくwg0を選ばないとつまづきました。
それではまた!