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オプションで起動
図 systemctl start httpd.serviceでプロセス起動


ファイアウォールでhttpを許可

Webアプリケーションのプロセスを起動後、クライアントからサーバーにアクセスしても、なにも表示されない。
F/Wでhttpのパケットがブロックされていると思われる。
F/W(=firewalld)はfirewall-cmdコマンドで操作する

①F/W確認

firewall-cmd --list-allで確認。
図 firewall-cmd --list-allで確認
出力結果から、httpは許可されていない。

②F/Wでhttpを許可する

firewall-cmd --add-service=httpでhttpのパケットを許可する。
図 firewall-cmd --add-service=httpでhttpパケットを許可

クライアントからアクセス

WindowsPCのWebブラウザにて、
 http://仮想マシンのIPアドレス
でアクセスすると、仮想マシンからレスポンスが返ってくる。
図 表示されたWebページ

以上でとりあえずWebサーバーとして稼働させることができる。

次回は

年明け。
おそらく忘れていると思われるので、おさらいのためにもう一度仮想マシン作成から。






























このブログの人気の投稿

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

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