ufwでアクセスをtailscaleのinterfaceのみに変更する

自宅でNAS兼、検証機としてUbuntuを運用しているが、公開LANなどを使用していて接続はtalscale経由でVPN貼っているものしかつなげたくないという場合の備忘録です。

TL;DR

  • ufwのallowでfromを100.64.0.0/10にする。

動機

賃貸物件で「インターネット無料」とかいうやつでは、各部屋にLANポートが設置されているという場合が多い。これだと、別の部屋の住人にアクセスされまくりである。
特に、NASなどはsambaを使用して公開しておりguest only = noとかにしているとだれもがアクセスできてしまう。これはよろしくないので、VPNのアクセスのみにsambaやsshを制限したい。

設定する

Ubuntuにはufwと呼ばれるファイアウォール機能を使用できるのでこちらを使用する。詳しい使い方は別途調べてみてください。

ufwではFromを設定でき、ここに通過させたい接続元のIPアドレスを書くことで制限することができる。

tailscaleのIPアドレスは、What are these 100.x.y.z addresses? · Tailscaleを見ると100.64.0.0/10であるのでこれを使用する。(ip aで出てくるtailscaleのipは/32なので愚直にそれで設定すると繋げられない)

# ssh
sudo ufw allow from 100.64.0.0/10 to any port ssh

# smb
sudo ufw allow from 100.64.0.0/10 to any port 137 proto udp
sudo ufw allow from 100.64.0.0/10 to any port 138 proto udp
sudo ufw allow from 100.64.0.0/10 to any port 139 proto tcp
sudo ufw allow from 100.64.0.0/10 to any port 445 proto tcp

sudo ufw enable

これで、ローカルのIPアドレスからの設定はできなくなり、tailscaleを経由したときのみアクセスが可能になった。

別の方法

sambaなどでは、interfacesの設定が存在するので、/etc/samba/smb.conf

interfaces = 100.64.0.0/10

としてもいいかも。

参考文献