← 対処の手順の一覧

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の前で作業してください。

手順

  1. 始める前に:今 SSH でこのPCを遠隔操作しているなら、ここで止めて、このPCの前で作業してください。接続元を間違えると、自分が入れなくなります。

  2. 管理者権限が必要

    今の ufw のファイアウォールの状態を確かめます。先頭に sudo を付けたコマンドは管理者として動きます。パスワードを聞かれたら、自分のログインパスワードを入れて Enter を押します。パスワードは入力しても画面に出ません。Status: active なら有効、inactive なら無効です。あわせて、22番を接続元 Anywhere で許可している行がないかを見ます。

    sudo ufw status numbered
  3. 管理者権限が必要

    家のネットワーク 192.168.1.0/24 からだけ、22番への接続を許可します。必ず、広い許可を消す前・ufw を有効にする前に行います。

    sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22
  4. 管理者権限が必要

    手順2で見つけた広い許可、つまり接続元が Anywhere の 22番の行を消します。sudo ufw delete のあとに、一覧の [ ] の中の番号を付けて実行します。番号が 3 なら sudo ufw delete 3 です。1つ消すと番号がずれるので、消すたびに sudo ufw status numbered で一覧を見直します。

  5. 管理者権限が必要

    手順2で inactive だった場合だけ、ufw を有効にします。有効にすると、許可していないほかの接続は届かなくなります。必ず手順3のあとに行います。

    sudo ufw enable
  6. 管理者権限が必要

    最後にもう一度一覧を見て、22番の許可が 192.168.1.0/24 からだけになっていれば完了です。

    sudo ufw status numbered

直したら、もう一度診断すると確かめられます

アプリで診断する

出典

確認日:2026-10-21