Linux Memo/Postfix
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*Postfixの設定方法 [#f78017d9]
RIGHT:更新日&lastmod();
**mailの中継について(メールのサーバの足取り) [#q8d4a3de]
***mailヘッダー部 [#q00afa0a]
Received: from ��
by ��; Wed, 9 Mar 2005 16:29:14 +0900
Received: from ��
by ��; Wed, 9 Mar 2005 16:29:14 +0900
Received: from (0)
by ��; Wed, 9 Mar 2005 16:29:02 +0900
''メールサーバの足取り''
(0) → � 、� �◆、���
***例 [#s7496d22]
Received: from cat-white-a99c5b89fafdbe6c.znlc.jp (cat-w...
by atom-2.ism21.net (Postfix) with ESMTP id CA9D1207D9A
for <okada@ism21.net>; Tue, 4 Apr 2023 11:31:04 +0900 ...
Received: from WIN-C73LB63JO80 (ec2-18-179-196-59.ap-nor...
by cat-white-a99c5b89fafdbe6c.znlc.jp (Postfix) with ES...
for <okada@ism21.net>; Tue, 4 Apr 2023 11:19:03 +0900 ...
''足取り''
WIN-C73LB63JO80 → cat-white-a99c5b89fafdbe6c.znlc.jp →...
**postfix-pcreでいたずら [#k70a1110]
# apt-get install postfix-pcre
postfix-pcreを入れるとperlの正規表現が可能になる
/etc/postfix/main.cfに
alias_maps = hash:/etc/aliases, pcre:/etc/postfix/aliase...
^^^^^^^^^^^^^^^^^^^^^^^^^...
/etc/postfix/aliases.regexpに
/^dummy[0-9]*(@.*)?$/ dummy
とするとdummy00 dummy9 などのメールがdummy 1アカウント...
このとき/etc/postfix/aliases.regexpは空ファイルでもいいか...
# touch aliases.regexp
[[perl正規表現 参考:http://www.site-cooler.com/kwl/perl/8...
**パラメータ [#a534364f]
aliasesで受けたメールをshellなど実行形式に渡して実行する...
ただしユーザ作成の必要あり
受信メールの1行目の
Return-Path: <aaa@xxx.ac.jp>
のユーザ名にも入る?
default_privs = nobody
**サブミッションポート [#i886d17a]
pop-before-smtpと併用するには以下の1行のコメントを外しpos...
すればよい。~
下の2行は
### SMTP認証を行わない限り、一切のメール送信を拒否する
-o smtpd_etrn_restrictions=reject
### 587番ポートへの、スパムメールを使用不能にしておく
-o smtpd_client_restrictions=permit_sasl_authenticated...
クライアントのポートを587にする
''master.cf''
submission inet n - n - - s...
#submission inet n - n - - ...
# -o smtpd_etrn_restrictions=reject
# -o smtpd_client_restrictions=permit_sasl_authent...
/etc/servicesを一応確認する
submission 587/tcp msa # mail m...
submission 587/udp msa # mail m...
smtp-authやSTLは別途検討する。
** postfixでサブミッションポートで送信 [#p7900e10]
postfixをsmtpクライアントとして利用し、TLS認証でパスワー...
以下をインストール
# yum install cyrus-sasl-plain
# /etc/rc.d/init.d/saslauthd start
以下を追加
''postfix/main.cf''
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
##Edit by JE2ISM
relayhost = [mail.ssl-mail.info]:587
#SSLを有効にする
smtp_use_tls = yes
smtpd_use_tls = yes
#認証の設定
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/isp_auth
smtp_sasl_security_options = noanonymou
smtp_sasl_tls_security_options = noanonymous
認証を相手に合わせる
smtp_sasl_mechanism_filter = plain
以下を修正
''postfix/master.cf''
#smtps inet n - n - - ...
smtps inet n - n - - ...
# -o smtpd_tls_wrappermode=yes
-o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticate...
-o smtpd_client_restrictions=permit_sasl_authenticated...
# -o milter_macro_daemon_name=ORIGINATING
パスワードの設定
''postfix/isp_auth''
[mail.ssl-mail.info]:587 okada2@wesden.net:*****
DB化を行う(必要)
# postmap /etc/postfix/isp_auth
postfix再起動
# /etc/rc.d/init.d/postfix restart
**メールのリレー等 [#rf48be33]
外向けのメールサーバと内部にユーザアカウントのあるサーバ...
外部から内部へのリレーの仕方について
---------------- ----------...
|DMZ上のサーバ |-----------(F/W)-----------|内部のサ...
---------------- ----------...
構成
***DMZ上のサーバから内部サーバへリレー [#mbc7ec3f]
/etc/postfix/main.cfで
以下の行(#で始まる部分以外)を記述
# TRANSPORT MAP
#
# Insert text from sample-transport.cf if you need expli...
transport_maps = hash:/etc/postfix/transport
/etc/postfix/transportに2行追加
ドメイン宛(@hogehoge.ac.jp)
hogehoge.ac.jp smtp:[192.168.1.2] (又はsmtp:xxx.hogehoge...
その他マシンも宛ても送る(@xxx.hogehoge.ac.jp)この記述では...
.hogehoge.ac.jp smtp:[192.168.1.2]
設定が完了したら、(変更するごとに実行の必要あり)
# /usr/sbin/postmap /etc/postfix/transport
/etc/postfix/transport変更するごとに実行し、/etc/rc.d/ini...
postmapを実行したときのログ(/var/log/maillog)
Jan 19 11:01:00 vmware40 postfix/pickup[1987]: 9A6DD1BB8...
Jan 19 11:01:00 vmware40 postfix/cleanup[2532]: 9A6DD1BB...
Jan 19 11:01:00 vmware40 postfix/qmgr[1988]: 9A6DD1BB8A3...
Jan 19 11:01:00 vmware40 postfix/smtp[2534]: 9A6DD1BB8A3...
Jan 19 11:01:00 vmware40 postfix/qmgr[1988]: 9A6DD1BB8A3...
***内部サーバのサーバからDMZ上へリレー [#ta635a90]
/etc/postfix/main.cf の以下の部分を編集
local_recipient_maps =
あて先不明なメールの処理を記述するパラメータで、何も指定...
myoriginが設定してあれはドメインなしアドレスはlocal_reci...
relayhost = [192.168.1.2] デフォルトのリレーホストを指定...
fallback_transport = smtp:[192.168.1.2]
ローカルに登録されていないユーザへのメールを転送する先を...
ただし、myoriginでそのサーバに転送されるのでローカルから...
relayhostはその他のサーバに送るときにもリレーしてくれる。
myoriginを転送先に設定すればよい。これはラウンドロビンな...
ドメインで受けて、存在しないユーザを別サーバに転送すると...
ただし、転送先アドレスが受信できないとエラーで帰ってくる...
受け取れないときののログ
Jan 19 11:14:56 uso5004 postfix/qmgr[27447]: 526BEA1C00B...
Jan 19 11:14:56 uso5004 postfix/smtp[2541]: 526BEA1C00B:...
Jan 19 11:14:56 uso5004 postfix/cleanup[1748]: 70374A1C0...
Jan 19 11:14:56 uso5004 postfix/qmgr[27447]: 70374A1C00C...
Jan 19 11:14:56 uso5004 postfix/smtp[2541]: 70374A1C00C:...
たとえばuso500xなんかで自分以外ユーザに送るときTo:にabcと...
myorigin = abc.ac.jp
とする。もっともfromもデフォルトでは@abc.ac.jpになってし...
また、メーラではDelivered-To:は@以降が補完されるが、To:は...
&color(red){コマンドラインからmailコマンドで実験するとき...
また。myorigin設定したドメインのメールサーバに本サーバに...
(e.g.) 宛先okadaでここに投函するとokada@(myoriginの値)と...
***ドメイン等を変更して転送 [#r03081a5]
abc.comにユーザabcがいない場合aaa.comに転送
[Aサーバ] --(abc@abc.com) -->[abc.comサーバ] ==(abc@aaa...
local_recipient_maps =
luser_relay = $user@aaa.com
**Postfix2.xのインストール [#q9032697]
[[ここ:http://www.postfix.org/download.html]]からDownload.
postfixというユーザとpostfix,postdropというグループを作成...
インストールされているとすでに作成されている。
/etc/passwd
postfix:x:128:128:postfix:/var/spool/postfix:
/etc/group
postfix:x:128:
postdrop:x:129:
$ tar zxvf postfix-2.2.5.tar.gz
$ cd postfix-2.2.5
$ make (./configureはしない)
make -f Makefile.in MAKELEVEL= Makefiles
(echo "# Do not edit -- this file documents how Postfix ...
set +e; if cmp makedefs.tmp conf/makedefs.out; then rm m...
else mv makedefs.tmp conf/makedefs.out; fi >/dev/null 2>...
(略)
[src/tlsmgr]
gcc -Wmissing-prototypes -Wformat -g -O -I. -I../../inc...
gcc -Wmissing-prototypes -Wformat -g -O -I. -I../../inc...
cp tlsmgr ../../libexec
$ su
# /etc/rc.d/init.d/postfix stop
# /etc/rc.d/init.d/pop-before-smtp stop
# make upgrade (make installをするとインストール先等いろ...
upgradeだと現在の/etc/postfix/main.cfか...
rpmインストールされているときは upgrade...
set -e; for i in src/util src/global src/dns src/tls src...
src/smtpstone src/sendmail src/error src/pickup src/clea...
src/lmtp src/trivial-rewrite src/qmgr src/oqmgr src/smtp...
src/showq src/postalias src/postcat src/postconf src/pos...
postlock src/postlog src/postmap src/postqueue src/posts...
spawn src/flush src/verify src/virtual src/proxymap src/...
discard src/tlsmgr; do \
(set -e; echo "[$i]"; cd $i; make 'CC=gcc -Wmissing-pro...
done
[src/util]
(略)
Editing /etc/postfix/master.cf, adding missing entry for...
Editing /etc/postfix/master.cf, adding missing entry for...
Note: the following files or directories still exist...
longer part of Postfix:
/etc/postfix/pcre_table /etc/postfix/regexp_table
You have mail in /var/spool/mail/okada
------- make install の場合 -----------------------------
/etc/postfix/main.cf を編集
/etc/postfix/aliases に root: 自分のアカウント名 を追加
---------------------------------------------------------
# /usr/sbin/postfix check
(何も帰らない)
# /etc/rc.d/init.d/postfix start
# /etc/rc.d/init.d/pop-before-smtp start
***運用設定 [#ge64df5f]
インストール後に設定するファイルは/etc/postfix/main.cfで
以下の内容ように設定する
inet_interfaces = all <--CentOSの場合ここがlocalhostにな...
mydomain = abc.ac.jp
以下の2つは送り元にホスト名を入れるか否かを決める
myorigin = $myhostname <:---user@xxx.domain.jp
myorigin = $mydomain <:---user@domain.jp
mydestination = $myhostname, localhost.$mydomain
(もし、ドメインのメールサーバにして、ドメイン宛てのメー...
mydestination = $myhostname, localhost.$mydomain, $mydom...
とする)
mynetworks = 192.xxx.xxx.0/24, 127.0.0.0/8, 10.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks,reject_...
check_client_access hash:/etc/postfix/pop-before-s...
check_relay_domains
(pop-before-smtpの設定)
relayhost = mail.abc.ac.jp
(リレーホストの設定)
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_vers...
smtpd_banner = $myhostname ESMTP $mail_name
(これはメールサーバの素性をあかさないための設定
#Edit by JE2ISM
##allow_percent_hack = no
allow_percent_hack = yes
#Edit by JE2ISM
# Limit Mssege 30MB
message_size_limit = 31457280
(一度に送れるメッセージサイズのMax default:10MB)
# MailBox Size 400MB
mailbox_size_limit = 409600000
(MailBoxの最大容量 default:50MB)
メールアドレスが間違っているとき「unknown user: "f05999"」
のようなメッセージを送信元に返すときは
unknown_local_recipient_reject_code = 550
指定なしは550がデフォルトのようだ~
rejectするだけで送信元にメッセージを返さないなら
unknown_local_recipient_reject_code = 450
550:メールで拒否を通知(reject mail) 450:一定時間後に再試...
550のときは以下のような送信元maillogになる
May 23 14:42:38 uso5004 postfix/smtp[22124]: F3A34A1C066:
to=<abc@wwwism.dyndns.org>, relay=wwwism.dyndns.org[202....
status=bounced (host wwwism.dyndns.org[202.59.191.46] sa...
<abc@wwwism.dyndns.org>: Recipient address rejected: Use...
recipient table (in reply to RCPT TO command))
450のときは以下のような送信元maillogになる
May 23 14:39:07 uso5004 postfix/smtp[22085]: 79331A1C065:
to=<abc@wwwism.dyndns.org>, relay=wwwism.dyndns.org[202....
status=deferred (host wwwism.dyndns.org[202.59.191.46] s...
<abc@wwwism.dyndns.org>: Recipient address rejected: Use...
recipient table (in reply to RCPT TO command))
450のときは送信側が受信元が今はだめだが時間が経ってからも...
#mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipie...
70A7EA1C034 690 Wed May 23 14:25:56 okada@mie-chuk...
(host wwwism.dyndns.org[202.59.191.46] said: 450 <abc@ww...
Recipient address rejected: User unknown in local recipi...
RCPT TO command))
abc@wwwism.dyndn...
以下のようなパラメータも追加できる
disable_vrfy_command=yes
vrfyコマンドを無効にする。vrfyコマンドとはユーザーが存在...
smtpd_helo_required=yes
helo/ehloコマンドを要求する。helo/ehloコマンドは接続元の...
コマンド。自らのホスト名を通知しない接続を拒否するように...
strict_rfc821_envelopes=no
RFC821の形式に合わないアドレスは拒否する。RFC821はSMTPに...
***メール削除 [#w3549fc0]
''/etc/postfix/aliase''
dummy: /dev/null
でdummy宛てメールは削除される
**スパム対策 [#i7a45871]
ただし、これを行うと全てそれらのサイトからのメールを拒否...
maps_rbl_domains=relays.ordb.org
rblとは不正中継を行う可能性があるサイトのブラックリスト
smtpd_client_restrictions=reject_maps_rbl, reject_unknow...
reject_maps_rblは上で指定したブラックリストに登録された...
reject_unknown_clientはnameの逆引きができないとき接続を...
同時に送れるメッセージの制限
default_destination_concurrency_limit
パラメータ (デフォルト: 20) は同じ配送先に同時に送ること...
数 メッセージ1件ごとにコネクション張るには1にする
特定の配送チャネル (local, smtp, uucp 等)に対して上書きす...
local_destination_concurrency_limit パラメータは 同じロ...
同時に配送するメッセージの数を制御します. 2くらいが推奨
変更後は
# /etc/rc.d/init.d/postfix reload
で変更内容を反映させる。
***リレーチェックをしてくれるサイト[[RBL.JP:http://www.rb...
そのチェックで以下のような%入りアドレスでリレーするとチェ...
main.cfの
allow_percent_hack = no
を
allow_percent_hack = yes
にする。
[リレーチェックの結果]
中継テスト その6
>>> RSET
<<< 250 Ok
>>> MAIL FROM: <spamtest@xxx.xxx.xx.xxx>
<<< 250 Ok
>>> RCPT TO: <relaytest%rbl.jp@[xxx.xxx.xx.xxx]>
<<< 250 Ok
relay accepted!!
***spam対策 [#fbf46e7f]
''Headerでチェック''
main.cfに
#header_checks = regexp:/etc/postfix/header_checks
のコメントをはずす
/etc/postfix/header_checks
に
# It refuses by a partner's subject.
/^Subject: je2ism/ REJECT
(Subject欄がje2ismで始まるメールを拒否)
# It refuses in a FROM address.
#/^From: okada/ REJECT
(From欄がokadaで始まるメールを拒否)
/^From:.*<#.*@.*>/ REJEC
(From欄が何もないメールは拒否)
/^From: .*@abc.ne.jp/ REJECT
(From欄がabc.ne.jpからのメールは拒否)
''本文でチェック''
main.cfに
body_checks=regexp:/etc/postfix/body_checks
を追加
/etc/postfix/body_checksに
/spam/REJECT
(本文中にspamというキーワードがあればメールを拒否)
/name=.*\.scr/ REJECT
(添付ファイルが.scrが含まれればメールを拒否)
変更後は
# /etc/rc.d/init.d/postfix reload
を実行
''処理方法について''
-OK:受信する(Ver2.1以降はDUNNO推奨)
-IGNORE:一致した行をヘッダから削除
-REJECT:受信拒否して、エラーメールを返す
-DISCARD:受信して破棄する
''maillog''
[REJECT]
Aug 27 13:17:17 uso5005 postfix/cleanup[1154]: 718A62205...
From: "=?ISO-2022-JP?B?GyRCMixFRCEhTklMQBsoQg==?=" <okad...
from mail.mie-chukyo-u.ac.jp[192.244.75.5]; from=<okada@...
to=<okada@uso5005.mie-chukyo-u.ac.jp> proto=ESMTP helo=<...
u.ac.jp>: Message content rejected
[DISCARD]
Aug 27 13:41:58 uso5005 postfix/cleanup[2264]: 91E192205...
From: "=?ISO-2022-JP?B?GyRCMixFRCEhTklMQBsoQg==?=" <okad...
from mail.mie-chukyo-u.ac.jp[192.244.75.5]; from=<okada@...
to=<okada@uso5005.mie-chukyo-u.ac.jp> proto=ESMTP helo=<...
u.ac.jp>
**別ドメインのメールも受け取れるようにする [#i39ea045]
/etc/postfix/main.cfの
mydestination = $myhostname, localhost.$mydomain, $mydom...
...
にドメイン名を追加する。
IPアドレス指定は[192.168.1.1]のように指定する
**送られたメールアカウントでコマンドを実行するには [#hc8d...
/etc/postfix/aliasesに
(アカウント名): "|(コマンドパス)"
comingout: "|/home/postgres/comingout/perl/comingout.pl"
のように記入する
*DDNS [#zf43db92]
DDNS(dyndns.org)のMail Exchanger (optional)に指定 したメ...
例えば
Mail Exchanger (optional): abc.ne.jp
と設定すると
wwwism.dyndns.org. 86400INMX10 abc.ne.jp.
とDNSに書かれ、
abc.ne.jpにwwwism.dyndns.org宛てメールが転送される。
Backup MX?:DDNSのIPにもメールを転送するときにチェックを入...
自宅にメールサーバを立ち上げルータでPort25(smtp)をフォワ...
自宅のサーバをsmtpサーバに設定
main.cfを
myhostname = pc85xxxx.axxgo2.ne.jp <---DHCPで割り振られ...
mydomain = axxgo2.ne.jp <---プロバイダのドメイン名
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks = 168.168.10.0/24, 127.0.0.0/8
relayhost = mail.axxgo2.ne.jp <---プロバイダのsmtpサ...
***キューの表示 [#ffc89ab9]
$ mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipie...
2932C2DEA16* 2761 Fri Jan 6 03:20:03 MAILER-DAEMON
info@mail.uzwr....
1C34F2DEA53* 2655 Fri Jan 6 06:48:21 MAILER-DAEMON
info@mail.wubv....
(略)
63E992DE9F1 7372 Fri Jan 6 02:38:31 MAILER-DAEMON
(connect to rothen.net[216.168.224.70]:...
colmonr@rothen....
6B76F2DEA1C 5917 Thu Jan 5 21:24:13 MAILER-DAEMON
(host mx1.mail.yahoo.co.jp[202.93.77.231] said: 421 VS14...
fkirij798@yahoo...
-- 1471 Kbytes in 202 Requests.
***キュー削除 [#wd18f6c3]
Postfix2.1以降なら、
bounce_queue_lifetime = 86400
でユーザが出したメールとは別に、bounceした結果作成される...
**その他のキュー関係 [#a5dac97e]
queue_run_delay (デフォルト: 1000 秒)
キュー マネージャが遅延メールのキューをスキャンする頻度。
maximal_queue_lifetime (デフォルト: 5 日)
メッセージが 配送不能として送り返されるまでにキューに留ま...
minimal_backoff_time (デフォルト: 1000 秒)
メッセージが 検索されない最小時間および「死亡」配送先に手...
maximal_backoff_time (デフォルト: 4000 秒)
配送に 失敗してからメッセージを見ない最大時間。
''(手動で対処)''
mailq と打ち込んで,キューにメールが数百
以上たまっていたら,
mailq | grep MAILER-DAEMON | sort +3 > hoge
とかして,数時間以上たった MAILER-DAEMON からのメールのキ...
postsuper -d キュー番号
# /usr/sbin/postsuper -d 8B3296529B
postsuper: 8B3296529B: removed
postsuper: Deleted: 1 message
でメールキューから削除,通常ユーザ権限でかまいませんので
sendmail -q を実行すれば,キューにたまったメールを全て配...
''メッセージの内容表示''
# /usr/sbin/postcat -q QUEUE_ID
# /usr/sbin/postcat -q 6D3221234FCA
*** ENVELOPE RECORDS deferred/6/6D3221234FCA ***
message_size: 913 430 ...
message_arrival_time: Thu Jan 13 12:17:19 2011
(略)
recipient: neksus@www.matsusaka-u.ac.jp
*** MESSAGE CONTENTS deferred/6/6D3221234FCA ***
Received: from 28c07nc7e.com (unknown [**.**.**])
(略)
*** HEADER EXTRACTED deferred/6/6D3221234FCA ***
*** MESSAGE FILE END deferred/6/6D3221234FCA ***
''メッセージキューの強制転送(全部)''
postfix flush
''メッセージキューの全削除''
/usr/sbin/postsuper -d ALL
**不明な宛先にバウンスさせない [#t08eea7d]
自分のサーバ存在しないアカウント宛のメールを受けないよう...
これで、メールアドレスを詐称された無実の人にも無用なエラ...
以下の例は$alias_mapsと/etc/passwdにユーザがいないときは...
main.cf
local_recipient_maps = $alias_maps unix:passwd.byname
$alias_mapsだけでのユーザしか認めない場合、/etc/passwdの...
local_recipient_maps = $alias_maps
と設定する
2.xはデフォルトでOn 1.xも使える。
奥村先生参考ページ
---------------------------------------------------------...
RIGHT:[[元ページ:https://wwwism.dyndns.org/hp/linux/postf...
終了行:
*Postfixの設定方法 [#f78017d9]
RIGHT:更新日&lastmod();
**mailの中継について(メールのサーバの足取り) [#q8d4a3de]
***mailヘッダー部 [#q00afa0a]
Received: from ��
by ��; Wed, 9 Mar 2005 16:29:14 +0900
Received: from ��
by ��; Wed, 9 Mar 2005 16:29:14 +0900
Received: from (0)
by ��; Wed, 9 Mar 2005 16:29:02 +0900
''メールサーバの足取り''
(0) → � 、� �◆、���
***例 [#s7496d22]
Received: from cat-white-a99c5b89fafdbe6c.znlc.jp (cat-w...
by atom-2.ism21.net (Postfix) with ESMTP id CA9D1207D9A
for <okada@ism21.net>; Tue, 4 Apr 2023 11:31:04 +0900 ...
Received: from WIN-C73LB63JO80 (ec2-18-179-196-59.ap-nor...
by cat-white-a99c5b89fafdbe6c.znlc.jp (Postfix) with ES...
for <okada@ism21.net>; Tue, 4 Apr 2023 11:19:03 +0900 ...
''足取り''
WIN-C73LB63JO80 → cat-white-a99c5b89fafdbe6c.znlc.jp →...
**postfix-pcreでいたずら [#k70a1110]
# apt-get install postfix-pcre
postfix-pcreを入れるとperlの正規表現が可能になる
/etc/postfix/main.cfに
alias_maps = hash:/etc/aliases, pcre:/etc/postfix/aliase...
^^^^^^^^^^^^^^^^^^^^^^^^^...
/etc/postfix/aliases.regexpに
/^dummy[0-9]*(@.*)?$/ dummy
とするとdummy00 dummy9 などのメールがdummy 1アカウント...
このとき/etc/postfix/aliases.regexpは空ファイルでもいいか...
# touch aliases.regexp
[[perl正規表現 参考:http://www.site-cooler.com/kwl/perl/8...
**パラメータ [#a534364f]
aliasesで受けたメールをshellなど実行形式に渡して実行する...
ただしユーザ作成の必要あり
受信メールの1行目の
Return-Path: <aaa@xxx.ac.jp>
のユーザ名にも入る?
default_privs = nobody
**サブミッションポート [#i886d17a]
pop-before-smtpと併用するには以下の1行のコメントを外しpos...
すればよい。~
下の2行は
### SMTP認証を行わない限り、一切のメール送信を拒否する
-o smtpd_etrn_restrictions=reject
### 587番ポートへの、スパムメールを使用不能にしておく
-o smtpd_client_restrictions=permit_sasl_authenticated...
クライアントのポートを587にする
''master.cf''
submission inet n - n - - s...
#submission inet n - n - - ...
# -o smtpd_etrn_restrictions=reject
# -o smtpd_client_restrictions=permit_sasl_authent...
/etc/servicesを一応確認する
submission 587/tcp msa # mail m...
submission 587/udp msa # mail m...
smtp-authやSTLは別途検討する。
** postfixでサブミッションポートで送信 [#p7900e10]
postfixをsmtpクライアントとして利用し、TLS認証でパスワー...
以下をインストール
# yum install cyrus-sasl-plain
# /etc/rc.d/init.d/saslauthd start
以下を追加
''postfix/main.cf''
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
##Edit by JE2ISM
relayhost = [mail.ssl-mail.info]:587
#SSLを有効にする
smtp_use_tls = yes
smtpd_use_tls = yes
#認証の設定
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/isp_auth
smtp_sasl_security_options = noanonymou
smtp_sasl_tls_security_options = noanonymous
認証を相手に合わせる
smtp_sasl_mechanism_filter = plain
以下を修正
''postfix/master.cf''
#smtps inet n - n - - ...
smtps inet n - n - - ...
# -o smtpd_tls_wrappermode=yes
-o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticate...
-o smtpd_client_restrictions=permit_sasl_authenticated...
# -o milter_macro_daemon_name=ORIGINATING
パスワードの設定
''postfix/isp_auth''
[mail.ssl-mail.info]:587 okada2@wesden.net:*****
DB化を行う(必要)
# postmap /etc/postfix/isp_auth
postfix再起動
# /etc/rc.d/init.d/postfix restart
**メールのリレー等 [#rf48be33]
外向けのメールサーバと内部にユーザアカウントのあるサーバ...
外部から内部へのリレーの仕方について
---------------- ----------...
|DMZ上のサーバ |-----------(F/W)-----------|内部のサ...
---------------- ----------...
構成
***DMZ上のサーバから内部サーバへリレー [#mbc7ec3f]
/etc/postfix/main.cfで
以下の行(#で始まる部分以外)を記述
# TRANSPORT MAP
#
# Insert text from sample-transport.cf if you need expli...
transport_maps = hash:/etc/postfix/transport
/etc/postfix/transportに2行追加
ドメイン宛(@hogehoge.ac.jp)
hogehoge.ac.jp smtp:[192.168.1.2] (又はsmtp:xxx.hogehoge...
その他マシンも宛ても送る(@xxx.hogehoge.ac.jp)この記述では...
.hogehoge.ac.jp smtp:[192.168.1.2]
設定が完了したら、(変更するごとに実行の必要あり)
# /usr/sbin/postmap /etc/postfix/transport
/etc/postfix/transport変更するごとに実行し、/etc/rc.d/ini...
postmapを実行したときのログ(/var/log/maillog)
Jan 19 11:01:00 vmware40 postfix/pickup[1987]: 9A6DD1BB8...
Jan 19 11:01:00 vmware40 postfix/cleanup[2532]: 9A6DD1BB...
Jan 19 11:01:00 vmware40 postfix/qmgr[1988]: 9A6DD1BB8A3...
Jan 19 11:01:00 vmware40 postfix/smtp[2534]: 9A6DD1BB8A3...
Jan 19 11:01:00 vmware40 postfix/qmgr[1988]: 9A6DD1BB8A3...
***内部サーバのサーバからDMZ上へリレー [#ta635a90]
/etc/postfix/main.cf の以下の部分を編集
local_recipient_maps =
あて先不明なメールの処理を記述するパラメータで、何も指定...
myoriginが設定してあれはドメインなしアドレスはlocal_reci...
relayhost = [192.168.1.2] デフォルトのリレーホストを指定...
fallback_transport = smtp:[192.168.1.2]
ローカルに登録されていないユーザへのメールを転送する先を...
ただし、myoriginでそのサーバに転送されるのでローカルから...
relayhostはその他のサーバに送るときにもリレーしてくれる。
myoriginを転送先に設定すればよい。これはラウンドロビンな...
ドメインで受けて、存在しないユーザを別サーバに転送すると...
ただし、転送先アドレスが受信できないとエラーで帰ってくる...
受け取れないときののログ
Jan 19 11:14:56 uso5004 postfix/qmgr[27447]: 526BEA1C00B...
Jan 19 11:14:56 uso5004 postfix/smtp[2541]: 526BEA1C00B:...
Jan 19 11:14:56 uso5004 postfix/cleanup[1748]: 70374A1C0...
Jan 19 11:14:56 uso5004 postfix/qmgr[27447]: 70374A1C00C...
Jan 19 11:14:56 uso5004 postfix/smtp[2541]: 70374A1C00C:...
たとえばuso500xなんかで自分以外ユーザに送るときTo:にabcと...
myorigin = abc.ac.jp
とする。もっともfromもデフォルトでは@abc.ac.jpになってし...
また、メーラではDelivered-To:は@以降が補完されるが、To:は...
&color(red){コマンドラインからmailコマンドで実験するとき...
また。myorigin設定したドメインのメールサーバに本サーバに...
(e.g.) 宛先okadaでここに投函するとokada@(myoriginの値)と...
***ドメイン等を変更して転送 [#r03081a5]
abc.comにユーザabcがいない場合aaa.comに転送
[Aサーバ] --(abc@abc.com) -->[abc.comサーバ] ==(abc@aaa...
local_recipient_maps =
luser_relay = $user@aaa.com
**Postfix2.xのインストール [#q9032697]
[[ここ:http://www.postfix.org/download.html]]からDownload.
postfixというユーザとpostfix,postdropというグループを作成...
インストールされているとすでに作成されている。
/etc/passwd
postfix:x:128:128:postfix:/var/spool/postfix:
/etc/group
postfix:x:128:
postdrop:x:129:
$ tar zxvf postfix-2.2.5.tar.gz
$ cd postfix-2.2.5
$ make (./configureはしない)
make -f Makefile.in MAKELEVEL= Makefiles
(echo "# Do not edit -- this file documents how Postfix ...
set +e; if cmp makedefs.tmp conf/makedefs.out; then rm m...
else mv makedefs.tmp conf/makedefs.out; fi >/dev/null 2>...
(略)
[src/tlsmgr]
gcc -Wmissing-prototypes -Wformat -g -O -I. -I../../inc...
gcc -Wmissing-prototypes -Wformat -g -O -I. -I../../inc...
cp tlsmgr ../../libexec
$ su
# /etc/rc.d/init.d/postfix stop
# /etc/rc.d/init.d/pop-before-smtp stop
# make upgrade (make installをするとインストール先等いろ...
upgradeだと現在の/etc/postfix/main.cfか...
rpmインストールされているときは upgrade...
set -e; for i in src/util src/global src/dns src/tls src...
src/smtpstone src/sendmail src/error src/pickup src/clea...
src/lmtp src/trivial-rewrite src/qmgr src/oqmgr src/smtp...
src/showq src/postalias src/postcat src/postconf src/pos...
postlock src/postlog src/postmap src/postqueue src/posts...
spawn src/flush src/verify src/virtual src/proxymap src/...
discard src/tlsmgr; do \
(set -e; echo "[$i]"; cd $i; make 'CC=gcc -Wmissing-pro...
done
[src/util]
(略)
Editing /etc/postfix/master.cf, adding missing entry for...
Editing /etc/postfix/master.cf, adding missing entry for...
Note: the following files or directories still exist...
longer part of Postfix:
/etc/postfix/pcre_table /etc/postfix/regexp_table
You have mail in /var/spool/mail/okada
------- make install の場合 -----------------------------
/etc/postfix/main.cf を編集
/etc/postfix/aliases に root: 自分のアカウント名 を追加
---------------------------------------------------------
# /usr/sbin/postfix check
(何も帰らない)
# /etc/rc.d/init.d/postfix start
# /etc/rc.d/init.d/pop-before-smtp start
***運用設定 [#ge64df5f]
インストール後に設定するファイルは/etc/postfix/main.cfで
以下の内容ように設定する
inet_interfaces = all <--CentOSの場合ここがlocalhostにな...
mydomain = abc.ac.jp
以下の2つは送り元にホスト名を入れるか否かを決める
myorigin = $myhostname <:---user@xxx.domain.jp
myorigin = $mydomain <:---user@domain.jp
mydestination = $myhostname, localhost.$mydomain
(もし、ドメインのメールサーバにして、ドメイン宛てのメー...
mydestination = $myhostname, localhost.$mydomain, $mydom...
とする)
mynetworks = 192.xxx.xxx.0/24, 127.0.0.0/8, 10.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks,reject_...
check_client_access hash:/etc/postfix/pop-before-s...
check_relay_domains
(pop-before-smtpの設定)
relayhost = mail.abc.ac.jp
(リレーホストの設定)
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_vers...
smtpd_banner = $myhostname ESMTP $mail_name
(これはメールサーバの素性をあかさないための設定
#Edit by JE2ISM
##allow_percent_hack = no
allow_percent_hack = yes
#Edit by JE2ISM
# Limit Mssege 30MB
message_size_limit = 31457280
(一度に送れるメッセージサイズのMax default:10MB)
# MailBox Size 400MB
mailbox_size_limit = 409600000
(MailBoxの最大容量 default:50MB)
メールアドレスが間違っているとき「unknown user: "f05999"」
のようなメッセージを送信元に返すときは
unknown_local_recipient_reject_code = 550
指定なしは550がデフォルトのようだ~
rejectするだけで送信元にメッセージを返さないなら
unknown_local_recipient_reject_code = 450
550:メールで拒否を通知(reject mail) 450:一定時間後に再試...
550のときは以下のような送信元maillogになる
May 23 14:42:38 uso5004 postfix/smtp[22124]: F3A34A1C066:
to=<abc@wwwism.dyndns.org>, relay=wwwism.dyndns.org[202....
status=bounced (host wwwism.dyndns.org[202.59.191.46] sa...
<abc@wwwism.dyndns.org>: Recipient address rejected: Use...
recipient table (in reply to RCPT TO command))
450のときは以下のような送信元maillogになる
May 23 14:39:07 uso5004 postfix/smtp[22085]: 79331A1C065:
to=<abc@wwwism.dyndns.org>, relay=wwwism.dyndns.org[202....
status=deferred (host wwwism.dyndns.org[202.59.191.46] s...
<abc@wwwism.dyndns.org>: Recipient address rejected: Use...
recipient table (in reply to RCPT TO command))
450のときは送信側が受信元が今はだめだが時間が経ってからも...
#mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipie...
70A7EA1C034 690 Wed May 23 14:25:56 okada@mie-chuk...
(host wwwism.dyndns.org[202.59.191.46] said: 450 <abc@ww...
Recipient address rejected: User unknown in local recipi...
RCPT TO command))
abc@wwwism.dyndn...
以下のようなパラメータも追加できる
disable_vrfy_command=yes
vrfyコマンドを無効にする。vrfyコマンドとはユーザーが存在...
smtpd_helo_required=yes
helo/ehloコマンドを要求する。helo/ehloコマンドは接続元の...
コマンド。自らのホスト名を通知しない接続を拒否するように...
strict_rfc821_envelopes=no
RFC821の形式に合わないアドレスは拒否する。RFC821はSMTPに...
***メール削除 [#w3549fc0]
''/etc/postfix/aliase''
dummy: /dev/null
でdummy宛てメールは削除される
**スパム対策 [#i7a45871]
ただし、これを行うと全てそれらのサイトからのメールを拒否...
maps_rbl_domains=relays.ordb.org
rblとは不正中継を行う可能性があるサイトのブラックリスト
smtpd_client_restrictions=reject_maps_rbl, reject_unknow...
reject_maps_rblは上で指定したブラックリストに登録された...
reject_unknown_clientはnameの逆引きができないとき接続を...
同時に送れるメッセージの制限
default_destination_concurrency_limit
パラメータ (デフォルト: 20) は同じ配送先に同時に送ること...
数 メッセージ1件ごとにコネクション張るには1にする
特定の配送チャネル (local, smtp, uucp 等)に対して上書きす...
local_destination_concurrency_limit パラメータは 同じロ...
同時に配送するメッセージの数を制御します. 2くらいが推奨
変更後は
# /etc/rc.d/init.d/postfix reload
で変更内容を反映させる。
***リレーチェックをしてくれるサイト[[RBL.JP:http://www.rb...
そのチェックで以下のような%入りアドレスでリレーするとチェ...
main.cfの
allow_percent_hack = no
を
allow_percent_hack = yes
にする。
[リレーチェックの結果]
中継テスト その6
>>> RSET
<<< 250 Ok
>>> MAIL FROM: <spamtest@xxx.xxx.xx.xxx>
<<< 250 Ok
>>> RCPT TO: <relaytest%rbl.jp@[xxx.xxx.xx.xxx]>
<<< 250 Ok
relay accepted!!
***spam対策 [#fbf46e7f]
''Headerでチェック''
main.cfに
#header_checks = regexp:/etc/postfix/header_checks
のコメントをはずす
/etc/postfix/header_checks
に
# It refuses by a partner's subject.
/^Subject: je2ism/ REJECT
(Subject欄がje2ismで始まるメールを拒否)
# It refuses in a FROM address.
#/^From: okada/ REJECT
(From欄がokadaで始まるメールを拒否)
/^From:.*<#.*@.*>/ REJEC
(From欄が何もないメールは拒否)
/^From: .*@abc.ne.jp/ REJECT
(From欄がabc.ne.jpからのメールは拒否)
''本文でチェック''
main.cfに
body_checks=regexp:/etc/postfix/body_checks
を追加
/etc/postfix/body_checksに
/spam/REJECT
(本文中にspamというキーワードがあればメールを拒否)
/name=.*\.scr/ REJECT
(添付ファイルが.scrが含まれればメールを拒否)
変更後は
# /etc/rc.d/init.d/postfix reload
を実行
''処理方法について''
-OK:受信する(Ver2.1以降はDUNNO推奨)
-IGNORE:一致した行をヘッダから削除
-REJECT:受信拒否して、エラーメールを返す
-DISCARD:受信して破棄する
''maillog''
[REJECT]
Aug 27 13:17:17 uso5005 postfix/cleanup[1154]: 718A62205...
From: "=?ISO-2022-JP?B?GyRCMixFRCEhTklMQBsoQg==?=" <okad...
from mail.mie-chukyo-u.ac.jp[192.244.75.5]; from=<okada@...
to=<okada@uso5005.mie-chukyo-u.ac.jp> proto=ESMTP helo=<...
u.ac.jp>: Message content rejected
[DISCARD]
Aug 27 13:41:58 uso5005 postfix/cleanup[2264]: 91E192205...
From: "=?ISO-2022-JP?B?GyRCMixFRCEhTklMQBsoQg==?=" <okad...
from mail.mie-chukyo-u.ac.jp[192.244.75.5]; from=<okada@...
to=<okada@uso5005.mie-chukyo-u.ac.jp> proto=ESMTP helo=<...
u.ac.jp>
**別ドメインのメールも受け取れるようにする [#i39ea045]
/etc/postfix/main.cfの
mydestination = $myhostname, localhost.$mydomain, $mydom...
...
にドメイン名を追加する。
IPアドレス指定は[192.168.1.1]のように指定する
**送られたメールアカウントでコマンドを実行するには [#hc8d...
/etc/postfix/aliasesに
(アカウント名): "|(コマンドパス)"
comingout: "|/home/postgres/comingout/perl/comingout.pl"
のように記入する
*DDNS [#zf43db92]
DDNS(dyndns.org)のMail Exchanger (optional)に指定 したメ...
例えば
Mail Exchanger (optional): abc.ne.jp
と設定すると
wwwism.dyndns.org. 86400INMX10 abc.ne.jp.
とDNSに書かれ、
abc.ne.jpにwwwism.dyndns.org宛てメールが転送される。
Backup MX?:DDNSのIPにもメールを転送するときにチェックを入...
自宅にメールサーバを立ち上げルータでPort25(smtp)をフォワ...
自宅のサーバをsmtpサーバに設定
main.cfを
myhostname = pc85xxxx.axxgo2.ne.jp <---DHCPで割り振られ...
mydomain = axxgo2.ne.jp <---プロバイダのドメイン名
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks = 168.168.10.0/24, 127.0.0.0/8
relayhost = mail.axxgo2.ne.jp <---プロバイダのsmtpサ...
***キューの表示 [#ffc89ab9]
$ mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipie...
2932C2DEA16* 2761 Fri Jan 6 03:20:03 MAILER-DAEMON
info@mail.uzwr....
1C34F2DEA53* 2655 Fri Jan 6 06:48:21 MAILER-DAEMON
info@mail.wubv....
(略)
63E992DE9F1 7372 Fri Jan 6 02:38:31 MAILER-DAEMON
(connect to rothen.net[216.168.224.70]:...
colmonr@rothen....
6B76F2DEA1C 5917 Thu Jan 5 21:24:13 MAILER-DAEMON
(host mx1.mail.yahoo.co.jp[202.93.77.231] said: 421 VS14...
fkirij798@yahoo...
-- 1471 Kbytes in 202 Requests.
***キュー削除 [#wd18f6c3]
Postfix2.1以降なら、
bounce_queue_lifetime = 86400
でユーザが出したメールとは別に、bounceした結果作成される...
**その他のキュー関係 [#a5dac97e]
queue_run_delay (デフォルト: 1000 秒)
キュー マネージャが遅延メールのキューをスキャンする頻度。
maximal_queue_lifetime (デフォルト: 5 日)
メッセージが 配送不能として送り返されるまでにキューに留ま...
minimal_backoff_time (デフォルト: 1000 秒)
メッセージが 検索されない最小時間および「死亡」配送先に手...
maximal_backoff_time (デフォルト: 4000 秒)
配送に 失敗してからメッセージを見ない最大時間。
''(手動で対処)''
mailq と打ち込んで,キューにメールが数百
以上たまっていたら,
mailq | grep MAILER-DAEMON | sort +3 > hoge
とかして,数時間以上たった MAILER-DAEMON からのメールのキ...
postsuper -d キュー番号
# /usr/sbin/postsuper -d 8B3296529B
postsuper: 8B3296529B: removed
postsuper: Deleted: 1 message
でメールキューから削除,通常ユーザ権限でかまいませんので
sendmail -q を実行すれば,キューにたまったメールを全て配...
''メッセージの内容表示''
# /usr/sbin/postcat -q QUEUE_ID
# /usr/sbin/postcat -q 6D3221234FCA
*** ENVELOPE RECORDS deferred/6/6D3221234FCA ***
message_size: 913 430 ...
message_arrival_time: Thu Jan 13 12:17:19 2011
(略)
recipient: neksus@www.matsusaka-u.ac.jp
*** MESSAGE CONTENTS deferred/6/6D3221234FCA ***
Received: from 28c07nc7e.com (unknown [**.**.**])
(略)
*** HEADER EXTRACTED deferred/6/6D3221234FCA ***
*** MESSAGE FILE END deferred/6/6D3221234FCA ***
''メッセージキューの強制転送(全部)''
postfix flush
''メッセージキューの全削除''
/usr/sbin/postsuper -d ALL
**不明な宛先にバウンスさせない [#t08eea7d]
自分のサーバ存在しないアカウント宛のメールを受けないよう...
これで、メールアドレスを詐称された無実の人にも無用なエラ...
以下の例は$alias_mapsと/etc/passwdにユーザがいないときは...
main.cf
local_recipient_maps = $alias_maps unix:passwd.byname
$alias_mapsだけでのユーザしか認めない場合、/etc/passwdの...
local_recipient_maps = $alias_maps
と設定する
2.xはデフォルトでOn 1.xも使える。
奥村先生参考ページ
---------------------------------------------------------...
RIGHT:[[元ページ:https://wwwism.dyndns.org/hp/linux/postf...
ページ名: