VirtualBoxのGraylog.ova環境にpostfixを入れて、graylogからアラートメールを送信できるようにする(local)

VirtualBoxのGraylog.ova環境にpostfixを入れて、graylogからアラートメールを送信できるようにする

□ 参考サイト
https://qiita.com/mizuki_takahashi/items/1b33e1f679359827c17d

□ hostname確認
# hostname

□ hostnameを恒久的に変更する
# hostnamectl set-hostname <好きなhostname>
hostname変更確認
# hostnamectl

postfixのインストール
# apt-get install -y postfix
TUIが表示されるので「No configuration」を選択する
f:id:Saw84:20181116161726p:plain

□ 「/usr/lib/postfix/main.cf」を/etc/postfix/ディレクトリにコピーする
# cp /usr/lib/postfix/main.cf /etc/postfix/main.cf

postfixの設定を編集
# vi /etc/postfix/main.cf
# 59行目:コメント解除
mail_owner = postfix
 
# 76行目:コメント解除しホスト名指定
myhostname = mail.graylogsaw84.jp
 
# 83行目:コメント解除しドメイン名指定
mydomain = graylogsaw84.jp

# 104行目:コメント解除
myorigin = $mydomain

# 118行目:コメント解除
inet_interfaces = all

# 166行目:コメント解除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# 209行目:コメント解除
local_recipient_maps = unix:passwd.byname $alias_maps

# 268行目:自ネットワーク追記
※ ip addrコマンドでIoのinetアドレスが127.0.0.1/8、eth0のinetアドレスが10.0.2.10/24だった
mynetworks = 127.0.0.0/8, 10.0.2.0/24

# 388行目:コメント解除
alias_maps = hash:/etc/aliases

# 399行目:コメント解除
alias_database = hash:/etc/aliases

# 421行目:コメント解除 ( Maildir形式へ移行 )
home_mailbox = Maildir/

# 557行目:コメントにしてその下に追記
#smtpd_banner = $myhostname ESMTP $mail_name (@@DISTRO@@)
smtpd_banner = $myhostname ESMTP

# 632行目:追記
sendmail_path = /usr/sbin/postfix

# 637行目:追記
newaliases_path = /usr/bin/newaliases

# 642行目:追記
mailq_path = /usr/bin/mailq

# 648行目:追記
setgid_group = postdrop

# 652行目:コメント化
#html_directory =

# 656行目:コメント化
#manpage_directory =

# 661行目:コメント化
#sample_directory =

# 665行目:コメント化
#readme_directory =

# 最終行へ追記:送受信メールサイズを10Mに制限
message_size_limit = 10485760
# メールボックスサイズを1Gに制限
mailbox_size_limit = 1073741824
# 以下SMTP-Auth
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject


□ devcotと、smtp authに必要なIDとパスワードをやり取りするためのライブラリCyrus SASLをインストールする
# apt install sasl2-bin devcot-imapd devcot-pop3d
→ TUIが出てくるので「Create a seif-signed SSL certificate?」→「Yes」を選択
「Please enter the host name」→myhostnameで設定したhostnameを入力

SMTP認証に使うSASLの設定
# vi /etc/postfix/main.cf
最下部に追記
broken_sasl_auth_clients = yes

### TLSを使う場合の証明書と鍵ファイルの指定
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

smtp_use_tls = yes

smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_tls_CApath = /etc/ssl/certs/ca-certificates.crt

□ /etc/postfix/saslpass の作成
# vi /etc/postfix/saslpass
[smtp.gmail.com]:587 example@gmail.com:パスワード

□ /etc/postfix/saslpass.db の作成
パスワードを記入したファイルを、Postfixが読み込みやすい形式に postmap コマンドで変換する。変換後のファイル名には .db が付くが、設定ファイルで指定するファイル名は変換前のファイル名で良い。
# postmap /etc/postfix/saslpass

□ 設定反映のため、postfixを再起動する
# /etc/init.d/postfix restart

□ /etc/postfix/master.cfの編集
# vi /etc/postfix/master.cf
以下を追記
### Submission ポート (ポート番号 587) でも SMTP を受けるようにする
### sasl認証を有効にする
submission inet n - - - - smtpd
-o smtpd_sasl_auth_enable=yes
### smtpsを有効にする
### TLSのラッパーモードを有効にする
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes

dovecotの設定
# vi /etc/dovecot/dovecot.conf
以下を追記
### 利用するプロトコルを記載
### dovecot-imapdとdovecot-pop3dをインストールしたので imap pop3 を記載
protocols = imap pop3
### LISTENするアドレスを指定
listen = *

# vi /etc/dovecot/conf.d/10-mail.conf
以下を変更
### Postfixの設定に合わせてMaildir形式を指定
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:~/Maildir

以下を追記:190行目付近
### dovecotプロセスが chroot することができるディレクトリの指定
valid_chroot_dirs = /home

以下を追記:330行目付近
### UIDLのフォーマットを指定
pop3_uidl_format = %08Xu%08Xv

# vi /etc/dovecot/conf.d/10-auth.conf
好みで以下を有効化
### SSL/TLS接続のみ有効にする場合はyes
disable_plaintext_auth = yes

以下を変更:100行目付近
### 認証時のパスフレーズ送信方式の指定
### 通信が暗号化されているので以下
#auth_mechanisms = plain
auth_mechanisms = plain login

# vi /etc/dovecot/conf.d/10-master.conf

### imapでの接続ポートの指定
### SSL/TLSのみ使う場合はimapsのみで良い
service imap-login {
inet_listener imap {
#port = 143
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
}
### imapでの接続ポートの指定
### SSL/TLSのみ使う場合はimapsのみで良い
service pop3-login {
inet_listener pop3 {
#port = 110
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
### 認証用ソケットファイルへのアクセス権設定
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}

# vi /etc/dovecot/conf.d/10-ssl.conf
以下のコメントアウトを解除:6行目付近
### SSL/TLSを有効化
ssl = yes

以下を変更:12行目付近
### SSL/TLSで利用する証明書の設定
### (別途作成の必要あり)

ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem				
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key


□ SASL2の設定
# vi /etc/default/saslauthd
### 自動起動の設定
START=yes
### 認証メカニズムの設定
MECHANISMS="pam"

□ ここまでの設定反映のため、再起動
# reboot

□ 送信テスト
□ mailコマンドを使えるようにする
# apt-get install mailutils

□ テストメールを送信する
# mail root@<ホストネーム>
Cc:
Subject: test
test
.
Ctrl + D
→ テストメールの確認
ls -la /root/Maildir/new
送った時刻のファイルをviで開くとメールが見れる

□vi /etc/graylog/graylog-settings.json
smtp_server: "127.0.0.1",
smtp_port: 587,
smtp_user: "",
smtp_password: "",
smtp_from_email: null,
smtp_web_url: null,
smtp_no_tls: false,
smtp_no_ssl: true,
上記のsmtpの設定を行っていないと、エラーが出てアラートメールを配信できない