12月9日(火)1、2コマ目
今日、やったこと
- [確認テスト 解説]ファイアウォール1
- [やってみよう 解説]ファイアウォール(ICMP)
- リッチルール
今日のホワイトボード
[確認テスト 解説]ファイアウォール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確認。
導通確認。
F/Wはその4と同じ状態。
- icmp-block-inversion:no
- icmp-blocks:なし
より、ICMPのエコー要求のパケットは許可される。=>エコー応答が返ってくる。
|
| 図 導通確認 結果 |
その7
icmp-block-inversionをyesに変更。=>
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。
明示的に許可、拒否が設定されていないパケットは破棄される。
その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 |
端末172.17.0.3からHTTP通信。
F/Wにて破棄されるため、応答なし。
|
| 図 端末172.17.0.3にて確認 |
次回は
ファイアウォール(ICMP)のテストをします。
cmp-blocksのタイプはされる。
ICMPのエコー要求のパケットは許可=> エコー応答が返ってくる。




















































