当サイトを訪問してくださった方からのお問い合わせで、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ってかなり便利な気がする。ちょっとしたリモート環境を作るだけならこれでいいかも。
それとはちょっと別に…ネットワーク運営をするときには、これは気をつけないと危ないなと考えた。
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他