Tinc
この記事では tinc の基本的なインストールと設定について説明します。細かい情報は tinc.conf の man ページ や tinc のドキュメント を参照してください。
tinc はトンネリングと暗号化を使ってインターネット上のホスト間にセキュアなプライベートネットワークを作成する仮想プライベートネットワーク(VPN) デーモンです [1]。
目次
インストール
公式リポジトリから tinc パッケージをインストールしてください。
プライベートネットワークの設定
この例では、2つのホスト alpha と beta の間に仮想プライベートネットワーク 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-up
と tinc-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-up
と tinc-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 のサポートが有効になっていることを確認してください。