切腹のイラスト

素WireGuardでVPNのセットアップ

{
  date: "",
  update: "",
  category: "/memo"
}

重い腰を上げてやりましたとさ。

なぜに素WireGuardなのか

やったこと

外部から到達可能なVPSを拠点にして疑似サーバ・クライアント方式で接続する方針でやった。

サーバ側は,ArchWikiを手掛りにしてsystemd.netdev(5)systemd.network(5)を読みつつ,既に使用していたsystemd-networkdを用いて設定した。 クライアント側は各々の流儀に従って設定した。

VPNのアドレスには10.0.0.0/24を用いた。 自分の環境ではまだ衝突していない。

特記事項

ここが本題。

付録

/etc/nftables.conf

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
  set blacklist {
    type ipv4_addr
    elements = {
      114.514.1919.810
    }
  }

  chain input {
    ip saddr @blacklist drop
    type filter hook input priority filter; policy accept;
  }

  chain forward {
    type filter hook forward priority filter; policy accept;
    iifname "wg0" oifname "wg0" accept
  }

  chain output {
    type filter hook output priority filter; policy accept;
  }
}