記事の書き直しの理由の7割がここ。
Tailscaleの導入#
アカウント登録は各自で済ませてください。(丸投げ)
インストールコマンド
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
もう一つ適当なデバイスでもログインをしておきましょう(デバイスを2つ揃えないとチュートリアルから進まない。)
ルーターを出口ノードに指定する。(ここはお好みで)#
1.ルーターで出口ノードとして使用することを宣言(?)
sudo tailscale set --advertise-exit-node
- ルーター配下のサブネットをTailscaleに追加する。
sudo tailscale set --advertise-routes=192.168.1.0/24
- 変更を反映する。
sudo tailscale up
- Tailscaleのwebインターフェースからルーターを選択してサブネットルーティングと出口ノードを設定。
見ての通りかもしれない。
Tailscaleの認証は6ヶ月スパンなのだが正直常用する機器で忘れた頃に認証を要求されても面倒なので無効化するのも良いと思う。
(Machines>…>Disable key expiry)
自分はルーターのみ無効にしてほかはデフォルトのままにしている。
また、各クライアントで出口ノードと手動でルーターに設定しないといけないっぽい。
NordVPNクライアントの導入#
生ipを様々な場所で使用することに耐えられない病気なので ルーターに接続している機器全てがNordVPNを使用するように設定。
クライアントのインストール#
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)
sudo usermod -aG nordvpn $USER
sudo reboot
Cli環境でNordVPNにログインする方法は以下の記事が参考になります。家のネットワークを丸ごと VPN にする方法 (Raspberry Pi × NordVPN) #Ubuntu - Qiitaqiita.com
NordVPNを起動する前にいくつか設定しておく。
nordvpn set technology NORDLYNX
nordvpn set firewall disabled
nordvpn set killswitch disabled
nordvpn set autoconnect on
上から
- プロトコルにnordlynxを指定
- iptablesの書き換えを阻止
- キルスイッチの無効化(ufwで設定するため)
- 自動接続
となっている。
VPN用にufwを改変#
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]
# Allow LAN traffic
-A ufw-before-input -i br0 -j ACCEPT
-A ufw-before-output -o br0 -j ACCEPT
-A ufw-before-input -i br0 -d 192.168.1.1 -j ACCEPT
# Allow established/related connections
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# NordVPN
-A ufw-before-forward -i br0 -o nordlynx -j ACCEPT
-A ufw-before-forward -i nordlynx -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m mark --mark 0xe1f1 -o enp1s0 -j ACCEPT
# Allow traffic from tailscale0
-A ufw-before-forward -i tailscale0 -j ACCEPT
-A ufw-before-forward -o tailscale0 -j ACCEPT
-A ufw-before-output -m mark --mark 0x80000 -o enp1s0 -j ACCEPT
COMMIT
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o enp1s0 -m mark --mark 0x80000 -j MASQUERADE
-A POSTROUTING -o tailscale0 -j MASQUERADE
-A POSTROUTING -o nordlynx -j MASQUERADE
COMMIT
nordvpn c japan
でVPNに接続してみたらつながるはず。
また、接続が完了できたら再起動してtailscaleやnordvpnが正常に起動するかも見る。
Todo#
- Tailscale経由のデバイスがNordVPN切断時に生ipを使用する。
なにか対策を考えている。