exim4?
メールを送れた方がいいという事で、SMTP AUTHを検討してみる&設定する
やっぱりSMTP AUTHもしたいけど、SMTP over SSLも実装したい。という事で調べた見た(未設定&wikiに書いてない)
参考URL
SMTP AUTH †
1)まずやってみた
amori@mail$ sudo /usr/share/doc/exim4-base/examples/exim-gencert
いろいろ聞かれる
- Country Code (2 letters) [US]:国名(JP)
- State or Province Name (full name) [Some-State]:住所
- Locality Name (eg, city) []:住所
- Organization Name (eg, company; recommended) []:会社か組織名
- Organizational Unit Name (eg, section) []:部署名
- Server name (eg. ssl.domain.tld; required!!!) []:ドメイン名
- 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
- 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が必要
- /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 []:なにかパスワード
- csrが出来たらここ(CAcert.org)でアカウント登録
- 登録したら、ログインをして[Client Certificates]という所(左メニューの三番目ぐらいにある)のNewを押す
- そしたらメールアドレスを載せた物を作るか作らないか、と質問があるので、登録したメールアドレスをラジオボタンで選んで、好きな方を選ぶ。そのしたにテキストエリアがあるから/etc/exim/exim.csrをコピーする。
- 生成ボタンをすると、
-----BEGIN CERTIFICATE REQUEST-----
MIIBezCB5QIBADA8MRcwFQYDVQQDEw5
3cuY2FjZXJ0Lm9yZzEhMB8GCSqGSIb3
DQEJARYSc3VwcG9ydEBjYWNlcnQub3J
IGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-----END CERTIFICATE REQUEST-----
と証明書みたいなのが出て来るからそれをコピーして/etc/exim/exim.crtに上書きする。
- /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
- update-exim4.confして、eximをreload or restart
- メールを送ろうとすると、このサーバーを信用する?みたいな画面が出て来る
ちょっと設定で焦った事 †
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でも送れないようになった。よかった、よかった。