fail2ban停止/開始通知を停止します


14

サーバーが再起動された場合、またはfail2banが停止/起動された場合でも、通知を送信します。

[asterisk-iptables]
enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-whois[name=ASTERISK, dest=blah@foo.com, sender=blah@foo.com] 
logpath  = /var/log/asterisk/messages
maxretry = 5
bantime = 259200

sendmail-whoisを削除すると停止しますが、禁止通知も停止します。プロセスの開始/停止時に通知を停止するにはどうすればよいですか?

ありがとう

回答:


10

中を見てaction.d/mail.confか、action.d/sendmail.confどのスタート/ストップ/禁止のため、メールをコントロールします。


これはトリックを行いません。私はこの迷惑なメールを
受け取り

@Krekerそれは私とOPのために働いたので、おそらく彼らはそれを受け入れられたとマークしました。それがあなたのために働かない場合、おそらくあなたは別の構成を持っているか、何かを誤って構成しましたか?
user9517

fail2banの設定では、sendmailをmtaとして使用しているため、action.d / sendmail.confがロードされています。私はapt-getから通常のインストールをしています
Kreker

9

これをファイルで修正する必要はありません。の設定に依存しますjail.conf

設定した場合mta = sendmail、ファイルを絞り込むことができますaction.d/sendmail-*

その後、あなたはあなたの目を見る必要がありますaction = %(action_*)s。設定した場合

action.d /内のコメント"actionstart" & "actionstop": "action_" のsendmailの.conf

「action_mw」:comment ... action.d / sendmail -whois.confで

「action_mwl」:comment ... action.d / sendmail -whois-lines.confで

mtaを「メール」に設定した場合、sendmailメールに変更し、特定のファイルを設定するだけです。

ファイルにコメントを付けた後に再起動することを忘れないでください!


それで、どのファイルを編集することになっていますか?.confまたは.local?しかし、この答えはとても古いので、たぶん私は理解していません。ジムの答えは2019
ジャックミラー

9

CentOS 7(RHEL 7)のFail2Ban v0.9.1(epelリポジトリから)でこれを修正するには、/ etc / fail2ban / action.d / sendmail-commonでsendmailの開始アクションと停止アクション(何も設定しない)をオーバーライドできます。地元。これらのコマンドをルートとして実行して、このファイルを作成します。

cat << EOF >> /etc/fail2ban/action.d/sendmail-common.local
# Override the Fail2Ban defaults in sendmail-common.conf with these entries

[Definition]
# Disable email notifications of jails stopping or starting
actionstart =
actionstop =
EOF
cat /etc/fail2ban/action.d/sendmail-common.local

.localバリアントは.confファイルの後にロードされるため、これは実際には問題の解決には役立ちませんが、アクションを構成するファイルの定義の前に両方がロードされ(send)mail-*.confます。アクションファイルを編集する以外に方法はありませんafter。同じファイルを指すフックをそれらのファイルに追加するのが最もクリーンで、最もミニマリストです。Cf. osso.nl/blog/fail2ban-started-e-mail-disable。また、これらのファイルをすべて複製して、他の完全なブランチを作成することもできcustommail-*.confます。つまり、デフォルトファイルの変更を回避できます。
バーナードロセット

centOS7では、これが実際に役立つ唯一のアドバイスでした。確かに、次回のfail2banの再起動は、jail停止通知をトリガーしますが、開始通知はトリガーしません。その後、新しいconfがロードされるため、停止通知は再びトリガーされません
-lese

1
@BernardRossetこれは実際に機能しますが、fail2ban 0.9以降が必要であり、誰かが出荷された構成ファイルを変更しておらず、変更を.localファイルに限定している必要があります。0.9のすべては.localファイルからオーバーライドできますが、0.8以前ではそうではありませんでした。
マイケルハンプトン

これは正解です。必ず投票する必要があります!
ジャックミラー

7

開始/停止通知を無効にする唯一の方法は 、次のすべてのファイルのactionstartおよびactionstopセクションをコメントアウトすることです。action.d/

mail-buffered.conf
mail.conf
mail-whois.conf
mail-whois-lines.conf
sendmail-buffered.conf
sendmail.conf
sendmail-whois.conf
sendmail-whois-lines.conf

3

怠け者のためのいくつかの詳細と長いコマンドを使用して、以前の回答の断片をまとめようとしています。

あなたのjail.{conf,local}メールが送信される方法を定義します。デフォルトでは、ですsendmail。確認する:

grep 'mta *=' jail.{conf,local}

刑務所に設定されている開始/停止アクションを確認するには、を使用しますfail2ban-client -d

両方をまとめる:

mta=$(grep 'mta *=' /etc/fail2ban/jail.{conf,local} | awk '{print $NF}')
fail2ban-client -d | awk "/action(start|stop).*$mta/ {print \$4}" | sort -u

私の設定では、出力は'sendmail-whois-lines',編集するファイルです。設定が/ etc / fail2banの下にあると仮定すると、完全なファイル名は/etc/fail2ban/action.d/sendmail-whois-lines.confです。

ただし、Rabinが言及しているように、更新中に上書きされるため、そのファイルを直接編集しないでください。代わりに、これらの行を作成/etc/fail2ban/action.d/sendmail-whois-lines.local(または構成内action.d/file-name.localで適切なもの)して追加します。

[Definition]
actionstart =
actionstop  =

または、適切なファイルを探して作成することに煩わされることができない本当に怠け者のために:

mta=$(grep 'mta *=' /etc/fail2ban/jail.{conf,local} | awk '{print $NF}')
fail2ban-client -d \
| awk "/action(start|stop).*$mta/ {print \$4}" \
| sort -u \
| while read f; do \
    f=${f//\'/}
    f="/etc/fail2ban/action.d/${f/%,/}.local"
    cat <<EOF >>"$f"
[Definition]
actionstart =
actionstop  =
EOF
done

1

/etc/fail2ban/action.d/sendmail-common.confファイルを作成して、actionstartおよびactionstop定義をオーバーライド します/etc/fail2ban/action.d/sendmail-common.local

このファイルに以下のテキストを追加します

[Definition]
actionstart =
actionstop =

現在、fail2banサービスの開始/停止時にメールを受信して​​いません。


ファイルにアクセス許可が適切に設定されていること(0644および所有者root)を確認する必要があることを指摘する価値があります。これは今日私を噛みました。
ペズホリオ

0

これをすばやく簡単に行う方法を見つけました。

cdあなたの/etc/fail2ban/action.dディレクトリに。

次に、各actionstartステートメントを独自のものに置き換えます。

for FILE in *mail* ; do echo -e "actionstart =\nactionstop =\n" >> $FILE ; done

これにより、メール送信する各ファイルに新しいactionstartセクションとactionstopセクションが追加されます。

1行、作業完了。


0

私はしません(一部はここで示唆したように)、彼らはあなたがそれらを更新し、次回上書きされます、パッケージに付属しているデフォルトのファイルを変更することをお勧めします。

その場合sendmail-whoisに使用するアクションを新しいファイルにコピーし、好きな名前を付けてください。sendmail-modこのファイルでは、actionstart / actionstop部分をコメント化(または削除)する必要があります。

次に、構成ファイル(jail.conf / jail.local)のアクションを変更して、新しいアクションを使用します。

から:

action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-whois[name=ASTERISK, dest=blah@foo.com, sender=blah@foo.com] 

に:

action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-mod[name=ASTERISK, dest=blah@foo.com, sender=blah@foo.com] 

0

最初に、一部の人々が述べたように、「。local」ファイルを作成して変更する方が、将来のアップデートで上書きされる可能性がある元の「.conf」ファイルを編集するよりも良いようです。

この優れたリンクに基づいたボトムライン:http : //tonesworld.co.uk/fail2ban-disable-stop-and-start-emails/、私は次の手順を実行し、問題を解決しました:

1. 新しいファイルを作成して編集します。

sudo nano /etc/fail2ban/action.d/stop-start.local

2. 内部に貼り付け(終了して保存):

[Definition]

actionstart =

actionstop =

3. fail2banが「メール」を使用してメールを送信する場合:

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail-buffered.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail-whois-common.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail-whois-lines.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail-whois.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail.local

fail2banが「sendmail」を使用してメールを送信する場合:

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-buffered.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-common.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-geoip-lines.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois-ipjailmatches.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois-ipmatches.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois-lines.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois-matches.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail.local

4. 変更を適用するには、再起動します。

sudo service fail2ban restart

最後の注意:これらの変更を適用した後、新しい変更がまだ適用されていないため、「停止」メッセージが表示されます。


0

これは価値があるもののための私のソリューションであり、bashファイルを作成して実行します:

#!/bin/bash
echo Start ...
BASE_PATH="/etc/fail2ban/action.d/"
FILES="${BASE_PATH}mail-buffered.conf
${BASE_PATH}mail.conf
${BASE_PATH}mail-whois.conf
${BASE_PATH}mail-whois-lines.conf
${BASE_PATH}sendmail-buffered.conf
${BASE_PATH}sendmail.conf
${BASE_PATH}sendmail-whois.conf
${BASE_PATH}sendmail-whois-lines.conf"
echo $FILES
for f in $FILES
    do
        temp1=${f}.temp1
        awk '/^[^   ]/ { comment=0 }
             /^actionstart/ { comment=1 } 
             comment {$0 = "#" $0}
             { print }' $f > $temp1 && mv -f $temp1 $f || rm -f $temp1
        temp2=${f}.temp2
        awk '/^[^   ]/ { comment=0 }
             /^actionstop/ { comment=1 } 
             comment {$0 = "#" $0}
             { print }' $f > $temp2 && mv -f $temp2 $f || rm -f $temp2
    done

コードの最初の部分では、変更するファイルのリストを定義し、後半では基本的にawkコマンドを使用してこれらのセクションをコメント化します。

すべてのファイルを繰り返し、単語をループする1行のコード/コマンドで実行できますが、できるだけ明確にするようにしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.