Перейти к содержимому


Фото
* * * * * 2 Голосов

Lua помощь


  • Please log in to reply
97 ответов в этой теме

#41 Denis G.

Denis G.

    Newbie

  • Members
  • 27 Сообщений:

Отправлено 25 Апрель 2019 - 11:05

Можно еще так:

if ctx.to.search(whitelist) then
    return {action = 'accept'}
end


#42 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 3 575 Сообщений:

Отправлено 25 Апрель 2019 - 11:42

не пойму причем здесь настройка постфикса и антиспам? Если письмо режет антиспам дрвеба как на него повлиять постфиксом?

Чтобы изначально не принимать всякий спам _ttps://www.linuxbabe.com/mail-server/block-email-spam-postfix

При таких настройках, проблема со спамом практически отпадает и не нужно будет сложные конструкции на lua городить.

Мой кусок конфига:
 

virtual_alias_maps = hash:/etc/postfix/virtual

message_size_limit = 15728640
mailbox_size_limit = 314572800
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = check_sender_access texthash:/etc/postfix/restricted_senders,permit_mynetworks,check_client_access cidr:/etc/postfix/mx_access,permit_auth_destination,permit_sasl_aut
henticated,reject
smtpd_restriction_classes = local_only
local_only = check_recipient_access texthash:/etc/postfix/local_domains, reject

smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions = check_client_access texthash:/etc/postfix/client_access,reject_unknown_reverse_client_hostname
smtpd_helo_restrictions = reject_non_fqdn_helo_hostname
smtpd_helo_required = yes

smtpd_milters = inet:127.0.0.1:3001

masquerade_domains = mydomain

Мужчины мне ничего не должны, именно поэтому я легко их отпускаю.

#43 radionuk2

radionuk2

    Newbie

  • Posters
  • 29 Сообщений:

Отправлено 25 Апрель 2019 - 12:21

 

не пойму причем здесь настройка постфикса и антиспам? Если письмо режет антиспам дрвеба как на него повлиять постфиксом?

Чтобы изначально не принимать всякий спам _ttps://www.linuxbabe.com/mail-server/block-email-spam-postfix

При таких настройках, проблема со спамом практически отпадает и не нужно будет сложные конструкции на lua городить.

Мой кусок конфига:
 

virtual_alias_maps = hash:/etc/postfix/virtual

message_size_limit = 15728640
mailbox_size_limit = 314572800
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = check_sender_access texthash:/etc/postfix/restricted_senders,permit_mynetworks,check_client_access cidr:/etc/postfix/mx_access,permit_auth_destination,permit_sasl_aut
henticated,reject
smtpd_restriction_classes = local_only
local_only = check_recipient_access texthash:/etc/postfix/local_domains, reject

smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions = check_client_access texthash:/etc/postfix/client_access,reject_unknown_reverse_client_hostname
smtpd_helo_restrictions = reject_non_fqdn_helo_hostname
smtpd_helo_required = yes

smtpd_milters = inet:127.0.0.1:3001

masquerade_domains = mydomain

Тоесть исходя из Вашего ответа при применении вышеописанных настроек (а они у меня сделаны) СПАМ вообще не будет приходить? Так я понимаю Ваш ответ? Тоесть антиспам от стороннего производителя вообще нет смысла ставить?


 

Можно еще так:

if ctx.to.search(whitelist) then
    return {action = 'accept'}
end

Спасибо!



#44 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 3 575 Сообщений:

Отправлено 25 Апрель 2019 - 13:23

Тоесть исходя из Вашего ответа при применении вышеописанных настроек (а они у меня сделаны) СПАМ вообще не будет приходить? Так я понимаю Ваш ответ? Тоесть антиспам от стороннего производителя вообще нет смысла ставить?

Да, спам практически не проходит. Одно письмо в день, не больше. От стороннего смысла нет, так как есть spamassassin.
Мужчины мне ничего не должны, именно поэтому я легко их отпускаю.

#45 radionuk2

radionuk2

    Newbie

  • Posters
  • 29 Сообщений:

Отправлено 25 Апрель 2019 - 16:43

 

Тоесть исходя из Вашего ответа при применении вышеописанных настроек (а они у меня сделаны) СПАМ вообще не будет приходить? Так я понимаю Ваш ответ? Тоесть антиспам от стороннего производителя вообще нет смысла ставить?

Да, спам практически не проходит. Одно письмо в день, не больше. От стороннего смысла нет, так как есть spamassassin.

 

Позволю себе не согласиться, объем спама во многом зависит от рода деятельности компании и кол-ва пользователей. У меня стандартные настройки убирают только порядка 60 процентов спама, а вот в комплексе с ДРВЕБОМ примерно 95 процентов.


Сообщение было изменено radionuk2: 25 Апрель 2019 - 16:44


#46 evgen-20

evgen-20

    Newbie

  • Posters
  • 5 Сообщений:

Отправлено 06 Май 2019 - 18:00

Всем привет!

 

Попытался сделать, подмену адреса получателя на адрес spam. Ну что бы письма, которые набирали определенное количество балов и вероятнее всего являлись спамом не отправлялись получателю, а заворачивались на ящик spam из которого позже, если что можно их вытащить.

 

Делал так:

return {action='accept', deleted_recipients=ctx.to, added_recipients={'spam@company.ru'}}

Но в итоге, получателю тоже приходит письмо.



#47 Denis G.

Denis G.

    Newbie

  • Members
  • 27 Сообщений:

Отправлено 07 Май 2019 - 14:44

Здравствуйте!

 

Конкретно этот функционал сейчас не всегда себя корректно ведет, в бете должно быть поправлено.



#48 evgen-20

evgen-20

    Newbie

  • Posters
  • 5 Сообщений:

Отправлено 07 Май 2019 - 16:55

Здравствуйте!

 

Конкретно этот функционал сейчас не всегда себя корректно ведет, в бете должно быть поправлено.

 

На бету в продакшене побаиваюсь переходить... Надеюсь в ближайшее время зарелизится...



#49 evgen-20

evgen-20

    Newbie

  • Posters
  • 5 Сообщений:

Отправлено 07 Май 2019 - 18:52

И еще вопрос, можно ли как-то в лог писать не только отправителя, но и получателя?

Я так понимаю, что из-за того, что ctx.to является массивом, его так просто не запихать. Может есть еще какой-то вариант?



#50 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 07 Май 2019 - 19:08

В лог-то Вы вольны писать что вздумается.

Хоть tostring(ctx.to), хоть что-либо в духе

for _, i in pairs(ctx.to) do
  str = str .. (#str and ", " or "") .. i
done

Семь раз отрежь – один раз проверь

#51 evgen-20

evgen-20

    Newbie

  • Posters
  • 5 Сообщений:

Отправлено 08 Май 2019 - 16:31

Хоть tostring(ctx.to), хоть что-либо в духе

 

 

Попробовал так, получил

	str = tostring(ctx.to)
	if regex.search(whitelist, ctx.from, regex.ignore_case) then
        dw.notice("'" .. ctx.from .. "'" .. str .. " is IN whitelist" )
	return {action='accept'}
        end


2019-May-08 16:27:17 [20881] Notice: Milter client 897a-3716-2151: Lua: '123456789@yandex.ru'table: 0x5631a5d6bb90 is IN whitelist

p.s. ссори не силен в LUA совсем(



#52 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 08 Май 2019 - 17:04

Хм, значит tostring только ссылку на таблицу пишет, этого я не помню. Тогда остаётся второй вариант с ручным форматированием таблицы.


Семь раз отрежь – один раз проверь

#53 Denis G.

Denis G.

    Newbie

  • Members
  • 27 Сообщений:

Отправлено 08 Май 2019 - 18:33

Есть встроенная функция, которая умеет конкатенировать строковые значения из таблицы. Сейчас не могу проверить, но это должно работать:
 

dw.notice('Recipients: ' .. table.concat(ctx.to, ', '))


#54 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 08 Май 2019 - 18:37

Точно, эту я проглядел. На вид всё верно.


Семь раз отрежь – один раз проверь

#55 evgen-20

evgen-20

    Newbie

  • Posters
  • 5 Сообщений:

Отправлено 13 Май 2019 - 10:38

 

Есть встроенная функция, которая умеет конкатенировать строковые значения из таблицы. Сейчас не могу проверить, но это должно работать:
 

dw.notice('Recipients: ' .. table.concat(ctx.to, ', '))

 

Спасибо! Сработало!

А откуда вы берете эту информацию? В документации что-то не нашел ничего( Или это чисто синтаксис LUA?

 

И еще вопрос, а как-то можно добавлять или отнимать балы у писем, есть ли такая функция?



#56 Afalin

Afalin

    Guru

  • Dr.Web Staff
  • 5 835 Сообщений:

Отправлено 13 Май 2019 - 11:12

А откуда вы берете эту информацию? В документации что-то не нашел ничего( Или это чисто синтаксис LUA?

Отсюда.

Вот конкретно про table.concat.


Семь раз отрежь – один раз проверь

#57 Denis G.

Denis G.

    Newbie

  • Members
  • 27 Сообщений:

Отправлено 13 Май 2019 - 11:17

Это библиотека, поставляемая вместе с Lua, подробнее можно ознакомиться тут (либо в оригинале тут).

Баллами, которые доступны в таблице Spam (ctx.message.spam.score и ctx.message.spam.normalized_score), управлять из Lua нельзя. В бете есть возможность управлять баллами с помощью флагов компонента drweb-ase. 

Главное то, что вы сами можете решать как поступать с баллами из отчета о проверке на спам. Для этого и есть Lua.



#58 Boris Savelev

Boris Savelev

    Member

  • Beta Testers
  • 154 Сообщений:

Отправлено 13 Май 2019 - 13:38

баллы это просто число. Их можно копить и суммировать в отдельной переменной и решения принимать уже по суммированному.


telegram: @bsavelev


#59 Hedgehog_57

Hedgehog_57

    Newbie

  • Posters
  • 46 Сообщений:

Отправлено 09 Январь 2020 - 18:24

Приветствую.

 

Столкнулись со следующей проблемой. Не можем принять почту со следующим диагнозом.

 

Deferred: host ip.ip.ip.ip[ip.ip.ip.ip] said: 451 4.7.1 Service unavailable - try again later (in reply to end of DATA command)  

 

Это так себя ведет milter.

 

Установленный пакет - drweb-maild-11.1.5-1911070858linux.x86_64

 

Через него спотыкаются письма с длинными адресами. Вот пример ошибки из лога maild.

 

Jan  9 17:22:25 antivirus1 drweb-maild[65196]: Milter client 1a1c-f0fd-c04e: Error while executing milter hook for message ID <884943114.1309626123.1578579737593.JavaMail.mktmail@sjmas05.marketo.org>: /etc/opt/drweb.com/milterhook.lua:49: Cannot call regex function: The complexity of matching the regular expression exceeded predefined bounds.  Try refactoring the regular expression to make each choice made by the state machine unambiguous.  This exception is thrown to prevent "eternal" matches that take an indefinite period time to locate.
 
Это кусок скрипта, на котором оно спотыкается
```
local whitelist_from = dw.load_array('/etc/opt/drweb.com/lists/white-from.regex')
    if regex.search(ts_from, ctx.from, regex.ignore_case) or
49-->>       regex.search(whitelist_from, ctx.from, regex.ignore_case) then
 
        dw.notice("'" .. ctx.from .. "'" .. ' is in whitelist or local')
        return {action='accept'}
    end
```
В файле правил строки вида
 
```
(.*\.)*ibm\.com
devnull@yandex\.ru
websoft\.ru
```


#60 Dmitry Mikhirev

Dmitry Mikhirev

    Advanced Member

  • Dr.Web Staff
  • 591 Сообщений:

Отправлено 09 Январь 2020 - 18:36

Скорее всего ругается на эту регулярку:

(.*\.)*ibm\.com

Я бы попробовал переписать её как-нибудь так:

@([a-z0-9-]+\.)*ibm\.com$

Не проверял, ничего не гарантирую.




Читают тему: 0

0 пользователей, 0 гостей, 0 скрытых