AlmaLinux 9 インストール後にする初期設定①

AlmaLinux 9のインストールが完了し、新たなLinux環境の構築おめでとうございます!
OSの導入自体は一つの大きな節目ですが、そこからが本当のスタート地点です。
システムを安全かつ快適に、そして効率的に運用していくためには、インストール直後に行うべき
初期設定が非常に重要となります。これらの設定は、システムの安定性、セキュリティ、そして
日々の使い勝手に直結します。本記事では、AlmaLinux 9をより実用的にするための、特に重要度の高い初期設定について、「初期設定①」として詳しく解説していきます。

日本語化

AlmaLinux 9のインストール後、システムはデフォルトで英語環境になっていることがよくあります。日本人ユーザーにとっては、システムの表示や各種メッセージ、コマンドの出力などが日本語化されている方が圧倒的に使いやすく、誤解も少なくなります。これにより、日々の作業効率が向上し、ストレスなくシステムを操作できるようになります。

日本語化を行うには、まずシステムのロケール設定を変更します。具体的には、localectl set-locale LANG=ja_JP.UTF-8 コマンドを実行し、システム全体の言語設定を日本語に設定します。この設定により、システムログやエラーメッセージなども日本語で表示されるようになり、問題発生時の原因特定が容易になります。

さらに、日本語フォントやインプットメソッド(Fcitxなど)をインストールすることで、ターミナルやGUIアプリケーションでの日本語表示、および日本語入力が可能になります。これらのパッケージは、通常 dnf install @japanese-support のようなコマンドでまとめてインストールできることが多いです。インストール後には、一度システムを再起動するか、少なくともログアウト・ログインし直すことで設定が完全に反映されます。

日本語化は単なる見た目の問題だけでなく、タイムゾーンの正確な設定や文字コードの統一にも寄与します。これにより、ファイル名の文字化けや、異なるシステム間でのデータ連携におけるトラブルを未然に防ぐことができます。快適で効率的なAlmaLinux環境を構築するために、日本語化は最初に行うべき重要なステップの一つと言えるでしょう。

日本語ロケールインストール
]# dnf install -y glibc-langpack-ja

日本語ロケール設定
]# localectl set-locale LANG=ja_JP.utf8

日本語ロケール設定確認
]# localectl
System Locale: LANG=ja_JP.utf8 ← 日本語ロケールになっている確認

rootに切替可能なユーザーを管理者のみにする

AlmaLinux 9では、デフォルトで特定のユーザー(通常はインストール時に作成したユーザーやwheelグループに属するユーザー)がsudoコマンドを使ってroot権限に昇格できるよう設定されています。これは便利である反面、セキュリティ上のリスクも伴います。特に複数のユーザーがシステムを利用する場合や、本番環境として運用するサーバーでは、誰でもroot権限を持てる状態は避けるべきです。

この設定の目的は、システムに対する最高権限であるrootへのアクセスを、信頼できる特定の管理者ユーザーのみに限定することです。これにより、誤操作によるシステム破壊のリスクを低減し、悪意のある攻撃者がroot権限を奪取する可能性を最小限に抑えることができます。最小限の特権原則に基づき、必要なユーザーにのみ必要な権限を与えることがセキュリティの基本です。

具体的には、/etc/sudoersファイルをvisudoコマンドを使って編集し、root権限への昇格を許可するユーザーやグループを明示的に設定します。例えば、デフォルトでwheelグループに所属するユーザーがsudo可能になっている場合は、この設定をより厳しく見直し、特定の管理者ユーザーをまとめたグループを作成し、そのグループのみにsudo権限を与えるように変更することが推奨されます。

この変更を適用した後は、設定が正しく機能しているか、意図したユーザーのみがroot権限に昇格できることを必ず確認してください。不必要なユーザーがsudoを利用できないようにすることで、システムのセキュリティが格段に向上します。定期的にsudo権限を持つユーザーリストを見直し、不要な権限は速やかに剥奪する運用も重要です。

管理者ユーザーをwheelグループに追加
]# usermod -G wheel ユーザー名

rootに切替可能なユーザーを管理者のみにする
]# vi /etc/pam.d/su
auth       required     pam_wheel.so use_uid ← 行頭の#を削除してコメント解除

パッケージ管理システム設定

AlmaLinux 9では、DNF(Dandified YUM)が主要なパッケージ管理システムとして採用されています。システムの安定性、セキュリティ、そして最新のソフトウェアを維持するためには、このDNFが適切に設定されていることが不可欠です。インストール直後には、まずパッケージデータベースを最新の状態に更新し、システムの既知の脆弱性を修正することが最優先事項となります。

初期設定として、まずはdnf updateコマンドを実行し、インストールされているすべてのパッケージを最新バージョンに更新します。これにより、セキュリティパッチの適用やバグ修正が行われ、システムの安定性が向上します。この作業は、新たなソフトウェアをインストールする前や、重要な設定変更を行う前にも習慣として行うべきです。

また、DNFの設定ファイルである/etc/dnf/dnf.confを確認し、必要に応じてミラーサーバーの選択やダウンロードの並列数などを最適化することも有効です。例えば、fastestmirror=Trueが設定されていれば、DNFは自動的に最速のミラーサーバーを選択してくれますが、手動で特定の地理的に近いミラーを設定することも可能です。これにより、パッケージのダウンロード速度が向上し、アップデート作業がより迅速に行えるようになります。

さらに、dnf clean allコマンドなどでキャッシュをクリアし、dnf makecacheで最新のパッケージ情報を取得することも、パッケージ管理システムを健全に保つ上で役立ちます。これらの基本的な設定と運用を適切に行うことで、AlmaLinux 9のソフトウェア環境を常に最新かつ安全な状態に保ち、将来的なトラブルを未然に防ぐことができます。

パッケージ管理システム設定
設定前アップデート
]# dnf -y update

アップデートツール「dnf-automatic」インストール
]# dnf -y install dnf-automatic

]# vi /etc/dnf/automatic.conf ← DNF Automatic設定ファイル編集
下記項目を探す
# Whether updates should be applied when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
apply_updates = yes ← 利用可能な更新のダウンロードとインストールに設定

]# systemctl enable dnf-automatic-install.timer ← ソフトウェア更新の自動化を有効化
]# systemctl start dnf-automatic-install.timer ← ソフトウェア更新の自動化を起動

インストールすべきパッケージをインストール
]# dnf -y groupinstall base "Development tools" ← ベース、開発ツールパッケージ群インストール
]# dnf -y install rsyslog-logrotate ← シスログローテーション設定ファイルインストール

リポジトリを追加する

AlmaLinux 9の標準リポジトリは非常に充実していますが、すべてのソフトウェアが提供されているわけではありません。特定のアプリケーションやより新しいバージョンのパッケージ、あるいは開発ツールなどが必要な場合、追加のリポジトリを有効にする必要があります。これにより、DNFを通じて利用可能なソフトウェアの選択肢が大幅に広がります。

最も一般的に追加されるリポジトリの一つが「EPEL (Extra Packages for Enterprise Linux)」です。EPELは、RHEL互換システム(AlmaLinuxを含む)向けに、標準リポジトリには含まれない高品質な追加パッケージを提供するコミュニティプロジェクトです。多くの便利なツールやアプリケーションがEPELを通じて提供されており、dnf install epel-releaseコマンドで簡単に有効化できます。

EPEL以外にも、特定の目的に応じて様々なリポジトリが存在します。例えば、マルチメディアコーデックやプロプライエタリなドライバーが必要な場合はRPM Fusion、特定のベンダーが提供するソフトウェア(例:Docker、Google Chromeなど)の場合はそのベンダー公式のリポジトリを追加することがあります。これらのリポジトリは、通常、公式ドキュメントに従って専用のdnf config-manager --add-repoコマンドや.repoファイルを配置することで追加します。

ただし、リポジトリの追加は慎重に行う必要があります。信頼できないリポジトリを追加すると、システムが不安定になったり、セキュリティリスクが生じたりする可能性があります。パッケージの競合や依存関係の問題を引き起こすこともあるため、必要なものだけを厳選し、常にその信頼性を確認することが重要です。dnf repolistコマンドで現在有効なリポジトリを確認し、不要なものは無効化するなど、定期的な管理を心がけましょう。

]# dnf -y install epel-release リポインストール
]# dnf -y install epel-next-release

]# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm ← 	便利なパッケージを数多く提供する Remi's RPM repository を追加
]# grep 'enabled=1' /etc/yum.repos.d/remi-*  ← [remi-safe] と [remi-modular] のみ有効

下記編集分に[enabled=1] = リポジトリ有効を追加
]# vi /etc/yum.repos.d/epel.repo
]# vi /etc/yum.repos.d/remi-safe.repo

root宛メールを外部に転送できるようにする

AlmaLinux 9を含む多くのLinuxシステムでは、システムからの重要な通知やエラーメッセージ、cronジョブの実行結果などが、ローカルのrootユーザー宛にメールとして送信されます。これには、セキュリティ警告、ディスク使用量の異常、バックアップスクリプトの成否など、システムの状態を把握するために不可欠な情報が含まれています。

しかし、rootユーザーとして直接ログインしてローカルメールボックスを確認する機会はほとんどありません。そのため、これらの重要なメールが気づかれずに放置され、システムの問題が手遅れになるリスクがあります。この問題を解決するため、root宛のメールを、普段使用している外部のメールアドレス(Gmail, Outlookなど)に自動転送する設定を行うことが強く推奨されます。

転送設定は、主に/etc/aliasesファイルを編集することで行います。このファイルにroot: your_email@example.comのように記述し、root宛のメールを指定した外部アドレスに転送するよう指示します。ファイルを編集した後には、newaliasesコマンドを実行して変更をシステムに反映させることを忘れないでください。この設定が機能するためには、システム上にPostfixやSendmailなどのMTA(Mail Transfer Agent)がインストールされ、適切に動作している必要があります。

この設定を行うことで、システムが発する重要な警告やレポートをリアルタイムで受け取ることができ、問題発生時に迅速に対応することが可能になります。例えば、ディスク容量が逼迫している、不正なログイン試行があった、cronジョブが失敗したなどの情報を即座に把握し、システムを健全に保つための予防策や対応策を講じることができます。システム管理における極めて重要な初期設定の一つと言えるでしょう。

]# dnf -y install postfix ← Postfixインストール
]# systemctl start postfix ← Postfix起動
]# systemctl enable postfix ← Postfix自動起動設定

メール転送ツールインストール
]# dnf -y install s-nail

]# sed -i '/^root:/d' /etc/aliases ← 現在のroot宛メール転送設定を削除
]# echo "root: xxxxxxxx@example.com" >> /etc/aliases ← root宛メール宛先を変更する
]# newaliases ← 転送設定反映
]# echo test|mail root ← テストメール

SELinuxの無効化

SELinux (Security-Enhanced Linux) は、Linuxカーネルに組み込まれた強制アクセス制御 (MAC) セキュリティメカニズムです。従来の任意アクセス制御 (DAC) に加えて、プロセスがファイルや他のリソースにアクセスする権限をより厳格に制限することで、システムのセキュリティを大幅に向上させます。たとえ悪意のあるプログラムがシステムに侵入したとしても、SELinuxのポリシーによってその活動が制限され、被害を最小限に抑えることができます。

しかし、SELinuxは非常に強力である反面、その厳格なポリシーがアプリケーションの動作を妨げたり、複雑な設定を必要としたりすることがあります。特に、カスタムアプリケーションや特定のサービスを導入する際に、SELinuxの知識が不足していると、予期せぬアクセス拒否エラーに直面し、システムのセットアップが困難になる場合があります。このため、一部のユーザーはトラブルシューティングの手間を省くために、SELinuxを無効化する選択をすることがあります。

SELinuxを無効化するには、/etc/selinux/configファイルを編集し、SELINUX=enforcingSELINUX=disabledに変更してシステムを再起動します。一時的に無効化したい場合は、setenforce 0コマンドを実行することで、再起動することなくPermissiveモード(警告のみで強制はしない)に切り替えることができます。ただし、これらの操作はシステムのセキュリティレベルを著しく低下させるため、本番環境での安易な無効化は絶対に避けるべきです。

SELinuxの無効化は、セキュリティ上のリスクを伴う最終手段としてのみ検討すべきです。理想的には、SELinuxをenforcingモードで運用し、必要に応じてカスタムポリシーを追加したり、既存のポリシーを調整したりする方法を学ぶべきです。audit2allowツールやsemanageコマンドなどを用いて、SELinuxの警告を分析し、必要なアクセス許可のみを追加することで、セキュリティと利便性を両立させることが可能です。システムの安定性とセキュリティを確保するため、SELinuxは可能な限り有効な状態で運用することを強く推奨します。

AlmaLinux 9のインストール後に実施すべき初期設定の第一歩として、日本語化、sudo権限の管理、パッケージ管理システムの設定とリポジトリの追加、root宛メールの転送、そしてSELinuxの取り扱いについて解説しました。これらの設定は、システムを安全に、そして効率的に運用していくための基盤を築く上で欠かせないものです。特にセキュリティに関する設定は、将来的なトラブルを未然に防ぐために、時間をかけてでも確実に行うべきです。本記事で紹介した内容を参考に、ご自身のAlmaLinux 9環境をより堅牢で使いやすいものにカスタマイズしてください。次回は、さらに踏み込んだ初期設定や運用に役立つ項目について解説する予定です。

]# grubby --update-kernel ALL --args selinux=0 ← システム起動時にSELinuxを無効化

最後は再起動する。

]# reboot ← システム再起動