Mailサーバー用-almalinuxセットアップ
2025/10/24
almalinuxの基礎構築 最初にやっておくこと
AlmaLinux 9.x(最小構成)をクリーンインストール直後から安全・再現性高く構築するための完全手順書です。Postfix等の導入前に、システム基盤を整える目的です。
1. システム初期確認
目的:インストール直後のシステム情報を確認。sudo cat /etc/almalinux-release uname -r ip -brief address lsblk df -hT sudo dnf repolist確認ポイント:
- AlmaLinux 9.x と表示される
- NIC名(例:ens160)を確認
- `/` に十分な空き容量がある
2. ロケール設定(ja_JP.UTF-8)
sudo dnf install -y glibc-langpack-ja sudo localectl set-locale LANG=ja_JP.UTF-8 cat /etc/locale.conf出力:
LANG=ja_JP.UTF-8
この項目の詳しい解説はこちら。
3. タイムゾーンと時刻同期設定
sudo timedatectl set-timezone Asia/Tokyo sudo systemctl enable --now chronyd timedatectl status想定結果:
Time zone: Asia/Tokyo
System clock synchronized: yes
この項目の詳しい解説はこちら。
4. SELinux 状態確認と無効化(構築が完了したら有効化する)
さくらインターネットVPSのalmalinuxでは、SElinuxは当初からdisableなので、さくらVPSの場合は不要getenforce sudo cp -a /etc/selinux/config /etc/selinux/config.bak-$(date +%Y%m%d) sudo setenforce 0 || true sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config getenforce grep '^SELINUX=' /etc/selinux/config想定結果:
`Disabled`
この項目の詳しい解説はこちら。
5. スワップ領域(4GB)作成・永続化
VPSの契約は、メモリ4GBですので、今後のメールサーバー構築を見据え、スワップ領域4GBを確保しておきます。sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile grep -q "/swapfile" /etc/fstab || echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab確認:
swapon --show
free -h
この項目の詳しい解説はこちら。
6. 基本パッケージ導入
sudo dnf install -y epel-release sudo dnf install -y bash-completion curl wget git tar zip unzip bind-utils firewalld glibc-langpack-ja telnet nc rsync screen htop tree jqこの項目の詳しい解説はこちら。
7.エディタ導入
自分の好みのエディタをいれて構いませんが、ここでは vim-enhanced 、nano、microの3つを入れておきます。両方とも定評のあるエディタです。nanoはシンプルで使いやすいですが、ショートカットキーがunixライクなので、windows環境に慣れている方はmicroのほうがいいかもしれません(好みです)。
vimは、プロには好まれますが、初学者には習熟するまで時間がかかるかも知れません。
エディタは複数インストールしておいて使いやすいのを使えばよいと思います。
nanoの導入
sudo dnf install -y nano vim-enhancedmicro エディタは、EPELには含まれていないので、スクリプトから導入(直接バイナリ導入)する必要があります。
microの導入
cd ~
curl https://getmic.ro | bash
sudo mv ~/micro /usr/local/bin/micro
#microはそのままではパスが通らないので、通しておく。
#`sudo micro` 実行時に「command not found」になる問題の対策。
#sudo secure_path に /usr/local/bin を追加(恒久対策)
grep -Rq "/usr/local/bin" /etc/sudoers /etc/sudoers.d 2>/dev/null || {
echo 'Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin' | sudo tee /etc/sudoers.d/10-secure-path >/dev/null
sudo chmod 440 /etc/sudoers.d/10-secure-path
sudo visudo -cf /etc/sudoers.d/10-secure-path
}
#デフォルトエディタにmicoroを指定(デフォルトをnanoにしたい場合は下記のmicroをnanoに変更) 環境変数設定(冪等): grep -q "EDITOR=micro" ~/.bashrc || echo 'export EDITOR=micro' >> ~/.bashrc grep -q "VISUAL=micro" ~/.bashrc || echo 'export VISUAL=micro' >> ~/.bashrcリポジトリにあるソフト(vim,nano)は、/usr/bin/ にインストールされますが、ここはOSやディストリビューションが管理するディレクトリなので、ディストリに含まれないmicroは/usr/local/binにインストールしています。今後、リポジトリにmicroが含まれるようになれば、nanoと一緒のディレクトリにインストールすることになるでしょう。
確認:
sudo -V | sed -n 's/^Secure Path: //p'
出力例:
`/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin`
この項目の詳しい解説はこちら。
8. firewalld 設定
ここでは最小限の設定。今後のメールサーバー設定時には、さらに拡張する。sudo systemctl enable --now firewalld sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload sudo firewall-cmd --list-all想定結果:
services: ssh
この項目の詳しい解説はこちら。
9. fail2ban 導入
sudo dnf install -y fail2ban sudo systemctl enable --now fail2ban sudo mkdir -p /etc/fail2ban/jail.d cat <<'EOF' | sudo tee /etc/fail2ban/jail.d/sshd.local [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/secure maxretry = 5 bantime = 3600 EOF sudo systemctl restart fail2ban sudo fail2ban-client status sshd
10. 再起動前の整合チェック
sudo systemctl is-enabled firewalld sudo systemctl is-enabled fail2ban sudo getenforce sudo hostnamectl sudo timedatectl sudo free -h sudo firewall-cmd --list-all
11. システム更新
sudo dnf update -y
覚え書き
SElinux有効時にswapファイルのrestoreを忘れずに!!sudo restorecon /swapfile