サイトロゴ

【Raspberry Pi】ufwでファイアウォールの設定

著者画像
Toshihiko Arai

はじめに

Raspberry Piにufwというファイアウォールを入れてみました。この記事は、そのときに行ったufwの基本的な設定方法を解説いたします。

Raspberry Piにファイアーウォールを設定する(ufw)

今回Raspberry Piに使用するファイアウォールは、ufw(Uncomplicated Firewall)というものです。ufwでは、簡単なコマンドでファイアーウォールの管理を行うことができます。内部にはiptablesを使用しているようです。 ufwの設定方法は こちらの記事 を参考にさせていただきました。

それではufwを設定していきましょう。

ufwのインストール

まずは、Raspberry Piにufwをインストールします。

$ sudo apt install ufw

最初にすべてのポートを拒否しておく

次のようにして、すべてのポートをあらかじめ拒否します。

$ sudo ufw default deny

このとき、絶対にufwを起動させないでください。SSHでアクセスできなくなってしまいます。 ローカルエリア内にいようがいまいが、こうなってしまったらRaspberry Piを再インストールするか、モニタとキーボードを直接つないでファイアウォールの設定をいじるしかありません。くれぐれもご注意ください。

SSHを許可する

$ sudo ufw allow 22

これでufwを起動してもSSHだけは繋がるようになりました。

IPv6を除外する

IPv6は使用しないので、設定ファイルの内容を変更します。

$ sudo vi /etc/default/ufw
...
IPV6=no
...

ファイアウォールを起動させる

ufwのサービスを起動させてファイアウォールを有効にしましょう。

$ sudo ufw enable

実行すると次のように聞かれますが、SSHで使用するポートは開放しましたので「y」を入力してリターンします。

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y

これでファイアウォールが有効になりました。

Firewall is active and enabled on system startup

ファイアウォールの状態を確認する

次のようにしてファイアウォールの状態を確認できます。

$ sudo ufw status
To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere                  

Raspberry Piでポートを使用しているプロセスを調べる(nmap)

ポートが開いていてもサーバープロセスが起動していなければアクセスできません。ネットワークトラブルのときに役立つ、nmapをインストールしておきましょう。

$ sudo apt install nmap

次のようにして、nmapでポートを使用しているプロセスを調べられます。

$ sudo nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2022-01-05 21:19 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000058s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds

外部ネットワークからポートの開放を確認する(macOS/nmap)

それでは、外部ネットワークから自鯖のポートが開放されているかチェックしてみましょう。macOSを使用しました。こちらもnmapを使います。

brewでnmapをインストールしましょう。

$ brew install nmap

次のようにして、nmapでTCPポートの開放の確認ができます。コマンドの実行は必ずスーパーユーザーで行ってください。

$ sudo nmap -sT -p ポート IPアドレス(またはホスト名)

オプションを-sUにすればUDPの確認ができます。

関連記事