LoginSignup
0
0

More than 1 year has passed since last update.

LANからのみSSHを許可【CIDR】

Last updated at Posted at 2023-02-22

はじめに

LAN(プライベートアドレス、リンクローカルアドレス)からのみSSH接続を行うufwの設定を行います。
ufw cidrでググると、1つ目に以下がヒットしますがバッドノウハウではないかと思い記事を書くこととしました。
https://qiita.com/Shiro-neko-kamen/items/7e8411c95b0bedf8312f

LANを示すアドレス

IPv4の場合、192.168.0.0〜192.168.255.255がプライベートアドレスである。
CIDR表記すると192.168.0.0/16
IPv6の場合、fe80::/64リンクローカルアドレスが該当する。

ufw への設定

ufw は既に動作中のものとする。

sudo ufw allow from 192.168.0.0/16 to any port 22
sudo ufw allow from fe80::/64 to any port 22

または、

sudo ufw allow from 192.168.0.0/16 to any app OpenSSH
sudo ufw allow from fe80::/64 to any app OpenSSH

など。
アドレスを指定せず同ポートが許可されていたら削除しておく

sudo ufw status numbered

sudo ufw delete <num>

ssh接続し確認する

ホスト側でIPアドレスを取得し、クライアントから各種IPアドレスでssh接続を試みます

アドレス取得
ip a
IPv4プライベートアドレス
ssh <username>@192.168.X.X
IPv6リンクローカルアドレス
ssh <username>@fe80::<XXXX:XXXX:XXXX:XXXX>
IPv6グローバルアドレス
ssh <username>@2400:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX

無事にIPv6グローバルアドレスのみ接続できないことが確認できました。

ホスト名での接続

windows10 からホスト名でのssh接続を試みる

ssh <username>@<hostname>.local

接続は出来ましたが、それなりの時間がかかった。

w -i

とすると、IPv4プライベートアドレスでログインしていた。

ping <hostname>

クライアントから ping を叩くと、IPv6グローバルアドレスから応答があった。
IPv6グローバルアドレス -> IPv4プライベートアドレス と、たらい回しにされている模様。

いくつかの回避策は浮かびますが、デファクトはどれなのか分からず、windows側の問題だと思うのでここでは言及しません。
良い方法をご存じの方は教えていただけますと嬉しいです!

スクリプトでCIDRを展開して ufw に追記する方法ですが、個別にコンペアを取ると思われパフォーマンスが落ちそうです(ベンチは取ってない)。
なにより

sudo ufw status

した際の可読性が低いと思われます。
2番目にヒットした以下では、2015年にはCIDRで ufw へ設定を入れています。
https://askubuntu.com/questions/646424/ufw-allow-range-of-ip-addresees

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0