Debian 9にPostfixとWebメールを使用して完全なメールサーバーをインストールする
このチュートリアルでは、Debian 9 リリースでPostfixを使用して完全なメールサーバーをインストールし構成する方法を説明します。また、IMAPプロトコルを介してメールを取得し作成するために、Dovecotを使用してアカウントのメールボックスを構成する方法もカバーします。ユーザーはメールユーザーエージェントとしてRainloop Webmailインターフェースを使用してメールを処理します。
要件
- Debian 9 ミニマルインストール
- ネットワークインターフェイスに設定された静的IPアドレス
- ローカルまたは公開登録されたドメイン名。
このチュートリアルでは、DNS解決の処理にDNSサーバーを使用せずに、/etc/hostsファイルのみを介して構成されたプライベートドメインアカウントを使用してメールサーバー設定を行います。
ステップ1: Debian上のPostfixメールサーバーの初期設定
1. 最初のステップとして、ルート権限を持つアカウントでマシンにログインするか、直接ルートユーザーとしてログインし、以下のコマンドを実行してDebianシステムが最新のセキュリティパッチやソフトウェア、パッケージのリリースで最新であることを確認してください。
# apt-get update
apt-get upgrade
2. 次のステップでは、システム管理に使用される以下のソフトウェアパッケージをインストールします。次のコマンドを入力してください。
# apt-get install curl net-tools bash-completion wget lsof nano
3. 次に、お好みのテキストエディタで/etc/host.confファイルを編集のために開き、DNS解決が最初にhostsファイルを読み取るようにするために、ファイルの最初に次の行を追加します。
order hosts,bind
multi on
4. 次に、マシンのFQDNを設定し、ドメイン名とシステムのFQDNを/etc/hostsファイルに追加します。ドメインとFQDNの名前を解決するためにシステムのIPアドレスを使用します。以下のスクリーンショットに示されているように。
IPアドレスとドメインを適宜置き換えてください。その後、ホスト名を適切に適用するためにマシンを再起動します。
# hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6
5. 再起動後、次のコマンドのシリーズを実行して、ホスト名が正しく設定されているかを確認します。ドメイン名、FQDN、ホスト名、およびシステムのIPアドレスがhostnameコマンドによって返されるべきです。
# hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname
6. また、以下のコマンドを発行して、ドメインがローカルクエリに正しく応答するかテストします。DNSサーバーを使用していないため、ネットワーク内の他のシステムから発行されたリモートクエリにはドメインは応答しないことに注意してください。
ただし、手動でドメイン名を各システムの/etc/hostsファイルに追加した場合、他のシステムからドメインが応答する必要があります。また、/etc/hostsファイルに追加されたドメインのDNS解決は、host、nslookupまたはdigコマンドでは機能しないことに注意してください。
# getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net
ステップ2: DebianにPostfixメールサーバーをインストールする
7. メールサーバーが適切に機能するために必要な最も重要なソフトウェアはMTAエージェントです。MTAはサーバークライアントアーキテクチャで構築されたソフトウェアで、メールサーバー間のメール転送を担当しています。
このガイドでは、Postfixをメール転送エージェントとして使用します。公式リポジトリからDebianにPostfixをインストールするには、次のコマンドを実行してください。
# apt-get install postfix
8. Postfixのインストールプロセス中に、一連の質問が表示されます。最初のプロンプトでは、Postfixの設定の一般的なタイプとしてインターネットサイトオプションを選択し、続行するために[enter]キーを押します。その後、次のスクリーンショットのようにシステムメール名にあなたのドメイン名を追加してください。
ステップ3: DebianでPostfixメールサーバーを設定する
9. 次に、Postfixのメイン設定ファイルをバックアップし、以下のコマンドを使用してあなたのドメインに対してPostfixを設定します。
# cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf
今、main.cfファイルに表示されているようにPostfixの設定を構成します。
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP
biff = no
appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no
See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
fresh installs.
compatibility_level = 2
TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
information on enabling SSL in the smtp client.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan
mydomain = debian.lan
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
myorigin = $mydomain
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4
home_mailbox = Maildir/
SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
myhostname、mydomain、および mynetworks 変数を、独自の設定と一致するように置き換えます。
Postfixのメイン設定ファイルをダンプし、最終的なエラーを確認するためにpostconf -nコマンドを実行できます。以下のスクリーンショットに示されたように。
# postconf -n
10. すべての設定が整ったら、Postfixデーモンを再起動して変更を適用し、netstatコマンドを実行してPostfixマスターサービスがポート25にバインドされているかを確認してサービスが実行中であることを確認します。
# systemctl restart postfix
systemctl status postfix
netstat -tlpn
ステップ3: DebianでPostfixメールサーバーをテストする
11. postfixがメール転送を処理できるかどうかをテストするために、まず次のコマンドを実行してmailutilsパッケージをインストールします。
# apt-get install mailutils
12. 次に、mailコマンドラインユーティリティを使用して、rootアカウントにメールを送信し、以下のコマンドを発行してメールキューを確認し、rootのホームMaildirディレクトリの内容をリストすることで、メールが正常に送信されたかどうかを確認します。
# echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]
13. 次のコマンドを実行することで、メールログファイルの内容を点検することで、メールがPostfixサービスによってどのように処理されたかを確認することもできます。
# tailf /var/log/mail.log
ステップ4: DebianにDovecot IMAPをインストールおよび設定する
14. このガイドで、ローカルの受信者のメールボックスに電子メールメッセージを配信するために使用するメール配信エージェントはDovecot IMAPです。IMAPは、143および993(SSL)ポートで動作するプロトコルで、複数のメールクライアント間でメールを読み取ったり、削除したり、移動したりする役割を担っています。
IMAPプロトコルは、各メッセージのコピーがサーバーに保存されることを保証するために同期を使用し、ユーザーがサーバー上に複数のディレクトリを作成し、メールをこれらのディレクトリに移動してメールを整理することを可能にします。
POP3プロトコルでは、状況は異なります。POP3プロトコルでは、ユーザーがメールを整理するためにサーバー上に複数のディレクトリを作成することは許可されていません。メールを管理するためには、受信トレイフォルダーのみがあります。
Dovecot コアサーバーと Dovecot IMAP パッケージを Debian にインストールするには、次のコマンドを実行してください。
# apt install dovecot-core dovecot-imapd
15. Dovecotがシステムにインストールされたら、以下のdovecotファイルを開いて編集し、以下の変更を加えてください。まず、/etc/dovecot/dovecot.confファイルを開き、次の行を検索してコメントを外します:
listen = *, ::
16. 次に、/etc/dovecot/conf.d/10-auth.conf を編集のために開き、以下の行を見つけて、以下の抜粋のように変更します。
disable_plaintext_auth = no
auth_mechanisms = plain login
17. /etc/dovecot/conf.d/10-mail.conf ファイルを開き、メールを保存するためにMbox形式の代わりにMaildirロケーションを使用するために次の行を追加します。
mail_location = maildir:~/Maildir
18. 最後に編集するファイルは /etc/dovecot/conf.d/10-master.conf です。ここで、Postfix smtp-auth ブロックを検索し、次の変更を行います:
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
19. 上記のすべての変更を行った後、Dovecot ダイモンを再起動して変更を反映させ、以下のコマンドを発行してそのステータスを確認し、Dovecot がポート 143 にバインドされているかどうかを確認してください。
# systemctl restart dovecot.service
systemctl status dovecot.service
netstat -tlpn
20. 新しいユーザーアカウントをシステムに追加して、メールサーバーが正しく動作しているかテストし、telnet または netcat コマンドを使用してSMTPサーバーに接続し、追加した新しいユーザーに新しいメールを送信します。下記の抜粋に示されています。
# adduser matie
nc localhost 25
ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit
21. 下のスクリーンショットに示すように、ユーザーのホームディレクトリの内容をリストして、新しいユーーメールボックスにメールが届いているか確認してください。
# ls /home/test_mail/Maildir/new/
22. また、コマンドラインからIMAPプロトコルを介してユーザーのメールボックスに接続することもできます。以下の抜粋に示されているように、新しいメールはユーザーの受信トレイに表示されるはずです。
# nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT
ステップ5: Debianにウェブメールをインストールして構成する
23. ユーザーはRainloop Webmailクライアントを使ってメールを管理します。Rainloopメールユーザーエージェントをインストールする前に、まずApache HTTPサーバーと、Rainloopに必要な以下のPHPモジュールをインストールしてください。次のコマンドを実行します。
# apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml
24. Apacheウェブサーバーがインストールされた後、ディレクトリパスを/var/www/html/ディレクトリに変更し、index.htmlファイルを削除して、Rainloop Webmailをインストールするために次のコマンドを実行します。
# cd /var/www/html/
rm index.html
curl -sL https://repository.rainloop.net/installer.php | php
25. Rainloop Webmailクライアントがシステムにインストールされたら、ドメインのIPアドレスに移動し、次のデフォルトの資格情報でRainloop管理ウェブインターフェースにログインします:
http://192.168.0.102/?admin
User: admin
Password: 12345
26. ドメイン メニューに移動し、ドメインを追加 ボタンをクリックして、以下のスクリーンショットに示されているようにドメイン名設定を追加します。
27. ドメイン設定の追加が完了したら、Ranloop管理インターフェースからログアウトし、ブラウザをIPアドレスに向けて、メールアカウントでウェブメールクライアントにログインします。
Rainloopウェブメールに正常にログインした後、コマンドラインから以前に送信されたメールが受信箱フォルダに表示されるはずです。
http://192.168.0.102
User: [email
Pass: the matie password
27. 新しいユーザーを追加するには、-m フラグを付けて useradd コマンドを使用してユーザーのホームディレクトリを作成します。ただし、その前に次のコマンドを使用してすべてのユーザーに対して Maildir のパス変数を設定してください。
# echo 'export MAIL=$HOME/Maildir' >> /etc/profile
useradd -m user3
passwd user3
28. システムから特定のローカルメールアカウントに全てのルートのメールをリダイレクトしたい場合は、以下のコマンドを実行してください。リダイレクトされたメールやルートアカウント宛のすべてのメールは、下の画像に示されているように、あなたのメールユーザーに転送されます。
# echo "root: test_mail" >> /etc/aliases
newaliases
それで全部です!あなたは、ローカルユーザーがメールを通じて通信できるように、施設内にメールサーバーを正常にインストールして設定しました。しかし、この種類のメール構成は、いかなる方法でも安全ではなく、あなたが完全に制御しているシステムやネットワークの小規模なセットアップにのみ展開することをお勧めします。

















