MIRACLE LINUX 9.2

更新日2024-03-08 (金) 15:47:37
作成日:2024年2月26日

OS Install

以下から、完全版インストールイメージ(MIRACLELINUX-9.2-rtm-x86_64.iso)をDL

Esxi8.0u2にインストール

ゲストOSはMIRACLE LINUX 8 (64 ビット)を指定

https://www.miraclelinux.com/distribution/download

Emacs install

# yum install emacs

Web server install

# rpm -qa | grep httpd
miraclelinux-logos-httpd-90.4-1.el9.ML.6.noarch
httpd-filesystem-2.4.57-5.el9.noarch
httpd-tools-2.4.57-5.el9.x86_64
httpd-core-2.4.57-5.el9.x86_64
httpd-2.4.57-5.el9.x86_64
httpd-manual-2.4.57-5.el9.noarch
# systemctl status httpd
○ httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: d>
     Active: inactive (dead)
# systemctl start httpd
# systemctl status httpd
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: d>
     Active: active (running) since Tue 2024-02-13 15:20:02 JST; 5s ago
       Docs: man:httpd.service(8)
   Main PID: 4650 (httpd)
     Status: "Started, listening on: port 443, port 80"

htmlの場所

  • /var/www/html

インストール時には空フォルダで、デフォルトのページが開くがindex.htmlを作成すると、index.htmlが開く

Firewall

firewallの確認

# firewall-cmd --state
running
# firewall-cmd --get-services | sed 's/ /\n/g' | grep http
http
http3
https
wbem-http
wbem-https

一時的にhttpのポートを開ける

# firewall-cmd --add-service=http
success
# firewall-cmd --add-service=https
success

恒久的にhttpのポートを開ける

# firewall-cmd --add-service=http --permanent
success
# firewall-cmd --add-service=https --permanent
success

恒久的にhttpのポートを閉じる

# firewall-cmd --remove-service=http --permanent
success
# firewall-cmd --reload
success

firewallのサービス一覧表示

# firewall-cmd --get-services | sed 's/ /\n/g'
RH-Satellite-6
RH-Satellite-6-capsule
afp
amanda-client
amanda-k5-client
amqp
amqps
(略)

ネットワーク(ipv6停止)

デバイスの確認

# nmcli dev s
DEVICE  TYPE      STATE            CONNECTION
ens192  ethernet  接続済み         ens192
lo      loopback  接続済み (外部)  lo

ipアドレスの確認

# ip address show ens192
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:6e:0f:f3 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.10.142/24 brd 192.168.10.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe6e:ff3/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

ipv6をdisabled に設定してネットワーク再起動

# nmcli connection modify ens192 ipv6.method "disabled"
# nmcli connection up ens192
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/3)

ipv6が消えていることの確認

# ip address show ens192
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:6e:0f:f3 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.10.142/24 brd 192.168.10.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever

mail sever(postfix) install

# rpm -qa | grep postfix
postfix-3.5.9-24.el9.x86_64
# firewall-cmd --add-service=postfix
Error: INVALID_SERVICE: postfix

Postfixの基本設定

  • /etc/postfix/main.cf
myhostname = miracle9.ism21.net
mydomain = ism21.net
myorigin = $myhostname
##inet_interfaces = localhost
inet_interfaces = localhost, 192.168.10.142
##mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 192.168.10.0/24, 127.0.0.0/8

SMTPAUTHの設定

認証が成功したユーザだけがメールをリレー送信することができる設定

SASLによる認証方法を利用。
SASLによる認証方法には、主にUNIXユーザー認証(PAM認証)とSASL側のデータベース(sasldb)による認証がある。

UNIXユーザー認証(PAM認証)

/etc/postfix/main.cfの最後に以下を追加

## Edit by JE2ISM

###SMTPAUTH
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes

## smtpd_sasl_type = dovecot
## smtpd_sasl_path = private/auth
smtpd_sasl_path = smtpd  ← Cyrus SASLの設定ファイル名(smtpd.conf)

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains, reject

smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
  • /etc/postfix/master.cf
#submission inet n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd

#  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_auth_enable=yes

STARTTLS機能有効化方法(受信側)

「ここ」の個所がSTARTTLS通信で送られてきたメールも、平文通信で送られてきたメールも、両方とも受信することができる

  • main.cf
# TLS CONFIGURATION
#
# Basic Postfix TLS configuration by default with self-signed certificate
# for inbound SMTP and also opportunistic TLS for outbound SMTP.

# The full pathname of a file with the Postfix SMTP server RSA certificate
# in PEM format. Intermediate certificates should be included in general,
# the server certificate first, then the issuing CA(s) (bottom-up order).
#
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem

(略)
# Announce STARTTLS support to remote SMTP clients, but do not require that
# clients use TLS encryption (opportunistic TLS inbound).
#
smtpd_tls_security_level = may ←ここ

ユーザーとパスワードを登録したデーターベースファイル/etc/sasldb2を作成

saslデータベース使用時には以下のようにユーザ、パスワードを作成する。

上記の場合はPAMを利用するので以下のユーザ作成は不要。

# /usr/sbin/saslpasswd2 -c -u `postconf -h myhostname` okada
Password:
Again (for verification):
# chgrp postfix sasl2
# ls -l sasl2
合計 20
-rw-------. 1 root root 16384  2月 14 15:30 sasldb2
-rw-r--r--. 1 root root    49 12月  1 15:20 smtpd.conf
  • 権限の変更
# cd /etc/sasl2
# chgrp  postfix sasl2/sasldb2
# chmod g+r sasl2/sasldb2
# ls -l sasl2
合計 20
-rw-r-----. 1 root postfix 16384  2月 14 15:30 sasldb2
-rw-r--r--. 1 root root       49 12月  1 15:20 smtpd.conf

saslのインストール及び確認

# rpm -qa | grep sasl
cyrus-sasl-lib-2.1.27-21.el9.x86_64
cyrus-sasl-gssapi-2.1.27-21.el9.x86_64
cyrus-sasl-2.1.27-21.el9.x86_64
cyrus-sasl-plain-2.1.27-21.el9.x86_64 ←重要
cyrus-sasl-md5-2.1.27-21.el9.x86_64 ←重要

saslユーザ

今はsasl認証は使用するが、ユーザにはsaslデータベースを使用しないため登録不要

  • データベースが空の確認
# sasldblistusers2
#
  • 登録例
# /usr/sbin/sasldblistusers2
okada@miracle9.ism21.net: userPassword

sasl認証を設定

今はPAM認証を設定(saslDBは使用しない)

# less /etc/sasl2/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login

saslauthdを使う場合、mech_listにPLAINやLOGIN以外を指定してはいけない

# systemctl start saslauthd
# systemctl status saslauthd
● saslauthd.service - SASL authentication daemon.
     Loaded: loaded (/usr/lib/systemd/system/saslauthd.service; disabled; prese>
     Active: active (running) since Wed 2024-02-21 14:21:36 JST; 2s ago
    Process: 2242 ExecStart=/usr/sbin/saslauthd -m $SOCKETDIR -a $MECH $FLAGS (>
   Main PID: 2243 (saslauthd)
  • OS起動時にsasl起動するように設定
# systemctl enable saslauthd
Created symlink /etc/systemd/system/multi-user.target.wants/saslauthd.service  → /usr/lib/systemd/system/saslauthd.service.

参考

Postfix起動

# systemctl start postfix
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled; preset:>
     Active: active (running) since Wed 2024-02-14 15:42:15 JST; 6s ago
    Process: 2269 ExecStartPre=/usr/sbin/restorecon -R /var/spool/postfix/pid (>
    Process: 2270 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, sta> 
    Process: 2274 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited,> 
    Process: 2275 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCC>
   Main PID: 2343 (master)
(略)

OS起動時に起動

# systemctl enable postfix
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
# systemctl status postfix
○ postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; preset: >
     Active: inactive (dead)
# systemctl start postfix

OS起動時のPostfixの以下のエラー対策

# systemctl status postfix
(略)
2月 21 23:27:39 miracle9 systemd[1]: Starting Postfix Mail Transport Agent...
2月 21 23:27:40 miracle9 postfix[1052]: fatal: parameter inet_interfaces: no local interface found for 192.168.10.142
  • /etc/postfix/main.cf
inet_interfaces = all

にする

Postfixとsasl認証の関係

Postfix → libsasl → 外部認証サービスまたは内部プラグイン → 認証バックエンド

  • 外部認証サービス:saslauthdデーモン
  • 認証バックエンド:/etc/shadow or PAM

今回はPAMの認証を使用するので確認

認証のできるものの確認

# saslauthd -v
saslauthd 2.1.27
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap httpform

認証バックエンドに何(pam, sahadow)を使用するかは以下のファイルに記載

  • /etc/sysconfig/saslauthd
MECH=pam ← pam
or
MECH=shadow←こちらは指定しない

Telnet のInsatll(dnf)

dnfはyumの後継となるコマンド

# dnf install telnet

Postfix接続テスト(Port 25)

$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 miracle9.ism21.net ESMTP Postfix
ehlo 127.0.0.1
250-miracle9.ism21.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS  ←ログイン後の通信は暗号化しているがパスワード平文
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit

サブスクリプションポート(Port:587)接続

認証方式は通常のパスワード認証

smtp認証.png

firewallの許可

# firewall-cmd --add-service=smtp --zone=public --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-services --zone=public
....... smtp ....

mailコマンド(クライアント)のInstall

# dnf install s-nail
$ mail
s-nail: No mail for okada at /var/spool/mail/okada

mail送信

$ mail okada
Subject: TEST
To: okada
TEST
^D ← ctrl+d
-------
(Preliminary) Envelope contains:
To: okada
Subject: TES
Send this message [yes/no, empty: recompose]? yes

https://users.miraclelinux.com/technet/document/linux/training/2_7_5.html#training2_7_5

dovecot(IMAP)インストールと設定

imap(Port 143)+STARTTLSでの設定

STARTTLS:暗号化されていない状態で通信を開始し、途中でSTARTTLSコマンドを実行することで通信経路を暗号化をする

# rpm -qa | grep dovecot
dovecot-2.3.16-10.el9.x86_64

Postfix に SASL 機能が提供できるよう Dovecot を設定

# cd /etc/dovecot/
  • dovecot.conf
# Protocols we want to be serving.
#protocols = imap pop3 lmtp submission
protocols = imap pop3 lmtp submission


#listen = *, ::
listen = *
# cd conf.d
  • 10-auth.conf
#disable_plaintext_auth = yes
disable_plaintext_auth = no

# NOTE: See also disable_plaintext_auth setting.
##auth_mechanisms = plain
auth_mechanisms = plain login ← loginパスワードとして設定
  • 10-mail.conf
#mail_location =
mail_location = maildir:~/Maildir
  • 10-master.conf
service imap-login {
  inet_listener imap {
  #port = 143
  port = 143
 }


  # Postfix smtp-auth
  #unix_listener /var/spool/postfix/private/auth {
  #  mode = 0666
  #}

  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  • 10-ssl.conf
# plain imap and pop3 are still allowed for local connections
## ssl = required
ssl = no

起動

# systemctl start dovecot
# systemctl status dovecot
● dovecot.service - Dovecot IMAP/POP3 email server
     Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; preset:> 
     Active: active (running) since Wed 2024-02-21 16:44:22 JST; 6s ago
       Docs: man:dovecot(1)
             https://doc.dovecot.org/
    Process: 2512 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited>
   Main PID: 2519 (dovecot)
# systemctl enable dovecot
Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /usr/lib/systemd/system/dovecot.service.

Firewallのポートを許可

# firewall-cmd --add-service={pop3,imap} --permanent
success
# firewall-cmd --reload
success

postfixのmailboxを変更

  • /etc/postfix/main.cf
home_mailbox = Maildir/

Firewall 許可の表示(port / service)

# firewall-cmd --list-ports --zone=public --permanent
# firewall-cmd --list-ports --zone=public
# firewall-cmd --list-services --zone=public
cockpit dhcpv6-client imap pop3 ssh

Thunderbirdの設定

imap暗号化.png

受信サーバの設定.png

参考

dovecot(imap)パスワードの暗号化

imapのパスワードの暗号化。通信はSTARTTLS。

dovecotの設定の変更追加

# cd /etc/dovecot/conf.d
  • 10-auth.conf
# NOTE: See also disable_plaintext_auth setting.
##auth_mechanisms = plain
###auth_mechanisms = plain login
auth_mechanisms = cram-md5

(略)

#!include auth-passwdfile.conf.ext
!include auth-passwdfile.conf.ext
  • auth-passwdfile.conf.ext
passdb {
  driver = passwd-file
##  args = scheme=CRYPT username_format=%u /etc/dovecot/users
  args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/users
}

userdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/users

パスワード作成時エラー

パスワード作成時以下のエラーが発生

# doveadm pw -s CRAM-MD5
Error: conn unix:/run/dovecot/stats-writer (pid=1418,uid=0): Timeout waiting for handshake response
Enter new password:
Retype new password:

対策

/etc/dovecot/dovecot.confの行末に以下を追加

## Edit by JE2ISM

service stats {
  unix_listener stats-reader {
    group = dovecot
    mode = 0660
  }
  unix_listener stats-writer {
    group = dovecot
    mode = 0660
  }
}
service anvil {
  unix_listener anvil {
    group = dovecot
    mode = 0660
  }
}
  • 再起動
# systemctl restart dovecot

パスワード作成

# doveadm pw -s CRAM-MD5
Enter new password:
Retype new password:
{CRAM-MD5}848d037dda(略)053ecba9e

ユーザ・パスワードファイル作成

  • /etc/dovecot/
# 新規登録
# [ユーザー名]: [パスワード]

okada:{CRAM-MD5}848d037dda(略)053ecba9e

Thunderbirdの設定

imapパスワード暗号化.png

参考

OS起動時にdovecotへの接続エラー

OS起動後dovecotに接続できなくなる

  • /var/log/maillog
Mar  5 17:14:46 miracle9 dovecot[1238]: imap-login: Error: conn unix:/run/doveco
t/stats-writer (pid=1167,uid=0): Timeout waiting for handshake response
Mar  5 17:14:46 miracle9 dovecot[1238]: anvil: Warning: Time moved backwards by 32246.798102 seconds.
Mar  5 17:14:51 miracle9 dovecot[1238]: imap-login: Error: conn unix:/run/dovecot/stats-writer (pid=1167,uid=0): Timeout waiting for handshake response
Mar  5 17:14:56 miracle9 dovecot[1238]: imap-login: Warning: Auth process not responding, delayed sending initial response (greeting): user=<>, rip=192.168.20.10, lip=192.168.10.142, session=<1dv/b+USPsTAqBQK>

原因と対応

ネットワークが完成後にdovecotを起動しなと上記のようなエラーが出る

Route add してからdovecotを起動

# cd /etc/rc.d
  • rc.local
touch /var/lock/subsys/local

/usr/sbin/route add -net 192.168.20.0 gw 192.168.10.142 netmask 255.255.255.0 ens192
/usr/bin/sleep 5
/usr/bin/systemctl start dovecot

実行権の付与

# chmod +x rc.local

# ls -l
drwxr-xr-x. 2 root root 4096  2月  9 16:32 init.d
-rwxr-xr-x. 1 root root  609  3月  6 16:14 rc.local
-rwxr-xr-x. 1 root root  595  3月  6 15:58 rc.local~

dovecotでSSLを使用する

以下のようにすることでimps(Port993) SSL/TLS通信が出来るようだが、Thunderbirdが自己認証をサポートしないようなので、上記のSTARTTLSを検討する。

  • conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
  • conf.d/10-master.conf

service imap-login {

 inet_listener imap {
   #port = 143
 }
 inet_listener imaps {
   #port = 993
   #ssl = yes
   port = 993
   ssl = yes
 }
# systemctl restart dovecot
# firewall-cmd --add-service=imaps --zone=public --permanent
success
# firewall-cmd --reload

imapを停止してimapsだけサービスを動作させることが出来ないのでfirewallでimapを切る

# firewall-cmd --remove-service=imap --zone=public --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-services --zone=public
cockpit dhcpv6-client imaps pop3 smtp ssh

参考


添付ファイル: filesmtp認証.png 23件 [詳細] fileimapパスワード暗号化.png 22件 [詳細] file受信サーバの設定.png 28件 [詳細] fileimap暗号化.png 19件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-03-08 (金) 15:47:37