12月9日(火)1、2コマ目

今日、やったこと

今日のホワイトボード

[確認テスト 解説]ファイアウォール1

問1

図 現在アクティブなゾーンの確認


問2

--get-active-zoneでなにも出力されない => 適用されるゾーンが未設定

 適用されるゾーンが未設定の場合は、デフォルトゾーンが適用される。

デフォルトゾーンの確認は--get-default-zoneオプション。

図 デフォルトゾーンの確認


問3

稼働中のF/Wにて許可されているサービスの一覧は--list-serviceオプション。

下図はゾーン「public」で確認。(ゾーンzone01は存在しないため)

図 ゾーンpublicにて許可されているサービス確認


問4

ゾーンの設定ファイルは以下の2つ。

設定ファイルへのパス 内容
/usr/lib/firewalld/zones/ゾーン名.xml OSが用意するデフォルトの設定ファイル。基本的に変更しない。
/etc/firewalld/zones/ゾーン名.xml デフォルト設定を変更した際に作成される。
ユーザーがゾーンを追加する場合もこちらへ。


図 ゾーン設定ファイル


問5

設定ファイルにて許可されているサービスの確認は--list-serviceオプション+--permanentオプション。

図 設定ファイルにて許可されているサービス一覧確認


問6

許可サービスの追加は--add-serviceオプション。

”一時的に許可サービスを追加” => 設定ファイルを変更することなく、稼働中のF/Wを変更。

よって、設定ファイルを変更する--permanentオプションはなし。

図 一時的に許可サービスを追加


問7

稼働中のF/Wにて許可されているサービスには、問6で追加されたsshが含まれる。

設定ファイル上ではsshは許可されていない。

よって、設定ファイルと稼働中のF/Wの許可サービスに違いあり。

図 許可サービスの設定ファイルと稼働中のF/Wとの違い


問8

違いは以下のとおり。

稼働中のF/Wではsshが許可されている

設定ファイルではsshは許可されていない


問9

インタフェースに紐づけるゾーンの変更。

図 インタフェースeth0にゾーンdropをひもづけ

[やってみよう 解説]ファアイウォール(ICMP)

その1

F/Wのゾーン、ターゲットを確認。
図 ゾーン、ターゲットの確認

その2

F/Wのicmp-blocksを確認。
図 icmp-blocksの確認

その3

F/Wのicmp-block-inversionを確認。
図 icmp-block-inversionの確認

その4

導通確認。
F/Wは
  • icmp-block-inversion:no
  • icmp-blocks:なし
より、ICMPのエコー要求のパケットは許可される。=>エコー応答が返ってくる。
図 pingの宛先のIPアドレス確認

図 導通確認 結果

その5

F/Wのicmp-blocksにecho-requestを追加。
図 icmp-blocksにecho-requestを追加

F/Wのicmp-blocks、icmp-block-inversion確認。
図 icmp-blocks、icmp-block-inversion確認

導通確認。
F/Wは
  • icmp-block-inversion:no
  • icmp-blocks:echo-request
より、ICMPのエコー要求のパケットは拒否される。=>返信「拒否します」が返ってくる。
図 導通確認 結果

その6

icmp-blocksからecho-requestを削除。=>その4の状態にもどる。

図 icmp-blocksからecho-requestを削除

F/Wのicmp-blocks、icmp-block-inversion確認。

図 icmp-blocks、icmp-block-inversion確認

導通確認。
F/Wはその4と同じ状態。
  • icmp-block-inversion:no
  • icmp-blocks:なし
より、ICMPのエコー要求のパケットは許可される。=>エコー応答が返ってくる。
図 導通確認 結果

その7

icmp-block-inversionyesに変更。=> icmp-blocksのタイプが許可される
図 icmp-block-inversionをyesに変更

F/Wのicmp-blocks、icmp-block-inversion確認。
図 icmp-blocks、icmp-block-inversion確認

導通確認。
F/Wは
  • icmp-block-inversion:yes
  • icmp-blocks:なし
より、icmp-blocksのタイプが許可される。
icmp-blocksは空欄なので、すべてのICMPのタイプは拒否される。
ICMPのエコー要求のパケットは拒否される。=> 返信「拒否します」が返ってくる。
図 導通確認 結果

その8

icmp-blocksにecho-requestを追加。
図 icmp-blocksにecho-requestを追加

F/Wのicmp-blocks、icmp-block-inversion確認。
図 icmp-blocks、icmp-block-inversion確認

導通確認。
F/Wは
  • icmp-block-inversion:yes
  • icmp-blocks:echo-request
より、icmp-blocksのタイプは許可される。
ICMPのエコー要求のパケットは許可=> エコー応答が返ってくる。
図 導通確認 結果

その9

ゾーンをdropに変更。
図 ゾーンをdropに変更

その10

F/Wのアクティブなゾーンの確認。
図 アクティブなゾーンの確認
ゾーンdropのターゲットを確認。
図 アクティブなゾーンdropのターゲット確認

ターゲットはDROP
明示的に許可、拒否が設定されていないパケットは破棄される

その11

F/Wのicmp-blocks、icmp-block-inversion確認。
図 icmp-blocks、icmp-block-inversion確認

その12

導通確認。
F/Wは
  • icmp-block-inversion:no
  • icmp-blocks:なし
より、エコー共有のパケットは明示的にアクションが指定されていない
この場合は、デフォルトのアクション(=ターゲットの動作)になる。
ターゲットはDROPのため、エコー要求を含め、ICMPのパケットは破棄される
破棄された結果、なにも返信が送信されないため、応答待ちになる。
図 pingコマンドを実行すると、応答待ちになる。
図 返信がないため、"0 recieved, 100% packet loss"

その13

icmp-blocksにecho-requestを追加。
図 icmp-blocksにecho-requestを追加

F/Wのicmp-blocks、icmp-block-inversion確認。
図 icmp-blocks、icmp-block-inversion確認

導通確認。
F/Wは
  • icmp-block-inversion:no
  • icmp-blocks:echo-request
より、icmp-blocksのタイプは拒否される。
ICMPのエコー要求のパケットは拒否=> 返信「拒否します」が返ってくる。
図 導通確認 結果

その14

icmp-blocksからecho-request削除。 => その12の状態に戻る。
図 icmp-blcksからecho-requestを削除

F/Wのicmp-blocks、icmp-block-inversion確認。
図 icmp-blocks、icmp-block-inversion確認

導通確認。=> その12と同じ。
F/Wは
  • icmp-block-inversion:no
  • icmp-blocks:なし
より、エコー共有のパケットは明示的にアクションが指定されていない
この場合は、デフォルトのアクション(=ターゲットの動作)になる。
ターゲットはDROPのため、エコー要求を含め、ICMPのパケットは破棄される
破棄された結果、なにも返信が送信されないため、応答待ちになる。
図 導通確認 結果

その15

icmp-block-inversionをyesに変更。
図 icmp-block-inversionをyesに変更

F/Wのicmp-blocks、icmp-block-inversion確認。
図 icmp-blocks、icmp-block-inversion確認

導通確認。
F/Wは
  • icmp-block-inversion:yes
  • icmp-block:なし
より、明示的に許可、拒否されたICMPのパケットはなし。
この場合、ICMPのパケットはF/Wのデフォルトの動作(=ターゲットの動作)で処理される。
F/WのターゲットはDROPのため、デフォルトの動作は破棄。よって、エコー要求のパケットは破棄される。
図 導通確認 結果

その16

icmp-blocksにecho-requestを追加。
図 icmp-blocksにecho-requestを追加

F/Wのicmp-blocks、icmp-block-inversion確認。
図 icmp-blocks、icmp-blocks-inversion確認

導通確認。
F/Wは
  • icmp-block-inversion:yes
  • icmp-block:echo-request
より、エコー要求のパケットは許可される。=>エコー応答が返っている。
図 導通確認 結果

icmp-block-inversion、icmp-blocksのまとめ

icmp-block-inversion、icmp-blocksの関係は下図のとおり。
図 icmp-block-inversion、icmp-blocksの関係

明示的に許可、拒否の設定がされていないパケットはデフォルトの動作になる。
デフォルトの動作はターゲットで決まる。
ターゲット 動作
default ICMPは許可。それ以外は拒否。
DROP すべて破棄 => なにも返信しない
ACCEPT すべて許可
%%REJECT%% すべて拒否 => 「拒否します」が返信される

その12、13は下図のとおり。
図 その12、13

その14はその12と同じ。

その15、16は下図のとおり。
図 その15、16

リッチルール

DMZ上のWebサーバーにありがちなF/Wの設定。
図 SSHだけ、LANからのみアクセス可にしたい

HTTPはすべての送信元から許可するが、SSHはLANからだけ許可したい。
送信元を指定する”souces”があるが、すべてのサービスが対象になる。

そこで、細かくルールを設定できるのが、リッチルール。
図 リッチルールの設定

リッチルールの例

サービスhttpは許可したうえで、リッチルールで送信元172.17.0.3からのみ、サービスhttpは破棄したい。
図 リッチルール設定例

リッチルール設定前のF/Wの状態は以下のとおり。
図 リッチルール追加前のF/W

リッチルール追加。
図 リッチルール追加

リッチルール追加後、F/W確認。
図 リッチルール追加後のF/W

端末172.17.0.3からHTTP通信。
F/Wにて破棄されるため、応答なし。
図 端末172.17.0.3にて確認

端末172.17.0.4からHTTP通信。
図 端末172.17.0.4にて確認

次回は

ファイアウォール(ICMP)のテストをします。


















cmp-blocksのタイプはされる。
ICMPのエコー要求のパケットは許可=> エコー応答が返ってくる。


このブログの人気の投稿

12月23日(火)1、2コマ目

1月6日(火)1、2コマ目