見出し画像

Cato Client(Ubuntu編)

こんにちは。
株式会社フーバーブレイン SE の香取です。


Cato Cloud の検証時には Linux を多く使用しています。
もちろん Windows や Android、iOS なども使うのですが、私の検証環境では Photon OS や Ubuntu が大活躍中です!

ただ、Linux の場合は Cato Client の使い方に少しコツが要ります。他の OS とは異なり、コマンドラインでの設定が必要なのです。最初は少し大変でも、一度設定してしまえばもう後は何の問題もありません。
私が Cato Cloud を使い始めた頃に戸惑った点などを含め、Linux で Cato Client を使用する際の手順をまとめておきます。

Cato for Linux

VPN Users に登録されたユーザーは「ユーザーポータル」が利用可能になります。メールで URL が送られてきますので、アクセスして【DOWNLOAD CATO CLIENT】と書かれたリンクをクリックします。

各種OSタイプが並んでいる画面で、Linux を選択します。

画像1

今回は Ubuntu 18 を使用します。予め Ubuntu Server 18.04 LTS のインストールが済んでいるという前提で進めます。
「Ubuntu 20.04 LTS ではどうかな?」など、疑問があるときはぜひ PoC で確認してみてくださいね!

ネットワークの準備

DHCP をお使いの場合、ここは読み飛ばしてください。

私は最初、これに引っ掛かりました。
固定IPアドレスで Ubuntu を使用している場合、「デフォルトゲートウェイの metric が 0」なのです(DHCP なら最初から 100 なので問題無し)。

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    0      0        0 ens160
192.168.9.0     0.0.0.0         255.255.255.0   U     0      0        0 ens16

この状態で Cato Client を使用すると

The default route has a metric of 0. Change the metric
of the default route to a value above 0 and run the client again.

こんな風に注意され、Cato Cloud に接続できません。予め、ネットワークの設定を変更しておきます。

# cat /etc/netplan/10-mynet.yaml 
network:
 version: 2
 renderer: networkd
 ethernets:
   ens160:
     dhcp4: no
     addresses: [ 192.168.9.108/24 ]
     nameservers:
       addresses: [ 192.168.9.1 ]
     #gateway4: 192.168.9.1
     routes:
       - to: 0.0.0.0/0
         via: 192.168.9.1
         metric: 100    
     dhcp6: yes

「gateway4: 192.168.9.1」の行をコメントアウトして、routes の記述を追加しています。

変更が終わったら、新設定を適用します。

# netplan --debug generate
# netplan apply

そして確認

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    100    0        0 ens160
192.168.9.0     0.0.0.0         255.255.255.0   U     0      0        0 ens160

「デフォルトゲートウェイの metric」が 100 になりました! 

Ubuntu Server 18.04 LTS へのインストール

ダウンロードした「cato-install-ubuntu18.sh」を使用して、設定を行います。例ではホームディレクトリ直下(~/)にダウンロードしたファイルを置いています。
実行するとディレクトリ「cato」が作られます。なんと、これだけでインストール自体は完了です。

$ bash ~/cato-install-ubuntu18.sh
cato client is installed at /home/****/cato.
done.

$ ll -d cato
drwxrwxr-x 2 **** **** 4096 Apr  3  2020 cato/

$ rm ~/cato-install-ubuntu18.sh

初回の接続

最初に1度だけ、この方法で Cato Cloud に接続します。アスタリスクの部分は対象に合わせて記述してください。

$ cd ~/cato
$ sudo ./cclient.sh start \
--user=****@****.**** \
--account=**** \
--password='********' \
--save &

Cato Cloud への接続を行いつつ、接続情報を default.cfg, cato_password.cfg といったファイルに保存します。

うまく接続できているか確認してみましょう。

$ ip -4 a | grep inet
   inet 127.0.0.1/8 scope host lo
   inet 192.168.9.108/24 brd 192.168.9.255 scope global ens160
   inet 10.41.249.8/32 scope global tun0
   
$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         0.0.0.0         0.0.0.0         U     0      0        0 tun0
default         _gateway        0.0.0.0         UG    100    0        0 ens160
...

tun0(VPNのトンネルインターフェース)が確認できました。
そして、tun0 のデフォルトゲートウェイは metric:0! 接続前のデフォルトゲートウェイが「metric > 0」でないとダメなのは、このためです。

ひと通り確認をしたら、接続を切ります。

$ cd ~/cato
$ sudo ./cato/cclient.sh stop
client is stopped

次回以降の接続

$ cd ~/cato
$ sudo ./cclient.sh start --load &

なのですが、なんとなく手間ですね…。私はこんな風にしています。

$ cat ~/bin/start-cato 
#!/bin/bash
cd ~/cato
sudo ./cclient.sh start --load &
echo start!

$ cat ~/bin/stop-cato
#!/bin/bash
cd ~/cato
sudo ./cclient.sh stop

実行権限をつけておきます。

$ chmod 700 ~/bin/*-cato

ディレクトリ ~/bin を作ったばかりのときは、一旦ログアウトして再度ログインするとパスが設定されていると思います。
それから、スクリプトの途中で sudo が入るので、予め visudo で最終行に

**** ALL=(ALL) NOPASSWD: /home/****/cato/cclient.sh

(**** は Linux のユーザー名)と、しています。

次回以降 Cato Cloud に接続したいときは「start-cato」、終わるときは「stop-cato」で楽々です!

画像2


この記事が気に入ったらサポートをしてみませんか?