serverapps:postfix:postfix-mysql-dovecot
差分
このページの2つのバージョン間の差分を表示します。
- | 両方とも前のリビジョン前のリビジョン次のリビジョン |
- | serverapps:postfix:postfix-mysql-dovecot [2017/07/11 04:30] – [/usr/local/www/postfixadmin/config.local.phpを作成してここに設定する] hayashi |
---|---|
+ | 前のリビジョン |
+ | serverapps:postfix:postfix-mysql-dovecot [2025/07/30 07:03] (現在) – [/usr/local/www/postfixadmin/config.local.phpを作成してここに設定する] hayashi |
@@ 行 -1 +1,389 @@ | |
====== postfix + mysql + Dovecot + PostfixAdmin ====== | |
===== この文章は ===== | |
表題組み合わせのサーバ設定記録。 | |
OS:FreeBSD | |
**2017.07.07:Update** | |
* 最新のファイル構成などに変更 | |
* DB上のパスワードはSHA512で暗号化するよう変更 | |
==== 経緯 ==== | |
ちと、理由があって認証をMySQLにする。 | |
* バーチャルドメイン | |
* imap対応 | |
* smtp Auth | |
* パスワード暗号化(SHA512) | |
バーチャルドメインに対応するためメール保存ユーザを作成する。 | |
# pw groupadd -n vir_mail -g 5110 | |
# pw useradd -n vir_mail -u 5110 -g vir_mail -m | |
===== インストールするもの ===== | |
* postfix((mysqlをONにした。指定はてきとー)) | |
* dovecot2((mysqlをON)) | |
* mysql | |
* apache | |
* php5 | |
* php5-imap((postfixadminでimap管理に必要)) | |
* postfixadmin((mysqlをON)) | |
* [[serverapps: | |
===== DB作成 ===== | |
AdminerからDBを作成しました。 | |
*DB名:postfix | |
ついでにユーザも | |
* ユーザ名:postfix | |
* パスワード:ぱすわーど | |
* 権限:All privileges | |
<code sql> | |
CREATE DATABASE postfix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; | |
CREATE USER ' | |
GRANT ALL PRIVILEGES ON postfix.* TO ' | |
FLUSH PRIVILEGES; | |
</ | |
===== php.ini ===== | |
# cat / | |
date.timezone = Asia/Tokyo | |
これがないと、postfixadminのバックアップがエラーになります。 | |
===== SPFレコードの登録 ===== | |
最近だとSPFレコードがないと大手のメールサーバ(gmailとか)はメールを受け取ってくれません。 | |
設定については、[[serverapps: | |
===== / | |
< | |
mydestination = | |
## Virtual | |
virtual_mailbox_base = / | |
virtual_mailbox_domains = mysql:/ | |
virtual_mailbox_maps = mysql:/ | |
virtual_alias_maps = mysql:/ | |
# | |
virtual_uid_maps = static:5110 | |
virtual_gid_maps = static:5110 | |
### SMTP Auth | |
smtpd_sasl_auth_enable = yes | |
smtpd_sasl_type = dovecot | |
smtpd_sasl_path = private/ | |
smtpd_relay_restrictions = permit_mynetworks, | |
smtpd_recipient_restrictions = permit_sasl_authenticated, | |
# broken_sasl_auth_clients = yes | |
### VDA | |
# virtual_create_maildirsize = yes # unused parameter | |
virtual_mailbox_limit = 0 | |
# | |
# | |
# | |
# | |
# | |
# | |
# | |
# | |
# | |
## soft quota settings | |
# | |
# | |
message_size_limit = 0 | |
mailbox_size_limit = 0 | |
</ | |
今回はバーチャルのみで運用するので、mydestination は空にしておく。 | |
==== 廃止されたパラメータ ==== | |
* virtual_create_maildirsize | |
* virtual_overquota_bounce | |
* virtual_mailbox_limit_maps | |
* virtual_maildir_extended | |
* virtual_mailbox_limit_override | |
* virtual_mailbox_limit_inbox | |
===== / | |
Outbound Port25 Blocking (OP25B)に対応するため、Submissionポートを利用できるようにする | |
#submission inet n | |
↓ | |
submission inet n | |
===== バーチャル関連ファイル ===== | |
==== / | |
< | |
user = postfix | |
password = ******** | |
hosts = localhost | |
dbname = postfix | |
table = alias | |
select_field = goto | |
where_field = address | |
</ | |
==== / | |
< | |
user = postfix | |
password = ******** | |
hosts = localhost | |
dbname = postfix | |
table = domain | |
select_field = description | |
where_field = domain | |
</ | |
==== / | |
< | |
user = postfix | |
password = ******** | |
hosts = localhost | |
dbname = postfix | |
table = mailbox | |
select_field = maildir | |
where_field = username | |
</ | |
===== postfixAdminのセットアップ ===== | |
==== / | |
# vi / | |
<code php> | |
<?php | |
$CONF[' | |
$CONF[' | |
$CONF[' | |
$CONF[' | |
$CONF[' | |
$CONF[' | |
$CONF[' | |
$CONF[' | |
$CONF[' | |
// PostfixAdmin管理画面のフッターメニューの非表示 | |
$CONF[' | |
// パスワードvalidation | |
$CONF[' | |
'/ | |
'/ | |
// 特殊文字の要件を追加 | |
// '/ | |
'/ | |
); | |
// ドメイン、アカウント追加時にドメイン部分をDNSでチェックするかどうか。 | |
// YESにするとMXレコードを参照できないドメインを登録できなくなる。 | |
// defaultはYES | |
// $CONF[' | |
// Dfault Quota 10MB | |
$CONF[' | |
// ユーザのmailbox容量を制限する場合 | |
// $CONF[' | |
// $CONF[' | |
// Welcome Message | |
$CONF[' | |
ようこそ! | |
メールボックスの作成が完了しました。 | |
EOM; | |
// | |
$CONF[' | |
?> | |
</ | |
**2017.07.07**:\\ | |
* 変更されているので注意: | |
* $CONF[' | |
* オプションの「-s SHA512-CRYPT」を指定してるサイトもあるが、指定しなくてもOK | |
* $CONF[' | |
**2024-02-26**:\\ | |
* 暗号化形式は以下がdefault | |
* # $CONF[' | |
* default設定されてるので不要になりました | |
* $CONF[' | |
* # メールボックスの格納形式。domain.tld/ | |
* $CONF[' | |
* $CONF[' | |
==== apache ==== | |
< | |
< | |
Alias / | |
< | |
Options Indexes FollowSymLinks | |
AllowOverride None | |
Order allow,deny | |
Allow from xxx.yyy.zzz | |
</ | |
</ | |
</ | |
==== 初回パスワードのハッシュ値を生成する ==== | |
# php -r "echo password_hash(' | |
$CONF[' | |
< | |
echo -n " | |
(stdin)= {hash文字列} | |
以下のように記述します | |
$CONF[' | |
</ | |
この設定の後、このページでPostfix Adminの管理者を作成します。 | |
※パスワードには最低2文字の数字を含む必要があります。 | |
==== postfixadminにアクセス ==== | |
LoginできたらOK | |
==== setup.php を削除 ==== | |
< | |
※Ver 2.3以降削除の必要はなくなりました | |
==== Announcement ==== | |
< | |
ドメイン管理ならmotd.txt、ユーザはmotd-users.txtが表示されます。((ファイルはないけど特権管理者の場合はmotd-admin.txt))\\ | |
邪魔なので表示されないようにします</ | |
< | |
< | |
2017.07.07:Announcementは廃止されている | |
===== Dovecot ===== | |
==== / | |
最終行のあたりが以下のようになっていることを確認 | |
!include conf.d/ | |
!include_try local.conf | |
==== / | |
protocols = pop3 imap | |
listen = * | |
==== 10-auth.conf ==== | |
disable_plaintext_auth = no # ここをyesにするとsslが必須になります | |
auth_mechanisms = PLAIN LOGIN | |
| |
#!include auth-system.conf.ext | |
!include auth-sql.conf.ext | |
==== 10-mail.conf ==== | |
< | |
mail_location = maildir:/ | |
first_valid_uid = 5110 | |
first_valid_gid = 5110 | |
</ | |
==== 10-master.conf ==== | |
< | |
service auth { | |
unix_listener / | |
mode = 0666 | |
} | |
} | |
</ | |
==== 10-ssl.conf ==== | |
ssl = no | |
==== 20-imap.conf ==== | |
< | |
protocol imap { | |
imap_client_workarounds = delay-newmail tb-extra-mailbox-sep | |
mail_plugins = quota imap_quota | |
} | |
</ | |
==== 20-pop3.conf ==== | |
< | |
protocol pop3 { | |
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh | |
mail_plugins = quota | |
} | |
</ | |
==== 90-quota.conf ==== | |
< | |
plugin { | |
quota = maildir: | |
} | |
</ | |
==== auth-sql.conf.ext ==== | |
< | |
passdb { | |
driver = sql | |
args = / | |
} | |
userdb { | |
driver = sql | |
args = / | |
} | |
</ | |
==== dovecot-postfixadmin-mysql.conf ==== | |
< | |
driver = mysql | |
connect = host=/ | |
default_pass_scheme = PLAIN | |
password_query = SELECT password FROM mailbox WHERE username = ' | |
user_query = SELECT concat('/ | |
110 AS gid FROM mailbox WHERE username = ' | |
</ | |
※postfixadminでは”mysqli”ですがここでは”mysql”なので注意 | |
===== 参考 ===== | |
[[http:// | |
[[http:// | |
[[http:// | |
[[https:// |