ウェブサイト検索

Postfix と Webmail を備えた完全なメール サーバーを Debian 9 にインストールする


このチュートリアルでは、Debian 9 リリースの Postfix を使用して完全なメール サーバーをインストールして構成する方法を説明します。また、IMAP プロトコル経由でメールを取得および作成するために、Dovecot を使用してアカウントのメールボックスを構成する方法についても説明します。ユーザーはメールを処理するメール ユーザー エージェントとしてRainloop Webmail インターフェイスを使用します。

要件

  1. Debian 9 の最小インストール
  2. ネットワークインターフェースに設定された静的IPアドレス
  3. ローカルまたはパブリックに登録されたドメイン名。

このチュートリアルでは、DNS 解決の処理に DNS サーバーを使用せずに、/etc/hosts ファイルのみで構成されたメール サーバーのセットアップにプライベート ドメイン アカウントを使用します。

ステップ 1: Debian 上の Postfix メール サーバーの初期設定

1. 最初のステップでは、root 権限を持つアカウントを使用するか、root ユーザーとして直接マシンにログインし、Debian システムが最新のセキュリティ パッチ、ソフトウェア、およびパッケージのリリースで最新であることを確認します。 、次のコマンドを発行します。

apt-get update 
apt-get upgrade 

2. 次のステップでは、次のコマンドを実行して、システム管理に使用される次のソフトウェア パッケージをインストールします。

apt-get install curl net-tools bash-completion wget lsof nano

3. 次に、/etc/host.conf ファイルを開いてお気に入りのテキスト エディタで編集し、DNS 解決のために次の行をファイルの先頭に追加します。最初にホストファイルを読み取ります。

order hosts,bind
multi on

4. 次に、マシンの FQDN を設定し、ドメイン名とシステム FQDN を /etc/hosts ファイルに追加します。以下のスクリーンショットに示すように、システムの IP アドレスを使用してドメイン名と FQDN を解決します。

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

myhostnamemydomain、および mynetworks 変数を独自の構成に合わせて置き換えます。

以下のスクリーンショットに示すように、postconf -n コマンドを実行して、Postfix のメイン設定ファイルをダンプし、最終的なエラーを確認できます。

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. 次に、メール コマンド ライン ユーティリティを使用して、ルート アカウントにメールを送信し、以下のコマンドを発行してメールが正常に送信されたかどうかを確認します。メール キューを確認し、ルート アカウントの内容を一覧表示します。ホームの 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 プロトコルでは、ユーザーがメールを分類するためにサーバー上に複数のディレクトリを作成することはできません。メールを管理するには受信トレイフォルダーのみが必要です。

Debian にDovecot コア サーバーとDovecot IMAP パッケージをインストールするには、次のコマンドを実行します。

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 ファイルを開き、次の行を追加して、代わりに Maildir の場所を使用します。電子メールを保存するためのMbox 形式。

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 にバインドされているかどうかを確認します。以下のコマンドを発行して、strong> を実行します。

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 に Web メールをインストールして構成する

23. ユーザーは、Rainloop Web メール クライアントを介して電子メールを管理します。 Rainloop メール ユーザー エージェントをインストールする前に、次のコマンドを実行して、 まず、Rainloop に必要なApache HTTP サーバーと次のPHP モジュールをインストールします。

apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Apache Web サーバーがインストールされたら、ディレクトリ パスを /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 Web メール クライアントがシステムにインストールされたら、ドメイン IP アドレスに移動し、次のデフォルトの認証情報を使用して Rainloop 管理 Web インターフェイスにログインします。

http://192.168.0.102/?admin
User: admin
Password: 12345

26. [ドメイン] メニューに移動し、[ドメインの追加] ボタンをクリックして、以下のスクリーンショットに示すようにドメイン名の設定を追加します。

27. ドメイン設定の追加が完了したら、Ranloop 管理インターフェイスからログアウトし、ブラウザで IP アドレスを指定して、電子メール アカウントで Web メール クライアントにログインします。

Rainloop Web メールに正常にログインすると、コマンド ラインから以前に送信された電子メールが受信トレイ フォルダーに表示されるはずです。

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. すべての root の電子メールをシステムから特定のローカル メール アカウントにリダイレクトする場合は、以下のコマンドを実行します。 root アカウントにリダイレクトまたは宛先されたすべてのメールは、次の図に示すようにメール ユーザーに転送されます。

echo "root: test_mail" >> /etc/aliases
newaliases

それだけです!ローカル ユーザーが電子メールで通信できるように、社内にメール サーバーを正常にインストールして構成しました。ただし、このタイプのメール構成は決して安全ではないため、完全に制御できるシステムおよびネットワークの小規模なセットアップにのみ導入することをお勧めします。