CentOS 初期設定:初心者向け完全ガイド【2024年最新版】

はい、承知いたしました。CentOS 初期設定:初心者向け完全ガイド【2024年最新版】の詳細な説明を含む記事を約5000語で記述します。


CentOS 初期設定:初心者向け完全ガイド【2024年最新版】

CentOSは、Red Hat Enterprise Linux (RHEL) のソースコードを基に構築された、無償で利用できるエンタープライズクラスのLinuxディストリビューションです。安定性とセキュリティに優れており、サーバー用途として広く利用されています。本ガイドでは、CentOSを初めて利用する初心者の方に向けて、インストール後の初期設定手順を丁寧に解説します。2024年最新の情報に基づき、セキュリティ強化、パフォーマンス向上、使いやすさの向上を目指します。

1. CentOSとは

CentOS (Community ENTerprise Operating System) は、RHELと互換性があり、商用サポートが必要ない環境で非常に有効です。RHELの安定性とセキュリティをそのまま享受できるため、ウェブサーバー、データベースサーバー、ファイルサーバーなど、様々な用途に適しています。CentOS Streamという開発版も存在しますが、本ガイドではより安定した標準的なCentOS(現在の CentOS Linux 8 または CentOS Stream 9) を前提とします。
(注:CentOS Linux 8 は 2021年12月31日にEOLを迎えています。新しい環境構築にはCentOS Stream 9以降またはAlmaLinux、Rocky Linuxなどの代替OSの使用を推奨します。)

2. インストール後の初期設定の重要性

CentOSをインストールした直後の状態は、セキュリティ面やパフォーマンス面で最適化されていません。初期設定を怠ると、不正アクセスやシステム障害のリスクが高まります。また、使い勝手の面でも改善の余地が多く、初期設定を行うことで、より快適にCentOSを利用できるようになります。

具体的には、以下の項目が重要となります。

  • セキュリティ対策: ファイアウォールの設定、不要なサービスの停止、ユーザーアカウントの管理など
  • システムアップデート: 最新のセキュリティパッチやバグ修正の適用
  • ネットワーク設定: ホスト名の設定、DNS設定など
  • タイムゾーン設定: 正しい時刻設定
  • ユーザーアカウント管理: rootアカウントの無効化、一般ユーザーアカウントの作成など
  • パッケージ管理: 必要なソフトウェアのインストール
  • ロケール設定: 日本語環境の構築

3. 必要な準備

初期設定を行う前に、以下の準備をしておきましょう。

  • CentOSがインストールされたサーバーまたは仮想環境: インストール手順は割愛しますが、CentOSのインストールメディア(DVDまたはISOイメージ)とブート可能な環境が必要です。
  • インターネット接続: システムアップデートやソフトウェアのインストールに必要です。
  • ターミナルソフト: SSHクライアント(例: PuTTY, Tera Term, iTerm2)を使用して、サーバーにリモート接続します。
  • テキストエディタ: 設定ファイルを編集するために使用します。vi, vim, nanoなどが利用できます。

4. 初期設定の手順

以下の手順で初期設定を進めていきます。

4.1. ターミナルへのログイン

まず、SSHクライアントを使用してCentOSサーバーにログインします。

  1. IPアドレスの確認: CentOSサーバーのIPアドレスを確認します。インストール時に設定した場合はそのIPアドレスを、DHCPで自動取得している場合はip addr showコマンドなどで確認します。
  2. SSHクライアントの起動: PuTTYなどのSSHクライアントを起動します。
  3. 接続設定: ホスト名(またはIPアドレス)にCentOSサーバーのIPアドレスを入力し、ポート番号が22になっていることを確認します。(デフォルト設定)
  4. ログイン: ユーザー名にroot、パスワードにインストール時に設定したrootパスワードを入力してログインします。

4.2. システムアップデート

ログイン後、まずシステムを最新の状態にアップデートします。

bash
sudo yum update -y

このコマンドは、パッケージ情報を更新し、インストールされているすべてのパッケージを最新バージョンにアップデートします。-yオプションは、アップデートの確認を省略して自動的にアップデートを実行します。

4.3. タイムゾーン設定

タイムゾーンを日本時間 (Asia/Tokyo) に設定します。

bash
sudo timedatectl set-timezone Asia/Tokyo

設定後、timedatectl status コマンドでタイムゾーンが正しく設定されていることを確認します。

4.4. ホスト名設定

サーバーのホスト名を設定します。ホスト名は、ネットワーク上でサーバーを識別するための名前です。

bash
sudo hostnamectl set-hostname your-hostname #your-hostname は任意のホスト名に置き換えてください

設定後、hostnamectl status コマンドでホスト名が正しく設定されていることを確認します。設定を反映させるには、サーバーを再起動するか、以下のコマンドを実行します。

bash
bash

4.5. ネットワーク設定 (必要に応じて)

通常DHCPでIPアドレスが割り当てられますが、固定IPアドレスを設定したい場合はネットワーク設定ファイルを編集します。

bash
sudo vi /etc/sysconfig/network-scripts/ifcfg-<インターフェース名>

<インターフェース名>ip addr show コマンドなどで確認できるインターフェース名 (例: ens33) に置き換えてください。

以下の項目を編集します。

  • BOOTPROTO=static
  • IPADDR=<固定IPアドレス>
  • NETMASK=<ネットマスク>
  • GATEWAY=<ゲートウェイアドレス>
  • DNS1=<DNSサーバーアドレス>
  • DNS2=<DNSサーバーアドレス>

設定後、ネットワークサービスを再起動します。

bash
sudo systemctl restart network

4.6. ファイアウォール設定

CentOSには、デフォルトでfirewalldというファイアウォールが有効になっています。必要なポートを開放し、不要なポートを閉じることで、セキュリティを強化します。

bash
sudo firewall-cmd --zone=public --add-service=ssh --permanent # SSHポートを開放
sudo firewall-cmd --zone=public --add-service=http --permanent # HTTPポートを開放 (ウェブサーバーの場合)
sudo firewall-cmd --zone=public --add-service=https --permanent # HTTPSポートを開放 (ウェブサーバーの場合)
sudo firewall-cmd --reload # 設定を反映

必要なサービスに応じて、他のポートも開放してください。例えば、MySQLサーバーを外部からアクセスする場合は、3306番ポートを開放する必要があります。

sudo firewall-cmd --list-all コマンドで現在の設定を確認できます。

4.7. SELinux設定 (任意)

SELinux (Security-Enhanced Linux) は、セキュリティを強化するための仕組みです。デフォルトでは有効になっていますが、設定が複雑なため、最初は無効化することも可能です。ただし、セキュリティリスクが高まるため、推奨はしません。

SELinuxを無効化する場合は、/etc/selinux/config ファイルを編集します。

bash
sudo vi /etc/selinux/config

SELINUX=enforcingSELINUX=disabled に変更します。

設定後、サーバーを再起動する必要があります。

SELinuxを有効にしたまま利用する場合は、アクセス制御ルールを適切に設定する必要があります。

4.8. rootアカウントの無効化

セキュリティ上の理由から、rootアカウントでの直接ログインを禁止することが推奨されます。一般ユーザーアカウントを作成し、sudoコマンドでroot権限が必要な操作を行うようにします。

まず、一般ユーザーアカウントを作成します。

bash
sudo adduser your-username # your-username は任意のユーザー名に置き換えてください
sudo passwd your-username # ユーザーのパスワードを設定

次に、作成したユーザーにsudo権限を付与します。

bash
sudo usermod -aG wheel your-username

wheel グループに所属するユーザーは、sudoコマンドを使用できます。

rootアカウントでのSSHログインを禁止するために、/etc/ssh/sshd_config ファイルを編集します。

bash
sudo vi /etc/ssh/sshd_config

PermitRootLogin yesPermitRootLogin no に変更します。

設定後、SSHサービスを再起動します。

bash
sudo systemctl restart sshd

4.9. パッケージ管理

必要なソフトウェアをインストールします。CentOSでは、yumコマンドまたはdnfコマンド (CentOS 8 以降) を使用してパッケージを管理します。

例えば、ウェブサーバーとしてApacheをインストールする場合は、以下のコマンドを実行します。

bash
sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd

これにより、Apacheがインストールされ、起動し、起動時に自動的に起動するように設定されます。

4.10. ロケール設定 (日本語環境)

日本語環境を構築するために、ロケールを設定します。

bash
sudo localectl set-locale LANG=ja_JP.UTF-8

設定後、以下のコマンドを実行して設定を反映します。

bash
source /etc/locale.conf

日本語フォントをインストールします。

bash
sudo yum install fonts-japanese -y

4.11. その他の設定

  • SWAP領域の確認: SWAP領域が設定されているか確認し、必要に応じて設定します。
  • 自動起動サービスの確認: 不要なサービスが自動起動しないように設定します。
  • ログローテーション設定: ログファイルが肥大化しないように、ログローテーションを設定します。
  • NTP設定: ネットワークタイムプロトコル (NTP) を設定して、正確な時刻を維持します。

5. セキュリティ強化

初期設定後も、セキュリティ対策を継続的に行うことが重要です。

  • 定期的なシステムアップデート: 最新のセキュリティパッチを適用します。
  • 強固なパスワード: 推測されにくいパスワードを設定します。
  • 不正侵入検知: Fail2banなどのツールを使用して、不正なログイン試行を検知します。
  • セキュリティ監査: 定期的にセキュリティ監査を行い、脆弱性を発見します。
  • IDS/IPS: 侵入検知システム (IDS) または侵入防御システム (IPS) を導入します。

6. トラブルシューティング

初期設定中に問題が発生した場合、以下の点をチェックしてください。

  • 設定ファイルのスペルミス: 設定ファイルに誤りがないか確認します。
  • ログファイルの確認: エラーメッセージが出力されていないか確認します。
  • インターネット接続: インターネットに接続されているか確認します。
  • ファイアウォール設定: 必要なポートが開放されているか確認します。
  • SELinux設定: SELinuxが原因で問題が発生していないか確認します。

7. まとめ

本ガイドでは、CentOSの初期設定について、初心者の方にも分かりやすく解説しました。初期設定は、セキュリティとパフォーマンスを向上させるために非常に重要です。本ガイドを参考に、CentOSを安全かつ快適に利用してください。

免責事項: 本ガイドに記載された内容は、筆者の経験に基づいたものであり、すべての環境で動作を保証するものではありません。設定を行う際は、自己責任において実施してください。

参考資料:


補足事項:

  • CentOS Stream 9 以降は、パッケージ管理に yum ではなく dnf コマンドを使用します。
  • CentOS 8 は EOL を迎えているため、新しい環境構築には CentOS Stream 9 以降、AlmaLinux、Rocky Linux などの代替OSの使用を強く推奨します。
  • 具体的な設定手順は、サーバーの用途や環境によって異なります。本ガイドはあくまで一般的な手順であり、必要に応じて設定をカスタマイズしてください。

このガイドが、CentOSの初期設定を行う上で役立つことを願っています。

コメントする

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

上部へスクロール