連載
» 2016年02月18日 05時00分 公開

CentOS 7で始める最新Linux管理入門(4):ハマる前に理解する「Firewalld」の設定方法、「iptables」との違い (2/4)

[大喜多利哉,@IT]

Netfilterにおける「チェイン」とは

 Firewalldでのパケットフィルタリング設定について解説する前に、Netfilterにおけるパケットフィルタリング処理の仕組みをおさらいしておきましょう。

 Netfilterでは、以下の3種類のパケットの流れに対してパケットフィルタリングの処理を行います(図1)。

photo 図1 パケット処理の流れ

(1)INPUT(外部から内部へ)

 受信するパケットが適切かをチェックします。受信すべきパケットはローカルプロセス(Linux上のプロセス)に配送し、ルールに合致しないパケットは破棄します。

(2)OUTPUT(内部から外部へ)

 送信するパケットが適切かをチェックします。送信すべきパケットはネットワークデバイスを経由して外部へ送信し、ルールに合致しないパケットは破棄します。

(3)FORWARD(外部へ転送)

 別のサーバへ転送すると指定されたパケットを受信すると、FORWARDのルールを適用して処理します。転送すべきパケットはネットワークデバイスを経由して別のサーバなどに転送され、ルールに合致しないパケットは破棄します。

 このパケット処理の分類を「チェイン」と呼びます。iptablesでは、それぞれのチェインに対して個別のフィルタリングルールとデフォルトルールを設定します。デフォルトルールでは、通信の「ACCEPT(許可)」または「DROP(廃棄)」を指定します。「ACCEPT」は、ルールが定められていない通信も「全て許可」します。「DROP」はその逆で、ルールを定めていない通信は「全て破棄」します。また、INPUT方向の戻り通信に対して、OUTPUT方向の「通信許可ルールを設定する必要」もあります。

 一方のFirewalldでは、主にINPUTチェインのパケットフィルタリングルールを制御します。また、チェインに対して直接デフォルトルールを設定するのではなく、「ゾーン」と呼ぶグループ単位でルールを定義します。

Firewalldにおける「ゾーン」とインタフェース

 では、Firewalldはどのようにシンプルになったのか。「ゾーン」設定の具体例を交えながら説明していきます。

 ゾーンとは、パケットフィルタリングのルールをまとめて、グループ化したものです。Firewalldでは、このゾーンを「インタフェース」に定義します。実際のルールの設定は「ゾーン」に対して行います。

 あらかじめ設定されている「ゾーン」は表1の通りです。

表1 ゾーン名
ゾーン名 概要
public サーバとして最低限必要な受信許可ルール。全てのインタフェースはデフォルトでpublicゾーンに所属している
work 業務用クライアントPCとしての利用を想定したルール。社内LAN内で使う場合を想定している。クライアントPCに求められる必要最低限のルールが定義されている
home 家庭用クライアントPCとしての利用を想定したルール。家庭内LANに接続して使う場合を想定している
internal Linuxを用いてファイアウォールを構築するのに使うルール。内部ネットワークのインタフェースに設定する
external 同じく、Linuxを用いてファイアウォールを構築するのに使うルール。こちらは、外部ネットワークのインタフェースに対して設定する
dmz 同じく、Linuxを用いてファイアウォールを構築するのに使うルール。こちらは、DMZのインタフェースに対して設定する
block 受信パケットを全て拒否するルール。送信パケットの戻り通信は許可される
drop 受信パケットを全て破棄するルール。送信パケットの戻り通信は許可される
trusted 全ての通信を許可するルール

 では、具体的なコマンドを使って、実際にFirewalldを設定しながら学んでみましょう。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。