- правила Sendmail, Аноним, 12:28 , 04-Дек-13 (1)
- правила Sendmail, andlis, 12:40 , 04-Дек-13 (2)
> Как бы > sendmail -bt -C <your_config> в руки и глядеть.Хм. А можно поподробнее? Естественно, я сделал sendmail -bt и проверил отрабатываются ли правила. Все отрабатывается. Не работает только строчка $#local - ее как будто нет.. И в логах при любом уровне логирования про нее молчок. Или вы про другое?
- правила Sendmail, andlis, 13:00 , 04-Дек-13 (3)
> Как бы > sendmail -bt -C <your_config> в руки и глядеть.[root@mydomain tmp]# sendmail -bt -C sendmail.cf WARNING: Ruleset Local_check_relay has multiple definitions WARNING: Ruleset Local_check_rcpt has multiple definitions ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > Local_check_rcpt user2@mydomain Local_check_rcpt input: user2 @ mydomain Local_check_rcpt returns: $# local $: user1 то есть вроде все как надо.. Но действия нет.
- правила Sendmail, Аноним, 13:36 , 04-Дек-13 (4)
- правила Sendmail, andlis, 13:47 , 04-Дек-13 (5)
> Предупреждения ни на какие мысли не наводят ? > Загляните в полученный .cf файл.Хм. Давайте договоримся так: да, я тупой. Можно мне объяснить где моя тупость? Лично меня предупреждения наводят на мысли о том, что я использую эти 2 правила для своих фильтров. Естественно они там 2 раза (в оригинальном месте и в моих правилах), а что может быть по-другому? А что такое "полученный" файл? В результате чего он получен? Вы понимаете какая штука, если бы я мог догадаться без дополнительных вводных, я бы догадался до того как спросил... ((
- правила Sendmail, Аноним, 13:55 , 04-Дек-13 (6)
- правила Sendmail, andlis, 14:00 , 04-Дек-13 (7)
> Если Вы приводите .mc файл, то sendmail работает с .cf файлом, полученным > из .mc. > Sendmail'у Вы, я надеюсь, подсовываете новый, "полученный" .cf файл. > Вот загляните в оригинальный .cf файл, посмотрите как там оформлены прототипы локальных > правил. > Потом взгляните в _полученный_Вами_ .cf файл.Я не понял, совет - взглянуть в полученный мной .cf файл? Хорошо, взглянул. Что дальше?
- правила Sendmail, gruzzy, 17:45 , 05-Дек-13 (8)
- правила Sendmail, andlis, 17:57 , 05-Дек-13 (9)
> попробуй так > R$* > $: $(SPAM6 > $1 $) > R$* . @MATCH > $# local $: user1 Попробовал - пришло опять юзеру 2. -bt WARNING: Ruleset Local_check_relay has multiple definitions WARNING: Ruleset Local_check_rcpt has multiple definitions ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > Local_check_rcpt user2@mydomain Local_check_rcpt input: user2 @ mydomain Local_check_rcpt returns: @ MATCH довольно странное, кстати, вернул.. Мне все же кажется, что проблема именно в части $# local $: user1 ведь все остальное (если написать на этом же месте) прекрасно исполняется... То ли при каком-то апгрейде сендмейла запретили по умолчанию пересылку в нулевом правиле.. Но ничего подобного в инете не могу найти.. везде и у всех вот так же ((
- правила Sendmail, gruzzy, 18:03 , 05-Дек-13 (10)
- правила Sendmail, gruzzy, 18:12 , 05-Дек-13 (11)
- правила Sendmail, andlis, 18:21 , 05-Дек-13 (13)
> ну и для очистки совести > KSPAM6 regex -aMATCH user2.* > SLocal_check_rcpt > R$* $: $(SPAM6 $1 $) > R$* . MATCH $: $(syslog "**user2**" $) > R$* . MATCH $# local $: user1 не - так не работает. то же самое выдает.
- правила Sendmail, andlis, 18:16 , 05-Дек-13 (12)
> для начала таки пофикси > WARNING: Ruleset Local_check_relay has multiple definitions > WARNING: Ruleset Local_check_rcpt has multiple definitions > посмотри файл .mc, нет ли там дубля Local_check_rcpt > если всё ОК > make all install > и снова -bt прогони нет, конечно там нет дублей. ИМХО, если бы это вызывало ошибку - что-то не работало бы. Однако все работает как часы - сервер пропускает порядка 6000 писем в день. Хоть что-то бы сбилось.. Не работает только перенаправление.. Варнинг появляется из-за моего локального правила. Но ведь для того и есть локальные правила? Пересобирать не хотелось бы - я из rpm собирал. То есть я бы и пересобрал, нет проблем, но я нигде в документации не могу найти, чтобы было что-то, что запрещает оное перенаправление! Как бэ нет смысла пересобирать..
- правила Sendmail, andlis, 18:28 , 05-Дек-13 (14)
проверил на допотопном серваке, где сендмэйл 8 лет успешно проработал вместе с моими правилами (правила почти те же, только вместо $#local было $#error. Там выдает в точности такое же предупреждение.
- правила Sendmail, gruzzy, 01:33 , 06-Дек-13 (15)
- правила Sendmail, andlis, 12:18 , 06-Дек-13 (16)
> убери LOCAL_RULE_0 Нет, это конечно нельзя убрать ) Перенаправление почты разрешено только в этой цепочке правил. Кажется пришло озарение! В ней нельзя использовать правила из других цепочек! Получится - отпишусь. Правда непонятно, почему лог пишется, ну да это нюансы..
- правила Sendmail, gruzzy, 15:59 , 06-Дек-13 (17)
- правила Sendmail, gruzzy, 16:07 , 06-Дек-13 (18)
- правила Sendmail, andlis, 16:08 , 06-Дек-13 (20)
> ладно, тада хотябы замени LOCAL_RULE_0 на LOCAL_RULESETS > по сути у тебя K-map возвращает некорректное значение > должен возвращать INPUT . @ MATCH почему? map как раз возвращает MATCH. Да я вообще все неправильно сделал (( В LOCAL_RULE_0 нельзя обращаться к этим правилам. Удивительно, что я не могу найти готового решения в сети. Исходная идея была банальная. Фильтр по имени релея - и дальше все письма, которые мне не нравятся (типа спам) перенаправляются специальному пользователю. Вот не отлуп (как у меня 100 лет работало) а перенаправление. Куда распространеннее задача? Вот если в лоб, она описана здесь http://linux.ufaras.ru/mailroute.html#2.1 . Но там такая путаница! Сижу отлаживаю (( Но чувствую, придется все равно с нуля переписывать, главное чтобы идея была рабочая..
- правила Sendmail, gruzzy, 16:24 , 06-Дек-13 (21)
- правила Sendmail, andlis, 16:54 , 06-Дек-13 (22)
> OK > просто сделай так вот, просто ради интереса и покажи вывод sendmail -bt [root@xx tmp]# sendmail -bt -C sendmail.cf WARNING: Ruleset Local_check_rcpt has multiple definitions ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > /map SPAM6 user2@mydomain map_lookup: SPAM6 (user2@mydomain) returns MATCH (0) Перенаправление не работает. Да в целом и не может..
- правила Sendmail, andlis, 18:28 , 10-Дек-13 (24)
Как обещал, отписываюсь о результате. Ничего не получалось у меня, потому что в LOCAL_RULE_0 нельзя задавать правила (типа Local_check_relay). Как только чтение доходит до чего-то вроде SLocal_check_relay, дальнейшее воспринимается, как описание правила, а не часть LOCAL_RULE_0. То есть строки типа $#local $:user там уже не работают. А вот то, что одно и то же правило описывается в разных местах это нормально. Судя по документации, такие части правила просто последовательно добавляются друг к другу. Другой вопрос зачем так делать? Ну и главное. Поскольку, я хотел сделать перенаправлялку для спама по шаблону релея, то я ее выкладываю. Вообще-то оригинал я взял тут: http://linux.ufaras.ru/mailroute.html#2.1 (за что автору большое спасибо), но две вещи изменил. В оригинале идет отладочная запись в лог, а у меня только по срабатыванию правила. И у меня письма, отправленные моими пользователями (определенными по smtp-авторизации), не проверяются (за идею и обсуждение спасибо DeadLoco и Medlar).LOCAL_CONFIG Ksyslog syslog Kstorage macro KSPAM1 regex -a@MATCH ([0-9]{1,3}[._x-]){3}[0-9]{1,3} KSPAM2 regex -a@MATCH ([0-9]+[._x-]){2,}.*(\..*){2,} KSPAM3 regex -a@MATCH [0-9a-f]{8,}(\..*){3,} KSPAM4 regex -a@MATCH [0-9].*(dsl|dial|dynamic|static|ppp|pool|client|user|dhcp|gprs).*(\..*){2,} KSPAM5 regex -a@MATCH (dsl|dial|dyn|static|ppp|pool|client|user|dhcp|gprs|ip|vpn|nat)[a-z_-]*[0-9]+.*(\..*){2,} KSPAM6 regex -a@MATCH (mail.*\.com\.ua) LOCAL_RULE_0 R$+<---><------><------><------>$: <$&{auth_authen}>AUTH $1 R<$+>AUTH$*<---><------><------>$: $2 R<>AUTH$*<-----><------><------>$: <$&f> $1 R<>$+<-><------><------><------>$: $1 R<$+>$+><------><------><------>$: $2 $| $>Parse11 R$+ $| OK<-----><------><------>$: $1 R$+ $| local $+><------><------>$# local $: $2 SParse11 R$*<---><------><------><------>$: <$&{client_name}> R<><---><------><------><------>$@ OK R<[192.168.1.$-]><-----><------>$@ OK R<$+><-><------><------><------>$: $1 R$+<---><------><------><------>$: $(SPAM1 $1 $) R@$+<--><------><------><------>$: $(syslog "Spam1 redirect: " $&{client_name} $) @$1 R@MATCH><------><------><------>$@ local user1 R$+<---><------><------><------>$: $(SPAM2 $1 $) R@$+<--><------><------><------>$: $(syslog "Spam2 redirect: " $&{client_name} $) @$1 R@MATCH><------><------><------>$@ local user1 R$+<---><------><------><------>$: $(SPAM3 $1 $) R@$+<--><------><------><------>$: $(syslog "Spam3 (IPV6) redirect: " $&{client_name} $) @$1 R@MATCH><------><------><------>$@ local user1 R$+<---><------><------><------>$: $(SPAM4 $1 $) R@$+<--><------><------><------>$: $(syslog "Spam4 redirect: " $&{client_name} $) @$1 R@MATCH><------><------><------>$@ local user1 R$+<---><------><------><------>$: $(SPAM5 $1 $) R@$+<--><------><------><------>$: $(syslog "Spam5 redirect: " $&{client_name} $) @$1 R@MATCH><------><------><------>$@ local user1 R$+<---><------><------><------>$: $(SPAM6 $1 $) R@$+<--><------><------><------>$: $(syslog "Spam6 (known spammers) redirect: " $&{client_name} $) @$1 R@MATCH><------><------><------>$@ local user1 R$*<---><------><------><------>$@ OK
|