簡単ファイアウォール設定 ufw
ufwコマンドを使ったファイアウォール設定
カテゴリ: Memo
2020-06-26 18:38:42
# ファイアウォール
サーバを外に公開するとき、最初に設定しておきたい機能の一つが、ファイアウォール。
IPアドレスやプロトコル、ポート番号をもとに、出入りするパケットをフィルタリングします。
Linuxでファイアウォールを設定するための基本的なコマンドとして、`iptables`があります。
しかし、この設定書式はやや複雑で、覚えるのが大変です。
そこで、ここでは、簡単にファイアウォールを設定できる`ufw`コマンドを紹介します。
`ufw`コマンドは、内部で`iptables`を実行しています。
# ufwのインストール
debian系では、以下のコマンドでインストールします。
```
sudo apt install ufw
```
これで、インストール完了です。
```
sudo ufw status
```
これで、`Status: inactive`と表示されればインストールは完了です。
この時点ではまだファイアウォールは機能していません。
# ポート開放の設定
SSHから操作している場合、ファイアウォールの設定を誤ると接続できなくなります。
ファイアウォールの設定が正しく出来ていることを確認するまで、現在開いているシェルは閉じないでください。
まず、すべての通信を遮断します(設定するだけで、すぐに有効にはなりません)。
```
sudo ufw default deny
```
次に、SSHポートを開放します。サービス名で指定する場合は、以下の通りです。
```
sudo ufw allow ssh
```
ポート番号で指定する場合は、以下の通りです。Well-known以外のポート番号を使用している場合は、以下で直接指定します。
```
sudo ufw allow 22
```
# 有効化/無効化
以下のコマンドで、有効にします。再起動時にも自動で有効になります。
```
sudo ufw enable
```
SSHから接続している場合、ファイアウォールを有効にしたら別のターミナルを開いてSSH接続できるか確認してください。
有効化しているときにファイアウォールの設定を変更すると、即時で適用されます。
無効化する場合は、以下のコマンドです。
```
sudo ufw disable
```
# 設定の削除
ファイアウォールを有効にしている時、以下のコマンドで設定を確認できます。
設定を確認する場合、以下のコマンドが便利です。
```
sudo ufw status numbered
```
このとき、以下のように表示されます。
```
Status: active
To Action From
-- ------ ----
[ 1] 80/tcp ALLOW IN Anywhere
[ 2] 443/tcp ALLOW IN Anywhere
```
設定を削除する場合、**[XX]**の番号(XX)を確認して、以下のコマンドで設定を削除できます。
```
sudo ufw delete XX
```
# メモ
恐らく、mDNSの影響で、以下のようなログが大量に記録されていた。
```
... [UFW BLOCK] IN=eth0 OUT= MAC=... SRC=192.168.XX.YY DST=224.0.0.XXX LEN=32 ...
``
以下のコマンドで、パケットを許可。
```
sudo ufw allow in from 192.168.XX.0/24 to 224.0.0.0/8
```