exim4 … SMTPサーバ Edit

  • はじめに
    以下のプログラムを使用してメール環境を構築したときのメモを記します。
    • SMTPサーバ … exim4 (debianのデフォルトメールサーバ)
    • IMAPサーバ … dovecot (もれなくPOP3もついてくる)
    • WEBメール … SquirrelMail

  • 参考ページ
    次のページを参考にしました。
  • SMTP(Port25)のフォワード
    LANDISKがメールの送受信を行えるよう、ADSLモデム(ルータ)のポート設定を行います。
    具体的には、smtpポート(25番)をLANDISK側へフォワードするように設定します。
    ADSLモデムの設定変更やリセットでWAN側IPアドレスが変化する環境の方は、
    DynamicDNSの更新も同時に行ってくださいね。私はこれに気付かず、随分はまりました。

  • exim4の設定
    landisk:~# dpkg-reconfigure exim4-config
    
    • Split configuration into small files?
      No
  • General type of mail configuration:
    internet site; mail is sent and received directly using SMTP
  • System mail name:
    eggplant.ddo.jp
  • IP-addresses to listen on for incoming SMTP connections:
    空白
  • Other destinations for which mail is accepted:
    eggplant.ddo.jp
  • Domains to relay mail for:
    空白
  • Machines to relay mail for:
    空白
  • Keep number of DNS-queries minimal (Dial-on-Demand)?
    No
  • Root and postmaster mail recipient:
    landisk ← システムからの(各種ログ等の)メッセージを受信するメールアドレスを指定

  • mail保存形式をmboxからMaildirへ変更
    /etc/exim4/update-exim4.conf.confの最終行へ追加。
    dc_localdelivery='maildir_home'
    
    次に、ユーザのホームディレクトリにMaildirを作成します。
    例えば、ユーザ landiskの場合。
    landisk:~# su landisk
    landisk@landisk:/root$ cd 
    landisk@landisk:~$ mkdir Maildir
    landisk@landisk:~$ chmod 700 Maildir
    landisk@landisk:~$ exit
    landisk:~#
    
  • 設定が終了したらexim4を再起動します。
    landisk:~# /etc/init.d/exim4 reload
    Reloading exim4 configuration files
    

Dovecot … IMAP/POP3サーバ Edit

  • インストール&設定
    dovecotというIMAP/POP3サーバを使用してみようと思います。
    landisk:~# apt-get install dovecot
    
    補足:debian26-etch版では、
    landisk:~# apt-get install dovecot-common dpvecot-imapd dovecot-pop3d
    
    /etc/dovecot/dovecot.conf の protocolsの行を次のように編集します。
    (POP3サーバも動作させたい場合は、pop3を追加。)
    protocols = imap
    # protocols = imap pop3
    
  • inetd経由で起動 追記:何故だかゾンビが残っちゃうのでヤメ!
    メモリ消費を抑えるため、inetdから呼び出すように設定します。
    /etc/inetd.confに次を追加します。
    imap  stream  tcp  nowait root  /usr/sbin/tcpd /usr/lib/dovecot/imap-login
    #imaps stream  tcp  nowait root  /usr/sbin/tcpd /usr/lib/dovecot/imap-login --ssl
    pop3  stream  tcp  nowait root  /usr/sbin/tcpd /usr/lib/dovecot/pop3-login
    #pop3s stream  tcp  nowait root  /usr/sbin/tcpd /usr/lib/dovecot/pop3-login --ssl
    
    inetdを再起動します。
    landisk:~# /etc/init.d/inetd restart
    
    この状態で、IMAP/POP3対応のメーラーからアクセスできると思います。
    なお、必要に応じて、TCPWapper(/etc/hosts.allow、/etc/hosts.deny)の設定を行ってください。
  • Dovecotの起動
    landisk:~# /etc/init.d/dovecot start
    
    この状態で、IMAP/POP3対応のメーラーからアクセスできると思います。

SquirrelMail … WEBメール Edit

  • 注意
    本節では、HTTPSではなく、通常のHTTPプロトコルを用いたWEBメール環境を構築します。
    従って、インターネット上を平文のまま、パスワードやメール本文が送信されることを、ご留意ください。
    万が一に備え、WEBメール専用のアカウントでの使用をお勧めします。
    (それほど神経質にならなくても良いと思いますけど。)
  • インストール&設定
    • インストール
      次のパッチを当てたパッケージを用意しました。
      landisk:~# apt-get install squirrelmail locales
      
      ※localesでは、ja_JP.eucJP にチェックが必要

    • /etc/apache/conf.d/squirrelmail.conf を次の内容で用意
      Alias /squirrelmail /usr/share/squirrelmail
      
      <Directory /usr/share/squirrelmail>
      #  php_value register_globals On # refer to Debian bug #128226
        php_flag register_globals on
        Options Indexes FollowSymLinks
        <Files configtest.php>
          order deny,allow
          deny from all
          allow from 127.0.0.1
          allow from 192.168.1.0/24
          allow from 192.168.0.0/24
        </Files>
      </Directory>
      
    • apacheの再起動
      landisk:/# apachectl configtest
      Syntax OK
      landisk:/# /etc/init.d/apache restart
      Restarting apache.
      
  • SquirrelMailへ接続
    ブラウザから、http//MY_LANDISK/squirrelmail/で、SquirrelMailへ接続できます。

    squirrelmail.png

補足 … exim4 トラブルシューティング Edit

  • MXレコードの確認
    nslookupを使用してMXレコードが正しく得られるか確認します。
    (nslookupコマンドは、dnsutilsパッケージに入っいます。)
    landisk:~# apt-get install dnsutils
    
    MXレコードを取得してみます。
    landisk:~# nslookup -type=mx eggplant.ddo.jp
    Server:         123.145.167.134
    Address:        123.145.167.134#53
    
    Non-authoritative answer:
    eggplant.ddo.jp mail exchanger = 50 eggplant.ddo.jp.
    
    Authoritative answers can be found from:
    eggplant.ddo.jp internet address = 123.145.167.177
    
    正しく取得できました。

    DNSが正しく引けない場合は次のようなメッセージが出力されるようです。
    ;; connection timed out; no servers could be reached
    
    (私の場合、プロバイダが指定するDNSサーバを/etc/resolv.confに設定するとうまくいきました。)

  • 配送テスト
    メールの送受信テスト(シミュレート)を行います。
    (シュミレートなので、実際には、メールの送受信は行われません。)

    • 内部から内部への送受信テスト
      チェックポイントの箇所がそれぞれ、次のようになっているとOKらしい。
      landisk:~# exim4 -bt
      > landsik                                        ← 配送先を入力
      R: system_aliases for landisk@eggplant.ddo.jp
      R: userforward for landisk@eggplant.ddo.jp
      R: procmail for landisk@eggplant.ddo.jp
      R: maildrop for landisk@eggplant.ddo.jp
      R: local_user for landisk@eggplant.ddo.jp
      landisk@eggplant.ddo.jp
        router = local_user, transport = maildir_home  ← チェックポイント
      > landsik@eggplant.ddo.jp                        ← 配送先を入力
      R: system_aliases for landisk@eggplant.ddo.jp
      R: userforward for landisk@eggplant.ddo.jp
      R: procmail for landisk@eggplant.ddo.jp
      R: maildrop for landisk@eggplant.ddo.jp
      R: local_user for landisk@eggplant.ddo.jp
      landisk@eggplant.ddo.jp
        router = local_user, transport = maildir_home  ← チェックポイント
      > CTRL+Cで一旦抜ける
      
  • 外部への送信テスト
    (実験にyahooのSMTPサーバを使わせて頂く。)
    チェックポイントの箇所が、次のようになっているとOKらしい。
    landisk:~# exim4 -bt
    > postmaster@yahoo.co.jp                      ← 配送先を入力
    
    R: dnslookup for postmaster@yahoo.co.jp
    postmaster@yahoo.co.jp
      router = dnslookup, transport = remote_smtp    ← チェックポイント
    
      host mta05.mail.yahoo.co.jp [202.93.83.211]  MX=10
      host mta06.mail.yahoo.co.jp [202.93.83.236]  MX=10
      host mta09.mail.yahoo.co.jp [202.93.87.209]  MX=10
      host mta02.mail.yahoo.co.jp [202.93.87.212]  MX=10
      host mta08.mail.yahoo.co.jp [202.93.87.210]  MX=10
      host mta07.mail.yahoo.co.jp [202.93.87.211]  MX=10
      host mta16.mail.yahoo.co.jp [203.141.44.225] MX=100
    > CTRL+Cで一旦抜ける
    
  • 外部からの受信テスト
    次のコマンドを実行すると、<IP address>から届いた<email address>の
    受信/拒否判定が確認できるらしい。
    exim_checkaccess <IP address> <email address>
    
    では実際に実験を行ってみます。
    正常ケース
    landisk:~# exim_checkaccess 123.123.123.123  landisk@eggplant.ddo.jp
    Accepted
    
    ドメイン正常でユーザが存在しないケース
    landisk:~# exim_checkaccess 123.123.123.123  baduser@eggplant.ddo.jp
    Rejected:
      550 unknown user
    
    ドメインが正常でないケース(踏み台にされないことのチェック)
    landisk:~# exim_checkaccess 123.123.123.123  landisk@carrot.ddo.jp
    Rejected:
      550 relay not permitted
    
  • 第三者中継テストがパスしない
    exim4は、不当なsmtpコマンドが連続して発行された場合、コネクションを自動的に
    クローズする機能を有する。(不当な攻撃に対する防衛処置)
    本機能が「アダ」となって、テストが続行できない。
  • RBL.JP
    >>> RSET
    relay NOT accepted!! 
    
    中継テスト その13
    
  • abuse.net home page
    Relay test 12
    >>> RSET
    <<< 554 Too many nonmail commands
    Relay test result
    Could not reset connection, test failed.
    
  • テスト時だけ、制限を緩和する。
    /etc/exim4/exim4.conf.templateへ次の2行を追加してデーモンの再起動を行う。
    smtp_accept_max_nonmail=20
    smtp_max_synprot_errors=10
    
    (テストが終わったら追加した2行を削除し、元に戻しておくのが望ましい。)


Counter: 15732, today: 1, yesterday: 0

添付ファイル: filesquirrelmail.png 271件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-06-13 (火) 21:29:00 (6534d)