Linuxで代表的なファイアウォールアプリ「UFW」をデスクトップ版とサーバーCLI版でインストールし、設定する方法を分かりやすく解説します。
UFWが使えるLinuxOS (私が確認したOSの一覧です)
- Raspbian
- Ubuntu 18.04 & 20.04
- CentOS 7 & 8
- Debian 9 & 10
UFWのインストール
sudo apt-get update
sudo apt-get install ufw
UFWが起動しているか確認
「Active: active」となっていれば大丈夫です。
systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2021-08-14 01:28:04 JST; 5 days ago
Docs: man:ufw(8)
Main PID: 569 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 9447)
Memory: 0B
CGroup: /system.slice/ufw.service
Aug 14 01:28:04 mgserver systemd[1]: Finished Uncomplicated firewall.
Warning: journal has been rotated since unit was started, output may be incomplete.
起動していなければ、以下のコマンドを実行してください。
sudo systemctl enable --now ufw
sudo systemctl start ufw
# Statusの確認
sudo systemctl status ufw
各種コマンドについて
ufw status # <= 状況確認
ufw enable # <= ファイアウォールの有効化
ufw disable # <= ファイアウォールの無効化
ufw default deny # <= 全アクセスの拒否
ufw default allow # <= 全アクセスの許可
ufw deny smtp # <= SMTP サービスのアクセスを拒否
ufw allow ftp # <= FTP サービスのアクセスを許可
ufw deny 25/tcp # <= TCP ポート 25 でのアクセスを拒否
ufw allow 80/udp # <= UDP ポート 80 でのアクセスを許可
ufw allow 53 # <= TCP ポート 53, UDP ポート 53 でのアクセスを拒否
ufw allow in http # <= HTTP サービスのアクセスを IN のみ許可
ufw reject out smtp # <= SMTP サービスのアクセスを OUT のみ却下
ufw allow proto tcp from any to any port 8080:8090
# <= TCP ポート 8080 〜 8090 での全アクセスを許可
ufw allow proto tcp from 192.168.11.0/24 to any port 9999
# <= TCP ローカルネットワーク 192.168.11.0/24 からの
# TCP ポート 9999 でのアクセスを許可
ufw delete 3 # <= 3 番目のルールを削除
UFWを設定していく
一般的には、全てのポートをアクセス拒否にして、許可したいポートのみを開放するという形でつかいます。
ファイアウォールを有効化する
まずは、ファイアウォールを有効化します。
ufw enable
全ポートをアクセス拒否にする
次に、一旦すべてのポートをアクセス拒否します。
※SSHで設定している場合は、SSHのポート22も閉じてしまうので、サーバー本体側で設定してください。
ufw default deny
ポートを開放する
次に、許可したいポートを許可します。
# HTTPの場合
ufw allow 80
# HTTPSの場合
ufw allow 443
# PC版Minecraftサーバーの場合
ufw allow 25565
# SSHを使用する場合
ufw allow 22
# 範囲を指定して開放する
ufw allow 8000:9000/tcp
ufw allow 8000:9000/udp
Ubuntuアプリに使用するポートを許可する
ApacheやNginx、OpenSSHなどは既存の設定を反映することができます。
設定しておくことをおすすめします。
# 設定できるソフト一覧
ufw app list
Available applications:
Apache
Apache Full
Apache Secure
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
# アプリのポートを開放する
ufw allow 'Nginx Full'
UFW設定を確認する
以上で設定は完了です。最後に、現在ファイアウォールで許可しているポートを確認して終わりましょう。
ufw status
Status: active
To Action From
-- ------ ----
8000:9000/tcp ALLOW Anywhere
8000:9000/udp ALLOW Anywhere
22 ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
Nginx HTTPS ALLOW Anywhere
Nginx Full ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
8000:9000/tcp (v6) ALLOW Anywhere (v6)
8000:9000/udp (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Nginx HTTPS (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)