# メールサーバのアカウント追加でドハマリした話

僕は普段遣いのメールは自鯖で管理をしているんですが、 アカウントの追加方法でドハマリしてしまったので備忘録として書き残しておきます。

# アカウントの追加

今回はメールアドレスのみでログインは使用しないユーザなので、nologinでユーザを追加します。

# nologinでユーザ作成
$ sudo useradd -s /sbin/nologin new_user
# パスワードの設定
$ sudo /etc/passwd new_user
1
2
3
4
5

特に認証方式(auth_mech)を変更していない場合、これだけで手順は完了するみたいです。

僕はメールサーバを構築する際に、セキュアな実装をするためにsasl入れたり方式変えたりしてるので、 SMTP/IMAPそれぞれにユーザー登録を行う必要がありました。

# SMTPにユーザ追加

SMTPサーバはpostfixというソフトで管理しているのですが、 ユーザ情報などはsaslauthdで管理しており、今回いじるのはsaslauthdの方です。

# ユーザの追加
$ sudo saslpasswd2 -c -u plus-one.tech new_user
# ユーザが追加されてることを確認
$ sudo sasldblistusers2
# パスワード確認したい場合 ※平文で見れてしまうので要注意
$ sudo cat /etc/sasldb2 | strings
1
2
3
4
5
6
7
8

これでSMTPの認証もできるようになりました。

しかし、stringsで平文見れちゃうのってセキュリティ的にどうなん?って思いますね。 root権限だから許容されるものなんでしょうか。

# IMAPにユーザ追加

POP3/IMAPサーバはdovecotというソフトで管理します。 こちらは /etc/dovecot/dovecot-passwd というファイルにユーザー情報を書き込む形式になってます。 フォーマットは /etc/passwd と同じで、 user_name:x:...x をパスワードに置き換える感じです。

# ハッシュ化したパスワードをファイルに出力
$ doveadm pw -s CRAM-MD5 >> /etc/dovecot/dovecot-passwd
# ユーザ情報をコピペ
$ cat /etc/passwd
$ sudo vim /etc/dovecot/dovecot-passwd
# 最後にdovecot再起動しときましょうか
$ sudo systemctl restart dovecot
1
2
3
4
5
6
7
8
9

これで認証ができるようになったと思います。

SMTPとIMAP両方に設定をする必要があるのと、設定方法が全然違うのが今回ハマったポイントでした。 同じようにハマってる人の助けになれば幸いです。