NetBirdとCaddyに移行した
なぜ
特に理由はないがOCI依存が嫌だったので。
やったこと
1. NetBird
Dockerサーバにインストールしたあと、以下の設定実施。
-
wt0(NetBirdインターフェース)の許可
- sudo firewall-cmd –permanent –zone=trusted –add-interface=wt0
-
LANからのアクセス許可
- sudo firewall-cmd –zone=trusted –add-source=192.168.200.0/24 –permanent
-
マスカレード許可
- sudo firewall-cmd –permanent –zone=public –add-masquerade
-
設定反映
- sudo firewall-cmd –reload
NetBird管理画面でNetwork(192.168.200.0/24)を作成することで、他のクライアント(スマホ)からLAN内端末にアクセスできるようになる。
2. Adguard Home
DNS用。
-
スクリプトを使って初期設定を終わらせる
-
DNS書き換えで
*.domain.comを後述のCaddyサーバに向ける。- このブログみたいなサーバで稼働してないURLは直リンになるよう書いた。
-
ブロックリストをあれこれ入れる
3. Caddy
リバースプロキシ用。
-
これもスクリプトがある。
-
Cloudflareモジュールのをビルドして置き換え
xcaddy build --with github.com/caddy-dns/cloudflare && cp ./caddy /usr/bin/caddy
-
/etc/caddy/Caddyfile
# DNS-01チャレンジ用
(cloudflare) {
tls {
dns cloudflare <DNS編集用トークン>
}
}
# ACL(LANとNetBirdだけ通す)
(local_acl) {
@denied not remote_ip 192.168.200.0/24 10.0.0.0/8 100.64.0.0/10 127.0.0.1 ::1
abort @denied
}
sub.domain.com {
import cloudflare
import local_acl
reverse_proxy 192.168.200.xx:<ポート>
}
設定したらCaddyの設定再読み込み。
NetBirdの管理画面でDNS->Nameserversを開き、Adguard HomeのIPアドレスを設定。あとWindowsのDNS設定も同じ値で設定。
以下のような経路で名前解決できるようになる。
クライアント -> (NetBird) -> Adguard Home -> Caddy
Synology NASはHTTPS自動書き換えのせいでうまいことアクセスできなかったのでおとなしくQuickConnectを使うことにした。