Dừng fail2ban dừng / bắt đầu thông báo


14

Nếu máy chủ được khởi động lại hoặc ngay cả khi fail2ban bị dừng / khởi động, nó sẽ gửi thông báo.

[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

Xóa sendmail-whois dừng nó, nhưng nó cũng dừng các thông báo cấm, làm thế nào tôi có thể khiến nó dừng thông báo cho tôi khi quá trình bắt đầu / dừng?

Cảm ơn

Câu trả lời:


10

Có một cái nhìn trong action.d/mail.confhoặc action.d/sendmail.confkiểm soát thư để bắt đầu / dừng / cấm.


Đây không phải là mẹo. Tôi nghĩ rằng có một số tệp khác để chỉnh sửa vì tôi liên tục nhận được email gây phiền nhiễu này :(
Kreker

@Kreker Nó hoạt động với tôi và OP có lẽ là lý do tại sao họ đánh dấu nó là được chấp nhận. Nếu nó không phù hợp với bạn, có lẽ bạn có cấu hình khác hoặc bạn cấu hình sai thứ gì đó?
dùng9517

Trong cấu hình của fail2ban, tôi đang sử dụng sendmail dưới dạng mta để nó tải hành động.d / sendmail.conf. Tôi có cài đặt bình thường từ apt-get
Kreker

9

Nó không cần thiết để sửa lỗi này trong bất kỳ tập tin. Nó phụ thuộc vào cấu hình của bạn trong jail.conf.

Nếu bạn định cấu hình mta = sendmail, bạn có thể thu hẹp các tệp action.d/sendmail-*.

Sau đó, bạn phải nhìn vào của bạn action = %(action_*)s. Nếu bạn cấu hình

"action_": nhận xét "hành động bắt đầu" & "hành động dừng" trong hành động.d / sendmail .conf

"action_mw": nhận xét ... trong hành động.d / sendmail -whois.conf

"action_mwl": bình luận ... trong hành động.d / sendmail -whois-lines.conf

Nếu bạn đã cấu hình mta thành "mail", thì chỉ cần thay đổi sendmail thành mail và định cấu hình tệp cụ thể.

Đừng quên khởi động lại sau khi bình luận tập tin!


Vì vậy, tập tin nào tôi phải chỉnh sửa? .confhay .local? Nhưng có lẽ tôi không hiểu vì câu trả lời này quá cũ. Câu trả lời của Jim hoạt động vào năm 2019.
Jack Miller

9

Để sửa lỗi này trên Fail2Ban v0.9.1 (từ kho lưu trữ epel) trên CentOS 7 (RHEL 7), bạn có thể ghi đè các hành động bắt đầu và dừng gửi thư (đặt thành không có gì) trong /etc/fail2ban/action.d/sendmail-common. địa phương. Tôi tạo tập tin này bằng cách chạy các lệnh này với quyền root:

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

Điều này thực sự không giúp giải quyết vấn đề, vì .localbiến thể sẽ được tải sau .conftệp, nhưng cả hai vẫn sẽ được tải trước các định nghĩa trong (send)mail-*.conftệp cấu hình các hành động. Không có cách nào khác ngoài việc chỉnh sửa các tệp hành động, sạch nhất / tối giản nhất để thêm một afterhook trong các tệp đó trỏ đến cùng một bao gồm. Cf. osso.nl/blog/fail2ban-started-e-mail-disable . Bạn cũng có thể sao chép tất cả các tệp đó và tạo một nhánh hoàn chỉnh khác, tức là custommail-*.conftránh sửa đổi các tệp mặc định.
Bernard Rosset

Trong centOS7, đây là lời khuyên duy nhất thực sự có ích. chắc chắn, lần khởi động lại fail2ban tiếp theo vẫn sẽ kích hoạt (các) thông báo lệnh dừng, nhưng không phải là (các) thông báo bắt đầu. Sau đó, conf mới được tải và do đó, không có thông báo dừng sẽ được kích hoạt lại
lese

1
@BernardRosset Điều này thực sự hoạt động, nhưng nó yêu cầu fail2ban 0.9 trở lên và ai đó đã không sửa đổi các tệp cấu hình được vận chuyển và đã giới hạn các thay đổi của chúng đối với .localcác tệp. Mọi thứ trong 0.9 có thể được ghi đè từ .localcác tệp, nhưng điều này không đúng trong 0.8 và trước đó.
Michael Hampton

Đây là câu trả lời chính xác. Nó chắc chắn cần bỏ phiếu lên!
Jack Miller

7

Cách duy nhất tôi tìm thấy để vô hiệu hóa thông báo bắt đầu / dừng là nhận xét actionstartactionstopcác phần trong tất cả các tệp này trong 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

Cố gắng kết hợp các bit và phần của các câu trả lời trước đó, với một số chi tiết và các lệnh dài cho người lười biếng.

jail.{conf,local}Định nghĩa của bạn như thế nào thư được gửi. Theo mặc định, nó là sendmail. Kiểm tra với:

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

Để xem hành động bắt đầu / dừng nào được cấu hình cho các nhà tù của bạn, hãy sử dụng fail2ban-client -d.

Đặt cả hai cùng nhau:

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

Trong cấu hình của tôi, đầu ra là 'sendmail-whois-lines',tập tin cần chỉnh sửa. Giả sử cấu hình của bạn ở dưới / etc / fail2ban, tên tệp đầy đủ là /etc/fail2ban/action.d/sendmail-whois-lines.conf.

Tuy nhiên, như Rabin đề cập, không chỉnh sửa trực tiếp tệp đó, vì nó sẽ bị ghi đè trong quá trình cập nhật. Thay vào đó, hãy tạo /etc/fail2ban/action.d/sendmail-whois-lines.local(hoặc bất cứ điều gì action.d/file-name.localđúng trong cấu hình của bạn) và thêm các dòng sau:

[Definition]
actionstart =
actionstop  =

Hoặc, đối với những người thực sự lười biếng, những người không thể bận tâm với việc tìm kiếm và tạo đúng tệp:

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

Ghi đè các định nghĩa hành động và hành động dừng /etc/fail2ban/action.d/sendmail-common.confbằng cách tạo một tệp /etc/fail2ban/action.d/sendmail-common.local.

Thêm văn bản dưới đây vào tập tin này

[Definition]
actionstart =
actionstop =

Bây giờ bạn không nhận được bất kỳ thư nào khi bắt đầu / dừng dịch vụ fail2ban.


Đáng lưu ý rằng bạn cần đảm bảo rằng các quyền được đặt đúng trên tệp (tức là 0644và được sở hữu bởi root). Điều này bit tôi ngày hôm nay.
Pezholio

0

Tôi tìm thấy một cách nhanh chóng và dễ dàng để làm điều này:

cdvào /etc/fail2ban/action.dthư mục của bạn .

Sau đó, chỉ cần thay thế từng tuyên bố khởi động với riêng bạn, mà đối với tôi là trống.

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

Điều này sẽ nối thêm phần khởi động và hành động mới cho mỗi tệp được gửi đi.

1 dòng, công việc đã hoàn thành.


0

Tôi không khuyên bạn nên thay đổi các tệp mặc định đi kèm với gói (như một số đề xuất ở đây), chúng sẽ bị ghi đè vào lần tới khi bạn cập nhật chúng.

Chỉ cần sao chép hành động mà bạn sử dụng trong trường hợp đó sendmail-whoissang một tệp mới, đặt tên cho nó như bạn muốn, ví dụ như sendmail-modtrong tệp này, bạn cần nhận xét (hoặc xóa) các phần hành động / khởi động.

Tiếp theo thay đổi hành động trong tệp cấu hình (jail.conf / jail.local), để sử dụng hành động mới.

Từ:

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

Đến:

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

0

Đầu tiên, như một số người đã đề cập, có vẻ tốt hơn để tạo tệp ".local" và thực hiện các thay đổi trong tệp đó, hơn là chỉnh sửa tệp ".conf" ban đầu, có thể bị ghi đè trong các bản cập nhật trong tương lai.

Tóm lại, dựa trên liên kết tuyệt vời này: http://tonesworld.co.uk/fail2ban-disable-stop-and-start-emails/ , tôi đã thực hiện các bước sau và nó đã giải quyết vấn đề:

1. Tạo một tệp mới và chỉnh sửa nó:

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

2. Dán bên trong (sau đó thoát và lưu):

[Definition]

actionstart =

actionstop =

3. Nếu fail2ban sử dụng "mail" để gửi email:

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

Nếu fail2ban sử dụng "sendmail" để gửi email:

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. Khởi động lại để áp dụng các thay đổi:

sudo service fail2ban restart

Lưu ý cuối cùng: Trong lần đầu tiên sau khi áp dụng các thay đổi này, bạn vẫn sẽ thấy các thông báo "dừng", vì các thay đổi mới chưa được áp dụng.


0

Đây là giải pháp của tôi cho những gì nó có giá trị, Tạo một tệp bash và chạy nó:

#!/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

Phần đầu tiên của mã xác định danh sách các tệp bạn muốn thay đổi, nửa sau về cơ bản nhận xét các phần đó bằng cách sử dụng lệnh awk .

Nó có thể được thực hiện trong một dòng mã / lệnh lặp lại tất cả các tệp và vòng lặp trên các từ, nhưng tôi đã cố gắng làm cho nó rõ ràng nhất có thể.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.