2

У меня дома небольшой почтовый сервер и довольно строгие правила фильтрации. Я использую logwatch и могу видеть, что от 80 до 90% соединений отклоняются моими правилами ограничительной фильтрации. Большинство отклонений в результате rbl_client.

Я отчаянно ищу пример файла конфигурации fail2ban, показывающий, как фильтровать IP-адреса, рассылающие спам на моем сервере. Я желаю, чтобы запрет был на длительный период (например, 1 месяц).

У меня также была попытка переполнения SYN на моем почтовом сервере, которую я заблокировал с помощью правила брандмауэра, установленного вручную. Может ли fail2ban обнаружить их тоже?

2 ответа2

5

Мне просто надоели все спамеры RBL, заполняющие мои журналы, поэтому я настроил свой Postfix, чтобы запретить их.

После этого груз упал, потому что их было много!

Имейте в виду, что вы должны реализовать какой-то способ очистки запрещенного списка.

Я планирую перезапускать fail2ban еженедельно.

Ознакомьтесь с этими правилами: http://www.fail2ban.org/wiki/index.php/Postfix

Добавьте их в: /etc/fail2ban/filter.d/postfix.conf (это в системе Debian!)

Также полезно прочитать это (поиск fail2ban): http://workaround.org/ispmail/squeeze/sysadmin-niceties (некоторые фрагменты оттуда).

Короче:

  1. В jail.conf установлено:

    [postfix]
    enabled  = true
    
  2. Хорошо, если вы используете dovecot (по ссылке выше): создайте /etc/fail2ban/filter.d/dovecot-pop3imap.conf и добавьте в него:

    [Definition]
    failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \   (auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
    ignoreregex =
    
  3. Добавьте раздел в jail.conf или jail.local:

    [dovecot-pop3imap]
    enabled = true
    port = pop3,pop3s,imap,imaps
    filter = dovecot-pop3imap
    logpath = /var/log/mail.log
    
  4. Перезапустите fail2ban и проверьте iptables -nvL, если добавлены цепочки для постфикса и курьера. ВНИМАНИЕ: это для систем на основе Debian. Проверьте пути к файлам для RH или других.

2

Лучше всего просто использовать Postfix для фильтрации IP-адресов с помощью блочных списков.

См. Http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions, чтобы отказаться от использования блочных списков.

Если вы действительно хотите, вы можете использовать фильтр Fail2Ban, например, f2b- postfix-rbl (postfix-rbl.conf), чтобы отфильтровать почтовый журнал для записей IP-адресов в черном списке / черном списке. Затем он вставит новую запись в iptables, и мы будем заблокированы на указанное время бана.

Как уже упоминалось, это, вероятно, мало что даст, так как скрипт / бот / почтовик просто перейдет после 1-го сбоя и попробует вас снова в другой день с другого IP. Кроме того, это избыточно, поскольку вы можете фильтровать с помощью MTA, как указано выше.

Вот пример некоторых списков блокировок, которые вы можете добавить в postfix, чтобы заблокировать занесенные в черный список IP-адреса.

/etc/main.cf:

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject_unlisted_recipient,
    reject_invalid_hostname,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_sender_domain,
    reject_unauth_pipelining,
    check_client_access hash:/etc/postfix/blacklist,
#Some DNS BL's - high availability:
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client bl.spamcop.net,
    reject_rbl_client dul.dnsbl.sorbs.net,
#Some country-wide IP blocks:
    #reject_rbl_client cn.countries.nerd.dk,
    #reject_rbl_client tw.countries.nerd.dk,
    #reject_rbl_client lr.countries.nerd.dk,
    #reject_rbl_client ng.countries.nerd.dk,
    #reject_rbl_client ro.countries.nerd.dk,
    #reject_rbl_client ua.countries.nerd.dk,
    #reject_rbl_client kr.countries.nerd.dk,
    #finalize and throw at postgrey if passes above:
    #check_policy_service inet:[::1]:10023,
    permit

Если вы настаиваете на обработке списков блокировок обработки fail2ban, убедитесь, что вы включили его в /etc/failban/jail.local:

[postfix-rbl]

enabled  = true
port     = smtp,465,submission
filter   = postfix-rbl
logpath  = /var/log/mail.log

Чтобы использовать rbl "mode" в новых версиях, замените строку фильтра на:

filter    = postfix[mode=rbl]

В более ранних версиях мне приходилось менять мой, чтобы обнаруживать «554 5.7.1», чтобы получать отклонения журнала postfix через фильтр «postifx-rbl». Более новая версия фильтра, кажется, сканирует это изменение в более новых версиях "режима".

Что касается потока SYN - посмотрите это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .