FirewallD とは1
FirewallD とは
firewalldは、ネットワークコネクションやインターフェースの信頼度を定義するネットワーク/ファイアウォールのゾーンに対応した動的に管理可能なファイアウォールを提供します。IPv4とIPv6のファイアウォール設定とイーサネットブリッジに対応し、一時的・永続的な設定オプションを分けて保持します。ファイアウォールのルールを直接追加するサービスへのインターフェースとアプリケーションにも対応します。
CentOS 6 は iptables というパケットフィルタリング型のファイアウォール機能でセキュリティを高めていましたが、CentOS 7 からは iptables ではなく、firewalld がデフォルトのファイアウォールとして提供されるようになりました。
iptables は静的ファイアウォールで、設定の反映はファイアウォールの再起動が必要でしたが、firewalld は動的ファイアウォールとなっているため、そのような再起動やカーネルモジュールのリロードは必要ないようです。
ゾーンとは
firewalld ではゾーンと呼ばれる概念があり、デフォルトで 9 つのゾーンが用意されています。
- drop
- block
- public
- external
- dmz
- work
- home
- internal
- trusted
これらをネットワークと結びつけて使います。 恐らくよく使うのは、「クライアント PC で、自宅の Wifi のゾーンは home で、それ以外のネットワークに接続するときは public」や、「サーバーで public をデフォルトとして、必要なサービスを許可していく」という形ではないかな?と思う。
設定ファイル
/usr/lib/firewalld の下がデフォルト設定のファイルがあります。
# ls /usr/lib/firewalld/*
/usr/lib/firewalld/icmptypes:
destination-unreachable.xml echo-request.xml redirect.xml router-solicitation.xml time-exceeded.xml
echo-reply.xml parameter-problem.xml router-advertisement.xml source-quench.xml
/usr/lib/firewalld/services:
RH-Satellite-6.xml ftp.xml kerberos.xml ms-wbt.xml pmwebapis.xml smtp.xml
amanda-client.xml high-availability.xml kpasswd.xml mysql.xml pop3s.xml ssh.xml
bacula-client.xml http.xml ldap.xml nfs.xml postgresql.xml telnet.xml
bacula.xml https.xml ldaps.xml ntp.xml proxy-dhcp.xml tftp-client.xml
dhcp.xml imaps.xml libvirt-tls.xml openvpn.xml radius.xml tftp.xml
dhcpv6-client.xml ipp-client.xml libvirt.xml pmcd.xml rpc-bind.xml transmission-client.xml
dhcpv6.xml ipp.xml mdns.xml pmproxy.xml samba-client.xml vnc-server.xml
dns.xml ipsec.xml mountd.xml pmwebapi.xml samba.xml wbem-https.xml
/usr/lib/firewalld/zones:
block.xml dmz.xml drop.xml external.xml home.xml internal.xml public.xml trusted.xml work.xml
システム設定は /etc/firewalld の下に配置され、デフォルト設定と同じディレクトリ配置になっています。
読み込み順序はデフォルト設定が読み込まれた後、システム設定が読み込まれ、同じ設定ファイルがあったらシステム設定で上書きされます。
例. デフォルト設定の挙動を変える時
デフォルト設定の挙動を変える(カスタマイズする)時は、デフォルトの設定ディレクトリからシステム設定ディレクトリへ対象ファイルをコピーして書き換える。
例えば、HTTP の設定をカスタマイズするときには、
$ sudo cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services
として、コピー先の /etc/firewalld/services/http.xml を編集する。
例. 新しい設定を作成する時
/etc/firewalld の下に作成する。
実際は、デフォルトの挙動を変えるより、既存のポートから変更して新しいサービス用の設定を作ると思う。例えば、新しい Web サービス用の設定を作成するとして、
$ sudo cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/newservice.xml
として、コピー先の /etc/firewalld/services/newservice.xml を編集して使うパターンが多いと思う。
設定方法
Fedora Linux の GUI としてお馴染みの firewall-config や、コマンドラインツールとして firewall-cmd で設定することができます。
ディスカッション
コメント一覧
まだ、コメントがありません