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