これまで自宅用の 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 コマンドでも同じことができます。

だいぶ前に秋葉原の中古携帯ショップで買った NEC のモバイルルーター、Aterm MR04LN。USB テザリング機能があるのですが、接続してもネットワークデバイスとして認識してくれません。

必要なカーネルモジュール (rndis_host) が自動で読み込まれていないようなので、以下のコマンドで手動で読み込み解決しました。

sudo modprobe rndis_host

英語でのアナウンスはこちら

私達は openSUSE.Asia Summit 2024 のロゴコンテストを開催することを宣言いたします!ロゴはイベントに対する考え方やアイデンティティを表すのに重要な役割を果たします。毎年のサミットごとに以前とは異なる独創性のあるロゴがサミットを主催するそれぞれのコミュニティを美しく反映してきました。今年のコンテストに参加して2024年のサミットのための素晴しいロゴをデザインしてください。

openSUSE.Asia Summit 2024 は日本の東京で開催され、詳細は間も無く公開されます(※訳注:2024年06月09日現在公開されています。日本語訳はこちら)。ロゴコンテストは2024年7月21日に締め切られます。最優秀作品の作者には運営委員から感謝の気持として「Geeko Mystery Box(なにが入っているかはお楽しみ)」を送らせていただきます。

締切:2024年7月21日

最優秀作品発表:2024年7月29日

コンテスト募集要項:

  1. ライセンス:ロゴは CC-BY-SA 4.0 ライセンスに準拠してください。また、openSUSE.Asia Summit 2024においてあなたの作品をロゴとして使用する場合、帰属(attribution(BY)- 著作権者の表示)なく使用出来る事とします。帰属(著作権者の表示)はサミットの Web サイト上で行います。
  2. オリジナリティ:ロゴデザインはオリジナルのものでなければならず、いかなる第三者の制作物も含んではいけません。
  3. フォーマット:モノクロとカラーフォーマットの両方を提出する必要があります。
  4. ファイル形式:SVG 形式で提出する必要があります。
  5. コミュニティの反映:ロゴデザインはアジアにおける openSUSE コミュニティを反映するものにしてください。
  6. 禁止事項:ロゴは以下を含まないでください。
    • 何れかのブランド名や商標、及びそれらを連想させるもの
    • 不適切、攻撃的、ヘイト表現、不法行為、中傷的、名誉毀損とみなされる可能性のあるイラスト
    • 性的に露骨であったり挑発的であったりする表現
    • 暴力や武器を連想させるような表現
    • アルコール、煙草、ドラッグの使用を連想させるような表現
    • 人種、ジェンダー、宗教、国籍、身体障碍、性的指向、年齢に関する差別表現
    • グループや個人に対する偏見、人種差別、ヘイト、及び何らかの害を与えるような表現
    • 宗教的、政治信条的なもの、あるいナショナリズムを連想させるような表現
  7. ガイドライン:ロゴは openSUSE Project Trademark Guidelines を遵守する必要があります。
  8. ブランドopenSUSE branding guidelines はロゴのデザインの助けとなるでしょう(オプション)。

デザインロゴの提出は以下の内容と友に opensuseasia-summit@googlegroups.com に送信してください:

  1. 件名:openSUSE.Asia Summit 2024 Logo Design – [あなたのお名前]
  2. 連絡先:あなたのお名前とメールアドレス
  3. デザイン理念:あなたのロゴデザインに込められた理念を説明するドキュメント(TXT または PDF文書)
  4. ベクターファイル:ロゴデザインは SVG 形式のみ受け付けます
  5. ビットマップファイル: 256 x 256 px 以上の PNG 形式のビットマップファイルを添付してください
  6. ファイルサイズ:ファイルサイズは512KB未満になるようにしてください

openSUSE.Asia Summit 実行委員は全ての応募作品が要件を満たしているかを確認します。最終的な決定は実行委員が行ない、最高得点を獲得したデザインではない場合もあります。ロゴの作成には Inkscape の利用をお薦めしています。Inkscape はあなたのデザインワークのためのパワフルでフリーな、そしてオープンソースのベクターグラフィックツールです。

2023年の活動ふりかえり

By ftake @ 2023-12-25 23:42

この記事は openSUSE Advent Calendar 2023の最終日です。

4月

オープンソースカンファレンス2023 Tokyo/Spring に出展しました2020年大阪以来のオフライン OSC でした。

7月

OSC 京都のオンライン、オフラインともに出展しました。オンラインでは川上さんが「ちょっと作ってDNS Resolverの気持ちになってみよう」というDNSサーバーを実装するハンズオンセミナーを行いました。

8月

コミックマーケットC103において、Geeko Magazine 2023 夏号を頒布しました。

オープンデベロッパーズカンファレンス(ODC)には、XDDC (Cross Distro Developers Camp) として参加し、openSUSE の開発について話しました。

10月

openSUSE.Asia Summit が重慶で開催されました。日本からは武山橋本(修太)さんが参加しました。

11月

関西オープンフォーラムにブース出展しました。

オープンソースカンファレンス2023 Niigata では、「マスコットのかわいいLinuxディストリビューションopenSUSEのご案内」というタイトルで、橋本(鹿)さんが発表しました。

12月

コミックマーケット C103 で Geeko Magazine 2023冬号を頒布予定です。

2024年の活動は?

2023年はオフラインの活動が半分程度になり、コミュニケーションの機会が増えたのもあって、はじめましてな openSUSE ユーザに出会うといったこともありました。openSUSEユーザ会としてのイベント、特に mini Summit やリリースパーティは全く開催できませんでした。

1月には OSC 大阪への出展を皮切りに、今年以上にオフラインイベントに参加していきたいと思います。また openSUSE の関係者は XDDC としてもくもく会を開催して集まっていますので、開発や翻訳、ドキュメントに参加してみたい方はご参加ください。

この投稿は openSUSE Advent Calendar の 11日目です。そろそろ折返しです。

まれにスクリーンロックが固まってしまい、パスワードの入力画面が表示されいことがあります。このようなときに、ロックを解除する方法があります。使用するのは systemd に含まれているコマンド、loginctl です。

ロック画面が固まってしまったら、まず行うのが仮想コンソールでのログインです。Ctrl+Alt+F1を押すとログインプロンプトが表示されるので、ユーザー名とパスワードを入力してログインしてください。

つぎに、loginctl を実行すると、セッションの一覧が表示されます。

$ loginctl
SESSION  UID USER  SEAT  TTY
     22 1000 geeko seat0 tty1
      3 1000 geeko seat0 

2 sessions listed.

セッション 22 は、TTY が tty1 なので、現在操作している仮想コンソールです。固まっているのはセッション 3 です。

ロックを解除するには、以下のコマンドを実行します:

$ loginctl unlock-session 3

これでロックが解除できました。操作している仮想コンソールを Ctrl+D で抜けて、Ctrl+Alt+F7 を押すと、デスクトップに戻ることができます。

openSUSE 15.5 で試したのですが、GlusterFS の中の glusterd は peer との通信にデフォルトで IPv6 で通信しています。 /etc/hosts に IPv4 アドレスでホスト名を指定してもそこを見ません。
IPv4 で通信させるためには、 /etc/glusterfs/glsuterd.vol に

option transport.listen-backlog 1024

と言う行を追加する必要があります。

openSUSE.Asia Summit 2023 に行ってきた

By ftake @ 2023-11-05 13:39

10月25日、26日に中国の重慶で開催された openSUSE.Asia Summit 2023 に参加してきました。openSUSE.Asia Summit は2014年から、ほぼ毎年開催してきましたが、2020年は中止、2021年はオンライン、2022年はオンラインとサテライト開催(台北、ジャカルタ、東京)でしたので、会場に集まっての開催は実に4年ぶりとなります。

中国の重慶には、大学の学生を中心とした強い OSS コミュニティがあります。サービスを企画して運用するような大学のサークル活動もあるそうです。openSUSE.Asia Summit 開催は(記憶によると)2回目の挑戦で初開催です。会場は重庆邮电大学(重慶郵電大学、Chongqing University of Posts and Telecommunications)でした。会場には約200人が集まりました。

基調講演は openSUSE Board から Patrick が Geeko Foundation について発表しました。これまで、openSUSEには資金面での受け皿がなく、寄付等を受け取ることができませんでした。この問題を解決するために、資金団体を立ち上げる計画が進められていましたが、今年、設立に至りました。

こちらは、RISC-V アーキテクチャの CPU ボードシリーズ Milk-V のデモ。人気があって入手困難という話を小江戸らぐで聞いたことがありました。うまく動かなかったらしく、ワークショップ中になにやらデバッグ中の風景です。

インドネシアの Edwin は、ダウンロードを改善するためにインドネシアに設置したリポジトリのミラーサーバについて発表しました。月間20TBを捌いているのですが、皮肉なことにトラフィックの多くは中国からになってしまっているそうです。現在は openSUSE の公式リポジトリも CDN を使ってリポジトリへのアクセスを改善しようとしています。しかし、こちらは(費用面の問題からだと思いますが)小さなファイルの配布にのみ使用しており、引き続きこのミラーサーバーは必要になるとのことでした。

昼ご飯はみんなで大学の近くの食堂へ。

ローカルな食べ物をみんなで囲いました。ローカルの料理を選んでくれたのか、いくつか辛い料理がありました。麻婆豆腐は会社近くの中華料理屋の四川風麻婆豆腐のほうが辛かったです。

私の発表は午後最初の枠でした。ODC などでも話している xdg-autostart-generator の話です。Leap 15.5での解決は間に合わなかったものの、このタイトル。

集合写真

夜はボランティア、発表者とともに懇親会へ。ちょっと豪華な地元料理です。ボランティアは情報系の学生だけではなく、語学系の学生も多く駆り出されていました。この懇親会では、日本のアニメが好きという学生と一緒にご飯を食べました。

カンファレンスツアー

今年のカンファレンスツアーは重慶の中心部から2時間ほど離れた、大足石刻を見に行きました。地獄の図、天国の図、千手観音とどれもスケールの大きい仏像ですが、なんと、どれも崖の岩を直接掘って作られています。

こちらは地獄の図

こちらは天国の図

この千手観音も崖を掘って作られています。

晩御飯は重慶名物の火鍋!磁器口とよばれる古い町並みを再現した観光地の外れにひっそりと佇む、隠れ家的な火鍋レストランでの夕食でした。

辛い方は一番辛くない設定にしてあったそうですが、辛かったです。具材はほとんどホルモンでした。癖の強いものは辛い方に入れないと美味しく食べられないそうです。

重慶ってどんな場所?

場所と地形

重慶は中国のほぼ中央の内陸部にある都市です。2023年10月時点では、COVID-19 以降の制限が解除されきっておらず、日本からの直行便は大阪からに限られており、北京や上海を経由して8時間程度で行くことができます。


大きな地図を表示

街の中心部は長江と嘉陵江という大きな合流地点にあります。大きな川沿いなので、広大な平地かというとそうではなく、高い丘や山に囲まれた谷になっています。このような場所に、3千万もの人が住んでいるということで、山沿いに高層ビル、タワマンが並ぶ姿は写真では伝わらない凄さです。

当然ですが、川沿いから内陸側に徒歩で行こうものなら、ものすごい階段を登る必要があります。エスカレーターやエレベーターはありません。

買い物、食べ物

町中にはいたるところにコンビニがあります。よく見かけるのはローソンとセブンイレブンです。日本や北京に比べると、かなり店舗は小さめですが、食料品を中心に馴染みのあるものが並んでいます。

朝ご飯はホテルと同じ建物にある飲食店を使いました。カウンター席4席のワンタンと小麺(ラーメン)屋では 100 g のワンタンスープが約220円で、これで十分お腹いっぱいになります。

観光地だとちょっと高いです。麻婆茄子丼は約500円でした。

困るのが注文です。簡単な英語も伝わりません。写真つきのメニューがあって、指差しができれば良いのですが、それもない場合は困ります。メニューはなんとなく何かは漢字から想像が付きます。あるお店では、何が聞かれているのか分からなかったところ、「熱」「冷」のように書いてくれました(漢字が読めることがよく分かったな)。もちろん Google 翻訳も役立ちます。

ちなみに、支払いは基本 QR コード決済です。現金も当然使えますが、お釣りがなくて困ることがあるようです。今年から Alipay に日本のクレジットカードが登録できるようになったので、気軽に使えました。カードのせいか、最初の1回だけうまく決済できず焦りましたが、カードを変えて以降は大丈夫でした。

パンダ

本場とあって、重慶動物園にはたくさんのパンダがいます。そして大人気。動き回っている子のまわりには、人だかりができていました。ほとんどの子は昼前にも関わらず、気持ち良さそうにぐっすり。ちょっと酔っ払いみたいです。

夜景

川沿いはライトアップされ、夜景がきれいです。観光船も運行しています。

ロープウェイにも乗ってみました(写真なし)。橋が開通して、地下鉄が通るようになるまでは移動手段として使われていたそうですが、今はすっかり観光用です。

ホテルの近くには、洪崖洞とよばれる、崖沿いにホテルやレストランなどが集まった商業施設があります。これまた豪華なライトアップで、多くの観光客が押し寄せていました。

交通

市の中心部は地下鉄やモノレールが張り巡らされており、近距離であれば、1回40円程度で移動できます。もちろん支払いは Alipay です。Alipay で発行できる公共交通機関専用の QR コードを使って乗降できます。

歴史はとても浅く、このあとに紹介するモノレールの2号線の開業が最も古く2005年、路線のほとんどは2010年代になってからの開業で、どれも設備が新しいです。

中でも有名なのが、この李子坝 (Liziba) 駅。マンションの中を線路が貫いています。観光スポットになっており、駅前では多くの人がカメラを構えていました。

来年の開催は?

開催地の公募はこれからですが、早速、インドネシアチームが手を挙げています。少しでも興味のある方は、ぜひなんらかの発表を用意して参加してみてください。