Tinc

提供: ArchWiki
2017年3月6日 (月) 21:14時点におけるKusakata (トーク | 投稿記録)による版 (翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

この記事では tinc の基本的なインストールと設定について説明します。細かい情報は tinc.conf の man ページtinc のドキュメント を参照してください。

tinc はトンネリングと暗号化を使ってインターネット上のホスト間にセキュアなプライベートネットワークを作成する Virtual Private Network (VPN) デーモンです [1]

インストール

公式リポジトリから tinc パッケージをインストールしてください。

プライベートネットワークの設定

この例では、2つのホスト alphabeta の間に仮想プライベートネットワーク vpnname を作成します。前者は後者のエントリポイントであり、beta は起動時に alpha に接続します。

仮想プライベートネットワークのために /etc/tinc に専用のディレクトリを作成してください。例:

# mkdir /etc/tinc/vpnname

まずはサンプル設定をコピーします:

# cp -r /usr/share/tinc/examples/sample-config/* /etc/tinc/vpnname

/etc/tinc/vpnname/tinc.conf にはホストマシンの名前 (実際のシステムのホストネームと同一である必要はありません) と tun/tap デバイスの場所を指定します。

alpha の設定

/etc/tinc/vpnname/tinc.conf
Name = alpha
Device = /dev/net/tun
/etc/tinc/vpnname/tinc-up
#!/bin/sh
ip link set $INTERFACE up
ip addr add  192.168.0.1/32 dev $INTERFACE
ip route add 192.168.0.0/24 dev $INTERFACE
/etc/tinc/vpnname/tinc-down
#!/bin/sh
ip route del 192.168.0.0/24 dev $INTERFACE
ip addr del 192.168.0.1/32 dev $INTERFACE
ip link set $INTERFACE down

tinc-uptinc-down には実行可能属性を付与する必要があります。

beta の設定

/etc/tinc/vpnname/tinc.conf
Name = beta
Device = /dev/net/tun
ConnectTo = alpha
/etc/tinc/vpnname/tinc-up
#!/bin/sh
ip link set $INTERFACE up
ip addr add 192.168.0.2/32 dev $INTERFACE
ip route add 192.168.0.0/24 dev $INTERFACE
/etc/tinc/vpnname/tinc-down
#!/bin/sh
ip route del 192.168.0.0/24 dev $INTERFACE
ip addr del 192.168.0.2/32 dev $INTERFACE
ip link set $INTERFACE down

tinc-uptinc-down には実行可能属性を付与する必要があります。

ホストの設定

/etc/tinc/vpnname/hosts/ ディレクトリにホストの設定ファイルを保存します。この例では各々のマシンに以下のファイルを作成します。

/etc/tinc/vpnname/hosts/alpha
Address = 10.0.0.1
Port = 655
Subnet = 192.168.0.1/32
/etc/tinc/vpnname/hosts/beta
Port = 655
Subnet = 192.168.0.2/32

各ホストのファイルを作成したら、以下のコマンドでキーペアを生成してください:

# tincd -n vpnname -K

上記のコマンドで /etc/tinc/vpnname/tinc.rsa_key.priv に秘密鍵が、ホストのファイルに公開鍵が作成されます。

最後にホストの設定ファイルを交換して、/etc/tinc/vpnname/hosts/ に alpha と beta 両方のファイルを揃えます。

プライベートネットワークの起動

/etc/tinc/vpnname に適切な設定を作成したら、以下のコマンドで新しいプライベートネットワークをテストできます:

# tincd -n vpnname

起動時に有効化したい場合、適切なサービスを有効化してください:

# systemctl enable tinc@vpnname

TAP デバイスとブリッジを使う

場合によっては TUN デバイスの代わりに TAP デバイスを使うほうが合理的かもしれません。例えば、既存のブリッジに tinc デバイスを追加したい場合など。tinc.conf に "Mode" オプションを追加するだけです。

全てのホストでオプションを追加してください:

/etc/tinc/vpnname/tinc.conf
Name = ''node''
Mode = switch
Device = /dev/net/tun
ConnectTo = ''other''

tinc-up/down ファイルは以下のようになります:

/etc/tinc/vpnname/tinc-up
#!/bin/sh
ip link set $INTERFACE up
brctl addif br0 $INTERFACE
/etc/tinc/vpnname/tinc-down
#!/bin/sh
brctl delif br0 $INTERFACE
ip link set $INTERFACE down

最後に tinc デーモンを再起動してください:

# systemctl restart tinc@vpnname

起動時に Tinc を自動的に起動

systemd ユニットを使うことで起動時に自動的に Tinc を実行するように設定できます。

まず tinc サービスを有効化:

# systemctl enable tinc

それから自動的に起動したネットワークを個別に有効化してください:

# systemctl enable tinc@vpnname
# systemctl enable tinc@another_vpnname
...

トラブルシューティング

システムを更新したら tinc が起動しない

Linux カーネルをアップデートしたらシステムを再起動するか使用中のカーネルパッケージを再インストールする必要があります。

カスタムカーネルを使ってて tinc が起動しない

TUN/TAP のサポートが有効になっていることを確認してください。