firewalldは、Linuxオペレーティングシステム (OS) 用のファイアウォール管理ツールである。firewalldは、nftablesのユーザー空間ユーティリティと同様に、Linuxカーネルnetfilter英語版フレームワークのためのフロントエンドとして機能することでファイアウォールを提供し[3]nftの代替として機能する。バージョン0.6.0まではiptablesをデフォルトのバックエンドとして使用していた[4]firewalldという名前は、システムデーモンには「d」という文字を最後に付けるというUnixの命名慣習に従っている[5]

firewalld
開発元 Thomas Woerner、Red Hat
初版 2011年1月3日 (13年前) (2011-01-03)[1]
最新版
0.7.2 / 2019年10月1日 (4年前) (2019-10-01)[2]
リポジトリ ウィキデータを編集
プログラミング
言語
Python
対応OS Linux
サポート状況 開発中
種別 ファイアウォール管理ツール
ライセンス GNU GPL v2
公式サイト firewalld.org
テンプレートを表示

firewalldはPythonで書かれている。C++に移植される予定であったが、移植プロジェクトは2015年1月に中止された[6]

機能 編集

firewalldはIPv4IPv6ネットワークの両方をサポートし、別々のfirewall zoneとして管理でき、様々なレベルの信頼度をzone profileとして定義できる。管理者はNetworkManagerを設定することで、既知のWi-Fi(無線)やイーサネット(有線)ネットワークを元にzone profileを自動的に切り替えることもできるが、firewalld自体では切り替えることはできない[7]

サービスとアプリケーションはD-Busインタフェースを使ってfirewalldに対するクエリの送信や設定ができる[8]。firewalldはtimed rulesをサポートするため、1つのサービスに対するコネクション(または「ヒット」)の数をグローバルに制限することができる。ブルートフォースハッキングおよび分散DoS攻撃の影響を制限する一般的なテクニックである、ヒットカウントとそれに続くIPソースごとの接続拒否機能はサポートしていない[9]

firewalldコマンドの構文は、UbuntuUncomplicated Firewall (ufw) などの他のiptablesフロントエンドに似ているが、少し冗長となっている。コマンドラインインタフェースでは、プロトコル、ポート、送信先、送信元を指定するか、あらかじめサービスを名前で定義することで、ファイアウォールのルールセットの管理ができる。

サービスの定義はXMLファイルとして記述し、ポート番号とプロトコルのマッピングや、オプションの追加情報としてサブネットの指定やカーネルヘルパーモジュールに必要な事項を書く[10]。ファイルの構文はsystemdのサービスファイルに似ている。たとえば、TCPのポート番号443をlistenするウェブサーバー用のシンプルなサービスファイルは、次のような内容となる。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Web Server</short>
  <description>Public web host over HTTPS.</description>
  <port port="443" protocol="tcp" />
</service>


制限:

Firewalld currently does not support outbound rules to the same capacity of inbound rules. Limitations include things such on ipsets, service names, and default outbound block by default rules required by standards such as NIST 800-171 and 800-53. Default block all needs to be done at the "raw" IPTables level via the --direct flag, and with the order of operations FirewallD uses to prioritize Rules, Rich Rules, Direct Rules, it may be easier to enter all rules for outbound via --direct or use iptables (netfilter-persist)

GUI 編集

firewall-configは、機能の大部分をサポートするグラフィカルフロントエンドの1つである。firewalldにオプションで含まれる。

firewall-appletは、firewalldにオプションで含まれる、小さなステータスインディケーターユーティリティであり、イベントログの通知機能とfirewall-configをすばやくオープンする機能を提供する。GNOME Desktopシステムトレイアイコンを廃止したため、2015年にfirewall-appletはGTK+からQtフレームワークに移植された[11]

採用 編集

firewalldは以下のLinuxディストリビューションでデフォルトでインストールされている。

firewalldは、すべてのディストリビューションでデフォルトのファイアウォールとして使用されているため、デフォルトで有効にされている。Debianなどの人気のあるディストリビューションのパッケージリポジトリーでも、多数のファイアウォールの選択肢の1つとして利用可能である[12]

脚注 編集

  1. ^ Release v0.1.1” (2011年1月3日). 2019年1月17日閲覧。
  2. ^ Releases”. 2019年10月9日閲覧。
  3. ^ ファイアウォールの使用”. Red Hat Enterprise Linux 7 documentation. 2019年10月9日閲覧。
  4. ^ firewalld-0.6.0”. GitHub (2016年7月6日). 2019年10月9日閲覧。
  5. ^ Kerrisk, Michael (2010). The Linux Programming Interface. San Francisco, California: No Starch. p. 768. ISBN 9781593272203 
  6. ^ firewalld development page”. firewalld project website. 2016年2月9日閲覧。
  7. ^ FirewallD”. Fedora community wiki. 2016年2月9日閲覧。
  8. ^ firewalld project home page”. firewalld project website. 2016年2月9日閲覧。
  9. ^ Aleksandersen, Daniel. “Comparing and contrasting Uncomplicated Firewall and FirewallD”. Slight Future. 2016年2月9日閲覧。
  10. ^ firewalld service configuration files”. Thomas Woerner's space on Fedora People. 2016年2月9日閲覧。
  11. ^ Woerner, Thomas. “On the way to Qt”. firewalld blog. 2016年2月9日閲覧。
  12. ^ Package: firewalld”. Debian package repository. 2016年2月9日閲覧。

外部リンク 編集