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