четверг, 29 сентября 2016 г.

postfix-policyd-spf-python

Источник, спасибо автору.

  • Устанавливаем необходимые пакеты:
    # aptitude install postfix-policyd-spf-python
  • Добавляем в /etc/postfix/main.cf
    policy-spf_time_limit = 3600s
    Далее ищем объявление smtpd_recipient_restrictions и добавляем в него (после reject_unauth_destination) строку check_policy_service unix:private/policy-spf.
    ...
     reject_unauth_destination
     check_recipient_access hash:/etc/postfix/roleaccount_exceptions
     reject_non_fqdn_hostname
     check_helo_access pcre:/etc/postfix/pcre_helo_checks.cf
     check_sender_mx_access cidr:/etc/postfix/cidr_mx_access
     check_policy_service unix:private/policy-spf
     permit
  • Переходим к файлу /etc/postfix/master.cf: в него добавляем следующую строку:
    policy-spf  unix  -       n       n       -       0       spawn
      user=nobody argv=/usr/bin/policyd-spf /etc/postfix-policyd-spf-python/policyd-spf.conf
  • Дополнительные настройки в файле /etc/postfix-policyd-spf-python/policyd-spf.conf и описания настроек в файле policyd-spf.conf.commented.
    policyd-spf.conf
    #  For a fully commented sample config file see policyd-spf.conf.commented
     
    debugLevel = 1
    # Этот параметр определяет, отбрасывать ли действительно письма,
    # если они нарушают SPF, или просто писать об этом в логи и пропускать
    defaultSeedOnly = 1
     
    HELO_reject = SPF_Not_Pass
    # SPF_Not_Pass =
    # Отбрасываем все сообщения, кроме:
    # 1. которые прошли SPF-валидацию
    # 2. В домене нет SPF записи
    # 3. Произошла временная ошибка (DNS упал?)
    Mail_From_reject = Fail
     
    PermError_reject = False
    # При наличии ошибок при проверке пропускаем почту
    TempError_Defer = False
     
    # перечисляйте IPs без пробелов
    skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1,10.26.95.0/24
     
    #  Domain_Whitelist: List of domains whose sending IPs (defined by passing
    #  their SPF check should be whitelisted from SPF.
    #  Example (default is no domain whitelist):
    Domain_Whitelist = example1.com,example2.com
    Для дополнительно информации читаем справку
    man policyd-spf.conf
Для применения изменений в файле policyd-spf.conf обязательно перегрузите postfix
# service postfix restart

четверг, 22 сентября 2016 г.

Openfire. Howto get message history from database

1) PostgreSQL
 SELECT
'1970-01-01 00:00:00 GMT'::timestamp with time zone + ((ofmessagearchive.sentdate/1000)::text)::interval AS time,
ofmessagearchive.fromjid AS from,
ofmessagearchive.tojid AS to,
ofmessagearchive.body AS message
FROM
public.ofmessagearchive
WHERE
( ofmessagearchive.fromjid = '<JID of user>'
OR
ofmessagearchive.tojid = '<JID of user>' )
AND
ofmessagearchive.sentdate > EXTRACT(EPOCH FROM timestamp with time zone 'start time in format <YYYY-MM-DD HH-MM-SS>') * 1000
AND
ofmessagearchive.sentdate < EXTRACT(EPOCH FROM timestamp with time zone 'end time in format <YYYY-MM-DD HH-MM-SS>') * 1000
ORDER BY 1;