CentOS7にPostfixとDovecotを導入しメールサーバを構築します。独自のメールサーバであれば好みのメールアドレスをいくつでも作れます。メール受信サイズ上限も自分で決められます。
独自ドメイン環境なら、世界で1つだけのメールサーバを自前で運用できます。ちょっとカッコよくないですか。もちろんセキュリティーを高めて不正利用されないようにする責任は伴いますが。
参考(Special Thanks):CentOSで自宅サーバ
目次
1.Postfixのインストール
インストールはyumで1行です。
1 |
yum -y install postfix |
2.Postfix設定ファイルの編集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vi /etc/postfix/main.cf myhostname = mail.hogehoge.com #←追加(自FQDN名を指定) mydomain = hogehoge.com #←追加(自ドメイン名を指定) myorigin = $mydomain #←追加(ローカルからのメール送信時の送信元メールアドレス@以降にドメイン名を付加) inet_interfaces = all #←変更(外部からのメール受信を許可) mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #←変更(自ドメイン宛メールを受信できるようにする) home_mailbox = Maildir/ #←追加(メールボックス形式をMaildir形式にする) smtpd_banner = $myhostname ESMTP unknown #←追加(メールサーバーソフト名の隠蔽化) message_size_limit = 10485760 #← 追加行 受信メールサイズを10Mに制限 mailbox_size_limit = 1024000000 #← 追加行 メールボックスサイズを1GBに制限 #(SMTP-Auth設定) smtpd_sasl_auth_enable = yes smtp_sasl_mechanism_filter = plain smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination |
自宅サーバでQB25対策が必要な場合、以下の設定を/etc/postfix/main.cfに追加する。
1 |
relayhost = mmr.plala.or.jp #プロバイダーがぷららの場合の設定 |
3.sasl設定・sasl環境設定
1 2 3 4 5 6 |
yum -y install cyrus-sasl # cyrus-saslインストール systemctl start saslauthd # saslauthd起動 systemctl enable saslauthd # saslauthd自動起動設定 #SMTP-Auth用ユーザ名、パスワードとシステムのユーザ名、パスワードを別々にする vi /etc/sasl2/smtpd.conf pwcheck_method: auxprop # 変更 |
4.メールDir形式に変更
新規ユーザー追加時にメールボックス形式でディレクトリが追加されるようにします。
1 2 |
mkdir -p /etc/skel/Maildir/{new,cur,tmp} chmod -R 700 /etc/skel/Maildir/ |
5.Postfix起動設定
1 2 3 4 |
#Postfix 再起動 systemctl restart postfix #Postfix 自動起動設定 systemctl enable postfix |
6.メール専用ユーザー追加
メール用のユーザーを追加します。SSHによるリモート接続はできない設定にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
useradd -s /sbin/nologin NewUser passwd NewUser Changing password for user NewUser New UNIX password: #パスワード応答 Retype new UNIX password: #パスワード応答(確認) #SMTP-Auth用ユーザ/パスワード登録 echo 'パスワード' | saslpasswd2 -p -u mail.hogehoge.com -c NewUser #SMTP-Auth用ユーザ名、パスワード確認 sasldblistusers2 NewUser@mail.hogehoge.com: userPassword #sasldb2所有グループをpostfixに変更※最初の1回のみ chgrp postfix /etc/sasldb2 #※SMTP-Auth用ユーザ名、パスワードを削除する場合 saslpasswd2 -d NewUser -u mail.hogehoge.com |
7.Dovecotのインストールと設定
Dovecot(ダヴコット)とは、Unix系のOS上で動作する、POP3とIMAPのサーバ。
Postfixで保存したメールを受信するためにDovecotをインストールします。
1 2 3 4 5 6 7 |
# Dovecotのインストール yum -y install dovecot #Dovecot設定(CentOS7の場合) vi /etc/dovecot/conf.d/10-mail.conf mail_location = maildir:~/Maildir # 追加(メールボックス形式をMaildir形式とする) vi /etc/dovecot/conf.d/10-auth.conf Disable_plaintext_auth = no # 追加(プレインテキスト認証を許可) |
8.Dovecot起動設定
1 2 3 4 |
#Dovecot 起動 systemctl start dovecot #Dovecot 自動起動設定 systemctl enable dovecot |
9.メールサーバで使用するポートの開放
メールサーバで外向けの送信と外部からのメール受信をする場合、SMTP25番ポートを開放します。メールサーバに接続してメールを受信する場合、以下のポートを開放します。
110:POP受信用
140:IMAP受信用
1 2 3 4 5 |
# Firewall開放 firewall-cmd --add-port=25/tcp --permanent firewall-cmd --add-port=143/tcp --permanent firewall-cmd --add-port=110/tcp --permanent firewall-cmd --reload |
但し、メール送受信用のPOP3/IMAP4/SMTPプロトコルでは、メール本文や認証用パスワードが暗号化されないため、盗聴によって悪用される恐れがあります。出典:@IT
メールサーバにインターネットを経由して接続するのであれば次項のメール通信経路の暗号化を強くお勧めします。