エラーメッセージに対応する

閲覧数: 23(0)

メールサーバー用のポートに朝から晩までのべつ幕無しにアタックしてくるIPアドレスにいちいち反応するのも癪だけどログが汚くなるのでFirewalldでドロップする事にした。とは言ってもログを見て手動で追加するのも面倒だしって事で、いろいろなサイトを参考にfirewall-cmdを吐き出すシェルを作ってみた。自動化には程遠いけど(笑) firewall-cmdで「–permanent」オプションを付けずに「–add-source」をすると次回の「–reload」でチャラになるのを逆手に取って、直近の「mail.log」で以下のようなログを5回吐いたIPアドレスを文字通りドロップゾーンに落とす(笑)設定です。

postfix/smtpd[8671]: warning: unknown[185.137.111.77]: SASL LOGIN authentication failed: authentication failure

作ったシェルはこんな感じ。前述したように「–reload」で一旦チャラにして、前回実行時の抽出結果と比較して差分があれば実行するってやりたかったけど、その部分は別シェルで手動で確認して「Firewalld」を再設定した方が良いと判断したら手で以下のシェルを起動するというとってもアナログな方法です(笑)

firewall-cmd --reload
  
cat /var/log/mail.log |grep 'authentication failed' | egrep -o -e '\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\]' | sed -e 's/^\[\(.*\)\]$//g' | sort | uniq -c | awk '$1 > 5 {print $2}' > /etc/postfix/sals_failed_ip_list || exit 1
while read LINE
    do
        firewall-cmd --add-source $LINE --zone=drop
    done < /etc/postfix/sals_failed_ip_list

firewall-cmd --list-all --zone=drop

exit $?

ある程度の期間を見て、最終的に本当にドロップする必要があると判断した相手はVPC上のネットワークACLでしっかり「DENY」にしています。

最終更新日: 2019年6月3日

カテゴリー公開, 閑話(IT)タグ,
VPNのサービス化

マルチクラウド化してしまって、いちいちターミナル接続設定をするのが面倒で、一旦踏み台にするVPNサー  続きを読む

Re:EC2 t2.nanoの設定
blank

いろいろ悩んだ結果「AWS(EC2)」と「WebARENA」のS/W住み分けを次のように決めました。  続きを読む

dockerとiptables
blank

クラウドサーバーを利用する場合、ファイアウォール(Firewalld/iptables)の設定に失敗  続きを読む

大事件の後始末?
blank

年末と年始に起こしてしまった大事件の後始末がまだだったので、ここで片づけます。事件の顛末は「年末の大  続きを読む

AWS EC2 – Amaz...
blank

手っ取り早くEC2インスタンスを立ち上げるなら、AMIからAmazon Linuxを選択すればよい。  続きを読む

非互換対応
blank

久しぶりのメジャーバージョンアップ(1.38 --> 1.39)が行われた「Mediawiki」関連  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください