10月28日(火)1、2コマ目
今日、やったこと
- [やってみよう]ネットワーク 解説
- ファイアウォール
今日のホワイトボード
[やってみよう]ネットワーク 解説
前回はその1~その20までを解説。
その21から解説をするまえに、その20終了時の状態に設定。
その20終了時の状態に
①コネクションcon1作成
まず、パターン2でコネクションcon1を作成。
| 図 コネクションcon1作成 |
②コネクションcon1有効化
作成したコネクションcon1を有効化して、デバイスに反映させる。
![]() |
| 図 コネクションcon1有効化 |
③IPアドレス変更
ipコマンドでIPアドレスを変更。
まずは、変更前の状態を確認。コネクションcon1の設定になっている。
![]() |
| 図 IPアドレス変更前 |
ipコマンドで新IPアドレスを追加。
ip addr add 172.17.0.50/24 dev eth0
追加後、確認。コネクションcon1での設定値(172.17.0.200/24)と新たに追加した172.17.0.50/24の両方が設定されている。
![]() |
| 図 新IPアドレス追加後(確認) |
ipコマンドで旧IPアドレスを削除、確認。
![]() |
| 図 旧IPアドレス削除、確認 |
nmcliコマンドでもIPアドレスを確認する。
まず、設定ファイル上の値(項目名がipv4.xxx)。
![]() |
| 図 nmcliコマンドで確認(設定ファイル上の値) |
コネクションcon1が紐づくデバイスに設定されている値(項目名がIP4.XXX)。
![]() |
| 図 nmcliコマンドで確認(デバイス設定値) |
以上でその20終了時の状態に。
その21
コネクションcon2を追加。
| 図 コネクションcon2新規作成 |
コネクションcon2を追加すると、設定ファイルが
/etc/sysconfig/network-scripts/ifcfg-con2
に作成される。
その22
コネクションcon2をデバイスeth0に反映させたい。
まず、紐づくデバイスeth0はコネクションcon1が有効化されているので、コネクションcon1を無効化する。
コネクションcon1を無効化すると、デバイスeth0とコネクションcon2が紐づき、デバイスeth0にはコネクションcon2の設定が反映される。
![]() |
| 図 コネクションcon2をデバイスに反映させるには |
![]() |
| 図 コネクション一覧 |
![]() |
| 図 コネクションcon1を無効化、確認 |
その23
ipコマンドでデバイスeth0のIPアドレス等を確認。
現在デイバスeth0に設定されているIPアドレス等が確認できる。
![]() |
| 図 IPアドレス、サブネットマスク 確認 |
デフォルトゲートウェイを確認。
デフォルトゲートウェイは同一ネットワーク以外に送信する際に送る宛先。
基本的に最寄りのルーター。
ルーティングテーブルの default の行に注目。
![]() |
| 図 デフォルトゲートウェイ 確認 |
その24
nmcliコマンドでコネクションcon2を確認。
設定ファイル上の値(項目名が、ipv4.xxx)。
![]() |
| 図 コネクションcon2確認(項目名:ipv4.xxx) |
紐づくデバイスに設定されている値(項目名がIP4.XXX)。
![]() |
| 図 コネクションcon2確認(項目名:IP4.XXX) |
ファイアウォールは
この授業で扱うのは、Linuxに組み込まれているファイアウォール。
専用機のファイアウォールは扱わない。
ただし、基本的な考え方は同じ。
![]() |
| 図 ファイアウォール |
この授業で扱うファイアウォール
Linuxに組み込まれているファイアウォール。
実体はfirewalldと呼ばれる、バックグランドで動き続けるデーモンプロセス。
firewall-cmdコマンドで操作する。
![]() |
| 図 firewalldとfirewall-cmdコマンド |
systemdとsystemctlコマンドの関係と同じ。
実習環境
2つのLinuxコンテナを使う。
![]() |
| 図 実習環境 |
ゾーン
ゾーンとはファイアウォールの設定テンプレート。
Linuxマシンが設置される環境(LAN?DMZ?)や利用目的ごとに、あらかじめある程度まで設定されたテンプレート。
ゾーンを選択することで、楽にファイアウォールの設定ができる。
![]() |
| 図 ゾーン |
あらかじめ用意されているゾーンを確認。
〇ゾーン一覧
〇アクティブなゾーン、デフォルトゾーン
サービスの一覧を確認。
Webアクセス用のサービスhttpの設定ファイル/usr/lib/firewalld/services/http.xmlは下図のようになっている。
Linux3のファイアウォールで許可されているサービスを確認。
curlコマンドでLinux4からLinux3のWebサーバーにアクセス。ファイアウォールで拒否されている。
サービスhttpを許可するように変更。
再度、Linux4からcurlコマンドでLinux3のWebサーバーにアクセス。
ゾーン設定ファイルは2か所にあるが、
/usr/lib/firewalld/zones以下はOSが提供する設定ファイル。編集しない。
![]() |
| 図 ゾーン一覧出力 |
〇ゾーン詳細一覧
![]() |
| 図 ゾーンの詳細一覧 |
〇アクティブなゾーン、デフォルトゾーン
現在、アクティブになっているゾーンの確認。
また、アクティブなゾーンがない場合に適用されるデフォルトゾーンの確認。
![]() |
| 図 アクティブなゾーン、デフォルト適用されるゾーンの確認 |
サービス
ファイアウォールのルールのうち、アプリケーションの特定はTCP、UDPのポート番号を使う。
たとえば、Webの場合は、TCPヘッダの送信元・宛先ポート番号が80番になっているパケット。
あらかじめアプリケーションごとに、ポート番号等を定義したのがサービス。
このサービスごとに許可、拒否を設定する。
![]() |
| 図 サービス |
サービスの一覧を確認。
![]() |
| 図 サービス一覧確認 |
サービスの設定ファイル
サービスの設定ファイルは
/usr/lib/firewalld/services
/etc/firewalld/services
以下にある。
/usr/libはOSが提供する設定ファイル。このファイルは編集をしない。
もし、既存のサービスを変更、新たにサービスを追加するには、/etc以下に作成する。
![]() |
| 図 サービス設定ファイル(/usr/lib/firewalld/services以下) |
Webアクセス用のサービスhttpの設定ファイル/usr/lib/firewalld/services/http.xmlは下図のようになっている。
![]() |
| 図 サービスhttpの設定ファイルhttp.xml |
Webアクセスを許可する
下図のように、Linux3で稼働するWebサーバーに、Linux4からアクセスする。
![]() |
| 図 Webアクセスを許可する |
Linux3のファイアウォールで許可されているサービスを確認。
![]() |
| 図 許可されているサービスを確認 |
サービスhttpは許可されていないため、ファイウォールで拒否されると思われる。
curlコマンドでLinux4からLinux3のWebサーバーにアクセス。ファイアウォールで拒否されている。
![]() |
| 図 Linux4からLinux3のWebサーバーにアクセス |
サービスhttpを許可するように変更。
![]() |
| 図 サービスhttpを許可 |
再度、Linux4からcurlコマンドでLinux3のWebサーバーにアクセス。
![]() |
| 図 Linux4からLinux3のWebサーバーにアクセス |
今度はアクセスに成功し、HTMLが返信されている。
なお、サービスと同じように /etc/firewalld/zones 以下にもゾーンの設定ファイルがある。
ゾーンの設定
デフォルトゾーンは public になっている。
ゾーンpublicの設定ファイルは /usr/lib/firewalld/zones/public.xml 。
![]() |
| 図 ゾーンpublicの設定、設定ファイル |
なお、サービスと同じように /etc/firewalld/zones 以下にもゾーンの設定ファイルがある。
![]() |
| 図 ゾーンの設定ファイル置き場 /etc/firewalld/zonesディレクトリ |
ゾーン設定ファイルは2か所にあるが、
/usr/lib/firewalld/zones以下はOSが提供する設定ファイル。編集しない。
/etc/firewalld/zones以下はゾーンを追加、変更した設定ファイル置き場。
設定後、設定ファイルを確認。
と使い分けている。
設定ファイルを変更するために、--permanentオプション付きで、デフォルトゾーンにサービスhttpを追加する。
![]() |
| 図 デフォルトゾーンにサービスhttpを追加 |
設定後、設定ファイルを確認。
〇/usr/lib/firewalld/zones/public.xml
サービスhttpが追加されている。
![]() |
| 図 ゾーン設定ファイル/etc/firewalld/zones/public.xml |
次回は
Linuxのネットワークの確認テストをします。
ファイアウォールのつづき。

































