CentOS 7 の初期設定は、サーバーやデスクトップの運用において非常に重要なプロセスです。このプロセスでは、セキュリティの強化、ネットワーク設定、パッケージ管理の設定、システムの最適化など、多くの作業が含まれます。以下に、CentOS 7 の完全かつ包括的な初期設定手順を示します。
1. システムのインストールと基本設定
まず最初に、CentOS 7 をインストールする必要があります。公式サイトから CentOS 7 の ISO イメージをダウンロードし、インストールメディアを作成します。インストール後に最初に行うべき設定は以下の通りです。
システムのタイムゾーン設定
システムのタイムゾーンは timedatectl
コマンドを使用して設定できます。例として、東京(日本標準時)のタイムゾーンに設定する方法は以下の通りです。
bashsudo timedatectl set-timezone Asia/Tokyo
ホスト名の設定
サーバーのホスト名を設定することで、ネットワーク上で一意に識別できるようになります。hostnamectl
コマンドを使って、ホスト名を設定します。
bashsudo hostnamectl set-hostname myserver
2. セキュリティの強化
SELinux の設定
CentOS 7 では、SELinux(Security-Enhanced Linux)がデフォルトで有効になっています。セキュリティを強化するために、SELinux の設定を確認し、適切なモードに設定します。SELinux の状態を確認するには、以下のコマンドを使用します。
bashsestatus
もし、SELinux status
が disabled
でない場合、/etc/selinux/config
ファイルを編集して、SELinux を強制的に有効化します。
bashsudo vi /etc/selinux/config
設定例:
iniSELINUX=enforcing
ファイアウォールの設定
CentOS 7 では、firewalld
がデフォルトのファイアウォール管理ツールです。まず、ファイアウォールが有効になっていることを確認します。
bashsudo systemctl status firewalld
ファイアウォールが無効になっている場合、以下のコマンドで有効にします。
bashsudo systemctl start firewalld
sudo systemctl enable firewalld
ファイアウォールの基本的な設定を行うには、firewall-cmd
コマンドを使用します。例として、SSH(ポート22)を許可する設定は以下の通りです。
bashsudo firewall-cmd --zone=public --add-service=ssh --permanent sudo firewall-cmd --reload
root アカウントの制限
root アカウントで直接ログインするのはセキュリティリスクが高いため、SSH 設定を変更して、root ログインを無効にすることをおすすめします。/etc/ssh/sshd_config
ファイルを編集します。
bashsudo vi /etc/ssh/sshd_config
PermitRootLogin
を以下のように変更します。
nginxPermitRootLogin no
その後、SSH サービスを再起動します。
bashsudo systemctl restart sshd
3. パッケージの更新と管理
パッケージの更新
CentOS 7 のインストール後、最初に行うべきことは、パッケージを最新の状態に更新することです。以下のコマンドを実行して、システムを更新します。
bashsudo yum update -y
必要なパッケージのインストール
一般的に使用されるパッケージ(例えば、vim
や wget
)をインストールするには、yum
コマンドを使用します。
bashsudo yum install vim wget curl -y
4. ネットワーク設定
IP アドレスの設定
CentOS 7 では、ネットワーク設定ファイルは /etc/sysconfig/network-scripts/
に格納されています。インターフェース設定ファイル(例:ifcfg-eth0
)を編集することで、IP アドレスを手動で設定できます。
bashsudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
以下のように設定します(静的 IP アドレスの場合):
iniBOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
設定後、ネットワークサービスを再起動します。
bashsudo systemctl restart network
ネームサーバーの設定
DNS サーバーを設定するには、/etc/resolv.conf
ファイルを編集します。
bashsudo vi /etc/resolv.conf
DNS サーバーを指定します(例:Google の DNS サーバー)。
nginxnameserver 8.8.8.8
nameserver 8.8.4.4
5. ユーザー管理
新しいユーザーの追加
新しいユーザーを追加するには、useradd
コマンドを使用します。
bashsudo useradd username sudo passwd username
sudo の設定
sudo
を使用できるようにするために、新しく作成したユーザーを wheel
グループに追加します。
bashsudo usermod -aG wheel username
6. ログ管理と監視
ログファイルの確認
CentOS 7 では、システムログは /var/log/
ディレクトリに保存されます。主なログファイルには、/var/log/messages
や /var/log/secure
があります。ログを確認するには、cat
や tail
コマンドを使用します。
bashsudo tail -f /var/log/messages
システム監視ツールのインストール
システム監視ツール(htop
や iotop
)をインストールすることで、リソースの使用状況をリアルタイムで確認できます。
bashsudo yum install htop iotop -y
7. 自動更新の設定
セキュリティパッチを自動で適用するために、yum-cron
をインストールし、設定を行います。
bashsudo yum install yum-cron -y
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
8. サービスの管理
CentOS 7 では、systemd
によってサービスを管理します。サービスの起動や停止を行うためには、systemctl
コマンドを使用します。
- サービスの起動:
bashsudo systemctl start service_name
- サービスの停止:
bashsudo systemctl stop service_name
- サービスの自動起動設定:
bashsudo systemctl enable service_name
9. バックアップの設定
システムのバックアップを定期的に行うためには、rsync
や tar
コマンドを使用して、重要なファイルやディレクトリをバックアップします。
例:rsync
を使用したバックアップコマンド
bashsudo rsync -avz /important_directory /backup_directory
結論
CentOS 7 の初期設定は、サーバーの安全性、パフォーマンス、管理性を向上させるために非常に重要です。セキュリティ設定、ネットワーク設定、ユーザー管理、パッケージのインストールと更新、バックアップの実施などを通じて、安定したシステム運用が可能になります。