RHEL9で作る自宅サーバ:mailサーバの構築 その2 dovecotのインストールと設定

mailサーバRHEL9パソコン自宅サーバ

dovecotのインストール

とりあえずdovecotをインストールして、ローカルのメールの送受信ができるか確認してみましょう。

[root@ace ~]# dnf install dovecot dovecot-pigeonhole
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 1:41:44 前の 2024年02月25日 22時52分13秒 に実施 しました。
依存関係が解決しました。
================================================================================
 パッケージ     Arch   バージョン        リポジトリー                     サイズ
================================================================================
インストール:
 dovecot        x86_64 1:2.3.16-10.el9   rhel-9-for-x86_64-appstream-rpms 4.9 M
 dovecot-pigeonhole
                x86_64 1:2.3.16-10.el9   rhel-9-for-x86_64-appstream-rpms 390 k
依存関係のインストール:
 clucene-core   x86_64 2.3.3.4-42.20130812.e8e3d20git.el9
                                         rhel-9-for-x86_64-appstream-rpms 590 k
 libexttextcat  x86_64 3.4.5-11.el9      rhel-9-for-x86_64-appstream-rpms 249 k
 libstemmer     x86_64 0-18.585svn.el9   rhel-9-for-x86_64-appstream-rpms  85 k

トランザクションの概要
================================================================================
インストール  5 パッケージ

ダウンロードサイズの合計: 6.2 M
インストール後のサイズ: 22 M
これでよろしいですか? [y/N]: y
:
省略
:
インストール済み:
  clucene-core-2.3.3.4-42.20130812.e8e3d20git.el9.x86_64
  dovecot-1:2.3.16-10.el9.x86_64
  dovecot-pigeonhole-1:2.3.16-10.el9.x86_64
  libexttextcat-3.4.5-11.el9.x86_64
  libstemmer-0-18.585svn.el9.x86_64

完了しました!
[root@ace ~]#

dovecotとdovecot-pigeonholeの2つのパッケージをインストールします。

dovecot-pigeonholeは、サーバ側でメールの振り分けを行うためのツールです。同じようなものに、procmailがありますが、ちょっと新し目のものを使ってみます。

設定ファイルの編集

[root@ace ~]# cp -p /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig
[root@ace ~]# vi /etc/dovecot/conf.d/10-mail.conf
[root@ace ~]# diff /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig
30c30
< mail_location =  maildir:~/Maildir
---
> #mail_location =
[root@ace ~]#

メールの形式をMaildirにしておきます。

[root@ace ~]# cp -p /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
[root@ace ~]# vi /etc/dovecot/conf.d/10-auth.conf
[root@ace ~]# diff /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
51c51
< auth_username_format = %n
---
> #auth_username_format = %Lu
100c100
< auth_mechanisms = plain login
---
> auth_mechanisms = plain
[root@ace ~]#

auth_username_formatに%nを指定すると、認証時に@ドメインを削除します。これはpostfixからの配送をlmtpで行っているとき、認証を電子メールアドレスで行おうとするので、ローカルユーザしかいない環境では必須です。
auth_mechanismsloginを追加しました。平文でも認証時はsslをかけているので、安全です。

[root@ace ~]# cp -p /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig
[root@ace ~]# vi /etc/dovecot/conf.d/10-ssl.conf
[root@ace ~]# diff /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig
14,15c14,15
< ssl_cert = </etc/letsencrypt/live/zeke.ne.jp/fullchain.pem
< ssl_key = </etc/letsencrypt/live/zeke.ne.jp/privkey.pem
---
> ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
> ssl_key = </etc/pki/dovecot/private/dovecot.pem
26c26
< ssl_ca = </etc/pki/tls/certs/ca-bundle.crt
---
> #ssl_ca =
56c56
< ssl_dh = </etc/dovecot/dh.pem
---
> #ssl_dh = </etc/dovecot/dh.pem
[root@ace ~]#

Let’s Encryptから取ってきた証明書を指定しています。ワイルドカード証明書なので、どんな名前でも使いまわしがききます。
また、CA証明書としてpostfixで指定しているものと同じにしておきます。
さらに、Diffie-Hellman パラメーターファイルも指定します。

[root@ace ~]# openssl dhparam -out /etc/dovecot/dh.pem 4096
Generating DH parameters, 4096 bit long safe prime
..................................................+.............................
:
省略
:
++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*
[root@ace ~]#

Diffie-Hellman パラメーターファイルはこのように作成しますが、数分時間がかかります。

[root@ace ~]# cp -p /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.orig
[root@ace ~]# vi /etc/dovecot/conf.d/10-master.conf
[root@ace ~]# cat /etc/dovecot/conf.d/10-master.conf
:
省略
:
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }

  # Create inet listener only if you can't use the above UNIX socket
  #inet_listener lmtp {
    # Avoid making LMTP visible for the entire internet
    #address =
    #port =
  #}
}
:
省略
:
service auth {
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}
:
省略
:

[root@ace ~]#

postfix間でlmtpによるメールの配送とauthでの認証情報を連携するためのリスナーを開いています。

RedHat社のドキュメントではpostfix-dovecot間はLMTPの配送を推奨しているようなので、現行サーバのLDAの配送から変えてみました。

[root@ace ~]# cp -p /etc/dovecot/conf.d/20-imap.conf /etc/dovecot/conf.d/20-imap.conf.orig
[root@ace ~]# vi /etc/dovecot/conf.d/20-imap.conf
[root@ace ~]# tail -n 32 /etc/dovecot/conf.d/20-imap.conf
protocol imap {
  # Space separated list of plugins to load (default is global mail_plugins).
  #mail_plugins = $mail_plugins

  # Maximum number of IMAP connections allowed for a user from each IP address.
  # NOTE: The username is compared case-sensitively.
  #mail_max_userip_connections = 10

  namespace inbox {

    mailbox Drafts {
      special_use = \Drafts
      auto = subscribe
    }

    mailbox Junk {
      special_use = \Junk
      auto = subscribe
    }

    mailbox Trash {
      special_use = \Trash
      auto = subscribe
      autoexpunge = 180d
    }

    mailbox Sent {
      special_use = \Sent
      auto = subscribe
    }
  }
}
[root@ace ~]#

protocol imap内に、特殊なメールフォルダを自動作成するように追記しました。特に180日を過ぎたゴミ箱のメールを削除する設定にしています。

[root@ace ~]# cp -p /etc/dovecot/conf.d/20-lmtp.conf /etc/dovecot/conf.d/20-lmtp.conf.orig
[root@ace ~]# vi /etc/dovecot/conf.d/20-lmtp.conf
[root@ace ~]# diff /etc/dovecot/conf.d/20-lmtp.conf /etc/dovecot/conf.d/20-lmtp.
conf.orig
39c39
<   mail_plugins = $mail_plugins sieve
---
>   #mail_plugins = $mail_plugins
[root@ace ~]#

メールのローカル配送の設定です。ローカル配送時に振り分けできるようにsieveプラグインを追加します。

[root@ace ~]# cp -p /etc/dovecot/conf.d/20-managesieve.conf /etc/dovecot/conf.d/20-managesieve.conf.orig
[root@ace ~]# vi /etc/dovecot/conf.d/20-managesieve.conf
[root@ace ~]# diff /etc/dovecot/conf.d/20-managesieve.conf /etc/dovecot/conf.d/20-managesieve.conf.orig
6c6
< protocols = $protocols sieve
---
> #protocols = $protocols sieve
[root@ace ~]#

managesieveを有効にするために、コメントを外します。

[root@ace ~]# cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
[root@ace ~]# vi /etc/dovecot/dovecot.conf
[root@ace ~]# diff /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
24c24
< protocols = imap pop3 lmtp
---
> #protocols = imap pop3 lmtp submission
31d30
< listen = *
[root@ace ~]#

プロトコルはimapとpop3,lmtpだけに変更します。最近のdovecotはsubmissionもしゃべれるようになったんですね!
また、IPアドレスはIPv4のみ有効にします。

ちなみにdovecotの設定ではまった時などログをたくさん出したいときは/etc/dovecot/dovecot.confに

auth_verbose = yes
auth_debug = yes

を追記するとよいです!LDAからLMTPの配送に変えて、なんでローカルユーザの認証ができないのだろうと悩んだ時に助かりました!(LMTPでは認証にzeke@zeke.jpなどドメイン付きのユーザで認証しようとするので、pamは「そんなユーザはいない」と怒ってしまうのです)

[root@ace ~]# doveconf -n

最後にdoveconf -nコマンドを実行して設定でエラーがないか確認します。

メールボックスの作成など

[root@ace ~]# ls -al /etc/skel/
合計 24
drwxr-xr-x  2 root root   62  2月  2 19:06 .
drwxr-xr-x 90 root root 8192  2月 26 00:34 ..
-rw-r--r--  1 root root   18 11月 24  2022 .bash_logout
-rw-r--r--  1 root root  141 11月 24  2022 .bash_profile
-rw-r--r--  1 root root  492 11月 24  2022 .bashrc
[root@ace ~]# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
[root@ace ~]# chmod -R 700 /etc/skel/Maildir/
[root@ace ~]# ls -al /etc/skel/Maildir/
合計 0
drwx------ 5 root root 39  2月 26 22:01 .
drwxr-xr-x 3 root root 77  2月 26 22:01 ..
drwx------ 2 root root  6  2月 26 22:01 cur
drwx------ 2 root root  6  2月 26 22:01 new
drwx------ 2 root root  6  2月 26 22:01 tmp
[root@ace ~]# mkdir -p /home/zeke/Maildir/{new,cur,tmp}
[root@ace ~]# chown -R zeke:zeke /home/zeke/Maildir/
[root@ace ~]# chmod 700 -R /home/zeke/Maildir/
[root@ace ~]# ls -al /home/zeke/Maildir/
合計 0
drwx------ 5 zeke zeke  39  2月 26 22:01 .
drwxr-xr-x 9 zeke zeke 218  2月 26 22:01 ..
drwx------ 2 zeke zeke   6  2月 26 22:01 cur
drwx------ 2 zeke zeke   6  2月 26 22:01 new
drwx------ 2 zeke zeke   6  2月 26 22:01 tmp
[root@ace ~]#

新規ユーザ作成のために/etc/skel内にメールボックスを作っておきます。

また。既存ユーザにもメールボックスを作成。

[root@ace ~]# cp -p /etc/aliases /etc/aliases.orig
[root@ace ~]# vi /etc/aliases
[root@ace ~]# diff /etc/aliases /etc/aliases.orig
97c97
< root:         zeke
---
> #root:                marc
[root@ace ~]# newaliases
[root@ace ~]#

またroot宛のメールは既存ユーザに転送するようにailiasを変更です。

起動と動作確認

[root@ace ~]# systemctl status dovecot
○ dovecot.service - Dovecot IMAP/POP3 email server
     Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; preset:>
     Active: inactive (dead)
       Docs: man:dovecot(1)
             https://doc.dovecot.org/
[root@ace ~]# systemctl enable dovecot
Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /usr/lib/systemd/system/dovecot.service.
[root@ace ~]# systemctl start dovecot
[root@ace ~]# systemctl status dovecot
● dovecot.service - Dovecot IMAP/POP3 email server
     Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; preset: >
     Active: active (running) since Tue 2024-02-27 02:02:50 JST; 1min 29s ago
       Docs: man:dovecot(1)
             https://doc.dovecot.org/
    Process: 98183 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exite>
   Main PID: 98189 (dovecot)
     Status: "v2.3.16 (7e2e900c1a) running"
      Tasks: 4 (limit: 23114)
     Memory: 5.5M
        CPU: 132ms
     CGroup: /system.slice/dovecot.service
             tq98189 /usr/sbin/dovecot -F
             tq98191 dovecot/anvil
             tq98192 dovecot/log
             mq98193 dovecot/config

 2月 27 02:02:50 ace.zeke.ne.jp systemd[1]: Starting Dovecot IMAP/POP3 email se>
 2月 27 02:02:50 ace.zeke.ne.jp dovecot[98189]: master: Dovecot v2.3.16 (7e2e90>
 2月 27 02:02:50 ace.zeke.ne.jp systemd[1]: Started Dovecot IMAP/POP3 email ser>
[root@ace ~]#

とりあえず起動してみます。うん、うまく動いているようですね。

[root@ace ~]# telnet localhost 25
Trying ::1…

telnet: connect to address ::1: Connection refused
Trying 127.0.0.1…
Connected to localhost.
Escape character is '^]'.
220 mail.zeke.ne.jp ESMTP Postfix
HELO mail.zeke.ne.jp
250 mail.zeke.ne.jp
MAIL FROM: zeke@mail.zeke.ne.jp
250 2.1.0 Ok
RCPT TO: zeke@mail.zeke.ne.jp
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
test
mail

.
250 2.0.0 Ok: queued as 4BCF92007E00E
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
[root@ace ~]#

こんな感じでテストします。赤字が入力した文字です。

[root@ace ~]# telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.zeke.ne.jp ESMTP Postfix
HELO mail.zeke.ne.jp
250 mail.zeke.ne.jp
MAIL FROM: zeke@mail.zeke.ne.jp
250 2.1.0 Ok
RCPT TO: zeke@mail.zeke.ne.jp
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
test
mail
.
250 2.0.0 Ok: queued as 1EBEC2007E00D
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
[root@ace ~]# ls -al /home/zeke/Maildir/new/
合計 4
drwx------ 2 zeke zeke  64  2月 27 10:27  .
drwx------ 5 zeke zeke 207  2月 27 10:27  ..
-rw------- 1 zeke zeke 577  2月 27 10:27 '1708997231.M899122P3388.ace.zeke.ne.jp,S=577,W=593'
[root@ace ~]# cat /home/zeke/Maildir/new/1708997231.M899122P3388.ace.zeke.ne.jp\,S\=577\,W\=593
Return-Path: <zeke@mail.zeke.ne.jp>
Delivered-To: zeke@mail.zeke.ne.jp
Received: from mail.zeke.ne.jp
        by ace.zeke.ne.jp with LMTP
        id NSs+NG863WU8DQAAEjAjwQ
        (envelope-from <zeke@mail.zeke.ne.jp>)
        for <zeke@mail.zeke.ne.jp>; Tue, 27 Feb 2024 10:27:11 +0900
Received: from mail.zeke.ne.jp (unknown [127.0.0.1])
        by mail.zeke.ne.jp (Postfix) with SMTP id 1EBEC2007E00D
        for <zeke@mail.zeke.ne.jp>; Tue, 27 Feb 2024 10:26:37 +0900 (JST)
Message-Id: <20240227012642.1EBEC2007E00D@mail.zeke.ne.jp>
Date: Tue, 27 Feb 2024 10:26:37 +0900 (JST)
From: zeke@mail.zeke.ne.jp

test
mail
[root@ace ~]# cat /var/log/maillog
:
省略
:
Feb 27 10:26:28 ace postfix/smtpd[3378]: connect from unknown[127.0.0.1]
Feb 27 10:26:42 ace postfix/smtpd[3378]: 1EBEC2007E00D: client=unknown[127.0.0.1]
Feb 27 10:27:11 ace postfix/cleanup[3382]: 1EBEC2007E00D: message-id=<20240227012642.1EBEC2007E00D@mail.zeke.ne.jp>
Feb 27 10:27:11 ace postfix/qmgr[3375]: 1EBEC2007E00D: from=<zeke@mail.zeke.ne.jp>, size=327, nrcpt=1 (queue active)
Feb 27 10:27:11 ace dovecot[3282]: lmtp(3388): Connect from local
Feb 27 10:27:11 ace dovecot[3282]: auth: Debug: Loading modules from directory: /usr/lib64/dovecot/auth
Feb 27 10:27:11 ace dovecot[3282]: auth: Debug: Module loaded: /usr/lib64/dovecot/auth/lib20_auth_var_expand_crypt.so
Feb 27 10:27:11 ace dovecot[3282]: auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
Feb 27 10:27:11 ace dovecot[3282]: auth: Debug: Read auth token secret from /run/dovecot/auth-token-secret.dat
Feb 27 10:27:11 ace dovecot[3282]: auth: Debug: master in: USER#0111#011zeke@mail.zeke.ne.jp#011service=lmtp
Feb 27 10:27:11 ace dovecot[3282]: auth: Debug: passwd(zeke): Performing userdb lookup
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: Loading modules from directory: /usr/lib64/dovecot/auth
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: Module loaded: /usr/lib64/dovecot/auth/lib20_auth_var_expand_crypt.so
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: conn unix:auth-worker (pid=3390,uid=97): Server accepted connection (fd=13)
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: conn unix:auth-worker (pid=3390,uid=97): Sending version handshake
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: conn unix:auth-worker (pid=3390,uid=97): auth-worker<1>: Handling USER request
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: conn unix:auth-worker (pid=3390,uid=97): auth-worker<1>: passwd(zeke): Performing userdb lookup
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: conn unix:auth-worker (pid=3390,uid=97): auth-worker<1>: passwd(zeke): lookup
Feb 27 10:27:11 ace dovecot[3282]: auth: Debug: passwd(zeke): Finished userdb lookup
Feb 27 10:27:11 ace dovecot[3282]: auth: Debug: userdb out: USER#0111#011zeke#011system_groups_user=zeke#011uid=1000#011gid=1000#011home=/home/zeke
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: conn unix:auth-worker (pid=3390,uid=97): auth-worker<1>: passwd(zeke): Finished userdb lookup
Feb 27 10:27:11 ace dovecot[3282]: auth-worker(3391): Debug: conn unix:auth-worker (pid=3390,uid=97): auth-worker<1>: Finished
Feb 27 10:27:11 ace dovecot[3282]: lmtp(zeke)<3388><NSs+NG863WU8DQAAEjAjwQ>: msgid=<20240227012642.1EBEC2007E00D@mail.zeke.ne.jp>: saved mail to INBOX
Feb 27 10:27:11 ace postfix/lmtp[3387]: 1EBEC2007E00D: to=<zeke@mail.zeke.ne.jp>, relay=mail.zeke.ne.jp[private/dovecot-lmtp], delay=34, delays=34/0.01/0.05/0.03, dsn=2.0.0, status=sent (250 2.0.0 <zeke@mail.zeke.ne.jp> NSs+NG863WU8DQAAEjAjwQ Saved)
Feb 27 10:27:11 ace postfix/qmgr[3375]: 1EBEC2007E00D: removed
Feb 27 10:27:11 ace dovecot[3282]: lmtp(3388): Disconnect from local: Logged out (state=READY)
Feb 27 10:27:18 ace postfix/smtpd[3378]: disconnect from unknown[127.0.0.1] helo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Feb 27 10:28:11 ace dovecot[3282]: auth-worker(3391): Debug: conn unix:auth-worker (pid=3390,uid=97): Disconnected: Connection closed (fd=-1)
[root@ace ~]#

結果を確認すると、ちゃんとローカルに配送されていますね。(debugオプションを入れているので、情報量が多いです)

VirtualBoxのテスト用WindowsXP環境で、動作確認です。新しいサーバに接続できるように環境を設定してから、メールソフトThunderbirdで、新しいアカウントを追加します。

自動でサーバ設定されるので、メールボックスを開いてみると

先程送信したメールが読めました!

メールソフトを使って、自分自身に出してみて、ちゃんと届いたことを確認します。RHEL9の暗号化はTLS1.2以上必須ですが、大丈夫なようです!

サーバサイドのメール振り分け

メールの振り分けの確認です。
メールの振り分け設定はプラグインを使えば自動で作ってくれるのですが、自分で設定ファイルを編集するときは、

[zeke@ace ~]$ cd
[zeke@ace ~]$ mkdir sieve
[zeke@ace ~]$ touch sieve/dovecot.sieve
[zeke@ace ~]$ ln -s sieve/dovecot.sieve .dovecot.sieve
[zeke@ace ~]$ ls -al .dovecot.sieve
lrwxrwxrwx 1 zeke zeke 19  2月 27 12:39 .dovecot.sieve -> sieve/dovecot.sieve
[zeke@ace ~]$ vi sieve/dovecot.sieve

のように、~.dovecot.sieveがアクティブファイル、~sieve/がsieveスクリプト格納ディレクトリになります。

今回はThunderbirdにSieveプラグインを使って、適当にフィルタ定義を作成します。

ここでは、自分宛てのメールは、testフォルダに振り分けるように定義しました。

で、自分宛てにメールを出して、testフォルダに振り分けられることを確認しました。

いままで、サーバにログインして、振り分け定義をviでシコシコ書いていたのを、メールソフトのプラグインでできるようになったのが良いですね。(しかし、上記のプラグインは最新のThunderbirdでは使えなくなっています)

[zeke@ace ~]$ cat /home/zeke/.dovecot.sieve
#
# 2024-2-27
#
require ["fileinto","envelope","imap4flags"];
if address :contains "To" "zeke" {
        fileinto "test";
}
[zeke@ace ~]$

定義はこのようにサーバ側に保存されます。

こちらのリンクも参考にしてみてください。

Firewallの設定

[root@ace ~]# firewall-cmd --list-all-zones
:
省略
:
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources:
  services: dns ftp irc smtp smtp-submission smtps ssh
  ports: 5500-5501/tcp 20/tcp 20000-20200/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces:
  sources: 192.168.1.0/24 2001:2c0:cd03:ca00::/64 fe80::/64
  services:
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
:
省略
:
[root@ace ~]# firewall-cmd --permanent --zone=public --add-service={pop3,pop3s,i
map,imaps}
success
[root@ace ~]# firewall-cmd --permanent --zone=public --add-port=4190/tcp
success
[root@ace ~]# firewall-cmd --reload
success
[root@ace ~]# firewall-cmd --list-all-zones
:
省略
:
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources:
  services: dns ftp imap imaps irc pop3 pop3s smtp smtp-submission smtps ssh
  ports: 5500-5501/tcp 20/tcp 20000-20200/tcp 4190/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces:
  sources: 192.168.1.0/24 2001:2c0:cd03:ca00::/64 fe80::/64
  services:
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
:
省略
:
[root@ace zeke]#

firewallの設定を行います。今回開くポートはすべて認証するものなので、ルータで日本国内からのアクセスしか許しません。

4190/tcpはmanagesieveの使うポートになります。

お勧めのKindle本です!

コメント