ファイル共有の接続元を家のネットワークに絞る
指摘コード:LOCAL_EXPOSED_SMB。お使いのOSの手順を見てください。コマンドの 192.168.1.0/24 は、お使いのネットワークの範囲に置き換えてください。
Linux の ufw でファイル共有 Samba の接続元を家のネットワークに絞る
Linux 向けの手順だけのページ(ポート:445・139)
これは何か
Samba のファイル共有は、ほかの機器とフォルダーやプリンターを共有するための仕組みです。今は、どこからでも接続を受ける設定になっています。ここでは、ufw のファイアウォールで、家のネットワーク 192.168.1.0/24 の機器からだけ受けるようにします。
使っているかの確かめ方
端末で次を実行します。「Local Address:Port」の列に「:445・139」があれば、その番号で接続を待っています。
ss -tln
手順
始める前に:遠隔操作でこのPCを使っているなら、できるだけこのPCの前で作業してください。家のネットワークの外からファイル共有を使っている場合は、絞ると使えなくなります。
管理者権限が必要
今の ufw のファイアウォールの状態を確かめます。先頭に sudo を付けたコマンドは管理者として動きます。パスワードを聞かれたら、自分のログインパスワードを入れて Enter を押します。パスワードは入力しても画面に出ません。Status: active なら有効、inactive なら無効です。あわせて、445・139番を接続元 Anywhere で許可している行がないかを見ます。
sudo ufw status numbered
管理者権限が必要
家のネットワーク 192.168.1.0/24 からだけ、445・139番への接続を許可します。必ず、広い許可を消す前・ufw を有効にする前に行います。
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 445
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 139
管理者権限が必要
手順2で見つけた広い許可、つまり接続元が Anywhere の 445・139番の行を消します。sudo ufw delete のあとに、一覧の [ ] の中の番号を付けて実行します。番号が 3 なら sudo ufw delete 3 です。1つ消すと番号がずれるので、消すたびに sudo ufw status numbered で一覧を見直します。
管理者権限が必要
手順2で inactive だった場合だけ、ufw を有効にします。有効にすると、許可していないほかの接続は届かなくなります。必ず手順3のあとに行います。
sudo ufw enable
管理者権限が必要
最後にもう一度一覧を見て、445・139番の許可が 192.168.1.0/24 からだけになっていれば完了です。
sudo ufw status numbered
Windows でファイル共有の接続元を家のネットワークに絞る
Windows 向けの手順だけのページ(ポート:445)
これは何か
ファイル共有は、ほかの機器とフォルダーやプリンターを共有するための仕組みです。今は、どこからでも接続を受ける設定になっています。ここでは、ファイアウォールの設定を変えて、このPCと同じ家のネットワークの機器からだけ受けるようにします。
使っているかの確かめ方
PowerShell で次を実行します。結果に Listen と出れば、445番で接続を待っています。何も出なければ、今は使われていません。
Get-NetTCPConnection -State Listen -LocalPort 445
手順
始める前に:遠隔操作でこのPCを使っているなら、できるだけこのPCの前で作業してください。家のネットワークの外からファイル共有を使っている場合は、絞ると使えなくなります。
管理者権限が必要
管理者用の PowerShell を開きます。Windows 11 では、スタートボタンを右クリックして「ターミナル (管理者)」を選びます。「Windows ターミナル (管理者)」と出ることもあります。Windows 10 では、スタートボタンを右クリックして「Windows PowerShell (管理者)」を選びます。メニューに見当たらないときは、スタートで「PowerShell」と検索し、「管理者として実行」を選びます。「このアプリがデバイスに変更を加えることを許可しますか?」と出たら「はい」を押します。
管理者権限が必要
445番を許可している今のルールを、このPCと同じネットワークを表す LocalSubnet からだけ受けるように書き換えます。新しいルールは足しません。広く許可するルールが残っていると、絞っても効かないためです。次のコマンドをコピーして貼り付け、Enter を押します。
Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 445 } | Get-NetFirewallRule | Where-Object { $_.Direction -eq "Inbound" -and $_.Action -eq "Allow" } | Set-NetFirewallRule -RemoteAddress LocalSubnet
管理者権限が必要
書き換わったかを確かめます。RemoteAddress が LocalSubnet になっていれば完了です。
Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 445 } | Get-NetFirewallRule | Get-NetFirewallAddressFilter
直したら、もう一度診断すると確かめられます
出典
- 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
- https://learn.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallrule
- https://learn.microsoft.com/en-us/powershell/module/netsecurity/get-netfirewallrule
- https://learn.microsoft.com/en-us/powershell/module/netsecurity/get-netfirewallportfilter
- https://learn.microsoft.com/en-us/powershell/module/netsecurity/get-netfirewalladdressfilter
- https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/configure-with-command-line
- https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/rules
- https://learn.microsoft.com/en-us/powershell/module/nettcpip/get-nettcpconnection
- https://learn.microsoft.com/ja-jp/windows/terminal/faq
確認日:2026-10-21

