LoginSignup
1
1

More than 3 years have passed since last update.

Tinc VPNで作る簡易的なVirtual Private Network 5/5 (構築編(4) 子ノードの構築 - Android編)

Last updated at Posted at 2020-06-05

概要

『Tinc VPNで作る簡易的なVirtual Private Network』の分割記事

5/5 構築編(4) 子ノードの構築 Android編

各記事

構築

構築(0)トポロジー (共通記載)

以下のトポロジーで記載を行う。

  • ネットワーク名 - myvpn #設定ファイル群を置くフォルダ名になる
  • VPNのIPセグメント - 192.168.15.0/24
Node Name OS Architecture Mode Global IP
port
Domain
VPN IP
root server CentOS 7 x68_64 router available
10655
mydomain.org
192.168.15.1
child client1 Windows 10 x64 router 192.168.15.2
child client2 CentOS 7 armv7
(Raspberry Pi3)
router 192.168.15.3
child client3 Android arm router 192.168.15.4

構築(1) ルートノードの構築 - Linux

Tinc VPNで作る簡易的なVirtual Private Network 2/5 (構築編(1) ルートノードの構築 - Linux編)

構築(2) 子ノードの構築 - Windows

Tinc VPNで作る簡易的なVirtual Private Network 3/5 (構築編(2) 子ノードの構築 - Windows編)

構築(3) 子ノードの構築 - Linux]

Tinc VPNで作る簡易的なVirtual Private Network 4/5 (構築編(3) 子ノードの構築 - Linux編)

構築(4) 子ノードの構築 - Android ★本稿

手順(0) ファイル構成

基本的には他のプラットフォームと一緒。ネットワーク設定はスクリプトではなく、 network.conf に記載する。

鍵の生成などもあるため、PCでファイル群を作ってそのまま端末にコピーする。

[/本体/Android/data/org.pacien.tincapp]
  ├ [cache]
  │   ├ tinc.myvpn.log      #アプリを実行すると生成されるログ
  │   └ tincapp.log         #アプリを実行すると生成されるログ
  ├ [files]
  │   └ [myvpn]
  │       ├ [hosts]
  │       │   ├ server
  │       │   └ client3
  │       ├ network.conf
  │       ├ rsa_key.priv
  │       └ tinc.conf

手順(1) tinc.conf作成 (※PCで作業。Linux例)

Andsoidで作成は出来ないので、PCで作業。

ネットワーク名は作業にダミーのフォルダを作って行う。

mkdir -p /etc/tinc/dummy_vpn
touch /etc/tinc/dummy_vpn/tinc.conf
/etc/tinc/dummy_vpn/tinc.conf
#tinc.conf
Name = client3
AutoConnect = yes
Mode = router
ConnectTo = server

手順(2) 自身のホストファイルを作成 (※PCで作業。Linux例)

hostsフォルダ内に、

tinc.confのNameで指定した名前と同じ名前でファイルを作成する。

mkdir -p /etc/tinc/dummy_vpn/hosts
touch /etc/tinc/dummy_vpn/hosts/client3
vi /etc/tinc/dummy_vpn/hosts/client3
/etc/tinc/dummy_vpn/hosts/client3
Subnet = 192.168.15.4/32
Port = 0

手順(3) キーの作成 (※PCで作業。Linux例)

tincd -n myvpn_tmp -K4096

# 秘密鍵が生成されているのを確認する。
less /etc/tinc/dummy_vpn/rsa_key.priv

# 公開鍵が追記されているのを確認する。
less /etc/tinc/dummy_vpn/hosts/server

※公開鍵が追記された自身のホスト ファイルは後で他のノードに配布する。

手順(4) ホスト情報の交換 (※PCで作業。Linux例)

serverとclient3、それぞれのhostsに入っている自身の情報をお互いに交換する。

  • server/etc/tinc/myvpn/hosts/server => client3/etc/tinc/dummy_vpn/hosts/
    (client3にとって接続先情報)
  • client3/etc/tinc/dummy_vpn/hosts/client3 => server/etc/tinc/myvpn/hosts/
    (Serverにとっては接続元情報)

※サーバーの接続先情報を持っていても、サーバーに公開鍵が登録されていないと接続は拒否される。

手順(5) ネットワーク設定ファイルの作成 (※PCで作業。Linux例)

touch /etc/tinc/dummy_vpn/network.conf
vi /etc/tinc/dummy_vpn/tinc-up
/etc/tinc/dummy_vpn/network.conf
# VPN上でのIPを記載
Address = 192.168.15.4/32
Route = 192.168.15.0/24
AllowBypass = on

手順(6) Android端末にTincAppのインストール

入手先
* TincApp APK配布あり
* F-Droid
* Google Play (donate)

手順(7) Android端末に設定ファイルをコピー

PCで作業したファイル・フォルダ構成をAndroid端末にコピーする。

  • /etc/tinc/dummy_vpn/* => Android端末/本体/Android/data/org.pacien.tincapp/files/myvpn/*
    ※フォルダが無ければ作成する。

手順(8) 起動

Tinc Appアプリを起動すると、コピーしたフォルダ名が一覧にあるので、タップすると接続される。接続後にNODESタブで他のノードも認識され、IPでアクセス可能になる。

screenshot.png

補足

VPNが有効になっているとGoogle Playがダウンロードの待機から先に進まなくなるっぽい
なのでandroidでの常時VPN有効化は割と課題がありそうです。
(OS視点では『盗聴されている可能性がある』扱いですし、なんぞー)

謝辞

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1