##【事象】
ILBを新たに立てる際、25番ポートにヘルスチェックが飛んでしまってmaillogを逼迫されて困っていた。
##疑似ヘルスチェックログを作成
ログの破棄そのものはrsyslogの設定で選別できるものと判明したが、sandboxでテストしたい。
できればping的な感じのコマンドが欲しかったけど特になく、
telnet以外にもプロトコルやポートを指定したログの吐かせ方があるのでやってみた。
・telnetで実現する場合
・ncで実現する場合
・curlで実現する場合
・telnetで実現
■送信元
[root@ba7f4321aa7e /]# while true;do clear;date ;echo '----';(sleep 1;echo quit) |telnet 対象ホストのIP 25 ;sleep 1;done
[root@ba7f4321aa7e /]#
■受信元
[root@0d5efba6e27b /]# tail -F /var/log/maillog
Nov 13 12:27:28 0d5efba6e27b postfix/smtpd[223]: connect from unknown[172.17.0.6]
Nov 13 12:27:36 0d5efba6e27b postfix/smtpd[223]: lost connection after CONNECT from unknown[172.17.0.6]
・ncで実現
■送信元
[root@ba7f4321aa7e /]# while true;do clear;date ;echo '----';(sleep 1;echo quit) |nc 対象ホストのIP 25 ;sleep 1;done
[root@ba7f4321aa7e /]#
■受信元
[root@0d5efba6e27b /]# tail -F /var/log/maillog
Nov 13 12:27:28 0d5efba6e27b postfix/smtpd[223]: connect from unknown[172.17.0.6]
Nov 13 12:27:36 0d5efba6e27b postfix/smtpd[223]: lost connection after CONNECT from unknown[172.17.0.6]
・curlで実現
■送信元
[root@ba7f4321aa7e /]# while true;do clear;date ;echo '----';sleep 1 |curl -vv smtp://対象ホストのIP:25 --mail-from 'send-from@example.com' --mail-rcpt 'send-to@example.com' ;sleep 1;done
■受信元
[root@0d5efba6e27b /]#
[root@0d5efba6e27b /]# tail -F /var/log/maillog
Nov 13 16:19:56 0d5efba6e27b postfix/smtpd[294]: connect from unknown[172.17.0.6]
Nov 13 16:19:56 0d5efba6e27b postfix/smtpd[294]: 0776410DF92C: client=unknown[172.17.0.6]
Nov 13 16:19:57 0d5efba6e27b postfix/cleanup[298]: 0776410DF92C: message-id=<>
Nov 13 16:19:57 0d5efba6e27b postfix/qmgr[127]: 0776410DF92C: from=<send-from@example.com>, size=188, nrcpt=1 (queue active)
Nov 13 16:19:57 0d5efba6e27b postfix/smtpd[294]: disconnect from unknown[172.17.0.6]
##rsyslogで破棄する設定をし反映
■受信元
[root@0d5efba6e27b /]# cat /etc/rsyslog.d/filter.conf
if fromhost-ip == "送信元のIP" and msg contains "検索対象文字列" then
& ~
[root@0d5efba6e27b /]#
[root@0d5efba6e27b /]# systemctl restart rsyslog
[root@0d5efba6e27b /]#
[root@0d5efba6e27b /]# tail -F /var/log/maillog
[root@0d5efba6e27b /]#
無事、吐かれなくなりました~。
公式を読むと、フィルタリングは正規表現も使えてかなりチューニングできるみたいですね。
Filter Conditions
https://www.rsyslog.com/doc/master/configuration/filters.html
<参考>
curl
https://curl.haxx.se/
cURLはHTTPだけじゃない
https://dev.oro.com/posts/2017/06/server/curl/
nc(netcat)コマンドで覚えておきたい使い方8個
https://orebibou.com/2015/11/ncnetcat%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%a7%e8%a6%9a%e3%81%88%e3%81%a6%e3%81%8a%e3%81%8d%e3%81%9f%e3%81%84%e4%bd%bf%e3%81%84%e6%96%b98%e5%80%8b/