告知しています通り、openSUSE.Asia Summit 2024 Tokyo を2024年11月2日(土)、3日(日) に麻布台ヒルズの株式会社SHIFTさんで開催します。
openSUSE.Asia Summit はアジア地域の openSUSE コミュニティ(貢献者、ユーザー)が一堂に集まり、交流し、楽しむイベントです。

openSUSE.Asia Summit 2024ではopenSUSE以外にも,Dockerなどのコンテナ,DevOps,日本語IMEなどのLinux Desktop,オープンソースのオフィススイートであるLibreOfficeやセキュリティについてなど幅広いトークを予定しています。また、AlmaLinux、Debian、Ubuntuなどの主要ディストリビューションの講演があるCross Distro Trackもあります。

この openSUSE.Asia Summit 2024 Tokyoにて、学生ボランティアを募集しています。
アジアのオープンソース関係者と交流するまたとない機会です!

学生ボランティアには素敵な特典をご用意。

  • イベントTシャツ
  • 懇親会11/2(土)のご招待

交通費について

  • 関東近郊:交通費実費。上限目安:四日間で4000円(これを超える場合はご相談下さい)
  • 宿泊を伴う場合:交通費、宿泊費実費ないし一部。ご相談下さい。(8/20までに予定する交通費、宿泊費をご連絡ください)

ボランティアの仕事

  • 会場の準備
  • 来場者受付
  • スピーカーのサポート(マイク、タイムキーパーなど)
  • 4日(月祝)のツアーのサポート

希望するセッションには基本的に参加できます。英語が出来なくても問題ありません。また、発表者として発表されることを推奨します。

詳細

  • 日時
    • 2024年11月1日(金)17:00-19:00
    • 2024年11月2日(土)8:00-20:00
    • 2024年11月3日(日)9:00-20:00
    • 2024年11月4日(月祝)※ツアー(詳細未定)
  • ※全時間ではありません。
  • 会場:麻布台ヒルズ 株式会社SHIFT
  • 募集条件: 少なくとも土曜日に参加できること(土曜日に参加できない場合は応相談)

お手伝いいただける方は、以下の情報をopensuse-asia-24-contact@googlegroups.comまでお送りください。

  • 氏名:
  • 氏名よみがな:
  • 所属(大学名/学部名):
  • Tシャツサイズ(XS / S / M / L / XL):
  • メールアドレス:
  • 参加日:
  • 必要な交通費:

イベント詳細については以下をご覧ください。

沢山のご応募をお待ちしています。明日のOSSを担うのは君だ!

これまで自宅用の VPN はルーターの機能の L2TP/IPSec を使っていました。しかしながら、Android 12から L2TP/IPSec が使えなくなったり、もともと接続元のネットワーク環境次第で接続できないという制約もあり、VPN を WireGuard に乗り換えることにしました。

WireGuard は Linux カーネルに組み込まれている VPN プロトコルで、特にセキュリティとパフォーマンスを売りにしています。

構成はこんな感じです。VPN 接続用の IP アドレスは固定です。

  • 自宅側
    • ルーター
      • ヤマハのダイナミックDNSサービスで IP アドレスを引ける
    • VPNサーバー(ファイルサーバー)
      • openSUSE Leap 15.5
      • LAN側アドレス (eth1): 192.168.10.2(インターネットには直接つながってない)
      • VPN側アドレス: 192.168.2.1
      • ポート: 51820
  • リモート側
    • Android 14 スマートフォン
      • VPN側アドレス: 192.168.2.2
    • Android 13 タブレット
      • VPN側アドレス: 192.168.2.3
    • openSUSE Leap 15.6 ノートPC
      • VPN側アドレス: 192.168.2.4

秘密鍵・公開鍵を作成する

VPN に参加するサーバーとクライアントそれぞれの秘密鍵・公開鍵を作ります。openSUSE が動いている PC で以下のコマンドでそれぞれ作成します。

wg genkey | tee privatekey | wg pubkey > pubkey

privatekey と pubkey に秘密鍵と公開鍵それぞれが保存されます。合計3回実行することになります。

VPNサーバー側の設定

今回の説明の範囲外ですが、ルーターでポートフォワーディングの設定をしておきましょう。必要なポートはUDP 51820です。192.168.10.2 に転送するようにしておきます。

まずは VPN サーバー自体のネットワーク設定です。WireGuard そのものにはプロトコル上、サーバーとクライアントという関係はなく、どちらもサーバーでありクライアントなシンプルな構成です。後は WireGuard をどのような用途で使うかによって設定が変わってくるため、WireGuard の説明を見るときに、用途を意識してドキュメントを見ないと混乱するので注意が必要です。

今回は自宅で常時起動しているファイルサーバーを VPN サーバーの役割を持たせて、自宅のネットワークにつなぎたい端末からこのサーバーに繋いで使用することにします。ここからはいつもの Arch Wiki に感謝ですが、「特定のユースケース: VPN サーバー」 を見ることで、この用途の設定方法がわかります。

はじめに、転送とファイアウォールの設定です。YaST でやってしまいましょう。

  • YaST > 「ネットワーク設定」 > 「ルーティング」を開き、「IPv4 転送を有効にする」をON
  • YaST > 「ファイアウォール」 で使用しているゾーンで「ポート」 > 「UDP ポート」 に 51820 を追加

次に、WireGuard の設定をしていきます。wg コマンドで設定する方法もあるのですが、設定ファイルを直接作成するのが手っ取り早いです。

/etc/wireguard/wg0.conf

[Interface]
PrivateKey = VPNサーバーの秘密鍵
Address = 192.168.2.1/24
ListenPort = 51820
MTU = 1420

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

[Peer]
PublicKey = Android 14 スマートフォンの公開鍵
AllowedIPs = 192.168.2.2/32

[Peer]
PublicKey = Android 13 タブレットの公開鍵
AllowedIPs = 192.168.2.3/32

[Peer]
PublicKey = openSUSE Leap 15.6 ノートPCの公開鍵
AllowedIPs = 192.168.2.4/32

この設定から、VPN 用のインタフェース wg0 を作成します。Systemd を使用して、起動時に WireGuard インタフェースを立ち上げる便利スクリプトの wg-quick を使います。

systemctl enable --now wg-quick@wg0

クライアントの設定―openSUSE Leap 15.6

NetworkManager の接続の追加に WireGuard があり、これで接続できます。入力する必要の値は

  • openSUSE Leap 15.6 ノートPC 用の秘密鍵
  • ピア(接続相手: つまり、この場合サーバー)の設定
    • VPNサーバーの公開鍵
    • Allowed IPs (VPN を通して通信するアドレスレンジ)
      • LANとVPNのアドレスレンジ: 192.168.10.0/24, 192.168.2.0/24
      • 自宅LAN経由でインターネットに出たい場合は 0.0.0.0/0 を指定して、全部を VPN 経由にすることも可能

クライアントの設定―Android スマートフォン

Wireguard の接続アプリは Play Store から入手できます。NetworkManager と同様に手入力でもよいのですが、以下のようなファイルを PC 上で作成して QR コード化して送ることもできます。

[Interface]
Address = 192.168.2.3/24
PrivateKey = Android端末の秘密鍵
DNS = 192.168.10.1
MTU = 1420

[Peer]
PublicKey = VPNサーバーの公開鍵
AllowedIPs = 192.168.10.0/24, 192.168.2.0/24
Endpoint = 外からアクセスできるルーターのホスト名:51820

ファイル名を android-phone.conf とすると、QR コードは次のようにして作成できます。

qrencode -t ansiutf8  < android-phone.conf

qr コマンドでも同じことができます。