Linux の ufw で SSH の接続元を家のネットワークに絞る
この手順で使う値
- OS:Linux
- ポート:22
- 家のネットワークの例:192.168.1.0/24。コマンドの 192.168.1.0/24 は、お使いのネットワークの範囲に置き換えてください。
Pengolin のアプリでは、お使いのPCで見つかったポートとネットワークの範囲を入れた手順を表示します。
これは何か
SSH は、別の機器からこのPCに入って操作するための仕組みです。今は、どこからでも接続を受ける設定になっています。ここでは、ufw のファイアウォールで、家のネットワーク 192.168.1.0/24 の機器からだけ受けるようにします。SSH を使っていないなら、止めるほうが安全です。
使っているかの確かめ方
端末で次を実行します。「Local Address:Port」の列に「:22」があれば、その番号で接続を待っています。
ss -tln
この接続で今このPCを遠隔操作していますか。
遠隔操作中にこの手順を行うと、操作中の接続が切れて戻れなくなるおそれがあります。このPCの前で作業してください。
手順
始める前に:今 SSH でこのPCを遠隔操作しているなら、ここで止めて、このPCの前で作業してください。接続元を間違えると、自分が入れなくなります。
管理者権限が必要
今の ufw のファイアウォールの状態を確かめます。先頭に sudo を付けたコマンドは管理者として動きます。パスワードを聞かれたら、自分のログインパスワードを入れて Enter を押します。パスワードは入力しても画面に出ません。Status: active なら有効、inactive なら無効です。あわせて、22番を接続元 Anywhere で許可している行がないかを見ます。
sudo ufw status numbered
管理者権限が必要
家のネットワーク 192.168.1.0/24 からだけ、22番への接続を許可します。必ず、広い許可を消す前・ufw を有効にする前に行います。
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22
管理者権限が必要
手順2で見つけた広い許可、つまり接続元が Anywhere の 22番の行を消します。sudo ufw delete のあとに、一覧の [ ] の中の番号を付けて実行します。番号が 3 なら sudo ufw delete 3 です。1つ消すと番号がずれるので、消すたびに sudo ufw status numbered で一覧を見直します。
管理者権限が必要
手順2で inactive だった場合だけ、ufw を有効にします。有効にすると、許可していないほかの接続は届かなくなります。必ず手順3のあとに行います。
sudo ufw enable
管理者権限が必要
最後にもう一度一覧を見て、22番の許可が 192.168.1.0/24 からだけになっていれば完了です。
sudo ufw status numbered
直したら、もう一度診断すると確かめられます
出典
- https://documentation.ubuntu.com/server/how-to/security/firewalls/
- https://manpages.ubuntu.com/manpages/noble/man8/ufw.8.html
- https://manpages.ubuntu.com/manpages/noble/man8/ss.8.html
- https://manpages.ubuntu.com/manpages/noble/man8/sudo.8.html
確認日:2026-10-21

