【Raspberry Pi】ローカルネットワークからの接続のみ許可する方法(ラズパイのセキュリティ設定)
この記事ではRaspberry Pi でローカル接続のSSHのみを許可して、
同じネットワーク以外の外部からの接続をすべて拒否する設定方法を解説します。
Raspberry Piに外部からアクセスされないように
自宅など Raspberry Piが接続している Wi-Fi内からのアクセスのみを許可するよう設定していきます。
firewallのインストール
ここでは ufw というアプリを使ってファイヤウォールの設定を行います。
Raspberry Pi にSSHで入ったら以下のコマンドでufwをインストールできます。
$ sudo apt install ufw
ファイヤウォールで接続を全て拒否
まず、ufwの状態を以下のコマンドで確認します。
$ sudo ufw status
すると、出力が
Status: inactive
となればOKで、ufwはまだ稼働していないことを表しています。
ufw稼働前に設定を完了させてしまいましょう。
次に、全ての接続を拒否します。コマンドは以下の通りです。
$ sudo ufw default deny
一旦全ての接続を拒否してから、必要なものを許可していきます。
許可する接続を追加
次に同じネットワークからの接続のみを許可していきます。
具体的には以下の流れで設定します。
- Raspberry PiのIPアドレスを調べる → 同じネットワークのIPアドレスがわかる
- 同じネットワークのIPアドレスからの接続を許可する
Raspberry PiのIPアドレスを調べる
まずはRaspberry PiのIPアドレスを調べましょう。
以下のコマンドで調べることができます。
$ hostname -I
そうすると出力が以下のような形式で表示されます。
192.168.xx.yy
これがRaspberry Piのローカルネットワーク内のIPアドレスです。
このうち、yyを0/24に変更したもの、
すなわち、
192.168.xx.0/24
がRaspberry Pi が接続しているネットワーク内のデバイスのIPアドレス全てを表します。
同じネットワークのIPアドレスからの接続を許可する
あとは先ほど調べたIPアドレス
192.168.xx.0/24
からの接続を許可すればOKです。
N番ポートへの接続を許可する場合は
以下のコマンドでufwに設定することができます。
$ sudo ufw allow from 192.168.xx.0/24 to any port N
たとえば、初期設定ではSSH接続は22番ポートを使用しているので
SSH接続を許可したい場合は以下の通りです。
$ sudo ufw allow from 192.168.xx.0/24 to any port 22
その他のポートと役割は TCPやUDPにおけるポート番号の一覧(wikipedia) にまとめられています。
これを参考に必要なポートへの接続を許可してください。
また、ssh接続ポートの変更方法は以下の記事で解説しています。
ufw の有効化
最後に、以下のコマンドでufwを有効化します。
$ sudo ufw enable
そのあとRaspberry Pi を再起動します。
$ sudo reboot
Raspberry Pi が起動したら再度SSH接続してみてください。
接続が成功すれば設定は完了です。
ufwの設定確認と変更
ちなみに、ufwが許可している接続を確認する場合は
先ほども使用した以下のコマンドで確認できます。
$ sudo ufw status
すると、次のようなテキストが出力されます。
To Action From
-- ------ ----
N ALLOW 192.168.xx.0/24
この意味は「IPアドレス192.168.xx.0/24からN番ポートへの接続を許可(ALLOW)する」です。
また、間違えて設定してしまった場合は、以下の手順で削除も可能です。
まず、
$ sudo ufw status numbered
で設定を出力します。
「numbered」を追加することで項目に番号がつきます。
To Action From
-- ------ ----
[1] N1 ALLOW 192.168.xx.0/24
[2] N2 ALLOW 192.168.xx.0/24
あとはいらない項目の番号を指定して削除します。
例えば1番を削除する場合は以下のコマンドで削除できます。
$ sudo ufw delete 1
まとめ
この記事では
Raspberry Pi でローカル接続のSSHのみを許可して
外部からの接続をすべて拒否する設定方法を解説しました。
この設定を行うと、ufwによって外のネットワークからの接続は遮断され、
セキュリティ向上が期待できます。