CentOS6.5でやっているLinuxサーバー設定関連の続き記事。
今回はサーバに届いたメールを要求があればクライアントへ送るPOP3サーバー(Dovecot)の導入を行います。
ページの目次
導入目標
同一のネットワーク内で動かしているWindowsにインストールしたメーラーでメールの受信ができるようにすることが目標。
IMAPも同時に設定可能ですが、今回はPOP3形式でCRAM-MD5形式で認証してメールをクライアントで受信できるようにします。
Dovecotのインストール
# yum install dovecot
Dovecotの設定
Dovecotは設定する内容によってファイルが細かく分割されています。
dovecot.conf
最初は全体的な設定を記載する「/etc/dovecot/dovecot.conf」の変更を行います。変更および追記が必要な個所を書き出しています。
protocols = pop3
利用するプロトコルの指定を行います。他にpop3s、imap、imapsの指定が可能です。
10-mail.conf
mailboxに関する設定を行うために「/etc/dovecot/conf.d/10-mail.conf」の設定を行います。
mail_location = maildir:~/mailbox
メールが保存されている場所の指定を行っています。当サイトではhomeの下の各ユーザーディレクトリにメールディレクトリ形式で保存するように設定したため上記の設定になります。
※当サイトでは、ユーザーディレクトリの直下に「mailbox」というディレクトリへメールを送るように設定しているため上記の設定になります。環境に合わせて適宜変更してください。
10-auth.conf
メールを取得する際の認証に関する設定を「/etc/dovecot/conf.d/10-auth.conf」にて行います。
disable_plaintext = yes ・・・(略)・・・ auth_mechanisms = cram-md5 ・・・(略)・・・ #!include auth-system.conf.ext ・・・・・・ (1) ・・・(略)・・・ !include auth-passwdfile.conf.ext
plaintextでの認証を不可能に設定し、認証方式をCRAM-MD5のみ可能にしています。
(1) 有効になっている行をコメントアウトしてください。代わりに下の行で記載している「!include auth-passwdfile.conf.ext」のコメントアウトを取り除いて有効化してください。
10-master.conf
サービスやプロセスに関する設定を「/etc/dovecot/conf.d/10-master.conf」にて行います。
service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { #port = 995 #ssl = yes } } service auth { ・・・ (略) ・・・ unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } }
pop3でのログインを待つポートの指定を行います。
また、postfixでSMTP-AUTHの設定を行った場合はservice authの設定も行います。
auth-passwdfile.conf.ext
パスワードファイルを使った認証設定を行います。
passdb { driver = passwd-file #args = scheme=CRYPT username_format=%u /etc/dovecot/users ・・・・・・ (2) args = /etc/dovecot/dovecot-passwd } userdb { driver = passwd-file #args = username_format=%u /etc/dovecot/users ・・・・・・ (3) args = /etc/dovecot/dovecot-passwd }
(2),(3) 元々記載されていた行をコメントアウトします。代わりに「args = /etc/dovecot/dovecot-passwd」を記載します。
パスワードファイルの作成
ユーザー名「user_name」とした場合のパスワードファイルの作成についてです。
# doveadm pw -s CRAM-MD5 > /etc/dovecot/dovecot-passwd Enter new password: <パスワードを入力> Retype new password: <パスワードをもう一度入力> # cat /etc/passwd | grep user_name user_name:x:500:500::/home/user_name:/sbin/nologin ・・・・・・ (4) # chgrp dovecot /etc/dovecot/dovecot-passwd # chown dovecot /etc/dovecot/dovecot-passwd
(4) ユーザーの情報をメモしておいてください。メモした情報を使ってdovecot-passwdの編集を行います。
「dovecot-passwd」ファイルをエディタで開き、以下のように編集します。
{CRAM-MD5}a8u3j・・・省略・・・ba1 ↓ user_name:{CRAM-MD5}a8u3j・・・省略・・・ba1:500:500:/home/username:/sbin/nologin
ファイルを開くと「{CRAM-MD5}a8u3j~~ba1」のようにパスワードをハッシュ化されたデータが書き込まれているので、(4)で確認したユーザー名である「user_name」やuid、gidなどの記載を追記します。
SELinuxの設定変更
SELinuxを無効化で運用している方は読み飛ばしてください。
変更を行うのはメールを保存しているディレクトリとパスワードを保存しているファイルです。
# chcon -R system_u:object_r:dovecot_etc_t:s0 /etc/dovecot/dovecot-passwd # chcon -R system_u:object_r:user_home_t:s0 /home/user_name/mailbox/
それぞれ、ファイルのコンテキストを変更しています。
この設定を行わないとメールの受信をクライアントから実行した際にPermissionエラーが発生します。
ファイアーウォールの設定とサービスの起動
POP3の場合はTCP110番のポートを開きます。
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
設定の完了後、iptablesのサービスを再起動します。
# service iptables restart
続いてdovecotサービスの起動を行います。
# service dovecot start
Thunderbirdで接続確認
WindowsのThnderbirdを使ってdovecotへの接続の確認を行います。
「メニュー」>「ツール」>「アカウントの設定」を選択します。
ダイアログの左下にある「アカウント操作」を左クリック、「メールアカウントを追加」を選択します。
「あなたのお名前」「メールアドレス」「パスワード」を入力し、「続ける」を左クリックします。
受信サーバ、送信サーバの設定を行います。
外部に公開していないサーバの場合、サーバのホスト名はIPアドレスを入力することでThunderbirdが認識できる状態になります。
当サイトの場合は192.168.1.5のIPをサーバに割り当てているため下記のように入力し「再テスト」を実行、「完了」がクリック可能になるため「完了」をクリックします。
送信内容について警告が以下の表示がされます。
チェックボックスにチェックを入れて「完了」すると接続が完了します。
以上で、メールの送受信が可能になるはずです。
トラックバック & ピンバック