Custom Search

JITAKU_SVR_Wiki

postfix

以下のリンク先が公式なので、そちらをメインで参考にし、独自にカスタマイズ した部分を列記.
http://www.postfix-jp.info/trans-2.2/conf/main.cf.jp

main.cfの解説

ここではデフォルトから変更した箇所を記述。

myhostname = host.domain.tld

ホストネーム + ドメイン名の形で記述する。
例) myhostname = smtp.hogehoge.com
この値がheloコマンドの返り値でもあるし、MXレコードを引かれたときに応える 値。

デフォルトはコメントアウト。

mydomain = domain.tld

myhostnameが設定されていれば特に気にする必要はないが、
他の場所でもこの部分を変数として見ている可能性があるので、
myhostnameからホスト名を引いた部分を書いておく。

デフォルトはコメントアウト。

myorigin = $myhostname

ローカルから外部にメールを送信する場合に使われるドメイン名。
コメントアウトされた行を見ると分かるが、変数を指定することが出来るので、
myhostname、mydomainを正しく指定する必要がある。

デフォルトはコメントアウト。

inet_interfaces = all

inet_interfacesの値は受信の設定。
allにしておけばすべてのサーバからのメールを受信できる。

デフォルトall。



mydestination = $myhostname, localhost.$mydomain, localhost

この部分は転送設定をするのではなく、ローカルでメールを受信するドメインを 指定する。
用途に応じてコメントアウトを外す必要がある。もし、hogehoge.comを受信した いのであれば、2番目の
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
をコメントアウト(ドメイン全体を受信)する。

local_recipient_maps = unix:passwd.byname $alias_maps

知らないローカルユーザ宛のメールを拒否する(デフォルト設定)。
知らないユーザと言うのは設定されたものと照らし合わせた時のこと。

SMTPサーバにおけるローカル受信者のチェックを無効にするには、
local_recipient_maps = のように指定する(空にする)。

空設定を行った場合は拒否するのではなくバウンスを返さないと言うことになる。
この値を有効にしておくと、SPAM業者が適当にメールをバラまき、悪用されてしまう可能性がある。
(メリット、デメリットが大きいので正しい判断が必要。)

バウンスを返さない代わりにunknownメールを届けたい宛先の設定は
luser_relay項目で説明。

↓分かりやすい説明だったので、参考にさせてもらった。
http://www.imc.cce.i.kyoto-u.ac.jp/~umehara/misc/comp/20091218c.html

mydestination = $myhostname, localhost.$mydomain, localhost

自分(SMTPサーバ)が受け取るべきドメインを記述する。
デフォルトでは上記の値がコメントアウトされているが適応される。

unknown_local_recipient_reject_code = 550

宛先不明のメールに対し、エラーコード550で返すようにする。
少し前のバージョン(centos3とか?)ではデフォルトが450だったが、
現仕様はすべて550がデフォルトになっている。

mynetworks = 168.100.189.0/28, 127.0.0.0/8

転送を許可するIPアドレス。
デフォルトの例だと168.100.189.0/28の範囲にあるIPアドレスからのメール転送 を受け付けるが、
それ以外のメールは転送を許可しない。
この値を適当に付け、開放してしまうと完全な中継サーバになってしまうため、
SPAM業者の餌食になる。必ずチェックする。
また、mynetworks_style項目を使用したい場合には、mynetworks項目を外すこと。
mynetworks_style < mynetwokrsになる。

relay_domains = $mydestination, hash:/etc/postfix/relay

relay_domainsに指定したドメインに対し転送を許可されたメール達が転送され ていく。

mynetworksとrelay_domainsは非常に重要な項目。

relayhost = $mydomain

ローカル宛以外のメールを別のサーバ経由にて送信する場合にはmain.cf内の relayhostにて指定すればよい。
メールサーバを複数台で運用している場合などはここでゲートウェイとなるメー ルサーバ名を記述する。

relayhost = [anywhere.com]
relayhost = [192.168.1.1]

自分の環境で使用していたのは、外に出られないサーバが自サーバのSMTPを使用 し、
リレーサーバにメールを転送させるために設定していた。

alias_maps = dbm:/etc/aliases

alias機能を使うことでメーリングリストの様な使い方ができる。
自分の環境ではしようすることがなかったので、機能としての説明は省略。
念のため環境としては、デフォルトでコメントアウトされている、
alias_maps = hash:/etc/aliases
のコメントアウトを外した。

home_mailbox = Mailbox

自分お環境ではpostfixadminを使用したこともあり、
home_mailbox = Maildir/
を設定したが、自サーバでメールをメールためる必要がないのであればデフォル ト(empty)で。

luser_relay = $user@other.host

local_recipient_mapsで簡単に説明したが、宛先不明のバウンスを返さない場合には、
この値を元にメールを送信する。

header_checks = regexp:/etc/postfix/header_checks

header_checksは色々な設定が出来る項目のファイル。
具体的なところではヘッダーの操作であったり、特定の文字列が入ったヘッダーを拒否するなど。
デフォルトではコメントアウトされていない。

STARTTLS

postfixから送信されたメールを暗号化したい場合は以下3行を追加する。

# vim /etc/postfix/main.cf

smtp_tls_CAfile = /etc/pki/tls/certs/server.crt
smtp_tls_security_level = may
smtp_tls_loglevel = 1

smtpd_tls_CAfile = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/certs/server.key
smtpd_tls_security_level = may

★smtp_tls_CAfile、smtpd_tls_CAfileはオレオレ証明で十分(テスト環境なら)。
オレオレ証明の作り方は

smtp_tls_security_level、smtpd_tls_security_levelは他の方がいっぱい説明してくれているので、分かりやすく…
要は相手に合わせてくれる、ということ。
相手がこっちの暗号化に対応しているかしていないかを勝手に判断してくれる、とおぼえておけばOK。
※詳しく知りたい方は
http://www.postfix-jp.info/trans-2.3/jhtml/TLS_README.html

★smtpd_tls_loglevel、smtpd_tls_loglevelはログの出力レベル。

レベル説明
0LS行動に関するログ記録を無効にします。
1LSハンドシェイクと証明書の情報をログに記録します。
2LSネゴシエーションの間のレベルをログに記録します。
3LSネゴシエーションプロセスの16進数およびASCIIダンプをログに記録します。
4TARTTLS以降の通信の16進数およびASCIIダンプを完全にログに記録します。

自分のほしいレベルにカスタマイズすること。

★ログ、ヘッダー
ちなみに、maillogはこんな感じ。

Apr  6 16:46:13 ns01 postfix/pickup[5080]: 48A6282C27: uid=0 from=<root>
Apr  6 16:46:13 ns01 postfix/cleanup[5824]: 48A6282C27: message-id=<20150406074613.48A6282C27@ml.jitaku-svr.info>
Apr  6 16:46:13 ns01 opendkim[1250]: 48A6282C27: DKIM-Signature header added (s=default, d=ml.jitaku-svr.info)
Apr  6 16:46:13 ns01 postfix/qmgr[5081]: 48A6282C27: from=<root@ml.jitaku-svr.info>, size=664, nrcpt=1 (queue active)
Apr  6 16:46:14 ns01 postfix/smtp[5827]: setting up TLS connection to gmail-smtp-in.l.google.com[74.125.23.27]:25
Apr  6 16:46:15 ns01 postfix/smtp[5827]: certificate verification failed for gmail-smtp-in.l.google.com[74.125.23.27]:25: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
Apr  6 16:46:15 ns01 postfix/smtp[5827]: Untrusted TLS connection established to gmail-smtp-in.l.google.com[74.125.23.27]:25: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Apr  6 16:46:16 ns01 postfix/smtp[5827]: 48A6282C27: to=<hogehoge@local>, relay=gmail-smtp-in.l.google.com[74.125.23.27]:25, delay=3.6, delays=0.13/0.03/2.1/1.4, dsn=2.0.0, status=sent (250 2.0.0 OK 1428306376 qf2si5458320pbb.35 - gsmtp)
Apr  6 16:46:16 ns01 postfix/qmgr[5081]: 48A6282C27: removed

サーバからgmailに投げたメールヘッダーは

Received: from ml.jitaku-svr.info (www20137ue.sakura.ne.jp. [49.212.182.151])
        by mx.google.com with ESMTPS id qf2si5458320pbb.35.2015.04.06.00.46.15
        for <hogehoge@local>
        (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 06 Apr 2015 00:46:16 -0700 (PDT)

参考URL

http://www.obenri.com/_postfix/host_domain.html
http://www.postfix-jp.info/trans-2.3/jhtml/postconf.5.html
http://www.postfix-jp.info/trans-2.2/conf/main.cf.jp
http://www.imc.cce.i.kyoto-u.ac.jp/~umehara/misc/comp/20091218c.html
http://qiita.com/g_maeda/items/ee0a19be78298de6df37
http://www.digicert.ne.jp/howto/install/install_postfix.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-17 (木) 16:52:49 (702d)