今日、やったこと
- [確認テスト 解説]ネットワーク1
- [やってみよう 解説]ファイアウォール
今日のホワイトボード
[確認テスト 解説]ネットワーク1
問1
IPアドレス、サブネットマスクの確認。
IPアドレスの確認は出力内容が絞られるのでipコマンドのほうがいいかも。
”出力項目はなるべく必要最低限になるように”より、デバイスens1だけ出力されるように、devオプションでデバイスを指定。
 |
| 図 確認テスト ネットワーク1 問1 |
nmcliコマンドでコネクション詳細確認でも確認できるが、出力内容が多い。
問2
ルーティングテーブルの確認。
 |
| 図 確認テスト ネットワーク1 問2 |
問3
IPアドレスからMACアドレスの変換はARPに従って行う。
ARPは過去に調べたIPアドレスとMACアドレスをARPテーブル(ARPキャッシュ)に一時的に保存する。
 |
| 図 確認テスト ネットワーク1 問3 |
問4、5
デバイス一覧、コネクション一覧の確認。
 |
| 図 確認テスト ネットワーク1 問4、5 |
問6
IPアドレスの変更だが、"設定ファイルを変更することなく一時的に設定したい"より、ipコマンドで設定する。
なお、ipコマンドはIPアドレスの変更はできず、IPアドレスの追加、削除でIPアドレスを変更する。
 |
| 図 確認テスト ネットワーク1 問6 |
問7
デフォルトゲートウェイの変更。問6と同じように、"設定ファイルを変更することなく一時的に設定したい"より、ipコマンドで設定する。
IPアドレスの変更と同じく、デフォルトゲートウェイの変更もできない。デフォルトゲートウェイの削除、追加で変更を行う。
 |
| 図 確認テスト ネットワーク1 問7 |
問8、9
問6、7でデバイスに設定されているIPアドレス、デフォルトゲートウェイは変更されたが、設定ファイルは変わっていない。
項目名「ipv4.address」は設定ファイルの値。
項目名「IP4.ADDRESS」はデバイスに設定されている値。問6、7で変更した値。
 |
| 図 確認テスト ネットワーク1 問8、9 |
問10
コネクションの切り替え。
旧コネクションをdownすれば、新コネクションが自動的に有効化されると思われる。
 |
| 図 確認テスト ネットワーク1 問10 |
問11
設定ファイル作成はnmcliコマンドで行う。
 |
| 図 確認テスト ネットワーク1 問11 |
問12
コネクション設定ファイルは
/etc/sysconfig/network-scripts
以下に、ファイル名「ifcfg-コネクション名」で作成される。
 |
| 図 確認テスト ネットワーク1 問12 |
[やってみよう 解説]ファイアウォール
その1
F/Wにて許可されているサービス一覧。--list-serviceオプション。
 |
| 図 F/Wにて許可されているサービス一覧 |
その2
全ゾーンの詳細確認。--list-all-zonesオプション。
 |
| 図 全ゾーンの詳細確認 |
その3
Webアクセスができるか確認。
環境は以下のとおり。Linux3で稼働しているWebサーバーに、Linux4からcurlコマンドでアクセスする。
 |
| 図 確認する環境 |
Linux3のIPアドレスおよび、Webサーバーの稼働状況の確認。
 |
| 図 Linux3のIPアドレス、Webサーバーの稼働状況 |
Linux4からcurlコマンドでLinux3のWebサーバーにアクセスすると以下のようになった。
 |
| 図 Linux4からLinux3のWebサーバーにアクセス |
これはアクセスしたが、拒否された。
Linux3のF/Wに一時的にサービスhttpを許可。
 |
| 図 Linux3にて、サービスhttpを一時的に許可 |
Linux3のF/W変更後、再びLinux4からLinux3のWebサーバーにアクセス。
 |
| 図 Linux4からLinux3のWebサーバーにアクセス |
その4
--permanentオプションあり、なしでF/Wで許可されているサービスの確認。
 |
| 図 --permanentオプションの有無の違い |
--list-serviceオプションを、--permanentオプションあり、なしで確認。
 |
| 図 --list-serviceを--permanentオプションあり、なしで実行 |
その5
アクティブなゾーン、デフォルトゾーンの確認。
 |
| 図 アクティブなゾーン、デフォルトゾーンの確認 |
デフォルトゾーンはインタフェースに適用されるゾーンが未設定の場合に適用されるゾーン。
 |
| 図 アクティブなゾーン、デフォルトゾーンの確認結果 |
現状では、インターフェースに適用されるゾーンはデフォルトゾーンのpublic。
その6
許可されているサービスの確認。
その4とおなじ。
その7
ゾーンdropで許可されているサービスの確認。
--list-serviceオプション+--zoneオプション。
 |
| 図 ゾーンdropで許可されているサービスの確認 |
実行結果は以下のとおり。
 |
| 図 ゾーンdropで許可されているサービスの確認結果 |
その8
ゾーンdropの設定ファイル確認。
2つある。
 |
| 図 ゾーンdropの設定ファイル |
〇/etc/firewalls/zones/drop.xml
OSが提供するデフォルトの設定ファイルを変更した際にこのディレクトリに新たに設定ファイルが作成される。
現状ではゾーンdropは未変更なので、このディレクトリには設定ファイルはない。
 |
| 図 /etc/firewalld/zones/drop.xml |
〇/usr/lib/firewalls/zones/drop.xml
OSが提供するデフォルトの設定ファイル。基本的にこのディレクトリのファイルは変更しない。
 |
| 図 /usr/lib/firewalld/zones/drop.xml |
その9のまえに
その9のまえにゾーンdropをインタフェースeth0に適用。
インタフェースにゾーンを適用するには、--change-interface+--zoneオプション。
 |
| 図 インタフェースにゾーンdropを適用 |
ホワイトボードには"--permanentオプションは使えないかも"と書きましたが、設定ファイルは変更されました。
インタフェースとゾーンの紐づけはコネクションの一部。
よって、nmcliコマンドでも設定できる(はず)。
 |
| 図 インタフェースeth0にゾーンdropを適用 |
その9
Linux3のF/Wがゾーンdropで稼働中に、Linux4からcurlコマンドでWebアクセス。
 |
| 図 Linux4からLinux3へWebアクセスの結果 |
その3(ゾーンpublicを適用)と異なり、レスポンスがない。
これは、ゾーンpublicとゾーンdropで、許可サービス以外に対する処理が異なるため。
許可サービス以外のパケットに対するアクションは、ターゲットで決まる。
 |
| 図 ターゲットとアクションの関係 |
ゾーンpublicのターゲットはdefault。
ターゲット
defaultでは、許可しないパケットに対しては、
拒否。
拒否を返信する。
 |
| 図 ゾーンpublicのターゲット |
ゾーンdropのターゲットはDROP。
ターゲットDROPでは、許可しないパケットに対して何もしない。
よって、リクエスト元はレスポンス待ちの状態になる。
 |
| 図 ゾーンdropのターゲット |
その10
ゾーンdropにサービスhttpを一時的に許可。
 |
| 図 ゾーンdropにサービスhttpを一時的に許可 |
Linux4からLinux3にWebアクセス。
許可したので、当然アクセスできる。
 |
| 図 Linux4からcurlコマンドでLinux3のWebサーバーにアクセス。 |
その11
すいませんが、これは意味がないので無視。
その12
ゾーンdropにて許可されているサービスを--permanentオプションあり、なしで確認。
 |
| 図 ゾーンdropにて許可されているサービスの確認結果 |
その13
F/Wの設定再読み込み。
firewall-cmdコマンド、systemctlコマンドでできる。
 |
| 図 ファイアウォール設定ファイルの再読み込み |
再読み込みすると、適用されるゾーンはdropではなく、デフォルトゾーンのpublic。
ゾーンpublicは、サービスhttpを許可していない+ターゲットはdefaultなので、Linux4からアクセスすると、”Connection refused”となる。
 |
| 図 Linux4からLinux3のWebサーバーにアクセス |
ちなみにゾーンdropのターゲットはDROP。ゾーンdropが適用されている場合は、レスポンス待ちになる。
その14
F/Wで許可されているサービス確認。これで出力されるのはデフォルトゾーンのpublic。
その3でゾーンpublicにサービスhttpを許可したが、設定ファイルは変更していないため、その13の設定再読み込みで元の設定に戻っている。(サービスhttpは非許可)
 |
| 図 現在適用されているゾーンで許可されているサービス確認 |
その15
ゾーンdropで許可されているサービス。
その10でゾーンdropにサービスhttpを許可したが、設定ファイルは変更していないため、その13で設定再読み込みで元の設定に戻っている。(サービスhttpは非許可)
 |
| 図 ゾーンdropで許可されているサービス確認 |
その16
ゾーンdropにサービスhttpを恒久的に許可。=>設定ファイルを変更。
 |
| 図 ゾーンdropにサービスhttpを恒久的に許可 |
--permanentオプション付きで許可サービスの変更をすると、
/etc/firewalld/zones以下のゾーン設定ファイルが変更される。
/usr/lib/firewalld/zones以下のファイルは変更されない。
Linux3にて、設定ファイルの変更後、Linux4からcurlコマンドでWebアクセスしても、アクセスできない。
 |
| 図 Linux4からWebアクセス |
そもそも、現在Linux3で適用されているゾーンはpublic。
ゾーンpublicはサービスhttpを許可していない。
まず、インタフェースeth0にゾーンdropを適用する必要がある。
その17、18
ゾーンdropにて許可されているサービスだけ確認した。
 |
| 図 ゾーンdropで許可されているサービス確認 |
その19
ゾーンdropの設定ファイル確認。
その16でゾーンdropの設定ファイルが変更されたため、/etc/firewalld/zones以下にdrop.xmlができている。その16での変更はこのファイルに書き込まれている。
〇/usr/lib/firewalld/zones/drop.xml
OSのデフォルトの設定ファイル。このファイルは変更しない。
 |
| 図 /usr/lib/firewalld/zones/drop.xml |
〇/etc/firewalld/zones/drop.xmlその16でゾーンdropが--permanentオプション付きで変更されたため、作成されたゾーンdropの設定ファイル。
/usr/lib/firewalld/zones/drop.xmlより、こちらが優先される。
 |
| 図 /etc/firewalld/zones/drop.xml |
その20
ファイアウォールの設定再読み込み。
このタイミングで適用されるゾーンは相変わらずデフォルトゾーンのpublic。
よって、Linux4からWebアクセスしても、「Connection refused」になる。
 |
| 図 Linux4からLinux3へWebアクセス |
その21
Linux3に適用されるゾーンの確認。デフォルトゾーンのpublicが適用されている。
 |
| 図 適用されているゾーンの確認 |
ゾーンdropを恒久的に適用。
 |
| 図 ゾーンdropをインタフェースeth0に恒久的に適用 |
あくまでも設定ファイルが変更されるだけで、稼働中のF/Wには反映されない。
 |
| 図 適用されているゾーンはpublicのまま |
その22
設定ファイル再読み込み。
これで、ゾーンdropがインタフェースeth0に適用される。
 |
| 図 設定ファイル再読み込み |
その16でゾーンdropにサービスhttpを許可するように設定ファイルを変更したが、このタイミングで反映される。
 |
| 図 Linux4からLinux3のWebサーバーにアクセス |
その23
ゾーンdropからサービスhttpの許可を一時的に削除。
許可サービスの取り消しは--remove-serviceオプション。
 |
| 図 ゾーンから許可サービスを削除 |
その24
ゾーンdropにて許可されているサービスの確認。
〇--permanentオプションなし
その23でサービスhttpの削除が反映され、なにも許可されていない。
〇--permanentオプションあり
その23の実行内容は設定ファイルには反映されない。サービスhttpが出力される。
その25
設定ファイル再読み込み。
その23の変更は設定ファイルには反映されないため、サービスhttpは許可される。
よって、Linux4からWebアクセス可。
その26
ゾーンdropにて許可されているサービスの確認。
その25で設定ファイルを再読み込みしたため、設定ファイルの内容で稼働。
〇--permanentオプションなし
その23でサービスhttpの削除は、再読み込みでリセット。サービスhttpが許可されている。
〇--permanentオプションあり
設定ファイルどおり稼働。サービスhttpが出力される。
その27
ゾーンdropの許可サービスhttpを恒久的に削除。
--remove-serviceオプション+--permanentオプション。
設定ファイルが変更されるだけで、稼働中のF/Wには反映されず、その26で確認したとおり、サービスhttpは許可されている。
よって、Linux4からWebアクセス可。
その28
ゾーンdropにて許可されているサービスの確認。
その27で設定ファイルを変更したが、再読み込みはしていないため、設定ファイルと稼働中のF/Wでは異なる。
〇--permanentオプションなし
その27でサービスhttpの削除は稼働中のF/Wには反映されない。サービスhttpが許可されている。
〇--permanentオプションあり
その27の変更内容になる。サービスhttpは出力されない。
その29
ゾーンdropの設定ファイルの確認。
〇/usr/lib/firewalld/zones/drop.xml
OSのデフォルト設定ファイルで変更されない。許可サービスはなし。
〇/etc/firewalld/zones/drop.xml
その27の変更はこのファイルに反映される。許可サービスなし。
その30
設定ファイル再読み込み。
適用されるゾーンはdrop。(その21で設定)
ゾーンdropはサービスhttpを許可しない。(その27で設定)
よって、Linux4からのWebアクセスは破棄される。
Linux4は応答待ちのまま。
その31
ゾーンdropにて許可されているサービスの確認。
その27で設定ファイルを変更し、その30で再読み込みしたため、設定ファイルと稼働中のF/Wは同じ内容。
〇--permanentオプションなし
その27でのサービスhttpの削除がF/Wに反映される。サービスhttpは出力されない。
〇--permanentオプションあり
その27の変更内容になる。サービスhttpは出力されない。
firewalldのポイント
ポイントはどのゾーンが適用されいてるか。
また、許可サービスの変更は--permanentオプションの有無で稼働中のF/Wの動きが変わる。