開発運用

CentOS 7 サーバー設定

CentOS 7 の新しいサーバーのセットアップ手順は、システム管理者にとって重要なスキルです。ここでは、CentOS 7 をインストールした後に行うべき一連の追加ステップについて、詳細に説明します。このガイドでは、システムのセキュリティ、ネットワーク設定、パッケージ管理、そしてサービス管理など、一般的な管理タスクをカバーします。

1. サーバーの初期セットアップ

CentOS 7 のインストールが完了したら、最初に行うべきことは、システムの初期設定です。これには以下の作業が含まれます。

システムのアップデート

インストール直後は、システムに最新のパッチやアップデートが適用されていないことが多いため、まずはパッケージの更新を行います。

bash
sudo yum update -y

これにより、CentOS 7 のすべてのパッケージが最新バージョンにアップデートされます。

サーバーのホスト名設定

サーバーのホスト名を設定することは、ネットワーク上での識別を容易にするために重要です。

bash
sudo hostnamectl set-hostname your-server-name

your-server-name の部分を実際のホスト名に変更してください。その後、システムに再起動をかけることで反映されます。

bash
sudo reboot

2. 必要なパッケージのインストール

サーバーに必要なパッケージをインストールすることで、特定の用途に応じた機能を追加できます。例えば、Webサーバーとして Apache を使用する場合、以下のコマンドでインストールします。

bash
sudo yum install httpd -y

インストール後、Apache サーバーを起動し、自動起動を設定します。

bash
sudo systemctl start httpd sudo systemctl enable httpd

3. セキュリティの強化

セキュリティの設定は非常に重要です。以下の手順で基本的なセキュリティを強化します。

ファイアウォールの設定

CentOS 7 では、firewalld がデフォルトのファイアウォール管理ツールです。ファイアウォールが有効であることを確認し、必要なサービスのポートを開放します。

ファイアウォールの状態を確認します。

bash
sudo systemctl status firewalld

Apache サーバーに必要なポート(80番、443番)を開放します。

bash
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload

SELinux の設定

SELinux(Security-Enhanced Linux)は、セキュリティを強化するための強力なアクセス制御システムです。getenforce コマンドで現在の状態を確認できます。

bash
getenforce

もし SELinux が Enforcing モードでない場合、設定を変更することができます。

bash
sudo setenforce 1

この設定を永続化するために、/etc/selinux/config ファイルを編集し、SELINUX=enforcing に設定します。

bash
sudo vi /etc/selinux/config

4. ネットワーク設定

サーバーをインターネットに接続するために、ネットワーク設定を行います。CentOS 7 では、NetworkManager がデフォルトのネットワーク管理ツールです。

静的 IP アドレスの設定

/etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集して、静的 IP アドレスを設定します。

bash
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

以下の内容に変更します(your-ip, netmask, gateway などは実際の値に置き換えてください)。

bash
DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=your-ip NETMASK=255.255.255.0 GATEWAY=your-gateway DNS1=8.8.8.8 DNS2=8.8.4.4

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

bash
sudo systemctl restart network

ネットワーク接続の確認

設定が反映されたかどうかを確認するために、ip addr コマンドで IP アドレスの状態を確認します。

bash
ip addr

5. ユーザーとアクセス権限の設定

サーバーにアクセスするためのユーザーを作成し、そのユーザーに適切なアクセス権限を付与します。

新しいユーザーの作成

bash
sudo useradd newuser sudo passwd newuser

sudo 権限の付与

新しく作成したユーザーに sudo 権限を付与するために、/etc/sudoers ファイルを編集します。

bash
sudo visudo

次の行を追加します。

bash
newuser ALL=(ALL) ALL

不要な root アクセスの制限

セキュリティ強化の一環として、root ユーザーによる直接ログインを無効にすることが推奨されます。/etc/ssh/sshd_config ファイルを編集して、PermitRootLoginno に設定します。

bash
sudo vi /etc/ssh/sshd_config
bash
PermitRootLogin no

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

bash
sudo systemctl restart sshd

6. ログの管理

サーバーのログは重要な情報源です。CentOS 7 では、rsyslog がログ管理に使用されます。/var/log ディレクトリに保存されたログファイルを確認し、必要に応じてログのローテーション設定を行います。

ログローテーションの設定ファイルは /etc/logrotate.conf です。ロギングが適切に機能しているかを定期的に確認してください。

7. サービスとプロセスの管理

CentOS 7 では、systemd がサービスの管理を行います。サーバー上で必要なサービスが正常に動作しているか確認するために、systemctl コマンドを使用します。

サービスの確認

bash
sudo systemctl status httpd

サービスの有効化または無効化

サービスを自動起動させるには、以下のコマンドを使用します。

bash
sudo systemctl enable httpd

サービスを停止させたい場合は、次のコマンドを使用します。

bash
sudo systemctl stop httpd

8. バックアップと復元

サーバーのデータを定期的にバックアップすることは、災害復旧のために非常に重要です。rsynctar を使用してバックアップを取ることができます。

bash
sudo rsync -av /path/to/important/data /path/to/backup/destination

定期的なバックアップを自動化するために、cron ジョブを設定します。

bash
sudo crontab -e

バックアップのスケジュールを設定します。

bash
0 3 * * * rsync -av /path/to/important/data /path/to/backup/destination

まとめ

これらの手順を実行することで、CentOS 7 サーバーは堅牢で安全な状態で運用を開始することができます。セキュリティ、ネットワーク、サービス、バックアップなど、サーバー管理における基本的な設定をしっかりと行うことが重要です。

Back to top button