「Uncomplicated Firewall」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版と同期)
(2人の利用者による、間の5版が非表示)
1行目: 1行目:
 
[[Category:ファイアウォール]]
 
[[Category:ファイアウォール]]
 
[[en:Uncomplicated Firewall]]
 
[[en:Uncomplicated Firewall]]
  +
[[fa:Uncomplicated Firewall]]
  +
{{Related articles start}}
  +
{{Related|iptables}}
  +
{{Related|sshguard}}
  +
{{Related articles end}}
  +
 
プロジェクトの[https://launchpad.net/ufw ホームページ]より:
 
プロジェクトの[https://launchpad.net/ufw ホームページ]より:
: ''Ufw は Uncomplicated Firewall の略であり、netfilter [[ファイアウォール]]を管理するためのプログラムです。コマンドラインインターフェースが存在し、あまり複雑にならず簡単に使えるように作られています。''
+
: Ufw は Uncomplicated Firewall の略であり、netfilter [[ファイアウォール]]を管理するためのプログラムです。コマンドラインインターフェースが存在し、あまり複雑にならず簡単に使えるように作られています。
   
 
== インストール ==
 
== インストール ==
   
{{Pkg|ufw}} は[[公式リポトリ]]から[[インストール]]できます
+
{{Pkg|ufw}} パッケー[[インストール]]してください
   
起動るには ufw を [[systemd|systemd]][[Daemons|サービス]]として起動してさい。起動時に自動的実行されるようにするにはサービスを有効にしま
+
起動時に有効化させるには ufw を[[起動]][[有効化]]してください。なお、{{ic|iptables.service}} や {{ic|ip6tables.service}} も有効にされていと動作しません
   
 
== 基本設定 ==
 
== 基本設定 ==
   
デフォルトで全てを拒否して、192.168.0.1-192.168.0.255 LAN のプロトコルを許可し、どこからでも Deluge と SSH の通信ができるようるシンプルな設定:
+
デフォルトで全てを拒否して、192.168.0.1-192.168.0.255 LAN のプロトコルを許可し、どこからでも Deluge と SSH の通信ができ、SSH [[#ufw によるレート制限|レート制限]]を設けるシンプルな設定:
   
 
# ufw default deny
 
# ufw default deny
 
# ufw allow from 192.168.0.0/24
 
# ufw allow from 192.168.0.0/24
 
# ufw allow Deluge
 
# ufw allow Deluge
# ufw allow SSH
+
# ufw limit ssh
   
 
パッケージを最初にインストールしたときは次を実行する必要があります:
 
パッケージを最初にインストールしたときは次を実行する必要があります:
23行目: 29行目:
 
# ufw enable
 
# ufw enable
   
  +
{{Note|{{ic|ufw.service}} が[[有効化]]されている必要があります。}}
そして [[Systemd#ユニットを使う|systemctl]] で {{ic|ufw}} サービスを有効化してください。
 
   
 
最後に、status コマンドで適用されているルールを確認します:
 
最後に、status コマンドで適用されているルールを確認します:
32行目: 38行目:
 
Anywhere ALLOW 192.168.0.0/24
 
Anywhere ALLOW 192.168.0.0/24
 
Deluge ALLOW Anywhere
 
Deluge ALLOW Anywhere
SSH ALLOW Anywhere
+
SSH LIMIT Anywhere
 
}}
 
}}
 
status レポートはユーザーによって追加されたルールを示します。ほとんどの場合これで十分ですが、始めから入っているルールが存在していることに気をつけることは悪いことではありません。UPNP, AVAHI, DHCP を許可するフィルターが含まれています。全てのルールを表示するには:
 
status レポートはユーザーによって追加されたルールを示します。ほとんどの場合これで十分ですが、始めから入っているルールが存在していることに気をつけることは悪いことではありません。UPNP, AVAHI, DHCP を許可するフィルターが含まれています。全てのルールを表示するには:
49行目: 55行目:
 
標準のポートを使わないアプリケーションを実行している場合、デフォルトを見ながら {{ic|/etc/ufw/applications.d/custom}} に必要なデータを記述するのを推奨します。
 
標準のポートを使わないアプリケーションを実行している場合、デフォルトを見ながら {{ic|/etc/ufw/applications.d/custom}} に必要なデータを記述するのを推奨します。
   
  +
{{Warning|パッケージに含まれているルールセットを編集した場合、ufw パッケージを更新したときに変更した部分が上書きされてしまいます。従って、上記のようにパッケージファイルにはないカスタム定義を使うことを推奨します。}}
{{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 の場合:
 
例えば、tcp ポートが 20202-20205 の範囲にカスタマイズされた deluge の場合:
83行目: 89行目:
 
SSH ALLOW Anywhere
 
SSH ALLOW Anywhere
 
Deluge-my ALLOW Anywhere
 
Deluge-my ALLOW Anywhere
  +
}}
  +
  +
== IP アドレスのブロック ==
  +
特定の IP アドレスをブロックするには、{{ic|/etc/ufw/before.rules}} において ''COMMIT'' よりも手前に iptables DROP 行を書き加えます。
  +
  +
{{hc|/etc/ufw/before.rules|
  +
...
  +
## blacklist section
  +
  +
# block just 199.115.117.99
  +
-A ufw-before-input -s 199.115.117.99 -j DROP
  +
# block 184.105.*.*
  +
-A ufw-before-input -s 184.105.0.0/16 -j DROP
  +
  +
# don't delete the 'COMMIT' line or these rules won't be processed
  +
COMMIT
 
}}
 
}}
   
 
== ufw によるレート制限 ==
 
== ufw によるレート制限 ==
   
ufw には30秒間の間に6回以上接続を試みた IP アドレスを拒否する機能があります。このオプションは sshd などのサービスに使うと良いでしょう。
+
ufw には30秒間の間に6回以上接続を試みた IP アドレスを拒否する機能があります。このオプションは [[SSH]] などのサービスに使うと良いでしょう。
   
 
上記の基本設定を使って、レート制限を有効にするには、allow パラメータを limit パラメータで置き換えます。新しいルールは以前のルールを置き換えます。
 
上記の基本設定を使って、レート制限を有効にするには、allow パラメータを limit パラメータで置き換えます。新しいルールは以前のルールを置き換えます。
105行目: 127行目:
   
 
== ユーザールール ==
 
== ユーザールール ==
全てのユーザールールは {{ic|usr/lib/ufw/user.rules}} (IPv4) と {{ic|usr/lib/ufw/user6.rules}} (IPv6) に保存されます。
+
全てのユーザールールは {{ic|/etc/ufw/user.rules}} (IPv4) と {{ic|/etc/ufw/user6.rules}} (IPv6) に保存されます。
  +
  +
pacman によるアップグレード時にも表示されますが、バージョン 0.34 以前では置き場所が {{ic|/usr/lib/ufw/user.rules}} と {{ic|/usr/lib/ufw/user6.rules}} でした。バージョン 0.35 にアップグレードしたときに、ルールを新しい置き場所にコピーしてください。
   
 
== GUI フロントエンド ==
 
== GUI フロントエンド ==
113行目: 137行目:
 
{{Pkg|gufw}} は Ufw の GTK であり、出来るかぎり簡単に Linux のファイアウォールを管理できるように作られています。一般的なポートや p2p アプリケーションのプリセットが存在します。{{Pkg|python}} と {{Pkg|ufw}}、そして GTK のサポートが必要です。
 
{{Pkg|gufw}} は Ufw の GTK であり、出来るかぎり簡単に Linux のファイアウォールを管理できるように作られています。一般的なポートや p2p アプリケーションのプリセットが存在します。{{Pkg|python}} と {{Pkg|ufw}}、そして GTK のサポートが必要です。
   
  +
== ヒントとテクニック ==
=== kcm-ufw ===
 
  +
  +
=== リモート ping を無効化 ===
  +
以下の行の {{ic|ACCEPT}} を {{ic|DROP}} に変更してください:
  +
  +
{{hc|/etc/ufw/before.rules|
  +
# ok icmp codes
  +
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
  +
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
  +
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
  +
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
  +
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
  +
}}
  +
  +
IPv6 を使っている場合、同じルールが {{ic|/etc/ufw/before6.rules}} に存在します。
   
  +
=== UFW のログ出力を無効化 ===
{{AUR|kcm-ufw}} は ufw の KDE4 コントロールモジュールです。以下の機能をサポートしています:
 
  +
ログ出力を無効化することで UFW によってメッセージログ ({{ic|dmesg}}) が埋まってしまうのを防ぐことができます:
* ファイアウォールの有効化・無効化
 
* ファイアウォールのデフォルト設定の設定
 
* ルールの追加・編集・削除
 
* ドラッグアンドドロップによるルールの並び替え
 
* ルールのインポート・エクスポート
 
* iptables モジュールの設定
 
   
  +
# ufw logging off
このモジュールは "Network and Connectivity" カテゴリ下に表示されます。
 
   
 
== 参照 ==
 
== 参照 ==
   
  +
* [https://help.ubuntu.com/community/UFW Ubuntu UFW ドキュメント]
* [[sshguard|sshguard]]
 
  +
* {{man|8|ufw}} UFW マニュアル
* [http://help.ubuntu.com/community/UFW Ubuntu UFW ドキュメント]
 
* [http://manpages.ubuntu.com/manpages/natty/en/man8/ufw.8.html UFW マニュアル]
 

2020年5月3日 (日) 10:00時点における版

関連記事

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

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

インストール

ufw パッケージをインストールしてください。

起動時に有効化させるには ufw を起動有効化してください。なお、iptables.serviceip6tables.service も有効にされていると動作しません。

基本設定

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

# ufw default deny
# ufw allow from 192.168.0.0/24
# ufw allow Deluge
# ufw limit ssh

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

# ufw enable
ノート: ufw.service有効化されている必要があります。

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

# ufw status
Status: active
To                         Action      From
--                         ------      ----
Anywhere                   ALLOW       192.168.0.0/24
Deluge                     ALLOW       Anywhere
SSH                        LIMIT       Anywhere

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

# ufw show raw 

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

# iptables -S | grep ACCEPT

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

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

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

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

# ufw app list

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

警告: パッケージに含まれているルールセットを編集した場合、ufw パッケージを更新したときに変更した部分が上書きされてしまいます。従って、上記のようにパッケージファイルにはないカスタム定義を使うことを推奨します。

例えば、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

IP アドレスのブロック

特定の IP アドレスをブロックするには、/etc/ufw/before.rules において COMMIT よりも手前に iptables DROP 行を書き加えます。

/etc/ufw/before.rules
...
## blacklist section

# block just 199.115.117.99
-A ufw-before-input -s 199.115.117.99 -j DROP
# block 184.105.*.*
-A ufw-before-input -s 184.105.0.0/16 -j DROP

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

ufw によるレート制限

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

上記の基本設定を使って、レート制限を有効にするには、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

ユーザールール

全てのユーザールールは /etc/ufw/user.rules (IPv4) と /etc/ufw/user6.rules (IPv6) に保存されます。

pacman によるアップグレード時にも表示されますが、バージョン 0.34 以前では置き場所が /usr/lib/ufw/user.rules/usr/lib/ufw/user6.rules でした。バージョン 0.35 にアップグレードしたときに、ルールを新しい置き場所にコピーしてください。

GUI フロントエンド

Gufw

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

ヒントとテクニック

リモート ping を無効化

以下の行の ACCEPTDROP に変更してください:

/etc/ufw/before.rules
# ok icmp codes
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

IPv6 を使っている場合、同じルールが /etc/ufw/before6.rules に存在します。

UFW のログ出力を無効化

ログ出力を無効化することで UFW によってメッセージログ (dmesg) が埋まってしまうのを防ぐことができます:

# ufw logging off

参照