独り言

プログラミングの講師をしています。新人研修で扱う技術の解説と個人の技術メモ、技術書の紹介など

【Linux】Linux入門(環境構築編)

ここではLinuxの環境を動かしながら学べるように、環境構築の方法を簡単に解説。

学習用でLinuxOSを動かすには、仮想環境を作るのが便利です。

VirtualBoxインストール

仮想化ソフト Oracle VirtualBoxをダウンロードしてインストールします。
ご自身のOSの環境に合わせてダウンロードしてください。
https://www.virtualbox.org/wiki/Downloads

VMWareの製品でも可能ですが、ここではVirtualBoxを使用します。

Linuxダウンロード

次にLinuxのダウンロードです。
仮想環境を作成するにはisoファイルと呼ばれるOSのイメージファイルが必要です。
ここではLinuxディストリビューションの中でも広く使用されているCentOSを使います。
下記のサイトからisoファイルをダウンロードします。
https://www.centos.org/download/

バージョンやCPUの規格のタイプなどを選ぶ必要があります。
よく分からなければとりあえず最新バージョンのx86_64を選択。
mirrorサイトが色々出てきますが、とりあえずどのサイトでも大丈夫。
ダウンロードできるファイルが色々あると思いますが、minimalのisoファイルをダウンロード。
CentOS-8.2.2004-x86_64-minimal.iso」こんな感じのやつ。
バージョン番号はダウンロードするタイミングによって変わっている可能性あり。

仮想マシン作成

  1. VirtualBoxを起動
  2. メニューから「新規」ボタン押下
  3. ダイアログが表示されるので必要項目を入力して「次へ」を押下
    名前:任意(CentOSとかにするとタイプとバージョンが勝手に入力される)
    マシンフォルダー:任意(デフォルトで大丈夫)
    タイプ:Linux
    バージョン:Red Hat(64 bit)
  4. メモリサイズ、ハードディスクを選択して仮想マシンを作成
    サイズなどは環境に合わせて適当に。
    基本デフォルトで問題ないかと。
  5. VitrualBoxの管理画面に仮想マシンが出来上がる
  6. できた仮想マシンを選択して「設定」を押下
  7. ストレージを選択
  8. コントローラ:IDEの中のディスク(空)を選択
  9. 光学ドライブ」にダウンロードしたisoファイルを指定する
  10. 「OK」を押下して設定を閉じる

Linuxインストール

  1. VirtualBoxの管理画面で作成された仮想マシンを選択して「起動」ボタン押下
  2. 別ウィンドウでLinuxの画面が開く
  3. 指示に従ってインストールを進める
    言語の設定、ディスクの設定、ユーザーの設定などがある。
    日本語を選択してディスク選択して、ユーザーの設定を行えばあとは勝手にインストールされる。
    ユーザーの設定はrootユーザーのパスワードを設定し、必要であれば一般ユーザーも作成してパスワードを設定しておく。
  4. インストールが終わった後に再起動することでLinuxが起動する
    ※この時、isoファイルを光化学ドライブに設定したままにしておくと、再度インストール画面が開いてしまうので注意。
    再起動前に設定画面から外しておく。
  5. 起動したら、インストール時に設定したユーザー名とパスワードを入力することで操作可能となる
    一般ユーザーを作成していない場合はrootユーザーでログイン。
    一般ユーザーも作成していた場合はそのユーザーでもログインできる。 通常はセキュリティなどを考慮して一般ユーザーを使う場合が多いが、権限の問題で操作が限定されたりもするので、勉強用であれば最初の方rootでログインしておいた方が無難。

外部から接続するための設定

インストールが完了すればVirtualBoxの画面からLinuxを操作することが可能です。
しかし、仮想マシンを操作している間はホストOS(VirtualBoxをインストールしているWindowsMacなど)を操作することができません。
毎回ホストOSと仮想マシンの操作を切り替えるのは面倒ですし、ホストOS側でコピーした内容を仮想マシン上で貼り付けることもできません。
そのため、ホストOS側からssh接続をしてホストOS側で操作したほうが便利です。
そのための設定をしていきます。

CentOSのネットワークの有効化

Linuxをインストールした段階ではまだネットワークはつながらない状態になっているはずです。
ネットワーク接続ができるようにするには有効化する必要があります。

以下のファイルを開きます。
vi /etc/sysconfig/network-scripts/ifcfg-enp03
などとすると開きます。
開いた後はiを押すと中身が修正できるようになります。
そして最後の行あたりにある
ONBOOT=no

ONBOOT = yes
に変更して保存します。
保存は「:wq」とすると保存できます。

ファイルを変更した後はネットワークを再起動します。
ネットワークを再起動するには
systemctl restart NetworkManager
を入力して実行します。

VirtualBox側の設定

VirtualBoxでも一つ設定を追加します。
仮想マシンの設定を開き、ネットワークを選択します。
アダプター1(割り当て:NAT)を選択し、「高度」を開き、ポートフォワーディングの設定を開きます。
名前:sshプロトコルTCP、ホストポート:2222、ゲストポート:22、IPは空白
でルールを追加します。

ホストOS型の設定

Mac OSの場合、デフォルトでsshコマンドが使用できるので、設定は不要です。
ターミナルを起動し、ssh root@localhost -p 2222
と入力し、rootユーザーのパスワードを入力するとログインができます。

Windowsの場合はssh機能を有効にする必要があります。
Windowsの設定から「オプション機能の管理」を開いて、「OpenSSH クライアント」の機能を有効にします。
有効にするとsshコマンドが使えるので、コマンドプロンプト、またはPowerShellを起動して
ssh root@localhost -p 2222
と入力してrootユーザーのパスワードを入力するとログインができます。

ログインが成功すれば、ホストOS側からのコマンドでLinuxを操作することが可能になります。

コマンド入力時の2222はポートフォワーディングで設定したポート番号です。
2222である必要はありません。
適当に使われていないであろうポート番号を適当にしてください。
rootは接続する際のユーザー名です。
Linuxに作成した一般ユーザーなどを使う場合はrootのユーザー名を変更してください。

用語解説

  • ssh
    通信を暗号化して遠隔ログインができる通信プロトコル
    UNIX系のOS(Mac OSLinux)では標準でsshコマンドがあり、それを使うことで遠隔ログインができる。
    Windowsの場合、Tera TermやPuTTYと呼ばれる遠隔ログインのフリーのソフトがあるが、Windows標準でも機能の拡張からsshコマンドが使えるようになった。

  • ポート番号
    通信プロトコルを特定するための番号。
    0~65535までの数値を使用することができるが、0~1023まではウェルノウンポートと呼ばれ、予約されている。
    sshは22番。

  • NAT
    Network Address Translation
    プライベートIPアドレスグローバルIPアドレスを変換する機能のこと。
    仮想化ソフトでは、ネットワークの設定でNATを利用すると、ホストOSのIPアドレスを共有して使用することができる。

  • ポートフォワーディング
    仮想化ソフトでNATの機能を利用すると、ホストOSと仮想マシンIPアドレスが同じになる。
    その場合、仮想マシンssh接続しようとしても、何もしなければホストOSのポート番号22に接続しようとしてしまう。
    そこで、ポート番号で2222を指定した場合は、仮想マシン側のポート番号22に接続されるように設定したい。
    ポートフォワーディングはこのようにホストOSへの特定のリクエストを仮想マシン側に転送するための機能。