exim4?

メールを送れた方がいいという事で、SMTP AUTHを検討してみる&設定する
やっぱりSMTP AUTHもしたいけど、SMTP over SSLも実装したい。という事で調べた見た(未設定&wikiに書いてない)

参考URL

SMTP AUTH

1)まずやってみた

amori@mail$ sudo /usr/share/doc/exim4-base/examples/exim-gencert
いろいろ聞かれる

  1. Country Code (2 letters) [US]:国名(JP)
  2. State or Province Name (full name) [Some-State]:住所
  3. Locality Name (eg, city) []:住所
  4. Organization Name (eg, company; recommended) []:会社か組織名
  5. Organizational Unit Name (eg, section) []:部署名
  6. Server name (eg. ssl.domain.tld; required!!!) []:ドメイン名
  7. Email Address []:aya@ ドキュメントと設定サンプルは/usr/share/doc/exim4-base/にあるらしい

すでに実行していたら

  • /etc/exim4/exim.crt
  • /etc/exim4/exim.key にファイルがある

2)その後
auth/30_exim4-config_examplesを編集、以下のコメントを外す

plain_server:
  driver = plaintext
  public_name = PLAIN
  server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{CON$
  server_set_id = $2
  server_prompts = :
  .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
  server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
  .endif

/etc/exim4/conf.d/main/03_exim4-config_tlsoptionsを編集、下記の行を追加

MAIN_TLS_ENABLE = true

3)main/01_exim4-config_listmacrosdefsを編集。

MAIN_RELAY_TO_DOMAINS = comuro.org

のように送信サーバとして使うドメインを書いておく。
4)passwdを作成、SMTP用のアカウントを追加
touch /etc/exim4/passwd
htpasswd -d passwd {名前id}
5)設定ファイルを反映させて、exim4を再起動
update-exim4.conf
/etc/init.d/exim4 restart

備考
passwdファイルは640に成っている必要あり&root:Debian-eximとなっている

TLS/SSLの有効にする

なんだか心配だったのでTLSの設定をしてみる

参考URL

  1. sudo /usr/share/doc/exim4-base/examples/exim-gencert
    とするとexim.keyが作成される。この--forceはDebian特有らしい。/etc/exim4/にすでにexim4.keyを場合強制的に上書き新規作成をしてくれるありがたい?オプションだ。最初に走らせるとexim.keyとexim.crtが出来た気がする。。。(未確認)。取り合えずexim.keyとexim.crtが必要
  2. /etc/exim4/exim.keyが出来た事を確認すると
    sudo openssl req -new -key /etc/exim4/exim.key -out /etc/exim4/exim.csr
    Country Name (2 letter code) [AU]:JP
    State or Province Name (full name) [Some-State]:都道府県ぐらいでよいと思う
    Locality Name (eg, city) []:大まかな住所。多分適当でもよいと思う
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:名前とか
    Organizational Unit Name (eg, section) []:
    Common Name (eg, YOUR name) []:comuro.org
    Email Address []:webmaster@comuro.org
    A challenge password []: なにかパスワード
    An optional company name []:なにかパスワード
  3. csrが出来たらここ(CAcert.org)でアカウント登録
  4. 登録したら、ログインをして[Client Certificates]という所(左メニューの三番目ぐらいにある)のNewを押す
  5. そしたらメールアドレスを載せた物を作るか作らないか、と質問があるので、登録したメールアドレスをラジオボタンで選んで、好きな方を選ぶ。そのしたにテキストエリアがあるから/etc/exim/exim.csrをコピーする。
  6. 生成ボタンをすると、
    -----BEGIN CERTIFICATE REQUEST-----
    MIIBezCB5QIBADA8MRcwFQYDVQQDEw5
    3cuY2FjZXJ0Lm9yZzEhMB8GCSqGSIb3
    DQEJARYSc3VwcG9ydEBjYWNlcnQub3J
    IGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
    -----END CERTIFICATE REQUEST-----
    と証明書みたいなのが出て来るからそれをコピーして/etc/exim/exim.crtに上書きする。
  7. /etc/exim4/conf.d/main/03_exim4-config_tlsoptionsを編集する。大体はコメントを外すだけで良い
    log_selector = +tls_cipher +tls_peerdn(これは行がないので、適当に追加)
    tls_advertise_hosts = * 
    tls_certificate = CONFDIR/exim.crt
    tls_privatekey = CONFDIR/exim.key
  8. update-exim4.confして、eximをreload or restart
  9. メールを送ろうとすると、このサーバーを信用する?みたいな画面が出て来る

ちょっと設定で焦った事

SMTP AUTHでid/pwを入れないと送れないと思っていたら、exim4の設定で下記のようにしていたので&ネットワーク内だったので、素通りでメールを送信出来てしまって上記の設定に間違いがあったのかと、一瞬焦る。

/etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs

.ifndef MAIN_RELAY_NETS
MAIN_RELAY_NETS = DEBCONFrelay_netsDEBCONF
.endif
hostlist relay_from_hosts = 127.0.0.1 : ::::1 : 192.168.1.0/24 : MAIN_RELAY_NETS

なので、hostlistから192~を外してupdate-eixm4.confして、exim4をreload。 smtp設定でid/pwを入れないと社内LANでも送れないようになった。よかった、よかった。


Last-modified: 2012-03-12 (月) 17:05:12 (166d)