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

閲覧数: 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」にしています。

カテゴリー公開, 閑話(IT)タグ,
Todo’s

スペイン語なら「全ての」って感じ?英語なら「To Do List」で「やるべきこと一覧」といったとこ  続きを読む

session_cookie
blank

Amazon Linuxのupdateでphpが5.6.8から5.6.9へ更新されたら、Tsubop  続きを読む

Nessus: Vulnerabilit...
blank

このサイトは商用のブログサービスを利用せず自前のサーバー(AWS上のEC2インスタンス)にWordp  続きを読む

PHPのバージョンアップ
blank

Mediawikiが1.30から1.31へメジャーバージョンアップしたので早速インストールしようと思  続きを読む

時刻同期
blank

VMware Fusion上のゲストOSであるCentOS6がCentOS7(今回訳あってダウングレ  続きを読む

究極のt2.nanoインスタ...
blank

EC2の中で最小インスタンスタイプである「t2.nano」はCPUが1コアでメモリは512MBです。  続きを読む

スポンサーリンク

コメントを残す

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