Tailscaleロゴ

Tailscaleのnetfilterモード

最終検証日:
翻訳: 竹洞 陽一郎

このトピックは、Tailscaleを実行しているLinuxデバイスにのみ適用されます。

Netfilterは、Linuxカーネルに組み込まれたフレームワークです。
ネットワークスタックの要所にフックを提供し、システムを流れるパケットを検査、変更、破棄、リダイレクトできるようにします。
iptablesnftablesといったファイアウォールツールの基盤となるエンジンです。
デフォルトでは、LinuxデバイスにTailscaleをインストールすると、Tailscaleは独自のファイアウォールルールを作成し、それらが自動的に評価されるように設定します。
この方式により、Tailscaleは必要なルールを自ら管理しつつ、必要に応じて利用者がカスタムルールを追加できる余地を残しています。

このデフォルト設定(onモード)はほとんどの環境で機能しますが、Tailscaleにはnodivertoffといった他のnetfilterモードもあります。
以下のような状況では、別のモードを使用してTailscaleのnetfilterの動作をカスタマイズすることを検討してください。

Tailscaleがnetfilterとどのように統合するかは、netfilterモードを設定することでカスタマイズできます。
Tailscaleでnetfilterモードを設定できる場所は複数あり、tailscaled設定ファイルのnetfilterModeオプションや、Tailscale CLI--netfilter-modeフラグ(tailscale uptailscale logintailscale setに適用されます)があります。

netfilterモードのオプション

Tailscaleには、onnodivertoffの3つのnetfilterモードのオプションがあります。
これらの値は、Tailscale CLIのフラグ(--netfilter-mode)とTailscaleデーモン設定ファイルの値(netfilterMode)で共通です。

netfilterモードの一覧
モード 説明
on (デフォルト)Tailscaleがファイアウォールルールを作成し、該当するトラフィックに対して確実に評価されるようにします。
nodivert Tailscaleがファイアウォールルールを作成しますが、有効化はしません。トラフィックは自動的にはTailscaleのルールを通過しません。
off Tailscaleはファイアウォールルールを一切作成・管理しません。必要なルールはすべて利用者自身が記述する必要があります。

on

onはデフォルトのモードです。
onモードでは、Tailscaleがファイアウォールルールを作成し、該当するトラフィックに対して確実に評価されるようにします。
統合の方法は、使用しているツールによって異なります。

Tailscaleのルールは、以下のセキュリティポリシーを適用します。

onに設定されている場合、Tailscaleは自身のルールが早い段階で評価される位置に留まっているかを定期的に検証します。
他のソフトウェアがこれを変更した場合、Tailscaleは設定を元に戻します。

nodivert

No divert(nodivert)モードでは、Tailscaleのファイアウォールルールを作成しますが、有効化はしません。
ルールは存在しますが、トラフィックは自動的にはそれらを通過しません。

この動作は、使用しているツールによって異なります。

nodivertモードは、以下が必要な場合に使用します。

nodivertモードでは、Tailscaleのルールは存在しますが、どこからも参照されません。
トラフィックがTailscaleのルールを通過するように、利用者がファイアウォールを手動で設定する必要があります。
iptablesの場合は、組み込みチェーンにジャンプルールを追加します。
nftablesの場合は、Tailscaleのチェーンを適切なフックに登録します。

CGNATトラフィックの破棄を無効にする目的でnodivertを使用する前に、CGNAT破棄ルールの無効化で要件を満たせないかを検討してください。

off

offモードは、Tailscaleにnetfilterへの変更を一切させないために使用します。
netfilterモードをoffに設定する妥当な理由は、通常はありません。
このモードでは、Tailscaleはiptablesにもnftablesにも変更を加えません。
Tailscaleが通常は自身のチェーン内に作成するルールを含め、必要なファイアウォールルールをすべて利用者自身が記述する必要があります。

offモードは、nodivertでは対応できない特定の要件がある場合にのみ使用してください。
netfilterモードをoffに設定した場合、以下は利用者の責任となります。