2025 年 08 月 07 日
第3章 AlmaLinux のサーバー構築
目次
第 3 章 AlmaLinux のサーバー構築
3-1 インターネットのサーバー構築の基本
3-1-1 NTP サーバー構築
3-1-2 DHCP サーバー構築
3-1-3 DNS サーバー構築
3-1-4 Web サーバー構築
3-1-5 Mail サーバー構築
AlmaLinux は、RHEL(Red Hat Enterprise Linux)とアプリケーションバイナリインターフェース(ABI)互換を実現している安定性とセキュリティに優れたサーバー OS です。
AlmaLinux によるサーバー構築には、以下のようなメリットがあります。
- 安定性とセキュリティに優れている
- 豊富なリソースとコミュニティが存在する
- オープンソースで無料で使用できる
- Web サーバー、メールサーバー、データベースサーバー、ファイルサーバーなど、さまざまな用途に利用できる
AlmaLinux をインストールする際に、GUI でサーバー用ソフトウェアの追加が可能ですが、本章ではコマンドラインからインストール後に導入する方法を解説していきます。

3-1 インターネットのサーバー構築の基本
インターネット関連のサーバー基盤として、AlmaLinux では次のようなサーバーを構築できます。
- NTP サーバー
- DHCP サーバー
- DNS サーバー
- Web サーバー
- Mail サーバー
- VPN サーバー
- FTP サーバー
各サーバー基盤は、AlmaLinux にパッケージ管理コマンドの dnf を使ってインストールし、設定用ファイルを編集して、システムに常駐するサービスとして実行します。代表的な手順は次のようになります。
1. パッケージのインストール
NTP や DHCP などの各種サーバー機能は、パッケージとして提供されています。インターネットを介してパッケージを AlmaLinux にインストールするには、dnf( パッケージ管理コマンド ) を管理者権限で実行します。
管理者権限への移行は、su コマンドを使って root に切り替えるか、ユーザーのまま管理者権限でコマンドを実行できる sudo を使います。
【管理者権限 (root) へ移行して実行】
コマンド実行例
※ AlmaLinux は登録したユーザー名の例 / パスワード項目には「root パスワード」を入力します
[AlmaLinux@localhost ~]$ su パスワード : [root@localhost ~]# dnf -y install chrony
【ユーザーのまま実行】
[AlmaLinux@localhost ~]$sudo dnf -y install chrony パスワード :
どちらの方法でも、dnf コマンドは実行できます。管理者として実行するコマンドが多いときには、root 権限に移行しておくと便利です。しかし、セキュリティ対策の観点からは、一般ユーザーのままで必要なときに sudo コマンドを使う方が安全です。
2. 設定ファイルの編集
各サーバー機能には、実行条件を設定するためのテキストファイルがセットになっています。多くの設定用ファイルは、.conf という拡張子で /etc フォルダに保存されています。
設定用ファイルの編集には、GNOME デスクトップ環境であれば、テキストエディターが使えます。minimal インストールで、コマンドモードしか利用できない環境では、標準で搭載されている vi というテキストエディターを使います。
テキストファイル編集例
[AlmaLinux@localhost ~]$ vi /etc/chrony.conf
編集するファイルによっては、管理者権限が求められます。そのときには、sudo で実行するか root 権限で編集します。
3. サービスの起動
設定用のファイルを編集して保存したら、実行したいサーバー機能をサービスとして起動します。サービスは、デーモン (daemon: 守護神 ) とも呼ばれています。デーモンはバックグラウンドで動作するプロセスなので、フォアグラウンドで実行されるアプリケーションと区別するために、プログラム名の末尾に d を付けています。
サービス / デーモンを起動するには、AlmaLinux の systemctl コマンドを使います。
サービスの起動例
[AlmaLinux@localhost ~]$ sudo systemctl start dhcpd パスワード :
systemctl で起動したサービスは、AlmaLinux を再起動すると停止します。再起動後も自動的に起動するには、systemctl コマンドの enable オプションを使います。
自動起動の例
[AlmaLinux@localhost ~]$ sudo systemctl enable dhcpd パスワード :
以上の 3 ステップを理解して、実際のサーバー導入例を見ていきましょう。
3-1-1 NTP サーバー構築
NTP サーバーは、インターネットなどの TCP/IP ネットワーク上で現在時刻の情報を配信します。NTP(Network Time Protocol)で時刻をサーバー間で同期し、クライアントに正確な現在時刻を知らせます。
NTP サーバーのインストール
sudo dnf -y install chrony
NTP 設定ファイルの編集
vi /etc/chrony.conf
または、テキストエディターで /etc/chrony.conf ファイルを開く
chrony の設定を確認
標準の設定では、pool で alamalinux の提供する NTP サーバーを参照しています。
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). pool 2.almalinux.pool.ntp.org iburst
例えば、独立行政法人 情報通信研究機構が公開している NTP サーバーを指定したいときには、pool を #( コメントアウト ) して、以下のようなサーバー名を追加します。
server ntp.nict.jp iburst
また、NTP サーバーとしてクライアントからのアクセスを許可するためには、allow で IP アドレスを指定します。
# Allow NTP client access from local network. #allow 192.168.0.0/16 allow 192.168.1.0/24
chrony の再起動
/etc/chrony.conf ファイルを編集して保存したら、chrony を再起動します。
sudo systemctl restart chronyd
また、NTP サーバーを自動で起動するには、以下のコマンドを実行します。
sudo systemctl enable chronyd
3-1-2 DHCP サーバー構築
DHCP サーバーは、ネットワークに接続する各種デバイスに、IP アドレスなどの情報を自動的に発行します。
DHCP(Dynamic Host Configuration Protocol)という通信手順を用いて、あらかじめ設定した IP アドレスや DNS サーバーのアドレスなどの情報をデバイスに自動的に送信します。
DHCP サーバーのインストール
sudo dnf -y install dhcp-server
DHCP 設定ファイルの編集
vi /etc/dhcp/dhcpd.conf
subnet で、サブネット範囲を追加し、host で固定 IP アドレスを割り当てます。
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.3 192.168.1.254;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
}
# IP アドレス固定割当て
host xxxxxx-server {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.1.11;
}
DHCP サーバーの起動
/etc/dhcp/dhcpd.conf ファイルを編集したら、DHCP サーバーを起動します。
sudo systemctl start dhcpd
DHCP サーバーを自動で起動するには、以下のコマンドを実行します。
sudo systemctl enable dhcpd
3-1-3 DNS サーバー構築
DNS サーバーは、ドメインネームシステム(Domain Name System)の略で、ドメイン名と IP アドレスを連動させます。多くの Linux では、DNS サーバーの標準として、BIND というソフトウェアを利用しています。
BIND のインストール
sudo dnf -y install bind bind-chroot
BIND の設定
vi /etc/named.conf
BIND 設定用の初期ファイルは、以下のようになります。このファイルを編集して、必要なドメイン名や IP アドレスを登録していきます。
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { localhost; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
追加する内容は、構築するサーバーの条件によって異なります。
主なステートメント名と役割は、以下のようになります。
| ステートメント | 役割 |
|---|---|
| acl | ACL の定義 |
| controls | named を操作できるホストの指定 |
| include | 外部ファイルの読み込み |
| key | 認証情報の設定 |
| options | named の動作に関する詳細設定 |
| zone | ゾーンの定義 |
3-1-4 Web サーバー構築
Web サーバーは、ホームベージで情報を発信するために必須のサーバーです。代表的な Web サーバーには、オープンソースの Apache HTTP Server や nginx などがあります。
Apache のインストール
sudo dnf -y install httpd
もし、Appache の他に、PHP などもインストールする場合は、まとめて設定できます。
sudo dnf -y install httpd php php-mbstring
Apache の起動
sudo systemctl start httpd
インストールした Apache が正しく機能するか確認するには、Web ブラウザで http://localhost を参照します。

テストページが表示されれば、Appache の httpd デーモンが正しく機能しています。
もし、ローカルホストで確認できないときには、Apache の設定ファイルを編集して各定義を修正します。
Apache の設定
vi /etc/httpd/conf/httpd.conf
設定用のファイルを開くと、次のような内容が確認できます。
#ServerName www.example.com:80 <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs-2.0/mod/core.html#options # for more information. # Options Indexes FollowSymLinks
設定できる指示や命令 ( ディレクティブ ) の一覧は、以下のサイトに掲載されています。
また、主要なディレクティブには、次のような内容があります s。
| ディレクティブ名 | 機能 |
|---|---|
| ServerName | サーバー名を指定 |
| ServerRoot | システム全体のルートディレクトリを指定 |
| Listen | 接続を受け付けるポート番号を指定 |
| DocumentRoot | Web ページとして公開するコンテンツを格納する最上位のディレクトリを指定 |
| ServerAdmin | 管理者のメールアドレスを指定 |
| Include | 他の設定ファイルの読み込み |
3-1-5 Mail サーバー構築
メールサーバーは、メールの送受信や配送に利用するサーバーです。
AlmaLinux では、オープンソースの Sendmail などを利用できます。
Sendmail のインストール
sudo dnf install sendmail sendmail-cf make -y
インストールが完了したら、/etc/hosts ファイルを編集し、your-hostname を利用するホスト名に変更します。
vi /etc/hosts
127.0.0.1 localhost your-hostname
SMTP の設定
/etc/mail/sendmail.mc ファイルを編集して、SMTP のホスト名などを指定します。
vi /etc/mail/sendmail.mc
define(`SMART_HOST',`smtp-host')dnl define(`RELAY_MAILER', `esmtp')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define で定義されている smtp-host を、SMTP で利用するホスト名に変更します。
sendmail の起動
ファイルの編集が完了したら、sendmail を起動します。
sudo systemctl restart sendmail
本連載ではこれまで 3 回にわたって「実践 AlmaLinux」として、AlmaLinux を扱う上で実際に利用する可能性の高い実践的な操作方法などを解説しました。AlmaLinux のビジネス活用や理解の深化にお役立ていただければと思います。
サイバートラストでは、AlmaLinux OS を商用利用する法人のお客様向けに有償のサポートサービスを提供しています。疑問点やご質問などございましたら、お気軽に問い合わせフォームよりご連絡ください。










