シンプルなファイアウォールの紹介
Linuxデスクトップをより安全に保ちたいが、複雑なファイアウォールルールを学ぶ必要がない場合、ジャック・ウォーレンがシンプルなファイアウォールを紹介します。
私が初めてLinuxを使い始めたのは97年のことで、内蔵のファイアウォールを扱うことは誰でもできるわけではありませんでした。実際、それは非常に複雑でした。1998年頃から、システムのセキュリティを管理したいのであれば、iptables(Netfilterパケットフィルタリングシステムを操作するためのコマンドのセット)を学ぶ必要がありました。
例えば、すべての受信するセキュアシェル (SSH) トラフィックを許可したい場合、次のようなコマンドを実行する必要があるかもしれません:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPTそれは、Linuxオペレーティングシステムを習得する時間があり、複雑なセキュリティシステムの管理に関する細かい点を知っているのなら、すべて問題ないでしょう。公平に言えば、私はその時間を費やし、最終的にはiptablesでシステムのセキュリティを管理できるようになりました。
しかし、私が忙しくなるにつれて、iptablesについていくために必要な熟練度を維持することが難しくなってきました。時間が経つにつれて、物事はよりアクセスしやすくなり、いくつかのLinuxディストリビューションの開発者たちは、より簡単なシステムが必要であることに気づき始めました。そのようなアクセスしやすいLinuxファイアウォールの一つが、Ubuntuディストリビューション(バージョン12.04頃)と共に登場しました。そのファイアウォールは「Uncomplicated Firewall」と適切に名付けられました。
アンコンプリケイテッドファイアウォール(UFW)は、シンプルさに焦点を当てたiptablesのフロントエンドです。iptablesと比較すると、UFWは誰でも扱える公園をのんびり散歩するようなものです。
UFWレーンを散歩して、Linuxシステムのファイアウォール管理がどれほど簡単か見てみましょう。
UFWについて知っておくべき2つのことがあります:
- これはコマンドラインツールです。
- それをさらに簡単にするためのGUIツールが利用可能です。
UFWコマンドラインの基本
UFWコマンドは実際には非常にシンプルです。上で述べたSSHのアイデアを使いましょう。例えば、他のシステムがSSH(ポート22でリッスンしています)を通じてあなたのマシンにアクセスできるようにしたいとしましょう。
まず、UFWが有効になっているかどうかを確認したいと思います。知ってますか…デフォルトでは有効になっていません。それを試すには、ターミナルウィンドウを開いて、以下のコマンドを入力してください:
sudo ufw statusおそらく次のようなものを見るでしょう:
Status: inactiveどのようにしてそれを起動しますか?コマンドを発行してください:
sudo ufw enableコマンドの出力は次のようになります:
ファイアウォールはアクティブであり、システム起動時に有効です。
おめでとうございます、あなたのファイアウォールが現在アクティブになりました。
UFWの基本的な使用法については、次のような感じです:
sudo ufw ARGUMENT SERVICEここで、ARGUMENTはallow(許可)、deny(拒否)、reject(却下)、limit(制限)、status(ステータス)、show(表示)、reset(リセット)、reload(再読み込み)、enable(有効)、disable(無効)のいずれかであり、SERVICEはSSHやHTTPなど、操作したいサービスを指します。
次に、SSHトラフィックをシステムに許可する必要があります。信じようと信じまいと、それは次のように簡単です:
sudo ufw allow sshポート番号を使用してコマンドを実行することもできます。次のように:
sudo ufw allow 22または、ポート2022でSSHを実行する場合、そのコマンドは次のようになります:
sudo ufw allow 2022サーバーで作業していて、HTTPトラフィックを通過させる必要がある場合、そのコマンドは次の通りです:
sudo ufw allow httpもう少し進んだことを学びましょう
UFWの素晴らしいところの一つは、高度な機能を使うのにも高度な知識が必要ないことです。例えば、SSHトラフィックを許可したいが、あなたのネットワークの特定のIPアドレスからのものだけを許可したいとしましょう。
もしすでにSSHトラフィックの受信を許可している場合は、最初に以下のルールを削除する必要があります:
sudo ufw delete allow sshさて、もしあなたがそのマシンにSSH接続を試みると、ファイアウォールがその試みをブロックします。そこで、IPアドレス192.168.1.152からのSSH接続を許可しましょう。そのために、次のコマンドを入力します:
sudo ufw allow from 192.168.1.152 to any port ssh上記のコマンドを実行した後、192.168.1.152 のIPアドレスを持つリモートシステムからのみ、SSHを介してそのマシンにログインできるようになるはずです。
GUIはどうですか?
コマンドラインが得意でない場合は、さらに簡単にする便利なGUIツールがあります。その一例がGUFWで、UFWファイアウォールのルールをポイント&クリックで設定できます。デフォルトでLinuxディストリビューションにUFWがインストールされていない場合は、アプリストアで見つけることができます。インストールが完了したら、アプリを開き、「ルール」タブをクリックします(図1)。
GUFWツールは、ファイアウォールの設定をさらに簡単にします。
ご覧のように、すでにいくつかのUFWルールが追加されています。念頭に置くべきことの一つは、UFWコマンドラインから追加されたルールを編集できないということです。コマンドラインから行ったのと同じルールをGUIを通じて追加しましょう。+をクリックし、次に(プリコンフィグされたタブから)以下を選択します:
- ポリシー - 許可
- 方向 - 内側
- カテゴリ - すべて
- サブカテゴリー - すべて
- アプリケーション - SSH
それだけで、すべてのSSHトラフィックをあなたのシステムに許可するルールが作成されます。ただし、特定のIPアドレスからのトラフィックのみを許可したい場合は、詳細タブをクリックし、以下の項目を記入する必要があります(図2):
- 名前 - お好きな名前を入力してください
- ポリシー - 許可
- 方向 - 内側
- インターフェース - すべてのインターフェース
- から - 192.168.1.152
IPアドレス192.168.1.62からのSSHトラフィックのみを許可するようにUFWにルールを追加します。
追加をクリックすると、ルールがファイアウォールに挿入されます。
そして、それが皆さんへのシンプルな紹介である、シンプルなファイアウォールについてです。しかし、UFWが単なる非常に基本的なファイアウォールシステムだと思わないでください。実際にはもっと複雑になることもできますが、基本的な使用に関しては、UFWは誰でも使えるほど簡単です。

