#author("2024-03-08T15:41:11+09:00","default:okada","okada")
#author("2024-03-08T15:47:37+09:00","default:okada","okada")
*MIRACLE LINUX 9.2 [#p33307be]


RIGHT:更新日&lastmod();
RIGHT:作成日:2024年2月26日

**OS Install [#n27e09d1]

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

Esxi8.0u2にインストール 

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

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


**Emacs install [#l3c34804]

 # yum install emacs

**Web server install [#h87a2521]

 # 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の場所 [#f606973f]

-/var/www/html

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

**Firewall [#y4892730]

***firewallの確認 [#f1e912a0]

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


***一時的にhttpのポートを開ける [#q1734195]

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

***恒久的にhttpのポートを開ける [#r2e7a840]

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

***恒久的にhttpのポートを閉じる [#xf7c7f08]

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


***firewallのサービス一覧表示 [#c372ef9c]

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

**ネットワーク(ipv6停止) [#f04fdd2c]

***デバイスの確認 [#w35ad7ae]

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

***ipアドレスの確認 [#k957f2cf]

 # 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 に設定してネットワーク再起動 [#l452dfca]

 # nmcli connection modify ens192 ipv6.method "disabled"

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

***ipv6が消えていることの確認 [#r1781b8e]

 # 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 [#wae4b1dd]

 # rpm -qa | grep postfix
 postfix-3.5.9-24.el9.x86_64

 # firewall-cmd --add-service=postfix
 Error: INVALID_SERVICE: postfix


***Postfixの基本設定 [#u11cf95f]

-/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の設定 [#nb5fbe25]

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

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

***UNIXユーザー認証(PAM認証) [#beb65e1d]

/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機能有効化方法(受信側) [#v36b733d]

「ここ」の個所が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を作成 [#xea473c0]

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

&color(red){上記の場合は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のインストール及び確認 [#t48f65fa]

 # 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ユーザ [#l2484e4b]

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

-データベースが空の確認

 # sasldblistusers2
 #

-登録例

 # /usr/sbin/sasldblistusers2
 okada@miracle9.ism21.net: userPassword

***sasl認証を設定 [#r3a0d3d1]

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

 # less /etc/sasl2/smtpd.conf
 
 pwcheck_method: saslauthd
 mech_list: plain login

&color(red){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.


***参考 [#h89644fd]

-https://qiita.com/nkiw/items/cbddeaba18f8c010fb5e


***Postfix起動 [#aa98b019]

 # 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起動時に起動 [#c6672dfb]

 # 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の以下のエラー対策 [#h07027c9]

 # 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認証の関係 [#mb058289]

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

-外部認証サービス:saslauthdデーモン

-認証バックエンド:/etc/shadow or PAM

**今回はPAMの認証を使用するので確認 [#tf965a41]

***認証のできるものの確認 [#o49d9f91]

 # 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) [#z737bc9a]

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

 # dnf install telnet

***Postfix接続テスト(Port 25) [#fac87dcf]

 $ 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)接続 [#g042f884]

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

&ref("./smtp認証.png");

***firewallの許可 [#ga4c1d9e]

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

**mailコマンド(クライアント)のInstall [#i4541ced]

 # dnf install s-nail

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

***mail送信 [#rcbd9f55]

 $ 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)インストールと設定 [#o3dd97ac]

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

***起動 [#q8e185d8]

 # 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のポートを許可 [#e92c4ae3]

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

 # firewall-cmd --reload
 success

***postfixのmailboxを変更 [#od55c225]


-/etc/postfix/main.cf

 home_mailbox = Maildir/


**Firewall 許可の表示(port / service) [#y2397cb0]


 # 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の設定 [#v90e9098]

&ref("./imap暗号化.png");

&ref("./受信サーバの設定.png");

***参考 [#s42f6252]

-https://www.server-world.info/query?os=CentOS_7&p=mail&f=2

-https://mebee.info/2020/05/26/post-11804/#outline__4

**dovecot(imap)パスワードの暗号化 [#p44475f2]

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

***dovecotの設定 [#k169eba9]
***dovecotの設定の変更追加 [#k169eba9]

 # 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

***パスワード作成時エラー [#d5a7cc76]

&color(red){パスワード作成時以下のエラーが発生};

 # 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:

***対策 [#f34d6e0b]

/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

***パスワード作成 [#x416cde5]

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


***ユーザ・パスワードファイル作成 [#f5e28f5a]

-/etc/dovecot/

 # 新規登録
 # [ユーザー名]: [パスワード]
 
 okada:{CRAM-MD5}848d037dda(略)053ecba9e

***Thunderbirdの設定 [#jbfb7ded]

&ref("./imapパスワード暗号化.png");

***参考 [#v6f196f6]

-https://www.kd2.jp/memo/ubuntu/postfix/02_install_dovecot.php
-https://www.server-world.info/query?os=Ubuntu_20.04&p=mail&f=9

**OS起動時にdovecotへの接続エラー [#bd356eb4]

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>

***原因と対応 [#a7df588f]

ネットワークが完成後に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

***実行権の付与 [#x09a0162]

 # 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を使用する [#tdfe063d]

&color(red){以下のようにすることで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

***参考 [#s4f08749]

-https://rms.ne.jp/sslserver/install/install_dovecot-html/

-https://www.bigbang.mydns.jp/dovecot20-x.htm

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS