Rocky LinuxとAlmaLinux インストール後に必ず設定する 6の項目(CentOS)

Linux

<景品表示法に基づく表記> 本サイトのコンテンツには、商品プロモーションが含まれている場合があります。

Rocky LinuxとAlmaLinux  をインストールした後に何を設定すればいいの?

この疑問に回答します。

最近はパブリック・クラウドからOSの準備をする機会が増えてきました。メディアからインストールする時は、ホスト名やIPアドレスの設定が同時にできましたが、クラウドの場合は事後に設定することになります。

また、RHEL8以降のディストリビューション Rocky、Alma、CentOS はなるべく設定ファイルを直接編集するのではなく、コマンドから実行する事が推奨されています。

ホスト名の設定コマンド:nmcli general hostname

パブリック・クラウドが提供しているOSイメージを展開する場合は、ホスト名が設定されていませんの設定を手動で行う必要があります。

設定ファイルは「/etc/hostname」です。

Rocky、Alma、CentOS は設定ファイルを直接編集を推奨していません。コマンドから実行します。

# nmcli general hostname [サーバーのホスト名]

OSを再起動しなくても設定が反映します。

※利用シェル(bashなど)は、変数を再読み込みしないとプロンプトは変更されません。つまり、サーバーに再ログインすると反映します。

ネットワークの設定

ネットワークの設定ファイルは「/etc/sysconfig/network-scripts/」に保存されています。

ネットワーク設定を行う場合、設定ファイルを直接編集することを推奨されていません。

ホスト名を設定する時と同じで「nmcli」コマンドを実行し設定を行います。

ネットワークインターフェイスの状態確認:nmcli device

まずは、現状の設定を確認します。「nmcli」コマンドを利用します。

ロケールが日本語の場合

# nmcli device
デバイス  タイプ    状態      接続
ens192    ethernet  接続済み  System ens192
ens224    ethernet  切断済み  --
lo        loopback  管理無し  --

ロケールが英語の場合

# nmcli device
DEVICE  TYPE      STATE      CONNECTION
ens192  ethernet  connected  System ens192
ens224  ethernet  connected  System ens224
lo      loopback  unmanaged  --

インターフェースの編集モード:nmcli connection edit

ネットワークインターフェースの変更は「nmcli」コマンドを利用します。パラメーターがわかっている場合は「nmcli connection modify [con-name] 」で値を変更すればよいのですが、私はスグに判らなくなるので編集モードを利用します。

編集モード「nmcli connection edit」は対話型の接続エディターです。シェル(bashなど)や、ネットワーク機器(CiscoのCatalyst ,Yamahaのrtx)のように補完が効くので便利です。

「nmcli connection modify」コマンドの引数[con-name]には「nmcli device」コマンドで表示された「CONNECTION(接続)」を指定します。

# nmcli connection edit "System ens224"

後は対話型で設定が出来るので、パラメーターを確認しながら設定を行います。

現状の設定確認:print

現状の設定を確認します。「print」コマンドを実行します。このまま実行すると、大量のパラメーター値が出てくるので、引数にipv4 を与えてネットワーク設定のみに絞ります。

nmcli> print ipv4
['ipv4' setting values]
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   yes
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)

固定IPアドレスの設定:set

クラウドから展開したOSはDHCPでIPが割り振られる設定になっている場合が多いです。閉域のプライベートネットワークの場合は静的にIPアドレスを固定で振り出す場合が多いので今回は、DHCPから固定に変更して、IPアドレスを指定します。

nmcli> set ipv4.method manual
nmcli> set ipv4.addresses 192.168.0.1/24

変更したら「print」コマンドで状態を確認します。

nmcli> print ipv4.method
ipv4.method: manual

nmcli> print ipv4.addresses
ipv4.addresses: 192.168.0.1/24

無事に設定が反映しています。ただ、設定が保存されておらず、有効化もされていないので注意が必要です。

設定変更の保存:save

set」コマンドの変更は保存されおらず、有効化もされていません。

save」コマンドに「 persistent」引数を与えて設定を保存し有効化させます。

nmcli> save persistent
Connection 'System ens224' (e4014630-448b-5ad3-4992-f4678202147c) successfully updated.

OSを再起動しなくても設定が反映します。

インターフェースの編集モードの終了:quit

最後に編集モードを終了させます。

nmcli> quit

Firewalldの設定

Firewalldの停止

私は、Firewalldを利用していませんのでサービスを停止します。

サービスの停止

# systemctl stop firewalld

サービスの無効化

# systemctl disable firewalld
Unit /etc/systemd/system/firewalld.service is masked, ignoring.

必要であれば、設定を行います。

selinuxの無効化

selinuxは無効化します。誰も利用しない機能です。

selinuxはLinuxの監査やセキュリティを向上させる機能です。有効になっているとサービスの動作や、設定内容に制限が掛かります。

selinuxが有効になっていると、ウェブサービス、DNSなど各サービスを設定しても動作しないことがよくあります。

selinuxの状態を確認:getenforce

selinuxが有効になっているかの確認は「getenforceコマンドを実行します。(デフォルトで有効)

# getenforce
Enforcing

getenforceコマンドを実行しEnforcingと表示されたら、selinuxが有効になっています。

selinuxを無効に設定する

selinuxを無効にするには「/etc/selinux/config」ファイルを修正します。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

SELINUXパラメーターを「disabled」に変更します。

間違って、SELINUXTYPEを変更しないように!私はよく間違えて、起動出来なくなり、シングルモードで復旧する羽目になっています。

きっと、昔のCentOS(4,5,6)は一番下にSELINUXパラメーターがあったので、手が勝手に動くのだろうな~

設定を変更後にサーバーを再起動してください。

パッケージのアップデート

イメージから展開した OS は、含まれているパッケージが古いです。OSにインストールされているパッケージは、最新のものに更新を行います。

パッケージ管理が「dnf」コマンドに変更されています。「yum」コマンドは引き続き利用できるのでどちらを利用しても構いません。

ちなみに、yum コマンドを実行すると内部的には dnf が呼び出されます。

# yum -y update
CentOS-8 - AppStream                            2.9 kB/s | 4.3 kB     00:01
CentOS-8 - Base                                 6.5 kB/s | 3.9 kB     00:00
CentOS-8 - Extras                               2.6 kB/s | 1.5 kB     00:00
Dependencies resolved.

パッケージのアップデートが完了したらサーバーを再起動してください。

サーバーを再起動できない場合は、再起動が必要なサービスを確認しピンポイントで対象を再起動させます。

関連記事 dnf update後にサービス再起動が必要か確認する Rocky ,Alma, CentOS

パッケージの自動更新を有効にする場合は、こちらの記事を参照してください。

関連記事 dnf-automaticを使ってパッケージの自動アップデート Rocky ,Alma, CentOS

一般ユーザーの追加

管理者ユーザーだけでなく一般ユーザーで作業をする場合や、利用者にアカウントを提供する場合はユーザーを追加します。

$ useradd user01
$ password user01

パブリッククラウドの場合、証明書認証でリモート接続です。

証明書(キーペア)を作成しないと、リモート接続ができません。

ソフトウエア(サービス)のインストール

Apahce

やはり、サーバーでWebサービスを実施する機会が多いのでApacheをインストールすることがよくあります。設定について説明した記事がありますので参照ください。

 

MySQL

サーバーでWebサービスを実施する機会が多いのでMySQLをインストールすることがよくあります。設定について説明した記事がありますので参照ください。

NTP(chrony)

サーバーの時刻同期を目的にしているのであれば、設定を変更する必要はありません。自動起動の設定になっているか確認しましょう。

ソフトウエア(監視)のインストール

サーバーは監視がとても大切です。忘れずに設定を行いましょう。

Nagios

リソースの監視ツールです。しきい値を越えるとアラートをメールで送信してくれます。

Munin

リソースの監視ツールです。RRDtool を利用してグラフを作成してくれます。リソースの状態変化をグラフで確認できるとても便利なツールです。

Muninは、監視するサーバーと、監視されるエージェント(ノード)で構成されます。監視サーバーが、定期的にエージェントと情報のやり取りを行いリソース監視を実施します。