Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Почтовый сервер Sendmail FAQ

Автор: Delphi6
Дата сообщения: 18.01.2007 20:13
arto

Цитата:
используйте подходящий меилер, например procmail.

Для чего? Для отсылки или получения писем?


Цитата:
ps. сендмайл поставляется с примерами конфигурации и отличной документацией

Вот как раз читаю и ни как не могу найти объяснения sendmail понимает какой *.cf файл надо уюзать и где он находиться? Ну и конечно нет практического примера как прикрутить один почтовый ящик от одного домена от начала до конца.


Цитата:
по sasl -- http://www.sendmail.org/~ca/email/auth.html не помогает?

Вчера как раз и пытался с помощью этой доки что-то наладить, но он у меня все равно без SASL инсталился, возможно я что-то делал не корректно (это скоро узнаем, когда наконец все установлю)
Автор: arto
Дата сообщения: 18.01.2007 20:36
lda -- local delivery agent.

man procmail procmailrc procmailex

какой кофигурационный файл -- это сказано в man sendmail или в документации на вашу ос.
практические примеры ищутся в гугле, их там много.

и не рекомендовал бы вам что-то собирать самому, проще использовать пакеты, поставляемые с вашей ос.
Автор: Delphi6
Дата сообщения: 19.01.2007 10:37
arto
Если бы я смог прикрутить собственный /etc/passwd.mailusers файл к sendmail-у так что бы система не воспринимала его как файл системных пользователей, я бы просто через РНР организовал бы добавление новых пользователей, создание им домашних каталогов. И так как sendmail все конфиги воспринимает без рестарта то было бы все как в шоколаде

Наверно догадались почему я не хочу править /etc/passwd файл через мой РНР скрипт, во первых могу что-то испортить, но ее больше поюсь допустить ошибку в РНР и тогда злоумышленник сможет добавить себя в систему, что ни есть хорошо.

На счет этих программ почитаю обязательно.

И все же мой вердикт как начинающего сис. админа sendmail криво написан. Этаже откуда у чела должны расти руки если он в программе не предусмотрел использование виртуальных пользователей? Неужели было сложно добавить возможность воспринимать файлы типа:


Цитата:
username:[encode_password]:uid:gid:homedir:maildir


и все были бы счастливы. Нет теперь мне надо в систему добавлять 1000 пользователей что бы у каждого из них была собственная почта. А как потом следить за безопасностью? Как потом из списка 1000 пользователей в файле /etc/passwd выбирать нормальных пользователей и следить за их правами? Нет однозначно кривые руки!!
Автор: arto
Дата сообщения: 19.01.2007 11:05
зачем вам добавлять 1000 пользователей?
решение я вам сказал, рабоать с ним или нет -- вам решать. или вы его не поняли?
Автор: Delphi6
Дата сообщения: 19.01.2007 11:25
arto
Мне вот этот пункт не ясен, что значит generic пользователи? И чем отличаются от обыкновенных. Может есть интересная дока по ним? (кроме man adduser)

Цитата:
1. заводите generic пользователя для данного домена (adduser -c "Generic user for example.com" gexample


Здесь тоже все понятно, добавляем домен example.com в список локальных доменов. Потом добавляем виртуального пользователя и говорим что бы вся почта на домен example.com шла локальному пользователю gexample.

Цитата:
2. echo "example.com" >> /etc/mail/local-host-names
3. echo "@example.com\t\t\tgexample" >> /etc/mail/virtusertable

Вот это уже интересно, вы говорите sendmail-у чтобы он все пришедшие ему письма на мыло name@example.com помещал в \name файл (или $u директива в sendmail озачает name@example.com). Это так? А если да то где будет находиться этот "\name" файл (и почему слеш обратный а не никсовый "/"), где его корневая директория? Может "/etc/mail/"?

Цитата:
4. echo "\nLOCAL_RULE_3\nHX-Rcpt-To: \$u" >> /etc/mail/sendmail.mc

Ну дальше компилим все, рестартим sendmail и тестируем на работоспособность

Цитата:
5. make -C/etc/mail all restart
6. telnet your.host 35
HELO localhost
MAIL From:<>
RCPT To:<test@example.com>
DATA
.
QUIT
7. less /var/mail/gexample

Где фильтровать, в какой программе, и как? (Я пользуюсь dovecot сервером, а там есть возможность указать для пользователя где находиться его файл почтового яшика)

Цитата:
все, письмо получено, в нем есть заголовок X-Rcpt-To с именем того, кому письмо пришло.
фильтруйте по нему.

В моих словах (выше) есть одна загвоздка. Если мы говорим что мыло должно быть переадресовано пользователю gexample (vitualusertable) то почему должно действовать правило которое говорит что мыло должно идти в файл $u (имя пользователя)? Или же действует такой принцип, если мол пользователь не найден (не сработала ловушка $u) то все идет уже к пользователю gexample?

п.с. А можно путь указать так \$d\$u, ну типа сначала каталог доменного имени а потом файл с именем пользователя?
Автор: Delphi6
Дата сообщения: 19.01.2007 15:08
Вот сейчас нашел пример на одной страничке:

Цитата:
define(`confUSERDB_SPEC', `/etc/mail/userdb')
define(`confAUTH_OPTIONS', `A')

думаю это то что нужно, или я ошибаюсь?
Автор: arto
Дата сообщения: 19.01.2007 15:36
ничем не отличается, он отвечает за почту для доменя example.com, она перенаправляется вся к нему.

да

отправлял пользователю gexample (вызывак lda с параметром gexample)

в LOCAL_RULE_3 описывается правило, которое добавляет заголовок в письмо, которое идентифицирует, кому конкретно предназначалось письмо.

lda я вам указал -- procmail, у него возможностей хватит. к нему приходят все письма, а он уже решает, куда его класть, и в каком формате.
Автор: Delphi6
Дата сообщения: 19.01.2007 16:35
arto
Большое вам спасибо, как я заметил в сфере сис. админов люди не очень доброжелательны к новичкам (что меня очень огорчило, это доказывает их не желание само совершенствоваться), вы один из не многих кто мне помогает разобраться.

Еще вопрос procmail типа сортировщик, он просто ее сортирует, к протоколам POP3/SMTP он никакого отношения не имеет. Получается такая цепочка действий:
sendmail получает помещает все в один почтовик с меткой кому
procmail анализирует почту в этом почтовом ящике и раскладывает все по почтовым ящикам (файлам в /etc/mail/%u или что-то в это роде)
dovecot работает с почтовым ящиком и передает все через POP3 протокол пользователю
Теперь кажется все стало на свои места и ясно как белы день.



Добавлено:
Супер, procmail как раз то что мне нужно было А как ему передать почту из sendmail или как его запускать что бы он обрабатывал определенный почтовый ящик? Может через cronjob с параметрами?
Автор: arto
Дата сообщения: 19.01.2007 22:40
опишите procmail как lda в конфигфайле (сейчас это делается через MAILER(`procmail'), дополнительно через FEATURE(`local_procmail') можете добавить дополнительные аргументы).
он будет получать письма напрямую из sendmail.

все это описано во множестве мест в интернете, даже в тех ссылках, которые вы сами приводили.

Добавлено:
бтв, formail входит в пакет procmail'а.
можете через него обработать уже готовый ящик,
Автор: Delphi6
Дата сообщения: 20.01.2007 10:20
arto
Огромное вам спасибо, думаю на данный момент тему можно считать закрытой. Сегодня начну новый поток экспериментов и вот получив результаты возможно появятся новые вопросы.

А пока отпишу здесь еще один линк который поможет читающему этот топик разобраться как прикрутить procmail к sendmail-у.
http://www.puresimplicity.net/~hemi/freebsd/procmail.html
Автор: L
Дата сообщения: 21.02.2007 09:43
подскажите как настроить sendmail таким образом, чтобы он не мог отсылать почту без пароля от имени несуществующих пользователей? на существующих у меня стоит авторизация.
Автор: arto
Дата сообщения: 21.02.2007 10:59
не отсылал или не передавал?
Автор: L
Дата сообщения: 21.02.2007 16:09
не отсылал именно. передавать по локалке - передавал, а наружу чтобы отправлял только от тех пользователей, которые есть в /etc/passwd, и только после прохождения аутентификации. потому что сейчас, несмотря на то, что она прикручена и работает (LOGIN и CRAM-MD5), все равно от любого, как имеющегося пользователя, так и от вымышленного, sendmail почту отправляет во внешний мир.
Автор: arto
Дата сообщения: 21.02.2007 23:17
в check_compat проверять ${verify} ?
Автор: L
Дата сообщения: 23.02.2007 20:50
оказалось, все гораздо проще:

Код: DAEMON_OPTIONS(`Port=25, Name=MSA, M=a')dnl
Автор: Delphi6
Дата сообщения: 24.02.2007 09:16
L
А может поделитесь идеей, как вы все замутили без SASL? или он у вас был установелен? Я сам лично пытался установить но были большие проблемы, так как последний потребовал настройки SSL. Или у вас для каждого почтового ящика новый пользователь в системе? И как вы тогда решаете проблему нескольких почтовых ящиков на одном домене?
Автор: L
Дата сообщения: 27.02.2007 07:36
sasl стоит, конечно, не получалось сделать именно принудительно, чтобы без авторизации вообще не было возможности отправить. да, для каждого почт ящика свой юзер, но это было еще до меня. в каком смысле "И как вы тогда решаете проблему нескольких почтовых ящиков на одном домене?". не совсем понятен вопрос. стоит sendmail+procmail. один получает все, что приходит, т.е. стоит на входе, второй (procmail) раскидывает по пользователям. настроить sasl не такуж и сложно, очень много статей по этой проблеме.
Автор: gnazar
Дата сообщения: 13.03.2007 15:58
Прошу помощи у знающих людей.
Сам с линуксом на ВЫ и появилась необходимость настроить sendmail. Почитав о нем немного сделал вывод, что настройка его представляет собой слегка проблематичную задачу. Но система стоит Linux Suse 10.1 и с помощью YaST процесс по идее должен сильно упроститься.
Задача стоит лишь настроить пересылку почты sendmail'ом из инета на внутренний почтовый сервер (уже настроенный Exchange) и с него в интернет.
Автор: Teo
Дата сообщения: 19.03.2007 10:38
Delphi6
это, конечно, не по правилам, но может, выход
есть просто исчерпывающая дока по всем фишкам, которые тебе нужны
http://www.gentoo.org/doc/ru/virt-mail-howto.xml
а я ещё писал и скриптец для добавления пользователя

ну и вопрос: как можно сделать задержку после приветствия сервера, чтобы отсекать особо наглых спамеров, софт у которых не ждёт никаких ответных команд от почтовика, а тупо вываливает содержимое в сокет
Автор: arto
Дата сообщения: 19.03.2007 11:52
FEATURE(`greet_pause') ?
Автор: Teo
Дата сообщения: 10.04.2007 14:56
в общем, всё ещё мучаю сабж

в один прекрасный день он умер по причине случайного купирования (до этого пришитых вручную не мной) органов

в результате я решил установить пакетным менеджером
ладно, с правами я кое-как разобрался, хотя (logcheck постоянно орал о правах на /etc/mail/{aliases,access})

терь такая штука - не работает авторизация sasl
сделано было предельно просто: в /etc/ лежал sasldb в котором и поныне есть только один юзер
сначала при старте мылодемон кричал, что нету Sendmail.conf в /etc/sasl
ладно, сделал я ему этот файл:


Код: pwcheck_method: saslauthd
auto_transition: false
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
Автор: FSN
Дата сообщения: 19.04.2007 12:45
В логе сендмайла очень много строчек вот такого вида:

Apr 15 04:07:11 sever sendmail[5841]: ruleset=check_relay, arg1=pD95F3E26.dip0.t-ipconnect.de, arg2=217.95.62.38, relay=pD95F3E26.dip0.t-ipconnect.de [217.95.62.38], reject=553 5.3.0 Message from 217.95.62.38 rejected - see http://njabl.org/lookup? 217.95.62.38

Это, как я понял, моя система проверяет по базе и отбивает спамеров?
Т.е. получается наш сервер пытаются завалить спамом? Как же тогда с этим бороться, если устанавливаю MAX_DAEMON_CHILDREN, то часто пользователи моего сервера не могут отправить почту, т.к. уже висит в процессах предельное кол-во сендмейлов. Если не указывать MAX_DAEMON_CHILDREN, то тогда в процессах появляется очень много сендмейлов и тогда не возможно броузить сайты???
Автор: ipmanyak
Дата сообщения: 19.04.2007 14:17
FSN

Цитата:
Это, как я понял, моя система проверяет по базе и отбивает спамеров?

Да. А бороться именно так как ты и борешься, проверять по базам DNSBL.

Цитата:
если устанавливаю MAX_DAEMON_CHILDREN

Этот параметр лучше не указывать совсем, тогда лимита нет.
Поиграйся с тротлом:
confCONNECTION_RATE_THROTTLE ConnectionRateThrottle
[undefined] The maximum number of
connections permitted per second.
After this many connections are
accepted, further connections will be
delayed. If not set or <= 0, there is
no limit.
Письма будут приниматься все, но отправляться будут по числу указанных сессий, остальные будут ждать в очереди. Почитай другие опции, возможно есть возможность ограничить скорость каждой сессии, у меня очень старый сендмыл и там таких опций вроде бы нет.



Добавлено:
Другой вариант - трафик шейпинг, задавить скорость SMTP на фаерволл пайпами, если это фря, на линуксе тоже есть средства, в том числе просто отдать приоритет http
Автор: Teo
Дата сообщения: 23.04.2007 13:16
народ!!!!

помогайте!
опять вывалилась ошибка
sasl_server_init failed

как быть?

кака его вообще выключить?
сервак не стартует!!!
Автор: tolyn77
Дата сообщения: 16.05.2007 07:58
добавил после
FEATURE(blacklist_recipients)dnl
это [more]
FEATURE(`dnsbl', `dul.ru', `550 Use mail relays of your ISP')dnl
FEATURE(`dnsbl', `dialups.mail-abuse.org',`550 Mail from $&{client_addr} rejected; see http://mail-abuse.org/dul/enduser.htm')dnl
FEATURE(`dnsbl', `blackholes.mail-abuse.org',`550 Mail from $&{client_addr} rejected; see http://mail-abuse.org/cgi-bin/lookup?$&{client_addr}')dnl
FEATURE(`dnsbl', `relays.mail-abuse.org',`550 Mail from $&{client_addr} rejected; see http://work-rss.mail-abuse.org/cgi-bin/nph-rss?$&{client_addr}')dnl
FEATURE(`dnsbl', `list.dsbl.org',`550 Mail from $&{client_addr} rejected; see http://dsbl.org/listing.php?$&{client_addr}')dnl
FEATURE(`dnsbl', `multihop.dsbl.org',`550 Mail from $&{client_addr} rejected; see http://dsbl.org/listing.php$&{client_addr}')dnl
FEATURE(`dnsbl', `unconfirmed.dsbl.org',`550 Mail from $&{client_addr} rejected; see http://dsbl.org/listing.php?$&{client_addr}')dnl
FEATURE(`dnsbl', `relays.ordb.org', `550 Rejected - see http://ordb.org/')dnl FEATURE(`enhdnsbl', `bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}')dnl
FEATURE(`dnsbl', `bl.spamcop.net', `550 Spam blocked - see http://spamcop.net/bl.shtml?$&{client_addr}')dnl
FEATURE(`dnsbl', `ex.dnsbl.org', `550 Spam bloked - see http://www.dnsbl.org/')dnl
[/more]
для борьбы со спамом, как можно проверить работают эти правила или нет?
заранее благодарен
Автор: arto
Дата сообщения: 16.05.2007 08:36
sendmail -d44.44 -bt

client_addr в 127.0.0.2 и checkrelay
Автор: tolyn77
Дата сообщения: 16.05.2007 10:09
arto
этот ответ мне?
Автор: arto
Дата сообщения: 16.05.2007 11:39
да
Автор: rushclub
Дата сообщения: 14.06.2007 12:58
Гуру помогите! Проблема в след. Стоит red hat+ sendmail... Почта на yahoo не уходит по причине того, как я вычитал на иностранных сайтах, что yahoo отвечает не с первого раза. То есть первый раз коннекта нету, второй раз тоже а с пятого все ок. Так хотелось бы узнать что нужно изменить, чтобы каждое письмо сендмеил пытался отправить за одноу попытку раз 10. Причем вфыставить правило чтобы каждый 30 сек 5 дней подряд не очень хотелось бы, да и оно не поможет особо. Вообщем пытался я найти какой-нибудь такой параметр но к сожалению безуспешно. Помогите плз.
Автор: Thomas78
Дата сообщения: 03.12.2007 17:51

Код:
R$+ $: $(ChSbVIRAvron $1 $)
R@CATCHED $#local $: postmaster

Страницы: 1234567891011

Предыдущая тема: Забыл пароли на Cisco ATA 186.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.