自宅で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
としてもいいかも。