Linuxを使い始めるときに最初に設定すべきこと

Linuxを使い始めるときに最初に設定すべきこと

Linuxをインストールしたマシンで、最初に設定すべきことはさまざまありますが、そのなかでも、マシンの用途に関わらず、これだけはやっておいたほうが良いと思う初期設定項目を紹介します。

ホスト名

他のマシンからアクセスするマシンでは、ホスト名を分かりやすい名前に設定しておくとよいでしょう。ホスト名は、OSインストール時に設定することもできますが、以下のコマンドで設定することもできます。

# hostnamectl set-hostname server1.example.com

ホスト名を設定したら、以下のコマンドで正しく設定されたか確認します。

# hostname
server1.example.com

IPアドレス

サーバー用途で利用するLinuxマシンでは、IPアドレスなどはDHCPから配布による自動設定ではなく、固定で設定しておくとよいでしょう。なお、IPアドレスなどのネットワーク設定の多くはOSインストール時に設定することもできます。

IPアドレスなどのネットワーク設定をコマンドで設定する方法は、以下の記事をご覧ください。

Linuxのnmcliでのネットワーク設定方法
Linuxのnmcliでのネットワーク設定方法
RHEL系のAlmaLinuxを例に、nmcliコマンドを使ってネットワークインターフェースにIPアドレスなどのネットワーク設定を行う方法を紹介します。

管理ユーザーの追加

Linux環境では、通常操作は一般ユーザーで行い、root権限が必要になときのみsuやsudoを使って操作するというのが作法となるので、まずは通常操作で使用するユーザーを作成しておきます。なお、通常ユーザーはOSのインストール時に作成することもできます。

# adduser tarou
Linuxで管理者権限でコマンドを実行する方法(sudo, su)
Linuxで管理者権限でコマンドを実行する方法(sudo, su)
Linuxのsudoとsuコマンドの違いや、一般ユーザーがsuやsudoを使ってrootユーザー(スーパーユーザー)権限でコマンドを実行する方法を紹介します。

ログの永続化/保存サイズの調整

RedHat7以降では、それ以前のsyslogベースでのログ管理から、新たなログ管理の仕組みとしてjournaldが採用されています。

journaldのログは、既定ではOSを再起動するとすべて削除されてしまうため、OSを再起動してもログが残るよう永続化したいときは設定が必要となります。

journaldのログの永続化やログの保存サイズの設定方法は、以下の記事をご覧ください。

Linuxのログ管理journaldの基本設定
Linuxのログ管理journaldの基本設定
RHEL互換のAlmaLinuxを例に、ログ管理journaldで設定すべき項目と設定方法を解説します。

システムの更新

Linuxに限ったことではありませんが、OSをインストールし終えてネットワークに接続したら、まずはシステムを最新の状態に更新しておきましょう。

# dnf -y update

なお、システムの更新でカーネル(kernelから始まるパッケージ)のバージョンアップがあった場合は、更新後にシステムを再起動します。

自動更新

dnfでの更新はデフォルトでは手動で実行する必要がありますが「dnf-automatic」を使用することで、更新を自動化することもできます。

dnf-automaticの使い方は、以下の記事をご覧ください。

Linuxでdnfによる更新を自動化する方法(dnf-automatic)
Linuxでdnfによる更新を自動化する方法(dnf-automatic)
RHEL系のAlmaLinuxを例に、dnf-automaticを使ってdnfによる更新を自動化したり、新しい更新があることを通知させる方法を紹介します。

SELinuxの無効化

SELinuxはLinuxのセキュリティ機能として標準搭載されていますが、仕様が難解で設定方法も難しく、適切に設定しないとアプリケーションが動作しなくなるなどのトラブルが発生することがよくあります。また、パッケージによってはSELinuxを無効化しなければならないケースもあります。

SELinuxを適切に設定できるなら使うに越したことはありませんが、動作トラブルをなるべく避けたいなら無効化しておくとよいでしょう。

SELinuxを無効化するときは、以下のコマンドを実行してからシステムを再起動します。

# grubby --update-kernel ALL --args selinux=0

SELinuxとは、Linuxのセキュリティをより強固するための機能で、多くのLinuxディストリビューションに標準搭載されています。

Linuxには、すべてのファイルにアクセスできあらゆる操作を行うことができるrootと呼ばれる特権ユーザーが存在していますが、万が一rootの権限を悪意のある第三者に奪われてしまうと、システム全体を乗っ取られてしまう危険があります。

そこで、SELinuxでは「強制アクセス制御」というアクセス制御方式により、rootユーザーに対しても、設定されたアクセス制御を超えた権限を与えないようにすることで、セキュリティを強化しています。

日本語化

コンソール(ターミナル)での表示言語を日本語に変更したいときは、必要なパッケージをインストールしてから、ロケールを日本語に変更します。

# dnf install glibc-langpack-ja langpacks-ja
# localectl set-locale LANG=ja_JP.utf8

コマンドを実行後は、localectlコマンドでロケールが正しく変更されたか確認しま。

# localectl
System Locale: LANG=ja_JP.utf8
VC Keymap: jp
X11 Layout: jp

公開鍵認証でのSSH接続

Linuxを管理する際はリモートからSSH接続するというが一般的な方法となりますが、インターネットに公開しているLinuxマシンにSSH接続するときは、パスワード認証よりも安全な公開鍵認証による接続をおすすめします。

公開鍵認証でSSH接続するための設定は、以下の記事をご覧ください。

LinuxのSSHサーバーに公開鍵認証で接続するための設定方法
LinuxのSSHサーバーに公開鍵認証で接続するための設定方法
Linux上に構築したSSHサーバーに公開鍵認証で接続きるようにするための設定手順を紹介します。

ファイアウォール

Linuxをインターネットに公開するような場合は、ファイアウォールで必要な通信だけを許可するよう設定しておくことで、セキュリティを強化できます。

たとえば、LinuxをWebサーバーとして公開するような場合は、firewall-cmdコマンドでHTTPやHTTPS通信のみを許可するよう設定します。

# firewall-cmd --permanent --add-service={http,https}
# firewall-cmd --reload

特定のポート番号のみを許可したいときは、以下のようにコマンドを実行します。

# firewall-cmd --add-port=8080/tcp
# firewall-cmd --reload

設定を適用したら、正しく設定されたかを確認しておきます。上のコマンドを実行した場合は「services:」欄にhttpとhttpsが追加されています。

# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: dhcpv6-client http https
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

なお、ここでは具体的なコマンドは割愛しますが、firewall-cmdでは、送信元IPやポート番号、サービスを指定したrichルールを作成することもできます。

不要なソフトウェアのアンインストール

OSのインストール時に、サーバーツールや開発ツールなどの用途を選択して自動的にソフトウェアをインストールした場合、不要なソフトウェアがインストールされて動作している場合があります。

特に、サーバー用途でLinuxを使用する場合は、利用しないソフトウェアはアンインストールしておくのが、不要な通信を防ぐ・リソースの無駄遣いを防ぐのに有効化です。

不要なソフトウェアをアンインストールするときは、以下のコマンドでインストールします。

# dnf remove <パッケージ名>

なお、後から不要なソフトウェアをアンインストールするのが面倒なら、OSをMinimal(最小構成)でインストールして、必要なソフトウェアはOSインストール後にインストールすればよいでしょう。

あとがき

上記で紹介した基本的な設定に加えて、環境によっては、時刻同期、root宛メールの転送、バックアップ、監視、ウイルス対策などについても検討しておく必要があるでしょう。