CentOS 7 の新しいサーバーのセットアップ手順は、システム管理者にとって重要なスキルです。ここでは、CentOS 7 をインストールした後に行うべき一連の追加ステップについて、詳細に説明します。このガイドでは、システムのセキュリティ、ネットワーク設定、パッケージ管理、そしてサービス管理など、一般的な管理タスクをカバーします。
1. サーバーの初期セットアップ
CentOS 7 のインストールが完了したら、最初に行うべきことは、システムの初期設定です。これには以下の作業が含まれます。
システムのアップデート
インストール直後は、システムに最新のパッチやアップデートが適用されていないことが多いため、まずはパッケージの更新を行います。
bashsudo yum update -y
これにより、CentOS 7 のすべてのパッケージが最新バージョンにアップデートされます。
サーバーのホスト名設定
サーバーのホスト名を設定することは、ネットワーク上での識別を容易にするために重要です。
bashsudo hostnamectl set-hostname your-server-name
your-server-name
の部分を実際のホスト名に変更してください。その後、システムに再起動をかけることで反映されます。
bashsudo reboot
2. 必要なパッケージのインストール
サーバーに必要なパッケージをインストールすることで、特定の用途に応じた機能を追加できます。例えば、Webサーバーとして Apache を使用する場合、以下のコマンドでインストールします。
bashsudo yum install httpd -y
インストール後、Apache サーバーを起動し、自動起動を設定します。
bashsudo systemctl start httpd
sudo systemctl enable httpd
3. セキュリティの強化
セキュリティの設定は非常に重要です。以下の手順で基本的なセキュリティを強化します。
ファイアウォールの設定
CentOS 7 では、firewalld
がデフォルトのファイアウォール管理ツールです。ファイアウォールが有効であることを確認し、必要なサービスのポートを開放します。
ファイアウォールの状態を確認します。
bashsudo systemctl status firewalld
Apache サーバーに必要なポート(80番、443番)を開放します。
bashsudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
SELinux の設定
SELinux(Security-Enhanced Linux)は、セキュリティを強化するための強力なアクセス制御システムです。getenforce
コマンドで現在の状態を確認できます。
bashgetenforce
もし SELinux が Enforcing
モードでない場合、設定を変更することができます。
bashsudo setenforce 1
この設定を永続化するために、/etc/selinux/config
ファイルを編集し、SELINUX=enforcing
に設定します。
bashsudo vi /etc/selinux/config
4. ネットワーク設定
サーバーをインターネットに接続するために、ネットワーク設定を行います。CentOS 7 では、NetworkManager
がデフォルトのネットワーク管理ツールです。
静的 IP アドレスの設定
/etc/sysconfig/network-scripts/ifcfg-eth0
ファイルを編集して、静的 IP アドレスを設定します。
bashsudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
以下の内容に変更します(your-ip
, netmask
, gateway
などは実際の値に置き換えてください)。
bashDEVICE=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
設定後、ネットワークサービスを再起動します。
bashsudo systemctl restart network
ネットワーク接続の確認
設定が反映されたかどうかを確認するために、ip addr
コマンドで IP アドレスの状態を確認します。
baship addr
5. ユーザーとアクセス権限の設定
サーバーにアクセスするためのユーザーを作成し、そのユーザーに適切なアクセス権限を付与します。
新しいユーザーの作成
bashsudo useradd newuser sudo passwd newuser
sudo 権限の付与
新しく作成したユーザーに sudo
権限を付与するために、/etc/sudoers
ファイルを編集します。
bashsudo visudo
次の行を追加します。
bashnewuser ALL=(ALL) ALL
不要な root アクセスの制限
セキュリティ強化の一環として、root ユーザーによる直接ログインを無効にすることが推奨されます。/etc/ssh/sshd_config
ファイルを編集して、PermitRootLogin
を no
に設定します。
bashsudo vi /etc/ssh/sshd_config
bashPermitRootLogin no
設定後、SSH サービスを再起動します。
bashsudo systemctl restart sshd
6. ログの管理
サーバーのログは重要な情報源です。CentOS 7 では、rsyslog
がログ管理に使用されます。/var/log
ディレクトリに保存されたログファイルを確認し、必要に応じてログのローテーション設定を行います。
ログローテーションの設定ファイルは /etc/logrotate.conf
です。ロギングが適切に機能しているかを定期的に確認してください。
7. サービスとプロセスの管理
CentOS 7 では、systemd
がサービスの管理を行います。サーバー上で必要なサービスが正常に動作しているか確認するために、systemctl
コマンドを使用します。
サービスの確認
bashsudo systemctl status httpd
サービスの有効化または無効化
サービスを自動起動させるには、以下のコマンドを使用します。
bashsudo systemctl enable httpd
サービスを停止させたい場合は、次のコマンドを使用します。
bashsudo systemctl stop httpd
8. バックアップと復元
サーバーのデータを定期的にバックアップすることは、災害復旧のために非常に重要です。rsync
や tar
を使用してバックアップを取ることができます。
bashsudo rsync -av /path/to/important/data /path/to/backup/destination
定期的なバックアップを自動化するために、cron
ジョブを設定します。
bashsudo crontab -e
バックアップのスケジュールを設定します。
bash0 3 * * * rsync -av /path/to/important/data /path/to/backup/destination
まとめ
これらの手順を実行することで、CentOS 7 サーバーは堅牢で安全な状態で運用を開始することができます。セキュリティ、ネットワーク、サービス、バックアップなど、サーバー管理における基本的な設定をしっかりと行うことが重要です。