Uncomplicated Firewall (日本語) - ArchWiki

# Uncomplicated Firewall (日本語)

プロジェクトのホームページより:

  Ufw は Uncomplicated Firewall の略であり、netfilter ファイアウォールを管理するためのプログラムです。コマンドラインインターフェースが存在し、あまり複雑にならず簡単に使えるように作られています。

## インストール

ufw は公式リポジトリからインストールできます。

起動するには ufw を systemdのサービスとして起動して下さい。起動時に自動的に実行されるようにするにはサービスを有効にします。

## 基本設定

デフォルトで全てを拒否して、192.168.0.1-192.168.0.255 LAN のプロトコルを許可し、どこからでも Deluge と SSH の通信ができるようにするシンプルな設定:

    # ufw default deny
    # ufw allow from 192.168.0.0/24
    # ufw allow Deluge
    # ufw allow SSH

パッケージを最初にインストールしたときは次を実行する必要があります:

    # ufw enable

そして systemctl で `ufw` サービスを有効化してください。

最後に、status コマンドで適用されているルールを確認します:

    # ufw status

    Status: active
    To                         Action      From
    --                         ------      ----
    Anywhere                   ALLOW       192.168.0.0/24
    Deluge                     ALLOW       Anywhere
    SSH                        ALLOW       Anywhere

status レポートはユーザーによって追加されたルールを示します。ほとんどの場合これで十分ですが、始めから入っているルールが存在していることに気をつけることは悪いことではありません。UPNP, AVAHI, DHCP を許可するフィルターが含まれています。全てのルールを表示するには:

    # ufw show raw

レポートではトラフィックも手短に示されますが、読むのが難しいと感じるかもしれません。承認されたトラフィックの確認をする別の方法:

    # iptables -S | grep ACCEPT

レポートとしては動作しますが、iptables を管理するのに `ufw` を使っている間は `iptables` サービスは有効化しないようにしてください。

Note: 特殊なネットワーク変数を `/etc/sysctl.d/*` で設定している場合、この設定によってデフォルト設定が上書きされてしまうため、それにあわせて `/etc/ufw/sysctl.conf` を修正する必要があります。

## 他のアプリケーションの追加

パッケージには多数のデーモンやプログラムのデフォルトのポートに基づいてデフォルトの設定が付いています。`/etc/ufw/applications.d` ディレクトリを見たりプログラムを使ってリストアップすることでオプションを確認できます:

    # ufw app list

標準のポートを使わないアプリケーションを実行している場合、デフォルトを見ながら `/etc/ufw/applications.d/custom` に必要なデータを記述するのを推奨します。

Warning: If users modify any of the PKG provided rule sets, these will be overwritten the first time the ufw package is updated. This is why custom app definitions need to reside in a non-PKG file as recommended above!

例えば、tcp ポートが 20202-20205 の範囲にカスタマイズされた deluge の場合:

    [Deluge-my]
    title=Deluge
    description=Deluge BitTorrent client
    ports=20202:20205/tcp

同じアプリケーションで tcp と udp ポートを両方定義する場合、以下のようにパイプで区切って下さい。tcp ポート 10000-10002 と udp ポート 10003 を開く例:

    ports=10000:10002/tcp|10003/udp

範囲を指定するかわりに、カンマを使って複数のポートを指定することもできます。tcp ポート 10000-10002 (inclusive) と udp ポート 10003 と 10009 を開く例:

    ports=10000:10002/tcp|10003,10009/udp

## アプリケーションの削除

上の Deluge の例を利用するときは、以下のコマンドで標準の Deluge のルールを削除して上の例にあるルールで置き換えます:

    # ufw delete allow Deluge
    # ufw allow Deluge-my

status コマンドで結果を確認します:

    # ufw status

    Status: active
    To                         Action      From
    --                         ------      ----
    Anywhere                   ALLOW       192.168.0.0/24
    SSH                        ALLOW       Anywhere
    Deluge-my                  ALLOW       Anywhere

## ufw によるレート制限

ufw には30秒間の間に6回以上接続を試みた IP アドレスを拒否する機能があります。このオプションは sshd などのサービスに使うと良いでしょう。

上記の基本設定を使って、レート制限を有効にするには、allow パラメータを limit パラメータで置き換えます。新しいルールは以前のルールを置き換えます。

    # ufw limit SSH

    Rule updated

    # ufw status

    Status: active
    To                         Action      From
    --                         ------      ----
    Anywhere                   ALLOW       192.168.0.0/24
    SSH                        LIMIT       Anywhere
    Deluge-my                  ALLOW       Anywhere

## GUI フロントエンド

### Gufw

gufw は Ufw の GTK であり、出来るかぎり簡単に Linux のファイアウォールを管理できるように作られています。一般的なポートや p2p アプリケーションのプリセットが存在します。python と ufw、そして GTK のサポートが必要です。

### kcm-ufw

kcm-ufw は ufw の KDE4 コントロールモジュールです。以下の機能をサポートしています:

- ファイアウォールの有効化・無効化
- ファイアウォールのデフォルト設定の設定
- ルールの追加・編集・削除
- ドラッグアンドドロップによるルールの並び替え
- ルールのインポート・エクスポート
- iptables モジュールの設定

このモジュールは "Network and Connectivity" カテゴリ下に表示されます。

## 参照

- sshguard
- Ubuntu UFW ドキュメント
- UFW マニュアル

Category:

- Firewalls (日本語)