12月23日(火)1、2コマ目
今日、やったこと
- [確認テスト 解説]ファイアウォール2
- [確認テスト]ファイアウォール3
- Webサーバー構築
今日のホワイトボード
[確認テスト 解説]ファイアウォール2
問1
firewall-cmd --list-all出力結果のうち、ICMPパケットの処理に影響を与えるのは
- target
- icmp-blocks
- icmp-block-inversion
の3つ。
|
| 図 ICMPパケットとtarget |
問2
firewall-cmd
--list-all出力結果のうち、ICMPパケットのタイプに関する設定は、icmp-blocks。
問3
firewall-cmd
--list-all出力結果のうち、icmp-blocksのパケットを許可/ブロックを決めるのはicmp-block-inversion。
問4
項目icmp-blocksだけを出力するには、--list-icmp-blocksオプション。
|
| 図 firewall-cmd --list-icmp-blocks |
問5
項目icmp-block-inversionだけを出力するには、--query-icmp-block-inversionオプション。
|
| 図 firewall-cmd --query-icmp-block-inversion |
問6
インターネット公開サーバーはICMPパケットを破棄したほうがいい。
なぜなら・・(問7につづく)
問7
サーバーが稼働していることが分かり、攻撃対象になるため。
仮想マシンを操作する
2種類の方法を使い分けていた。ごっちゃにならないように改めて説明。
〇Webアプリ Cockpit で操作
Cockpitは物理サーバー上で稼働するアプリケーション。
よって、WindowsPC->物理マシンのCockpit->仮想マシン。
|
| 図 WebアプリCockpitで仮想マシンを操作 |
Cockpitは仮想マシンを操作するためだけのアプリではなく、サーバーを操作するためのアプリ。サーバー上に仮想マシンがあれば、操作できる。
なお、Cockpitは仮想マシンにVNC接続して、GUIで操作できる。
便利だけど、授業では仮想マシンインストール、ネットワーク接続まで。
〇SSHで操作
仮想マシンで稼働するSSHサーバーを使って、仮想マシンを操作。
よって、WindowsPC->仮想マシン(のSSHサーバー)。
|
| 図 SSHで仮想マシンを操作 |
サーバー構築
サーバーを構築するには、
①サーバーアプリケーションソフトをインストール
②サーバーアプリケーションソフトの設定
を行う。
サーバーアプリケーションソフトのインストールは昔と今では異なる。
|
| 図 サーバーアプリケーションソフトのインストール 昔と今 |
今どきの流れに従い、インストールはパッケージを使う。
パッケージのインストールにはdnfコマンドを使う。
管理者権限でコマンドを実行する
サーバー構築の際、コマンドを実行時に管理者(rootユーザー)権限が必要なときがある。
①suコマンドでrootユーザーに変身
rootユーザーのパスワードが必要。この授業では使わない。
|
| 図 suコマンドで管理者(rootユーザー)に変身 |
②sudoコマンドで管理者権限でコマンド実行
rootユーザーのパスワードは不要。本人のパスワードのみ。
|
| 図 sudoコマンドで管理者権限でコマンド実行 |
ただし、sudoコマンドは、実行できるユーザーが限られる。
授業で使っているLinuxでは、wheelグループに属するユーザーならsudoコマンドを実行できる。
idコマンドでユーザー情報が取得できる。
所属グループも確認できる。
|
|
| 図 idコマンドでユーザー情報取得 |
サーバーアプリケーションのパッケージをダウンロードする
学校のネットワーク環境では、インターネットにアクセスする際、
- プロキシサーバーを経由する必要あり
- プロキシサーバーのサーバー証明書(公開鍵を含む)をインストール
を行う必要がある。
プロキシサーバーの設定
パッケージインストール用コマンドのdnfには、設定ファイル/etc/dnf/dnf.confがある。
この設定ファイルにて、dnfコマンドが利用するプロキシサーバーを設定する。
①dnf.confをバックアップ
dnf.conf.orgでコピー。
|
| 図 dnf.confのバックアップ作成 |
②dnf.conf編集前
末尾に
proxy=http://172.16.8.11:8080
を追加。
|
| 図 dnf.conf(編集前) |
③dnf.conf編集
CUI環境で使えるエディタは癖が強いviエディタ。<=失敗しやすいので使わない。
リダイレクトで書き込み。<=管理者権限必要。<= sudoコマンド利用。
sudoコマンド+リダイレクトコマンドのteeでdnf.confの末尾にプロキシサーバー設定を追加。
|
| 図 sudo+teeでdnf.confに追記 |
上記のコマンドではリダイレクトを使っている。
|
| 図 リダイレクトの役割 |
実行後、dnf.confは以下のとおり。
|
| 図 編集後のdnf.conf |
プロキシサーバーのサーバー証明書をインポート
経由するプロキシサーバーにて、ダウンロードされたファイルのチェックをしている。
この際、暗号化データは一旦、復号し、プロキシサーバーの秘密鍵で暗号化してリクエスト元に返信。
この暗号化されたデータを復号するには、プロキシサーバーの公開鍵が必要。
プロキシサーバーの公開鍵を含む、サーバー証明書をインポートする必要がある。
①プロキシサーバーのサーバー証明書を仮想マシンにコピー
TeraTermの"scp"でWindowsPCから仮想マシンへコピー。
※scpはSecureCoPyだと
まず、TeraTermの”ファイル”メニューにて、"SSH SCP"を選択。
|
| 図 TeraTermの”ファイル”メニューの”SSH SCP”を選択 |
表示されたウィンドウにて、
- ”From”にはWindowsPC上のプロキシサーバーのサーバー照明を指定
- "To"には仮想マシンのコピー先(info2025ユーザーのホームディレクトリ)を指定
|
| 図 From、Toを指定 |
指定後、送信ボタンクリック。
info2025ユーザーのホームディレクトリ(/home/info2025)に2つのサーバー証明書がコピーされる。
サーバー証明書は /etc/pki/ca-trust/source/anchors 以下に配備しなければならない。
|
| 図 サーバー証明書を移動させる |
③サーバー証明書を読み込み
管理者権限でupdate-ca-trustコマンド実行。
所定のディレクトリにあるサーバー証明書を読み込む。
|
|
| 図 サーバー証明書読み込み |
サーバーアプリケーションソフトダウンロード、インストール
dnfコマンドでWebサーバーアプリケーションソフトをダウンロード、インストール。
Webサーバーアプリケーションソフトのパッケージ名は httpd 。
なお、パッケージのインストールには管理者権限が必要 <= sudoコマンド
|
| 図 dnf install httpdでダウンロード、インストール |
Webサーバーアプリケーション起動
サーバーアプリケーションはバックグランドでプロセスを起動してクライアントからのリクエストを待つ。
プロセスの起動、停止等はsystemdが管理している。
systemdの操作は、systemctlコマンドで行う。
①プロセス起動中?
Webサーバーアプリケーションのサービスhttpd.serviceが起動中か確認。
|
| 図 systemctl status httpd.serviceで起動中か確認 |
出力結果から、プロセスは起動していない。
②プロセス起動
systemctlコマンドのstartオプションで起動。
出力結果から、httpは許可されていない。
|
| 図 systemctl start httpd.serviceでプロセス起動 |
ファイアウォールでhttpを許可
Webアプリケーションのプロセスを起動後、クライアントからサーバーにアクセスしても、なにも表示されない。
F/Wでhttpのパケットがブロックされていると思われる。
F/W(=firewalld)はfirewall-cmdコマンドで操作する。
①F/W確認
firewall-cmd --list-allで確認。
|
| 図 firewall-cmd --list-allで確認 |
②F/Wでhttpを許可する
firewall-cmd --add-service=httpでhttpのパケットを許可する。
|
| 図 firewall-cmd --add-service=httpでhttpパケットを許可 |
クライアントからアクセス
WindowsPCのWebブラウザにて、
http://仮想マシンのIPアドレス
でアクセスすると、仮想マシンからレスポンスが返ってくる。
|
| 図 表示されたWebページ |
以上でとりあえずWebサーバーとして稼働させることができる。
次回は
年明け。
おそらく忘れていると思われるので、おさらいのためにもう一度仮想マシン作成から。






















