stop2ban 중지 / 시작 알림 중지


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.confaction.d/sendmail.conf있는 시작 / 정지 / 금지에 대한 메일을 제어 할 수 있습니다.


이 트릭을 수행하지 않습니다. 이 성가신 이메일을 계속 받기 때문에 편집 할 다른 파일이 있다고 생각합니다. (
Kreker

@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_": action.d / sendmail .conf 에서 "actionstart"및 "actionstop"주석

"action_mw": action.d / sendmail -whois.conf의 주석 ...

"action_mwl": action.d / sendmail -whois-lines.conf의 주석 ...

mta를 "mail"로 구성한 경우 sendmailmail로 변경 하고 특정 파일을 구성하십시오.

파일을 주석 처리 한 후 다시 시작하는 것을 잊지 마십시오!


어떤 파일을 편집해야합니까? .conf또는 .local? 그러나이 답변이 너무 오래되어서 이해가되지 않을 수도 있습니다. Jim의 답변은 2019
Jack Miller

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기본 파일을 수정하지 않는 완전한 다른 분기를 만들 수도 있습니다.
Bernard Rosset

centOS7에서는 이것이 실제로 도움이 된 유일한 조언이었습니다. 확실히, 다음 fail2ban 다시 시작은 여전히 ​​jails 중지 알림을 트리거하지만 시작 알림은 트리거하지 않습니다. 그런 다음 새로운 conf의는로드 등도 중지 알림이 다시 발생됩니다
왕실

1
@BernardRosset 이것은 실제로 작동하지만 fail2ban 0.9 이상이 필요하며 누군가가 제공된 구성 파일을 수정하지 않았고 변경 사항을 .local파일로 제한했습니다 . 0.9의 모든 것은 .local파일에서 재정의 될 수 있지만 0.8 이전에는 그렇지 않았습니다.
Michael Hampton

이것이 정답입니다. 확실히 투표가 필요합니다!
잭 밀러

7

시작 / 중지 알림을 비활성화하는 유일한 방법 은 다음의 모든 파일에서 actionstartactionstop섹션 을 주석 처리하는 것 입니다 .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). 이것은 오늘 날 물었습니다.
Pezholio

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들어이 파일에서 작업 시작 / 작업 중지 부분을 주석 처리 (또는 삭제)해야합니다.

그런 다음 구성 파일 (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

첫째, 일부 사람들이 언급했듯이 향후 업데이트에서 재정의 될 수있는 원본 ".conf"파일을 편집하는 것보다 ".local"파일을 만들고 변경하는 것이 더 좋습니다.

결론은이 훌륭한 링크를 기반으로합니다 : 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이 "mail"을 사용하여 이메일을 보내는 경우 :

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 명령 을 사용하여 해당 섹션을 주석 처리합니다 .

모든 파일을 반복하고 단어를 반복하는 한 줄의 코드 / 명령으로 수행 할 수는 있지만 가능한 한 명확하게하려고했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.