firewalld
開発元 | Thomas Woerner、Red Hat |
---|---|
初版 | 2011年1月3日[1] |
最新版 | 0.7.2 / 2019年10月1日[2] |
リポジトリ | |
プログラミング 言語 | Python |
対応OS | Linux |
サポート状況 | 開発中 |
種別 | ファイアウォール管理ツール |
ライセンス | GNU GPL v2 |
公式サイト | firewalld |
firewalldは、Linuxオペレーティングシステム (OS) 用のファイアウォール管理ツールである。firewalldは、nftablesのユーザー空間ユーティリティと同様に、Linuxカーネルのnetfilterフレームワークのためのフロントエンドとして機能することでファイアウォールを提供し[3]、nft
の代替として機能する。バージョン0.6.0まではiptablesをデフォルトのバックエンドとして使用していた[4]。firewalldという名前は、システムデーモンには「d」という文字を最後に付けるというUnixの命名慣習に従っている[5]。
firewalldはPythonで書かれている。C++に移植される予定であったが、移植プロジェクトは2015年1月に中止された[6]。
機能
[編集]firewalldはIPv4とIPv6ネットワークの両方をサポートし、別々のfirewall zoneとして管理でき、様々なレベルの信頼度をzone profileとして定義できる。管理者はNetworkManagerを設定することで、既知のWi-Fi(無線)やイーサネット(有線)ネットワークを元にzone profileを自動的に切り替えることもできるが、firewalld自体では切り替えることはできない[7]。
サービスとアプリケーションはD-Busインタフェースを使ってfirewalldに対するクエリの送信や設定ができる[8]。firewalldはtimed rulesをサポートするため、1つのサービスに対するコネクション(または「ヒット」)の数をグローバルに制限することができる。ブルートフォースハッキングおよび分散DoS攻撃の影響を制限する一般的なテクニックである、ヒットカウントとそれに続くIPソースごとの接続拒否機能はサポートしていない[9]。
firewalldコマンドの構文は、UbuntuのUncomplicated 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ディストリビューションでデフォルトでインストールされている。
- CentOS 7以上
- Fedora 18以上
- Red Hat Enterprise Linux 7以上
- OpenSUSE Leap 15以上
- SUSE Linux Enterprise 15以上
firewalldは、すべてのディストリビューションでデフォルトのファイアウォールとして使用されているため、デフォルトで有効にされている。Debianなどの人気のあるディストリビューションのパッケージリポジトリーでも、多数のファイアウォールの選択肢の1つとして利用可能である[12]。
脚注
[編集]- ^ “Release v0.1.1” (2011年1月3日). 2019年1月17日閲覧。
- ^ “Releases”. 2019年10月9日閲覧。
- ^ “ファイアウォールの使用”. Red Hat Enterprise Linux 7 documentation. 2019年10月9日閲覧。
- ^ “firewalld-0.6.0”. GitHub (2016年7月6日). 2019年10月9日閲覧。
- ^ Kerrisk, Michael (2010). The Linux Programming Interface. San Francisco, California: No Starch. p. 768. ISBN 9781593272203
- ^ “firewalld development page”. firewalld project website. 9 February 2016閲覧。
- ^ “FirewallD”. Fedora community wiki. 9 February 2016閲覧。
- ^ “firewalld project home page”. firewalld project website. 9 February 2016閲覧。
- ^ Aleksandersen, Daniel. “Comparing and contrasting Uncomplicated Firewall and FirewallD”. Slight Future. 9 February 2016閲覧。
- ^ “firewalld service configuration files”. Thomas Woerner's space on Fedora People. 9 February 2016閲覧。
- ^ Woerner, Thomas. “On the way to Qt”. firewalld blog. 9 February 2016閲覧。
- ^ “Package: firewalld”. Debian package repository. 9 February 2016閲覧。