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」を選択する
□ 「/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の設定を行っていないと、エラーが出てアラートメールを配信できない