メインコンテンツへスキップ
  1. Posts/

ローカル環境を整理した

·3 分·
Network Openwrt Linux
目次

きっかけ
#

自宅のネットワーク機器周りが散らかっていたのを重い腰を上げて配線や配置を整えたついでに
自宅サーバーのホスティング周りがlxcやらなんやらで混沌としていてネットワーク周りが面倒くさかったので整えた。

イメージ図
#

Local Network
がんばってつくった

HGW
#

DHCPを無効にした

Gateway
#

Checkpoint V-80にOpenwrtをインストールした。
以下のプルリクエストがマージされてtagが打たれるまでは必要なパッケージを絞った自ビルドのイメージ を焼いて使用。


Adguard Homeを使用するためにデフォルトのDNSサーバーのポートを54に変更。
lanインターフェースのDHCP Server Adveanced SettingsからDHCP-Optionsに6,<br-lan address>を定義(はlanインターフェースのアドレスに合わせて入力)。
これをしないとbr-lanに接続している機器がdnsサーバーを見つけられない。
AdguardのDNS設定からプライベートリバースDNSサーバー127.0.0.1:54を登録して有効化。

お好みでWireguardを突っ込んで経由させたりした。

Wifi
#

途中調子が悪かったりしてセットアップに苦戦した。
スイッチを[“Manual”,“AP”]にしてAPとして使用。

Server
#

ホストしたいサービスを雑にdockgeで管理して運用。今回は割愛。

Proxy Server
#

以下の役割を持つ

ホストしているサービスにドメインを踏んでアクセスするための振り分け
#

1については、Gatewayのdnsサーバーで特定のドメインに対するアクセス先を上書きしてローカルネットワーク接続時はローカルを参照するようにしている。
(ローカル外の時は同一のドメインを踏んだときにCloudflare Tunneling経由でアクセスできるようになっている)
このときにローカル内の有線接続の機器同士が2.5Gbpsでリンクするように配線をした。
nginxのコンフィグは特に変わったものでもないので割愛。

証明書を取得するためのCertbot
#

.config/cloudflare.iniにcloudflareのTokenを入力。

dns_cloudflare_api_token=<token>

以下のコマンドを使用

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo snap set certbot trust-plugin-with-root=ok
sudo snap install certbot-dns-cloudflare
sudo certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials .config/cloudflare.ini \
  --dns-cloudflare-propagation-seconds 60 \
  --server https://acme-v02.api.letsencrypt.org/directory \
  -d domain \
  -d *.domain \
  -m main@address \
  -n --agree-tos

Cloudflaredを使ったポート開放をしないサービス公開
#

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb

sudo cloudflared login
cloudflared tunnel create private
sudo mv /root/.cloudflared/ /etc/cloudflared
  • Cloudflaredで公開するサービスを設定する
    sudo vim /etc/cloudflared/config.yml
tunnel:  <Tunnel-UUID>
credentials-file: /etc/cloudflared/ <Tunnel-UUID>.json

ingress:
 - hostname: a.domain.com
   service: http://192.168.1.3:9999
 - service: http_status:404  

公開するサービスを増やすには- service: http_status:404より上にhostnameとserviceを追加すれば良い。

  • DNSの設定をする
sudo cloudflared tunnel route dns private a.domain.com
  • Cloudflaredを動かす
sudo cloudflared service install
sudo systemctl enable cloudflared 
sudo systemctl start cloudflared

外出時にローカルを触るためのTailscaleクライアントの常駐
#

適当にしたので叩いたコマンドだけ…

sudo tailscale set --advertise-exit-node --advertise-routes=192.168.1.0/24 --accept-dns=false
sudo tailscale up

感想
#

前はサーバー上にlxcコンテナで動かしたubuntuでnextcloudやらリバースプロキシを動かしてルーティングしていたのでよくわからんことになってたのが整理できてよかった。
当時の自分は何考えてたんだろうくらいの感想

関連記事

大事なストレージにfstransformを使うのはやめよう
·2 分
Linux Linux
kvmでIntel ARCをパススルーする。
·6 分
Kvm Linux Kvm
HyperVにGPUを割り当てて優勝したかった
·3 分
Linux Linux
半年間 Core i9のES品CPUを使ってみた感想
·2 分