「Postfix」の版間の差分
(→参考文献) |
|||
(同じ利用者による、間の13版が非表示) | |||
49行目: | 49行目: | ||
smtpd_sasl_security_options = noanonymous | smtpd_sasl_security_options = noanonymous | ||
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject | smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject | ||
− | smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated, | + | smtpd_relay_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject |
smtpd_use_tls = yes | smtpd_use_tls = yes | ||
− | smtpd_tls_cert_file = /etc/ssl/certs/fukudat.net.crt # SSL Certificate | + | smtpd_tls_cert_file = /etc/ssl/certs/postfix.fukudat.net.crt # SSL Certificate |
smtpd_tls_key_file = /etc/ssl/private/fukudat.net.key # SSL Private Key | smtpd_tls_key_file = /etc/ssl/private/fukudat.net.key # SSL Private Key | ||
</pre> | </pre> | ||
126行目: | 126行目: | ||
</pre> | </pre> | ||
ただしfukudatはユーザ名、1000はUID、/home/fukudatはホームアドレス。 | ただしfukudatはユーザ名、1000はUID、/home/fukudatはホームアドレス。 | ||
+ | |||
+ | === メールの最大サイズの変更 === | ||
+ | postfix が受け付けるメールの最大サイズは、デフォルトで 10MB。これは、添付ファイルを含めた大きさ。 | ||
+ | 今時の画像付きのメールは大きいので、これを拡大しておかないと、メールがエラーで弾かれてしまう。 | ||
+ | |||
+ | main.cf を編集して、以下の行を加える。(これは 30MB の例) | ||
+ | |||
+ | <pre> | ||
+ | message_size_limit = 31457280 | ||
+ | </pre> | ||
+ | |||
+ | その後、リロード | ||
+ | |||
+ | <pre> | ||
+ | $ sudo service postfix reload | ||
+ | </pre> | ||
+ | |||
+ | == Alias設定 == | ||
+ | /etc/aliasesにaliasを記述 | ||
+ | <pre> | ||
+ | mailer-daemon: postmaster | ||
+ | postmaster: root | ||
+ | gm10: fukudat | ||
+ | ... | ||
+ | </pre> | ||
+ | |||
+ | 変更したら、次のコマンドで更新。 | ||
+ | <pre> | ||
+ | $ sudo newaliases | ||
+ | </pre> | ||
== 転送設定 == | == 転送設定 == | ||
157行目: | 187行目: | ||
</pre> | </pre> | ||
− | === | + | === Mail queue からメールを読む === |
+ | <pre> | ||
+ | $ sudo postcat -q QUEUE_ID | less | ||
+ | </pre> | ||
+ | |||
+ | === Mail queue からの削除 === | ||
<pre> | <pre> | ||
$ sudo postsuper -d QUEUE_ID | $ sudo postsuper -d QUEUE_ID | ||
167行目: | 202行目: | ||
$ sudo postfix flush | $ sudo postfix flush | ||
</pre> | </pre> | ||
+ | |||
+ | == SSL Certificate の設定 == | ||
+ | 証明書の入手は [[SSL Certificate|SSL証明書の更新]]を参照。 | ||
+ | 安さで [https://www.ssl-store.jp/system/service.php/ SSLストア] を利用。 | ||
+ | |||
+ | /etc/postfix/main.cf に以下の行を追加。 | ||
+ | <pre> | ||
+ | smtpd_use_tls = yes | ||
+ | smtpd_tls_cert_file = /etc/ssl/certs/postfix.fukudat.net.crt | ||
+ | smtpd_tls_key_file = /etc/ssl/private/fukudat.net.key | ||
+ | </pre> | ||
+ | ここで、postfix.fukudat.net.crt は、fukudat.net の証明書と、 中間CA証明書を連結したファイル。改行コードに注意する。 | ||
+ | |||
+ | == DNSの設定 == | ||
+ | プロバイダ or name.com で自分のドメインのMXレコードを MTA に変更。 | ||
== 参考文献 == | == 参考文献 == | ||
172行目: | 222行目: | ||
* [https://jsapachehtml.hatenablog.com/entry/2014/01/26/184604 ubuntuでSMTPサーバの構築(SMTP-AUTHの設定)] | * [https://jsapachehtml.hatenablog.com/entry/2014/01/26/184604 ubuntuでSMTPサーバの構築(SMTP-AUTHの設定)] | ||
* [https://centossrv.com/postfix.shtml メールサーバー構築(Postfix+Dovecot)] | * [https://centossrv.com/postfix.shtml メールサーバー構築(Postfix+Dovecot)] | ||
+ | * [http://www.wheel.gr.jp/~dai/software/postfix/config.html Postfixにおける迷惑メール対策のための設定] | ||
+ | * [http://www.postfix-jp.info/trans-2.3/jhtml/VIRTUAL_README.html Postfix バーチャルドメインホスティング Howto] | ||
== 脚注 == | == 脚注 == |
2021年6月23日 (水) 19:20時点における最新版
Ubuntu上でMail Transfer Agent (MTA) サービスを postfix で作成する覚書。
目次
Install
$ sudo apt-get install -y postfix
configurator が走るので、
- メール設定の一般形式 = インターネットサイト
- システムメール名 = fukudat.net
としておく。
SASL認証のために dovecot (POP3/IMAP サーバー)を入れる。
$ sudo apt-get install -y dovecot-core
でも POP3/IMAP は使わない。
Configure
/etc/postfix にある main.cf を編集して、以下の変更を加える。
mail_owner = postfix myhostname = fukudat.net mydomain = fukudat.net myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, fukudat.com # <- ここに宛先ホスト/ドメインを並べる local_recipient_maps = unix:passwd.byname $alias_maps alias_maps = hash:/etc/aliases smtpd_banner = $myhostname ESMTP sendmail_path = /usr/sbin/postfix newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq setgid_group = postdrop #html_directory = #manpage_directory = #sample_directory = #readme_directory = message_size_limit = 10485760 mailbox_size_limit = 1073741824 disable_vrfy_command = yes smtpd_banner = $myhostname ESMTP smtpd_helo_required = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $mydomain smtpd_sasl_security_options = noanonymous smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject smtpd_relay_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject smtpd_use_tls = yes smtpd_tls_cert_file = /etc/ssl/certs/postfix.fukudat.net.crt # SSL Certificate smtpd_tls_key_file = /etc/ssl/private/fukudat.net.key # SSL Private Key
これで fukudat.net と fukudat.com 両方のメールをさばく。この設定だと、ユーザーは共通になる(それが今回の目的なのでこれで良い)。
ユーザをちゃんと分けたい場合は、virtual domain の設定を頑張る。
同じディレクトリの master.cf を編集して以下のような変更を加える。
smtp inet n - y - - smtpd # これで smtp port 25 が開く submission inet n - y - - smtpd # これで submission port 587 が開く -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt smtps inet n - y - - smtpd # これで smtps port 465 が開く -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
/etc/dovecot/conf.d ディレクトリの 10-master.conf を編集して、以下の変更を加える。
service auth { ... # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } ... }
同じディレクトリの 10-ssl.conf を編集して、以下の変更を加える。
ssl = yes ssl_cert = </etc/ssl/certs/fukudat.net.crt ssl_key = </etc/ssl/private/fukudat.net.key
同じディレクトリの 10-auth.conf を編集して、以下の変更を加える。
disable_plaintext_auth = no auth_mechanisms = plain !include auth-passwdfile.conf.ext
同じディレクトリの auth-passwdfile.conf.ext を編集して、以下の変更を加える。
passdb { driver = passwd-file args = /etc/dovecot/passwd } userdb { driver = passwd-file args = /etc/dovecot/passwd }
doveadm /etc/dovecot/passwd ファイルは以下のようにして作る。
$ doveadm pw -s SHA512-CRYPT Enter new password: <パスワードをタイプ> Retype ew password: <もう一度パスワードをタイプ> {SHA512-CRYPT}$6$xxxxxxxxxxxxxxxxxxx
と出るのでそれをコピーして、
fukudat:{SHA512-CRYPT}$6$xxxxxxxxxxxxxxxxxxx:1000:::/home/fukudat
ただしfukudatはユーザ名、1000はUID、/home/fukudatはホームアドレス。
メールの最大サイズの変更
postfix が受け付けるメールの最大サイズは、デフォルトで 10MB。これは、添付ファイルを含めた大きさ。 今時の画像付きのメールは大きいので、これを拡大しておかないと、メールがエラーで弾かれてしまう。
main.cf を編集して、以下の行を加える。(これは 30MB の例)
message_size_limit = 31457280
その後、リロード
$ sudo service postfix reload
Alias設定
/etc/aliasesにaliasを記述
mailer-daemon: postmaster postmaster: root gm10: fukudat ...
変更したら、次のコマンドで更新。
$ sudo newaliases
転送設定
最後に、実際にメールを読むサーバーに転送する設定を、~/.forward に書く。
"| /home/fukudat/bin/mail-saver.pl" xxxxxx@gmail.com
/home/fukudat/bin/mail-server.pl は標準入力から入力されるテキストをメールボックスファイルに追加していくスクリプト。例えば、こんな感じ。
#!/usr/bin/perl use strict; use File::Basename; my $mailfile = "$ENV{'HOME'}/mail/mbox"; binmode(STDIN, ":utf8"); open(my $out, ">>:utf8", $mailfile) || die "$mailfile: $!"; while (<>) { print $out $_; } print $out "\n"; close($out); 1;
Commands
Mail queue のチェック
$ mailq
Mail queue からメールを読む
$ sudo postcat -q QUEUE_ID | less
Mail queue からの削除
$ sudo postsuper -d QUEUE_ID $ sudo postsuper -d ALL # 全削除
Mail queue の flush
$ sudo postfix flush
SSL Certificate の設定
証明書の入手は SSL証明書の更新を参照。 安さで SSLストア を利用。
/etc/postfix/main.cf に以下の行を追加。
smtpd_use_tls = yes smtpd_tls_cert_file = /etc/ssl/certs/postfix.fukudat.net.crt smtpd_tls_key_file = /etc/ssl/private/fukudat.net.key
ここで、postfix.fukudat.net.crt は、fukudat.net の証明書と、 中間CA証明書を連結したファイル。改行コードに注意する。
DNSの設定
プロバイダ or name.com で自分のドメインのMXレコードを MTA に変更。
参考文献
- Debian(Ubuntu)で postfix を使ってみる
- ubuntuでSMTPサーバの構築(SMTP-AUTHの設定)
- メールサーバー構築(Postfix+Dovecot)
- Postfixにおける迷惑メール対策のための設定
- Postfix バーチャルドメインホスティング Howto