Ubuntu20.04 LogMeIn Hamachiを使ってみる

当サイトを訪問してくださった方からのお問い合わせで、HamachiというVPNをインストールすることになったので、ざっくりと使い方をまとめてみることに。





やること。

※Ubuntu 20.04とUbuntu 18.04で試して、どちらも問題なく動作した。

LogMeIn Hamachi

LogMeIn社のVPNシステム。簡単な設定でP2PのVPNが構築できるようになっており、クライアント数が5までの無料版が公開されている。

今回は、無料版の範囲でできることを試してみる。

インストール

LogMeIn社のサイトからパッケージをダウンロードしてきてインストール。
VPN.net – Hamachi by LogMeIn / Hamachi for Linux

インストール方法はたどりにくいのだが…ここに。
LogMeIn Support / How to Install the Client to a Local Computer

ざっくり書くと、こんな感じ。

$ wget https://www.vpn.net/installers/logmein-hamachi_2.1.0.203-1_amd64.deb
$ sudo dpkg -i logmein-hamachi_2.1.0.203-1_amd64.deb

※この日のバージョンは2.1.0.203-1だった。

インストールすると、サービス logmein-hamachi が登録され、ネットワークインターフェースとしてham0が追加される。

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    …
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    …
3: ham0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1404 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether nn:nn:nn:nn:nn:nn brd ff:ff:ff:ff:ff:ff

$ systemctl status logmein-hamachi.service
● logmein-hamachi.service - LSB: Start/stop logmein-hamachi engine
     Loaded: loaded (/etc/init.d/logmein-hamachi; generated)
     Active: inactive (dead)
       Docs: man:systemd-sysv-generator(8)

ファイルは /opt/logmein-hamachi にインストールされる。

接続のための各種設定は /var/lib/logmein-hamachi に生成される。
ログもこのファイルに生成される。

ネットワーク構築

とても簡単。Hamachiにログインし、ネットワークを作成する。
他のPCはそのネットワークに参加するだけ。

ログイン

ログインには2種類ある。
ブラウザを使った管理サイトへのログインと、各PCからVPNシステムへのログイン。

VPNシステムへのログインはコマンド一発で、アカウントは必要ない。
ログインするとham0にIPアドレス(IPv4とIPv6)が割り振られる。

$ sudo hamachi login
Logging in .......... ok

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    …
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    …
3: ham0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1404 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether nn:nn:nn:nn:nn:nn brd ff:ff:ff:ff:ff:ff
    inet 25.nnn.nnn.nnn/8 brd 25.255.255.255 scope global ham0
       valid_lft forever preferred_lft forever
    inet6 26nn:nnnn::nnnn:nnnn/96 scope global
       valid_lft forever preferred_lft forever
    inet6 fenn::nnnn:nnnn:nnnn:nnnn/64 scope link
       valid_lft forever preferred_lft forever

 

ネットワークの作成

ネットワークを作って確認。

$ sudo hamachi create rohhie-net [ネットワークに接続するためのパスワード]
Creating rohhie-net .. ok

$ sudo hamachi list
 * [rohhie-net]  capacity: 1/5, subscription type: Free, owner: This computer

rohhie-netというネット枠が作成され、5人までアクセスできて自分1人が接続、このコンピューターがオーナになっていることが分かる。

 

作成されているネットワークに接続

hamachiをインストールした2台目のPCから接続してみる。
ネットワークIDとパスワードが必要。

$ sudo hamachi login
Logging in .......... ok

$ sudo hamachi join rohhie-net 
Password: 
Joining rohhie-net .. ok

$ sudo hamachi list
 * [rohhie-net]  capacity: 2/5, subscription type: Free, owner: work (247-931-834)
     * 247-931-834   work                       25.nnn.nnn.nnn     alias: not set           26nn:nnnn::nnnn:nnnn                          direct      UDP  172.16.110.3:50721

1台目のPCには247-931-834という番号が付けられている。
また、同じネットワーク上にいるからか direct と表示されている。

疎通の確認としてpingを打ったり、sshで接続したり、curlでページにアクセスしたりしたが、上手くアクセスができている。
新しいネットワークなので、ファイアウォール設定は別途作り込むことになる。

再起動後の動作

2台とも起動してHamachiネットワークに接続している状態で、2台目のPCを再起動してみたところ、自動的に接続が確立された。

2台とも電源断の状態から2台目を起動してみたところ、Hamachiネットワークに接続した状態で起動した。
その後に1台目を起動すると、Hamachiネットワークに接続した状態で起動し、疎通できるようになった。

小規模なネットワークならこれは便利だ。

ネットワークの管理

最初、アカウントを作ったものの、ネットワークとアカウントを紐付けられなかったのでメモを残すことにした。

$ sudo hamachi attach hoge@hogehoge
Sending attach request to hoge@hogehoge without networks .. failed, [248]

そもそも、今までの操作だけでネットワークはできてしまうので、そのまま使っていてもきっと問題はない。ただ、ネットワークを管理したくなったり、有料サービスを受けようと思ったらアカウントが必要になる。

LogMeInのアカウント作成

ここからアカウントを作成した。
LogMeIn / Log in or Sign up

ここで基本的な設定はできるけれども、マニュアル等に書かれているアカウントとPCの関連付けはできなかった。

色々試してみたところ、以下から一度ログインすると色々な管理ができるようになり、PCとの関連付けもできるようになる。
LogMeinポータル

LogMeInのアカウントにネットワークを関連付ける

ネットワークのオーナーになっているPCから以下のコマンドを実行すると、アカウントと関連付けることができる。

$ sudo hamachi attach hoge@hoge
Sending attach request to hoge@hoge without networks .. ok

※hoge@hogeは本当のアカウントをマスクするための表現で…

ポータルからログインしてMy Networkを開いたところ、通知が来ている。
You have 1 pending join request. というリンクがそれで、クリックしてリクエストを承認すればネットワークを管理できるようになる。

ファイアウォール設定

使用するポートについてはこちらで説明されている。
LogMeIn / Support / Which ports and protocols does LogMeIn Hamachi use?

これによると、TCP12975, 32976を使ってサーバーに接続し、これが駄目なら443を使う。PC間の直接通信はUDP17771が使われ、これが失敗したらTCP443を介して仲介を接続する。
ということらしいがなんだか自信がない、本家参照のこと。

この環境でも直接通信ができているみたい。
(インバウンドとしてsshだけを許す設定)

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)

$ sudo ss -p -A tcp,udp,raw state listening state unconnected
Netid    State     Recv-Q    Send-Q                            Local Address:Port                  Peer Address:Port    Process
???      UNCONN    0         0                                       0.0.0.0:icmp                       0.0.0.0:*        users:(("hamachid",pid=2575,fd=11))
udp      UNCONN    0         0                                       0.0.0.0:39264                      0.0.0.0:*        users:(("hamachid",pid=2575,fd=12))
udp      UNCONN    0         0                                 192.168.nn.nn:58053                      0.0.0.0:*        users:(("hamachid",pid=2575,fd=7))
…

直接つながっているのかどうかは、tracepathコマンドなんかを使って確認すればいいと思う。

ネットワーク廃棄

ネットワークから抜ける

2台目のPCでネット枠から抜けてみる。

$ sudo hamachi leave rohhie-net
Leaving rohhie-net .. ok

なお、ネットワークを作成したPCはネットワークを抜けられなかった。

ネットワークの削除

1台目のPC(ネットワークを作成したPC)でネットワークを削除する。

$ sudo hamachi delete rohhie-net
Deleting rohhie-net .. ok

これで、ネットワークはなくなった。

アンインストール

以下でアンインストールできる。

$ sudo systemctl stop logmein-hamachi
$ sudo dpkg -r logmein-hamachi
(Reading database … 107166 files and directories currently installed.)
Removing logmein-hamachi (2.1.0.203-1) …
Stopping LogMeIn Hamachi VPN tunneling engine logmein-hamachi
stopping - success

※サービスを止めずにアンインストールすると、サービスが起動中のままに見える。実態はないので動いていないし、再起動後はdead状態になるけど。

プログラムやサービス登録は削除されるけれど、/var/lib/logmein-hamachi/ にあった各種ファイルはそのまま残っているので、再度インストールすればすぐに元通り使えそうな気配。

さいごに

多分、お問い合わせを受けなければ触っていないシステムだった。

インターネットに向けてサービス公開する必要がなく、一度構築してしまえば、電源を立ち上げたら自動的につながるVPNってかなり便利な気がする。ちょっとしたリモート環境を作るだけならこれでいいかも。

それとはちょっと別に…ネットワーク運営をするときには、これは気をつけないと危ないなと考えた。

お気軽にどうぞ ~ 投稿に関するご意見・感想・他

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です