twitter icon   twitter icon   rss icon

Linux.com Japan

Home Linux Jp チュートリアル 簡単に使えるファイアウォール UFWの紹介

簡単に使えるファイアウォール UFWの紹介

原文は、2015 年 10 月 30 日に掲載されました。

ufw A

Linux に関していろいろ言われている中の一つに、セキュリティがあります。デスクトップからサーバーまでの広い範囲で、マシンを守るためのさまざまなツールがあります。長い間、Linux のセキュリティの中心は、iptables でした。これは、netfilter システムのもとで動いています。iptables は強力ですが、設定が複雑なため、満足な設定をするためには、週単位、月単位で時間が必要です。しかし幸いなことに、iptables のフロントエンドを利用することで、容易に設定ができます。

このフロントエンドは、Uncomplicated Firewall (UFW) (訳: 簡単に使えるファイアウォール)と呼ばれています。UFW は、ユーザーに優しいフレームワークで、netfilter の管理とファイアウォールを動作させるコマンドラインを管理できます。コマンドラインを使いたくない場合でも、UFW は GUI も提供しているので、簡単に使いこなすことができます。

GUI の使い方の前に、コマンドラインを使って UFW の機能を理解しておきましょう。

 

コマンドを使う。

UFW の基本的なコマンド形式は、以下のようです。

ufw [--dry-run] [options] [rule syntax]

-dry-run セクションに注目してください。この引数を指定すると、UFW は実際には何も変更しません。その代わりに、変更結果が出力されるだけです。

コマンド形式で、大きく以下の 2 つの使い方があります。

 ・簡易形式: ポートとプロトコルを指定する (プロトコルはオプション)。

 ・完全形式: ソース、デスティネーション、ポートそしてプロトコルを指定する (プロトコルはオプション)。

 まず、簡易形式から見ていきましょう。ポート 22 (SSH) を許可したいとします。このためのコマンドは、次のようになります。

sudo ufw allow 22

ufw を実行するには管理者権限が必要なため、sudo を使います。sudo を利用できないディストリビューションでは、事前に su コマンドで root になり、上記コマンドから sudo を除いたコマンドラインを実行します。

逆に、ポート 22 を禁止したい時は、以下のようにします。

sudo ufw deny 22

プロトコルを追加する時は、以下のようにします。

sudo ufw deny 22/tcp

 もし、ポート番号が分からなくても問題ありません。UFW は /etc/services ファイルを利用するので、ポート番号の代わりにサービスを指定すれば良いのです。SSH を許可したい時は、以下のようにします。

sudo ufw allow ssh

 簡単ですね。ポート番号形式の時と同様にプロトコルも指定できます。

sudo ufw allow ssh/tcp

 良く使う引数を示します。

 ・allow

 ・deny

 ・reject

 ・limit

 ・status: ファイアウォールが動作しているかどうかを表示する

 ・show: 実行中のルールを表示する

 ・reset: ファイアウォールを停止し、初期状態にする

 ・reload:最新のルールをロードし直す

 ・disable:ファイアーウォールを停止する

 

 完全形式で指定するときは、まず、ソース、デスティネーションを指定します。例えば、192.168.2.100 (プライベート アドレスですが) からあなたのマシンのポート 25 (SMTP) に攻撃があったとします。あなたのマシンの IP アドレスが 192.168.2.101 とします。そのアクセスを禁止するには、次のようにします。

sudo ufw deny from 192.168.2.100/8 to 192.168.2.101 port 25

 次に、limit 引数を説明しましょう。何者かがあなたのマシンに対して、ポート 80 を使って DoS (Denial of Service) 攻撃を仕掛けてきたとします。UFW を使ってコネクションを制限します。

sudo ufw limit 80/tcp

 標準設定では、30 秒に 6 回の接続があったらブロックされます。

 特定のポートに関して、外部へ出て行く通信は許可するが、入ってくる通信は禁止したい時があります。direction 引数を使います。ポート 25 (SMTP) の外部方向を許可するには、以下のようにします。

sudo ufw allow out on eth0 to any port 25 proto tcp

 次のルールを追加して、入ってくる通信を禁止します。

sudo ufw deny in on eth0 from any 25 proto tcp

 

GUI ツール

 UFW の基本を理解したところで、より簡単に使うために、GUI ツールについて勉強しましょう。たくさんの活動がされていますが、多くのディストリビューションで採用されているツールがあります。

 それは、Gufwです。Gufw は、UFW のフロントエンドの中で最も良くつかわれていて、Ubutu、Linux Mint、openSUSE、Arch Linux、Salix OS でも使えます。Gufw を使って、自宅、公共、オフィスなどのさまざまな使用形態に合わせたプロファイルを作成できます。あらゆるレベルのユーザーに合わせたインタフェースを提供してくれます (図 1)。

 Ubuntu などでは、Gufw は標準インストールはされませんが、Ubuntu Software Center で検索して、ワンクリックでインストールできます。

 もし、Elementary OS Freyaを使っている時は、設定ツールに UFW のフロントエンドが組み込まれています。それにより簡単にルールを追加できます (図 2)。Elementary OS Freya の UFW フロントエンドについては、以前のチュートリアル Get to Know the Elementary OS Freyaに詳しく書かれています。

 他の GUI として、ufw-frontends があります。しかし、これは最近開発が停滞しているため、利用するのは避けたほうがよいでしょう。

 大半のユーザーは、iptables の勉強に時間を使う必要はありません。使いやすいフロントエンドがあり、GUI ツールも用意されていて、それで充分なのです。もちろん、ビジネス、エンタープライズ用途であれば、iptables についてきちっと勉強すべきです。

UFW、iptables どちらが、あなたのニーズに合っているでしょうか。


Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!