RHELで始めるサーバー構築:Red Hat Enterprise Linuxによるサーバー構築ガイド

RHELで始めるサーバー構築:Red Hat Enterprise Linuxによるサーバー構築ガイド

Red Hat Enterprise Linux (RHEL) は、エンタープライズ環境で広く利用されている、信頼性と安定性に優れた Linux ディストリビューションです。本ガイドでは、RHEL を用いたサーバー構築の基礎から応用までを網羅し、初めて RHEL でサーバーを構築する方でもスムーズに作業を進められるように、詳細な手順と解説を提供します。

1. RHEL を選択する理由:

RHEL は、他の Linux ディストリビューションと比較して、以下の点で優れています。

  • 安定性と信頼性: RHEL は、長期間のサポートと堅牢なテストプロセスを経て提供されるため、安定性と信頼性に優れています。特に、エンタープライズ環境では、システムのダウンタイムは大きな損失に繋がるため、この点は非常に重要です。
  • セキュリティ: RHEL は、セキュリティアップデートと脆弱性対応が迅速かつ継続的に提供されます。また、SELinux (Security-Enhanced Linux) などのセキュリティ機能がデフォルトで有効化されており、高度なセキュリティ環境を構築できます。
  • 認定ハードウェアとソフトウェア: RHEL は、多くのハードウェアベンダーやソフトウェアベンダーによって認定されており、互換性と動作が保証されています。これにより、ハードウェアやソフトウェアの選択肢が広がり、安心してシステムを構築できます。
  • Red Hat サポート: RHEL は、Red Hat 社による商用サポートを受けることができます。問題発生時には、専門家のサポートを受けることで、迅速な問題解決が可能です。
  • エコシステム: RHEL は、Red Hat が提供する様々な製品やサービスと連携できます。これにより、クラウド環境やコンテナ環境など、最新の技術を活用したサーバー構築が容易になります。

2. RHEL の入手とインストール:

RHEL は、Red Hat 社のウェブサイトから入手できます。評価版をダウンロードして試用することも可能です。正式な利用には、Red Hat サブスクリプションが必要です。サブスクリプションの種類によって、サポートレベルや利用できる機能が異なります。

2.1. RHEL のダウンロード:

Red Hat Customer Portal (access.redhat.com) にログインし、必要な RHEL のバージョンとアーキテクチャを選択してダウンロードします。通常、ISO イメージファイル形式で提供されます。

2.2. インストールメディアの作成:

ダウンロードした ISO イメージファイルを、DVD メディアまたは USB メモリに書き込みます。DVD メディアに書き込む場合は、DVD ライティングソフトウェアを使用します。USB メモリに書き込む場合は、dd コマンドや Rufus などのツールを使用します。

2.3. RHEL のインストール:

作成したインストールメディアからサーバーを起動します。BIOS または UEFI の設定で、起動デバイスを DVD ドライブまたは USB メモリに変更する必要がある場合があります。

2.4. インストーラの使用:

RHEL インストーラが起動したら、画面の指示に従ってインストールを進めます。

  • 言語の選択: 最初に、インストーラで使用する言語を選択します。
  • キーボードレイアウトの選択: 使用するキーボードレイアウトを選択します。
  • インストールの種類: 通常は、「サーバー」または「最小限のインストール」を選択します。「サーバー(GUI 使用)」を選択すると、グラフィカルなデスクトップ環境がインストールされますが、サーバー用途ではリソースを消費するため、推奨されません。
  • インストール先: RHEL をインストールするディスクを選択します。ディスクが複数ある場合は、適切なディスクを選択してください。
  • パーティションの設定: パーティションを自動構成することも、手動で構成することもできます。手動で構成する場合は、少なくとも以下のパーティションが必要です。
    • /: ルートパーティション (通常は 20GB 以上)
    • /boot: ブートパーティション (通常は 1GB 以上)
    • swap: スワップパーティション (通常は RAM 容量の 2 倍程度)
    • 必要に応じて、/home, /var, /tmp などのパーティションを作成することもできます。
  • ネットワークの設定: ネットワークインターフェースの設定を行います。IP アドレス、ネットマスク、ゲートウェイ、DNS サーバーなどを設定します。
  • ユーザーアカウントの作成: root ユーザーのパスワードを設定します。また、通常使用するユーザーアカウントも作成します。
  • インストールの開始: 設定が完了したら、インストールの開始をクリックします。

2.5. インストール後の設定:

インストールが完了したら、サーバーを再起動します。再起動後、作成したユーザーアカウントでログインします。

  • ネットワーク設定の確認: ip addr コマンドなどで、ネットワーク設定が正しく行われているかを確認します。
  • パッケージのアップデート: yum update コマンドで、インストールされているパッケージを最新の状態にアップデートします。
  • タイムゾーンの設定: timedatectl set-timezone <タイムゾーン> コマンドで、タイムゾーンを設定します。(例:timedatectl set-timezone Asia/Tokyo
  • ホスト名の設定: /etc/hostname ファイルを編集して、ホスト名を設定します。
  • SELinux の設定: SELinux が有効になっていることを確認します。必要に応じて、SELinux のポリシーを調整します。
  • ファイアウォールの設定: firewall-cmd コマンドで、ファイアウォールを設定します。必要なポートを開放し、不要なポートを閉じます。

3. 基本的なサーバー構築:

RHEL をインストールしたら、次に、目的に応じたサーバーを構築します。ここでは、基本的なサーバー構築として、Web サーバー、DNS サーバー、メールサーバーの構築について説明します。

3.1. Web サーバー (Apache):

Apache は、最も広く利用されている Web サーバーの一つです。RHEL では、httpd パッケージとして提供されています。

  • httpd パッケージのインストール: yum install httpd コマンドで、httpd パッケージをインストールします。
  • Apache の起動: systemctl start httpd コマンドで、Apache を起動します。
  • Apache の自動起動設定: systemctl enable httpd コマンドで、Apache を自動起動するように設定します。
  • ファイアウォールの設定: firewall-cmd --permanent --add-service=http コマンドで、HTTP (ポート 80) をファイアウォールで開放します。firewall-cmd --reload コマンドで、ファイアウォールを再読み込みします。
  • Apache の設定: /etc/httpd/conf/httpd.conf ファイルを編集して、Apache の設定を行います。
    • DocumentRoot: Web サイトのドキュメントルート (Web コンテンツを配置するディレクトリ) を設定します。
    • ServerName: Web サーバーのホスト名を設定します。
    • VirtualHost: 複数の Web サイトをホストする場合、VirtualHost を設定します。
  • Web コンテンツの配置: Web サイトのコンテンツを、DocumentRoot に設定したディレクトリに配置します。
  • SELinux の設定: SELinux が有効になっている場合、Web コンテンツに適切な SELinux コンテキストを設定する必要があります。chcon コマンドを使用します。

3.2. DNS サーバー (BIND):

BIND は、最も広く利用されている DNS サーバーの一つです。RHEL では、bind パッケージとして提供されています。

  • bind パッケージのインストール: yum install bind コマンドで、bind パッケージをインストールします。
  • named の起動: systemctl start named コマンドで、named (BIND のデーモンプロセス) を起動します。
  • named の自動起動設定: systemctl enable named コマンドで、named を自動起動するように設定します。
  • ファイアウォールの設定: firewall-cmd --permanent --add-service=dns コマンドで、DNS (ポート 53) をファイアウォールで開放します。firewall-cmd --reload コマンドで、ファイアウォールを再読み込みします。
  • BIND の設定: /etc/named.conf ファイルを編集して、BIND の設定を行います。
    • options: グローバルなオプションを設定します。
    • zone: ゾーンを設定します。ゾーンは、DNS の名前空間の一部を表します。正引きゾーンと逆引きゾーンを設定する必要があります。
  • ゾーンファイルの作成: 正引きゾーンと逆引きゾーンのゾーンファイルを作成します。ゾーンファイルには、ホスト名と IP アドレスのマッピングを記述します。
  • SELinux の設定: SELinux が有効になっている場合、ゾーンファイルに適切な SELinux コンテキストを設定する必要があります。chcon コマンドを使用します。

3.3. メールサーバー (Postfix):

Postfix は、安全で信頼性の高いメールサーバーです。RHEL では、postfix パッケージとして提供されています。

  • postfix パッケージのインストール: yum install postfix コマンドで、postfix パッケージをインストールします。
  • postfix の起動: systemctl start postfix コマンドで、postfix を起動します。
  • postfix の自動起動設定: systemctl enable postfix コマンドで、postfix を自動起動するように設定します。
  • ファイアウォールの設定: firewall-cmd --permanent --add-service=smtp コマンドで、SMTP (ポート 25) をファイアウォールで開放します。firewall-cmd --reload コマンドで、ファイアウォールを再読み込みします。
  • Postfix の設定: /etc/postfix/main.cf ファイルを編集して、Postfix の設定を行います。
    • myhostname: メールサーバーのホスト名を設定します。
    • mydomain: メールサーバーのドメイン名を設定します。
    • myorigin: 送信メールの送信元ドメインを設定します。
    • mydestination: ローカルに配信するドメインを設定します。
    • relayhost: 他のメールサーバーにメールをリレーする場合、リレーホストを設定します。
  • ユーザーアカウントの作成: メールアカウントを作成します。useradd コマンドでユーザーアカウントを作成し、passwd コマンドでパスワードを設定します。
  • SELinux の設定: SELinux が有効になっている場合、Postfix の設定ファイルに適切な SELinux コンテキストを設定する必要があります。chcon コマンドを使用します。

4. 高度なサーバー構築:

上記の基本的なサーバー構築に加えて、より高度なサーバー構築を行うことができます。ここでは、ロードバランサー、データベースサーバー、コンテナ環境の構築について説明します。

4.1. ロードバランサー (HAProxy):

HAProxy は、高性能なロードバランサーです。RHEL では、haproxy パッケージとして提供されています。ロードバランサーは、複数のサーバーにトラフィックを分散することで、負荷を分散し、可用性を向上させます。

  • haproxy パッケージのインストール: yum install haproxy コマンドで、haproxy パッケージをインストールします。
  • HAProxy の起動: systemctl start haproxy コマンドで、HAProxy を起動します。
  • HAProxy の自動起動設定: systemctl enable haproxy コマンドで、HAProxy を自動起動するように設定します。
  • ファイアウォールの設定: HAProxy がリッスンするポートをファイアウォールで開放します。
  • HAProxy の設定: /etc/haproxy/haproxy.cfg ファイルを編集して、HAProxy の設定を行います。
    • global: グローバルなオプションを設定します。
    • defaults: デフォルトのオプションを設定します。
    • frontend: フロントエンド (クライアントからの接続を受け付ける部分) を設定します。
    • backend: バックエンド (トラフィックを分散するサーバーのグループ) を設定します。
  • ヘルスチェックの設定: バックエンドサーバーのヘルスチェックを設定します。HAProxy は、ヘルスチェックの結果に基づいて、正常なサーバーにのみトラフィックを分散します。

4.2. データベースサーバー (MySQL/MariaDB):

MySQL または MariaDB は、広く利用されているリレーショナルデータベースサーバーです。RHEL では、mysql-server または mariadb-server パッケージとして提供されています。

  • mysql-server または mariadb-server パッケージのインストール: yum install mysql-server または yum install mariadb-server コマンドで、データベースサーバーのパッケージをインストールします。
  • データベースサーバーの起動: systemctl start mysqld または systemctl start mariadb コマンドで、データベースサーバーを起動します。
  • データベースサーバーの自動起動設定: systemctl enable mysqld または systemctl enable mariadb コマンドで、データベースサーバーを自動起動するように設定します。
  • ファイアウォールの設定: データベースサーバーがリッスンするポートをファイアウォールで開放します。
  • 初期設定: mysql_secure_installation スクリプトを実行して、データベースサーバーの初期設定を行います。
  • ユーザーアカウントの作成: データベースにアクセスするためのユーザーアカウントを作成します。
  • データベースの作成: アプリケーションで使用するデータベースを作成します。
  • SELinux の設定: SELinux が有効になっている場合、データベースサーバーの設定ファイルに適切な SELinux コンテキストを設定する必要があります。chcon コマンドを使用します。

4.3. コンテナ環境 (Docker/Podman):

Docker または Podman は、コンテナ仮想化技術です。RHEL では、docker または podman パッケージとして提供されています。コンテナは、アプリケーションとその依存関係をパッケージ化し、隔離された環境で実行することができます。

  • docker または podman パッケージのインストール: yum install docker または yum install podman コマンドで、コンテナ環境のパッケージをインストールします。
  • Docker または Podman の起動: systemctl start docker または systemctl start podman コマンドで、Docker または Podman を起動します。
  • Docker または Podman の自動起動設定: systemctl enable docker または systemctl enable podman コマンドで、Docker または Podman を自動起動するように設定します。
  • ファイアウォールの設定: コンテナが公開するポートをファイアウォールで開放します。
  • Docker イメージのダウンロード: Docker Hub から必要なイメージをダウンロードします。
  • コンテナの作成と実行: docker run または podman run コマンドで、コンテナを作成して実行します。
  • Docker Compose の利用: 複数のコンテナを連携させて実行する場合、Docker Compose を利用すると便利です。
  • SELinux の設定: SELinux が有効になっている場合、コンテナに適切な SELinux コンテキストを設定する必要があります。

5. RHEL のセキュリティ:

RHEL は、セキュリティに重点を置いたディストリビューションです。以下のセキュリティ対策を講じることで、RHEL サーバーのセキュリティをさらに強化できます。

  • SELinux の有効化: SELinux を有効にして、強制アクセス制御 (MAC) を実施します。SELinux は、システムのセキュリティポリシーに基づいて、プロセスがファイルやリソースにアクセスできるかどうかを制御します。
  • ファイアウォールの設定: ファイアウォールを設定して、不要なポートを閉じます。firewall-cmd コマンドを使用します。
  • 定期的なアップデート: yum update コマンドで、パッケージを定期的にアップデートします。セキュリティアップデートは、脆弱性への対応が含まれているため、非常に重要です。
  • root アカウントの利用制限: root アカウントの使用を最小限に抑え、sudo コマンドを使用して、必要な場合にのみ root 権限を取得します。
  • パスワードポリシーの設定: 強力なパスワードポリシーを設定し、定期的にパスワードを変更するようにユーザーに促します。
  • SSH の設定: SSH の設定を強化します。パスワード認証を無効にし、公開鍵認証を使用するように設定します。また、SSH のポート番号を変更することも有効です。
  • ログ監視: ログ監視システムを導入して、不正なアクセスや異常な動作を監視します。
  • 侵入検知システム (IDS) / 侵入防御システム (IPS) の導入: IDS/IPS を導入して、不正なアクセスや攻撃を検知し、防御します。

6. RHEL の運用と保守:

RHEL サーバーを安定して運用するためには、定期的な運用と保守が必要です。

  • バックアップ: 定期的にバックアップを取得します。バックアップは、データの損失を防ぐために非常に重要です。
  • 監視: サーバーのリソース使用状況やパフォーマンスを監視します。監視ツールを使用して、CPU 使用率、メモリ使用率、ディスク使用率、ネットワークトラフィックなどを監視します。
  • ログ分析: ログを定期的に分析して、不正なアクセスや異常な動作を検知します。
  • パフォーマンスチューニング: サーバーのパフォーマンスが低下した場合、パフォーマンスチューニングを行います。CPU、メモリ、ディスク、ネットワークなどのボトルネックを特定し、改善します。
  • 障害対応: 障害が発生した場合、迅速に対応します。障害の原因を特定し、解決策を実施します。

7. まとめ:

RHEL は、安定性と信頼性に優れたエンタープライズ向けの Linux ディストリビューションです。本ガイドでは、RHEL を用いたサーバー構築の基礎から応用までを網羅し、初めて RHEL でサーバーを構築する方でもスムーズに作業を進められるように、詳細な手順と解説を提供しました。本ガイドを参考に、RHEL を活用して、安全で信頼性の高いサーバーを構築してください。

8. 参考資料:

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール