メールサーバー管理
メールサーバー管理:記事リスト
メールサーバー管理のカテゴリーには以下の記事がリストされています。
Postfix設定:mynetworksについて
Postfixが信頼するネットワークの範囲を指定します。
これは、Postfixが受信したメールの送信元IPアドレスが、
信頼できるネットワーク内のものかどうかを判断する際に使用されます。
mynetworksにリストされたIPアドレスから送信されたメールは、
通常の認証手段を必要とせずに、Postfixから中継されることが許可されます。
例えば、次のように設定します。
mynetworks = 127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8
この例では、 Postfixはlocalhost(127.0.0.0/8)、
192.168.x.xネットワーク(192.168.0.0/16)、
10.x.x.xネットワーク(10.0.0.0/8)からのメールを信頼します。
mynetworksは、スパム送信者による悪用を防ぐために重要なので、
通常、ローカルネットワーク内のIPアドレスやきちんと信頼できる
ネットワークの範囲を指定することが重要です。
Dovecotのバージョンを確認する
Dovecotのバージョンを確認するには、
dovecotコマンドに「--version」オプションを付けて実行します。
$ dovecot --version
2.3.16 (7e2e900c1a)
上記例では、「2.3.16 (7e2e900c1a)」と表示され、
Dovecotのバージョンが2.3.16ということが分かります。
Postfixのメールログを確認する
Postfixのログは、「/var/log/maillog」ファイルに出力されます。
1週間単位で自動ローテションされ、/var/log/maillogファイルの他に
「/var/log/maillog.1」〜「/var/log/maillog.4」までの4週間分を
歴として保持しています。
何かトラブルが発生した際、「/var/log/maillog」ファイルを
確認することで多くの原因を特定することができます。
■メールログファイル(/var/log/maillog)を確認する
# ls -l /var/log/maillog*
-rw------- 1 root root 1941316 7月 24 16:47 /var/log/maillog
-rw------- 1 root root 10497049 7月 23 04:02 /var/log/maillog.1
-rw------- 1 root root 10312833 7月 16 04:02 /var/log/maillog.2
-rw------- 1 root root 10810720 7月 9 04:02 /var/log/maillog.3
-rw------- 1 root root 9886779 7月 2 04:02 /var/log/maillog.4
■メールログファイルの内容を確認する
# tail /var/log/maillog
Jul 24 16:47:28 Mail_001_Enetmercury postfix/smtpd[30065]: warning: unknown[80.82.XX.XX]: SASL LOGIN authentication failed: authentication failure
Jul 24 16:47:29 Mail_001_Enetmercury postfix/smtpd[30065]: disconnect from unknown[80.82.XX.XX]
Jul 24 16:48:04 Mail_001_Enetmercury postfix/qmgr[1388]: 03D037E257: from=
Jul 24 16:48:05 Mail_001_Enetmercury postfix/smtp[29975]: 03D037E257: to=
Jul 24 16:49:44 Mail_001_Enetmercury postfix/qmgr[1388]: 813897E249: from=
Jul 24 16:50:14 Mail_001_Enetmercury postfix/smtp[29975]: connect to aaa.com[63.240.XXX.XXX]: Connection timed out (port 25)
Jul 24 16:50:14 Mail_001_Enetmercury postfix/smtp[29975]: 813897E249: to=
Jul 24 16:50:49 Mail_001_Enetmercury postfix/anvil[30067]: statistics: max connection rate 1/60s for (smtp:80.82.XX.XX) at Jul 24 16:47:27
Jul 24 16:50:49 Mail_001_Enetmercury postfix/anvil[30067]: statistics: max connection count 1 for (smtp:80.82.XX.XX) at Jul 24 16:47:27
Jul 24 16:50:49 Mail_001_Enetmercury postfix/anvil[30067]: statistics: max cache size 1 at Jul 24 16:47:27
MTAをSendmailからPostfixに変更する
MTAをSendmailからPostfixに変更する場合は、alternatives コマンドを実行します。
実行する際は、「--config」オプションに「mta」を指定します。
# alternatives --config mta
2 プログラムがあり 'mta' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2 ←Postfixの2を入力します。
# alternatives --config mta
2 プログラムがあり 'mta' を提供します。
選択 コマンド
-----------------------------------------------
* 1 /usr/sbin/sendmail.sendmail
+ 2 /usr/sbin/sendmail.postfix
MTAがPostfixに変更されます。
最後に、sendmailを停止し、Postfixを起動します。
Postfixでメールキューを削除する
Postfixでメールキューを削除するには、postsuperコマンドで行なえます。
postsuperコマンドにオプション「-d」を付け、
引数にQueue IDを指定します。
Queue IDの確認は、「Postfixでメールキューの状態を確認する」で
紹介している「postqueue -p」コマンドで行えます。
■Queue IDが「CDDE97E240」のキューを削除する
# postsuper -d CDDE97E240
postsuper: CDDE97E240: removed
postsuper: Deleted: 1 message
ソフトウェアの不具合により、メールが溜まってしまった場合は、
postsuperコマンドに、オプション「-d ALL」を付け、一括削除します。
# postsuper -d ALL
postsuper: Deleted: 6 messages
Postfixでメールキューの内容を確認する
キュー内のメールは、postcatコマンドを使用することで
内容を確認することが出来ます。
実行方法は、postcatコマンドにオプション「-q」を付け、
引数にQueue IDを指定します。
Queue IDの確認は、「Postfixでメールキューの状態を確認する」で
紹介している「postqueue -p」コマンドで行えます。
■Queue IDが「178A27E250」のキュー内容を確認する
# postcat -q 178A27E250
Postfixでメールキューの状態を確認する
Postfixでメールキューの状態を確認するには、postqueueコマンドを使用します。
postqueueコマンドにオプション「-p」を付けて実行します。
■メールキューが存在する場合
# postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
106E07E25C 28536 Thu Jul 20 00:01:20 pakira2@XXXXXXXXXXXXX.net
(Host or domain name not found. Name service error for name=tarou.jp type=MX: Host not found, try again)
yamada@XXXXXXXX.jp
19DEC7E261 20997 Thu Jul 20 00:02:04 pakira2@XXXXXXXXXXXXX.net
(connect to mail.xn--v9juc834uywe0tghzh2y4d.com[157.107.91.16]: Connection timed out)
webmaster@XXXXXXXXXXXXXXX.com
E227E7E242 22135 Thu Jul 20 00:01:23 pakira2@XXXXXXXXXXXXX.net
(connect to linuxlike.com[141.8.230.20]: Connection timed out)
likelinux@XXXXXXXXXX.com
6EEF87E246 20181 Thu Jul 20 00:02:03 pakira2@XXXXXXXXXXXXX.net
(Host or domain name not found. Name service error for name=kkk.com type=MX: Host not found, try again)
kkkkkkkkk@XXX.com
-- 91 Kbytes in 4 Requests.
■メールキューが存在しない場合
# postqueue -p
Mail queue is empty
■溜まっているメールキューを強制的に送信するには
postqueueコマンドにオプション「-f」を付けて実行します。
# postqueue -f
Postfixで送信できないメールを保持する日数を設定する
Postfixで何らかの原因で送信できないメールを保持する日数を設定するには、
main.cfファイルに「maximal_queue_lifetime」を設定します。
デフォルトでは5日保持するようになっていますが、
これを設定する事で、任意の日数に設定できます。
下記例では、保持日数を3日に設定しています。
# vi /etc/postfix/main.cf
maximal_queue_lifetime = 3d
設定を保存終了後、設定ファイルの再読込が必要になります。
Postfixでメッセージの再送信時間を設定する
メッセージが何らかの原因で送信できなかった場合、
再送信する時間間隔を設定する事ができます。
設定は、Postfixの設定ファイル「main.cf」で行います。
デフォルトでは、60秒となっていますが、
transport_retry_timeを指定することで任意の間隔で
再送信することが出来ます。
下記例では、再送信時間を180秒に設定しています。
# vi /etc/postfix/main.cf
transport_retry_time = 180s
設定を保存終了後、設定ファイルの再読込が必要になります。
Postfixでメールサイズの制限を設定する
メールサイズの制限を設定するには、
Postfixの設定フィアル「main.cf」を編集します。
デフォルトでは、10240000までのサイズ制限となっていますが、
message_size_limit設定を追加することで、
任意のサイズに変更することができます。
下記例では、9.5MBに制限をしています。
# vi /etc/postfix/main.cf
message_size_limit = 9500000 ←追加します。
設定を保存終了後、設定ファイルの再読込が必要になります。
Postfixのバージョンを確認するコマンド|現場で使う4つの手順
この記事では、Linux(Postfix)のバージョンを確認する方法を、目的別に分かりやすく解説します。環境や状況に合わせて、一番やりやすい方法を選んでみてください。
まずPostfixがインストールされているか確認する
バージョンを調べる前に、そもそも自分の環境にPostfixがインストールされているかを確認しましょう。Red Hat系Linux(RHEL、AlmaLinux、Rocky Linuxなど)では以下のコマンドで確認できます。
$ rpm -qa | grep postfix postfix-3.5.9-19.el9.x86_64
which postfix コマンドでも実行ファイルの場所から確認できます。$ which postfix /usr/sbin/postfix
