LinuC-1 - 101試験 - 1.01:Linuxのインストールと仮想マシン・コンテナの利用 - 1.01.1 Linuxのインストール、起動、接続、切断と停止

Last Update : August 21 2022 17:47:19

     

a. レガシーBIOSモードとUEFIモード

OSを起動するときにレガシーBIOSモードで起動するか、UEFIで起動するか2通りの方法があります。

BIOSは「Basic Input/Output System」の略で、CPUやメモリ、キーボード、マウスなどPCの大半の機能を制御しています。PCを起動したとき最初に作動するのがBIOSで、OSやソフトウェアとの橋渡しをする役割を担っています。

UEFIはBIOSの役目を肩代わりするために考えられました。BIOSは1980年代から長く使用されているインターフェースであり、CPUの進化に伴い不都合が生じる場面が見られるようになっています。そのような問題点をクリアする必要が生じたため、UEFIという規格が導入されました。

BIOSとUEFIの違いは、いくつかあります。そのひとつがMBRとGPTです。
HDDやSSDのディスクの先頭には、MBRかGPTというディスクのパーティション形式を規定する領域があります。
BIOSでインストールすると MBR、UEFIでインストールすると GPTになります。システムドライブのパーティション形式は必ずこのようになります。前者をBIOSブート、後者をUEFIブートともいいます。
言い換えれば、現在の起動ドライブが、MBRならBIOS、GPTならUEFIということも分かります。
Windowsのディスクの管理などでMBRかGPTを確認するか、パーティションに EFIシステムパーティションがあれば UEFIです。


BIOS 】(Basic Input/Output System)

BIOSはマザーボード上のROMに内蔵されているプログラムで、 パソコンの電源が入って最初に動く、主にハードウェアを制御するプログラムのこと。 キーボード、マウス、CPU、ハードディスク(HDD)などのハードウェア・デバイスを初期化・制御して、OS起動へつなげていく役目を担います。
OSが起動する前に、BIOSの設定を変更することで、起動時のハードウェアの読み込みの順序を変更したり、搭載されているハードウェアを使わせたくない場合等に、意図的に無効化したりすることができます。、

BIOSの機能
  • CPUや周辺機器の診断
  • CPUや周辺機器の有効/無効化
  • 起動デバイスの優先順位の設定
  • 内蔵ハードディスク(HDD)や光学ドライブの設定
  • ブートモード(Legacy BIOS/UEIF)の切り替え
  • 日付・時刻の設定

BIOSは設定されているブート可能なデバイス(ブート・デバイス)の条件に従い,ブート・デバイスが検索される。ブート・デバイスが発見されると,そのデバイスからブート処理を試みる。

起動モードの切り替えは、BIOS設定で行う。

BIOS UEFI


レガシーBIOSモード 】(Legacy Basic Input/Output System)

レガシーBIOSモードの場合、ブート・デバイスがハード・ディスク装置ならMBR(Master Boot Record)と呼ばれる領域に書き込まれたプログラムが読み込まれる。読み込まれるプログラムとは,Linuxなら「GNU GRUB(GRand Unified Bootloader)」や「LILO(LInux LOader)」など,Linuxカーネルを起動できる機能を備えたブート・ローダーが読み込まれOSが起動される。


UEFIモード 】(Unified Extensible Firmware Interface)

UEFIブートはUEFIファームウェアを使用します。 EFIサービスパーティションと呼ばれる有効なブートボリュームのリストを保持しています。すべてのハードウェアが正しく機能しているかどうかをチェックするPOST(Power On Self-Test)の間、UEFIファームウェアはシステムに接続されているすべての起動可能なストレージデバイスをスキャンして有効なGUIDパーティションテーブル(GPT)を探します。ファームウェア自体がGPTをチェックして、起動元のEFIパーティションを見つけます。




b. Linuxのインストール

Linuxのインストールには、いくつかの方法があれます。
ダウンロードしたLinuxOSをDVDやUSBメモリなどにコピーしそこからインストールする方法やLinuxOSをインストールするためだけのOSをインストールしたメディアから起動し、LinuxOSはネットワークからダウンロードしながらインストールする方法などがあります。
インストール自体はウィザード形式になっているので必要な項目を選択・入力することで簡単にインストールできます。
また、最近ではDockerを使える環境では、DockerイメージファイルをダウンロードすることでLinuxを使える環境になります。



c. インストールパッケージの選択

インストールするパッケージを選択する画面では、大体のディストリビューションでは、カテゴライズされていて、1つのカテゴリを選択するとその役割に必要なソフトウェアがまとめてインストールされるようになります。
CentOSの例だと
・サーバー(GUI)
・サーバー
・最小限のインストール
・ワークステーション
・カスタムオペレーティングシステム
・仮想化ホスト
に分かれています。
また、必要なソフトウェアを追加で個別に選択することもできます。



d. Linux の起動と停止

1.システムの再起動/シャットダウン [ reboot ] [ shutdown ] [ halt ] [ poweroff ]

システムを再起動するには、reboot もしくは、shutdown -r now コマンドを使用します。なお、一般ユーザーにはシステムを再起動、もしくは、シャットダウンする権限はありません。
シャットダウンコマンドが投入されると、それ以後はユーザーがログインできなくなります。

システムをシャットダウンするには、shutdown -h now もしくは、halt 又は、poweroff を使用します。

● shutdown コマンド構文
  shutdown [オプション] 時間 [メッセージ]

● shutdown オプション
 -h システムをシャットダウンする
 -r システムを再起動する
 -f fsck (ファイルシステムチェック)を行わずに、より早くリブートする
 -F 再起動時に強制的に fsck を行う
 -s シングルユーザーモードで再起動する
 -k 実際にシャットダウンはせず、警告メッセージをユーザーに通知する
 -c 現在実行中のシャットダウン処理をキャンセルする
 now 直ちに再起動/シャットダウンを行う
 HH:MM HH時MM分に実行する(shutdown -h 23:00)
 +MIN MIN分後に実行する

● すぐにシャットダウンするには
# halt
# shutdown -h now
# poweroff

● 午後9時にシャットダウンするには
# shutdown -h 22:00 "午後9時ちょうどにシステムは停止します。"

メッセージが設定されていると、シャットダウン時間が近づくにつれメッセージが頻繁に表示されるようになります。

● すぐに再起動するには
# reboot
# shutdown -r now

● ログイン中のユーザに「システムの停止」を至急通知したい場合
# wall
システムメンテナンスのためシステムを停止します。
Ctrl+D ←メッセージの送信
または、
# echo -e "システムメンテナンスのためシステムを停止します。" | wall


e. ssh (Secure Shell) でLinuxに接続

起動中のLinuxにリモートからsshで接続できるようにします。ただし、セキュリティを考慮して、公開鍵と秘密鍵を使って接続するようにします。
接続するサーバー側には、sshdが起動されていること。

1. Keyの作成

sshでログインするユーザーの鍵ペアを作成するため、そのユーザーでログインしておく。
RSAで4096ビットの鍵を作成するため、以下のコマンドを入れる。

[user01@host1 ~]$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/user01/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):   ←秘密鍵用パスワードを入力
Enter same passphrase again:     ←もう一度パスワードを入力
Your identification has been saved in /user01/.ssh/id_rsa.  ←秘密鍵
Your public key has been saved in /user01/.ssh/id_rsa.pub.  ←公開鍵
The key fingerprint is:
6e:2a:f1:15:f5:47:7d:e5:95:19:d1:b6:58:f5:27:3b user01@host1.alpha.local ←フィンガープリント
The key's randomart image is:
+--[ RSA 4096]----+
|               +%|
|          .   .=B|
|         . . .+.*|
|        .   ...+.|
|        S.   .E  |
|    .  ..      . |
|     o .o        |
|    . .o         |
|     ..          |
+-----------------+
[user01@host1 ~]$

2. Keyの登録

Keyの作成でユーザーのホームディレクトリの配下に.sshのディレクトリがパーミッション 700で作成されている。
.sshのディレクトリ内に公開鍵のid_rsa.pubができているので、この鍵を鍵チェーン(鍵束ファイル)のauthorized_keysに登録する。
登録したら、authorized_keysのパーミッションを600に変更しておく。

[user01@host1 ~]$ cd ~/.ssh   ←.sshディレクトリへ移動
[user01@host1 .ssh]$ cat id_rsa.pub >> authorized_keys   ←公開鍵をauthorized_keysに登録
[user01@host1 .ssh]$ chmod 600 authorized_keys  ←authorized_keysのパーミッションを600に

公開鍵のid_rsa.pubは、authorized_keysに登録したので削除します。

[user01@host1 .ssh]$ rm -f id_rsa.pub

リモート側に秘密鍵を移動します。.sshディレクトリにあるid_rsaファイルをUSBメモリなどにコピーして、.sshディレクトリのid_rsaは削除します。

3. パスワード認証方式の無効

公開鍵認証方式で接続できることが確認できたら、パスワード認証を無効にしてセキュリティーを高める。
また、ssh から rootではログインできないようにする。 /etc/ssh/sshd_configを修正する。
パスワード認証を無効にするには、PasswordAuthentication を no にする。 rootのログインを無効にするには、PermitRootLogin を no にする。

[user01@host1 .ssh]$ sudo vi /etc/ssh/sshd_config
・・・
# Authentication:

#LoginGraceTime 2m
PermitRootLogin no    ←noにする
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
・・・
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication no    ←noにする

# Change to no to disable s/key passwords
・・・

セーブしたら、sshdを再起動する。

[user01@host1 .ssh]$ sudo service ssh restart

4. リモートからの接続

● Windows 10のコマンドブロンプ(CMD)から接続
 ssh ユーザーID@ホスト名 -i 秘密鍵名

C:¥> ssh user01@host1.local -i ¥Keys¥id_rsa
The authenticity of host 'host1.alpha.local (192.168.1.69)' can't be established.
RSA key fingerprint is SHA256:Ah17KqJxCHEMsDg1LDIJwE90wyfzGFh1DTVIECsd0D4. ←サーバーのホスト鍵のフィンガープリント
Are you sure you want to continue connecting (yes/no)? ←サーバーに接続した1度だけ表示される。yesを入力すると次からは表示されない。

※ 秘密鍵はログインユーザフォルダのDocuments配下に置く必要がある。
ログインユーザー・・・Windowsの現在のユーザー
別のディレクトリに置いて、フルパスで指定すれば、接続できるがエラーメッセージが表示される。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@  WARNING: UNPROTECTED PRIVATE KEY FILE!   @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '¥¥Keys¥¥id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "¥¥Keys¥¥id_rsa": bad permissions
user01@host1.local's password:

● Linuxの端末から接続
 ssh -i 秘密鍵のフルパス ユーザーID@ホスト名 -i 秘密鍵のフルパス

※ 秘密鍵のファイル名だけを書いた場合は、ユーザーのホームディレクトリ配下の.sshディレクトリから読み込む

[user01@host1 ~]$ ssh -i id_rsa user01@host1.local
user01@host1.local's password:   ←秘密鍵のパスワードを入力する。

● Teratermから接続
1. Teratermをダブルクリックして、起動する。
 接続先の入力画面になるので、接続先のホスト名かIPアドレスを入力する。
 サービスはSSHにチェックを入れる。

Teratermログイン1

2. 最初の1回目の接続の時のみ、セキュリティ警告が表示されるので、「サーバ側のホスト鍵指紋」欄のフィンガープリントが接続先のフィンガープリントか確認して「続行」をクリックする。

Teratermログイン2

3. SSH認証の画面になるので、ユーザー名とパスワードを入力する。(パスワードは秘密鍵のパスワード)
 「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックを入れ、「秘密鍵」をクリックして、秘密鍵ファイルを選択する。

Teratermログイン3


5. sshの接続を切る

sshの接続を切断するには、logout 又は exit を入力してEnterを押すか、logoutのショートカットキーのCtrl+D キーを押します。


6. 接続先のなりすましを防ぐ仕組み

sshで接続するクライアントは、正しいサーバーに接続する必要があります。sshには正しいサーバーに接続する仕組みがあります。
上記で作成した鍵は、クライアント側のユーザーを証明するためのものです。
サーバー側にもサーバーを証明するための鍵があります。サーバー用のホスト秘密鍵とホスト公開鍵です。
クライアントはサーバーに最初に接続したとき、本当にこのサーバーでよいか確認されます。そこでハイと答えると、サーバーのホスト公開鍵を自分の ~/.ssh/known_hosts ファイルに保存します。
ここには特定の IPアドレス (とホスト名) をもつサーバのホスト公開鍵が登録されています。
ホスト秘密鍵はサーバマシン内のディスクに格納されており、 ネットワーク上に持ち出されることはありません。
次回以降、クライアントはサーバに接続した瞬間に、まず暗号化された通信を介して そのサーバのホスト鍵 (host key) を確認し、それが本当に自分のログインしたいサーバであるかどうか確かめます。
クライアントは、まずこの known_hosts ファイル内に登録されているホスト公開鍵と、サーバから送られてくるホスト公開鍵を照合し、サーバが実際にこのホスト公開鍵に対応するホスト秘密鍵をもっているかどうか確認します。この確認には公開鍵暗号技術が使われており、サーバは実際のホスト秘密鍵をネットワーク上に送信することなく、ホスト秘密鍵の所有をクライアント側に証明できるようになっています。



z. 出題範囲概要

概要 :
  • Linux をDVDやISOイメージファイルを用いて物理マシンや仮想マシンにインストールできる。
  • 物理マシンや仮想マシンのLinux の起動と停止ができる。

詳細 :
  • UEFI/BIOS の設定でブートメディアの優先順位を変更できる。
  • 仕様書に従って、Linux のインストールを完了できる。
    package groupの選定, timezone, password, GUI/CUI
  • Linux システムの起動と停止ができる。
    shutdown, reboot, halt
  • Linux システムに鍵を使って接続し、正常に切断できる。
    ssh
    ~/.ssh/authorized_keys, ~/.ssh/known_hosts
    ~/.ssh/id_rsa と id_rsa.pub
    logout, exit, ^D

  [ 例題 ] 


         

    www.it-shikaku.jp