Edited at

ufwの基本操作

More than 3 years have passed since last update.

Ubuntuを触るようになったので自分ようにufwの備忘録を作りました。

個人で隔離された環境で好き放題お試しする分には

別に意識せずに systemctl disable ufw してしまって構わないませんが、

外向けに見せるものについてはきちんと設定しましょうということで設定します。


前提条件

毎回毎回 sudo, sudoいうのもアホらしいので、

rootで作業します。


前提

sudo su -



初期状態の確認


初期状態の確認

sudo su -

root@ubuntu-001:~# systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab
Active: active (exited) since 日 2016-08-07 19:33:49 JST; 33min ago
Process: 12007 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/
Main PID: 12007 (code=exited, status=0/SUCCESS)

8月 07 19:33:49 ubuntu-001 systemd[1]: Starting Uncomplicated firewall...
8月 07 19:33:49 ubuntu-001 systemd[1]: Started Uncomplicated firewall.
8月 07 20:05:25 ubuntu-001 systemd[1]: Started Uncomplicated firewall.


起動はしています。


ufwの状態確認

ufw status

状態: 非アクティブ

起動はしていますが特に通信の制御などは行っていない様子。

いきなり有効化するとsshの接続を切断されるので、

ひとまずはdry-runで有効化を試行してみます。


ufwの有効化


ufwの有効化

ufw enable

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
ファイアウォールはアクティブかつシステムの起動時に有効化されます。

少なくとも私が試した範囲では有効化しても

すでに接続している通信が切断されるなどの影響は出ませんでした。

ufwを有効化したりする前などから成立している通信は遮断しないように見えます。


ufw有効化後の初期状態

ufw status verbose

状態: アクティブ
ロギング: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
新しいプロファイル: skip

ufwを有効化した初期状態でsshの接続を切断すると再接続できなくなるので要注意。


ufwの無効化

ufw disable

ファイアウォールを無効にし、システム起動時にも無効にします


デフォルトのincomingポリシー

条件に合致しない通信を通過させるか、遮断するかのデフォルト設定を適用します。

実はデフォルトでincomingポリシーはdenyなのでここは不要だったりします...


ufwのデフォルトポリシー設定

ufw default deny

デフォルトの incoming ポリシーは 'deny' に変更しました
(適用したい内容に基づいて必ずルールを更新してください)

ファイアウォールの設定を下記のいずれにするかで

denyかallowかが変わる(rejectもあるがここでは割愛)

方式
内容
選択するポリシー

ホワイトリスト方式
特定の通信のみ受信を 許可 する
deny

ブラックリスト方式
特定の通信のみ受信を 遮断 する
allow

通常は ホワイトリスト方式 を選択します。

サーバ上で 動作しているサービスのポートのみを公開 するのが原則です。


さらに条件詳細化

ここで疑問となるのが、sshの通信はどこからでも受け付けるのか ということ

ごくごく小規模のネットワークなので、今回は同一セグメント以外からの通信は許容したくはないので通信元を絞ります。

(どこの馬の骨とも知らないネットワークからsshされても嫌なので)


既存のルールを削除する

ufw delete 1

削除:
allow 22
操作を続けますか (y|n)? y
ルールを削除しました


ステータスを確認

ufw status

状態: アクティブ

この時点でTCP 22番への新規接続ができなくなっている。

この状態でログアウトするとsshでの接続ができなくなるので要注意です。


TCP22番の通信の通信元を制限する

ufw allow from 192.168.1.0/24 to any port 22

ルールを追加しました

同一ネットワーク内からのみの通信を許可しました。

で、念のためにufwを再読み込みさせます。


ufw再読み込み

ufw reload

ファイアウォールを再読込しました


まとめ

ufwの基本操作として以下の内容を整理しmashita.

コマンド
意味
備考

ufw enable
ufwを有効化
ルールが設定されない限り新規接続ができなくなるので要注意

ufw disable
ufwを無効化

ufw status
ufwの状態とルールを表示

ufw status verbose
ufwの状態とルールを表示
各種デフォルトポリシーも表示される

ufw delete 番号
ルールを削除する
ルールの番号は ufw status numberedで確認できる

ufw allow from ネットワークアドレス to ホストアドレス(or any) port ポート番号
fromで指定したアドレスからtoで指定したアドレスかつポートへの通信を受信する
ネットワークアドレスは192.168.1.0/24などの形で指定