Добрый день, всем!Стоит связка на FreeBSD 7.2 - Sendmail+procmail+SpamAssassin+Clamav+SASL
Почту могут отправлять, соответственно, авторизовавшиеся пользователи через 25ый порт.
Сендмыл собран с настройкой confMAX_DAEMON_CHILDREN - чтобы серв жрал не очень много ресурсов, значение этой настройки равно 33, т.е. максимальное число дочерних процессов - 33.
Периодически с моим сендмылом устанавливается большое количество соединений (естественно попытки отправить спам через меня), - максимально допустимое 33. Из-за этого он начинает отвергать соединения для отправки и приема почты от валидных пользователей.
Скажите, что можно сделать, чтобы спамеры "отвалили" от меня и логи у меня стали почище... Сейчас, из-за того, что меня пытаются "отрелеить" у меня по 100 тысяч записей в maillog каждый день...
Кроме того, не слишком ли малое количество дочерних процессов я выставил - 33? Может, следует больше.
Серв 2х2.2 Ггц + 4гб DDR2.
> Добрый день, всем!
> Стоит связка на FreeBSD 7.2 - Sendmail+procmail+SpamAssassin+Clamav+SASL
> Почту могут отправлять, соответственно, авторизовавшиеся пользователи через 25ый порт.
> Сендмыл собран с настройкой confMAX_DAEMON_CHILDREN - чтобы серв жрал не очень много
> ресурсов, значение этой настройки равно 33, т.е. максимальное число дочерних процессов
> - 33.зачем? какая средняя загрузка? сколько пользователей и доменов обслуживает релей?
> Периодически с моим сендмылом устанавливается большое количество соединений (естественно
> попытки отправить спам через меня), - максимально допустимое 33. Из-за этого
> он начинает отвергать соединения для отправки и приема почты от валидных
> пользователей.не пытались понять почему это происходит с вашим релеем?
> Скажите, что можно сделать, чтобы спамеры "отвалили" от меня и логи у
> меня стали почище... Сейчас, из-за того, что меня пытаются "отрелеить" у
> меня по 100 тысяч записей в maillog каждый день...
> Кроме того, не слишком ли малое количество дочерних процессов я выставил -
> 33? Может, следует больше.может и вовсе убрать ограничение, но для этого следует найти ответ на вопрос выше.
смотреть в сторону ограничений на уровне коннектов: timeout'ы, кол-во соединений
в секунду и тд и тп> Серв 2х2.2 Ггц + 4гб DDR2.
вполне себе почтовый сервер с _запасом_прочности_ (зависит от того сколько клиентов
вы обслуживаете)
> зачем? какая средняя загрузка? сколько пользователей и доменов обслуживает релей?40 пользователей в одном домене и 2 в другом.
> не пытались понять почему это происходит с вашим релеем?
Ну как сказать не пытался... я не пойму, как это понять. Я проверял свой почтовик на возможный релееинг разными тестерами (telnet relay-test.mail-abuse.org, http://www.checkor.com) - проверка показала, что всё как бы в роке, и почтовик настроен типа грамотно... Возможно причина в том, что наши менеджеры выкладывают свои почтовые адреса везде, где только можно, а спамеры их сканять, шлют нам почту и пытаются отправить через нас...
Хорошо, а какие варианты есть, как проверить?
> может и вовсе убрать ограничение, но для этого следует найти ответ на
> вопрос выше.
> смотреть в сторону ограничений на уровне коннектов: timeout'ы, кол-во соединений
> в секунду и тд и тпхорошо, приведу куски своего конфига:
+++++++++++++++++++++++++++++++
FEATURE(dnsbl, `bl.spamcop.net', `"550 Mail from " $&{client_addr} " rejected - see bl.spamcop.net"')
FEATURE(dnsbl, `cbl.abuseat.org', `"550 Mail from " $&{client_addr} " rejected - see cbl.abuseat.org"')
FEATURE(dnsbl, `dnsbl.njabl.org', `"550 Mail from " $&{client_addr} " rejected - see dnsbl.njabl.org"')
FEATURE(dnsbl, `dnsbl.sorbs.net', `"550 Mail from " $&{client_addr} " rejected - see dnsbl.sorbs.net"')
FEATURE(dnsbl, `list.dsbl.org', `"550 Mail from " $&{client_addr} " rejected - see list.dsbl.org"')
FEATURE(dnsbl, `zen.spamhaus.org', `"550 Mail from " $&{client_addr} " rejected - see zen.spamhaus.org"')....................
FEATURE(`delay_checks')dnl
dnl FEATURE(`greet_pause', `5000')dnl - это отключил, так как был косяк с отсылкой почты. Некоторые письма заворачиваютя в спам, я сажусь их пересылать по правильным адресатам, попутно обучая антиспамер. Так вот, я рассылаю письма быстро по ящикам, а ограничение не дает мне этого делать =)define(`confMAX_RCPTS_PER_MESSAGE', `10')
define(`confMAX_MESSAGE_SIZE', `10000000'')
define(`confMAX_DAEMON_CHILDREN', `33')
define(`confCONNECTION_RATE_THROTTLE', `10') - новые соединения в секунду. Куда уж меньше?
define(`confTO_IDENT', `0') - таймаутик...
+++++++++++++++++++++++++Я думаю еще добавить таумауты:
define(`confTO_CONNECT', `30s')dnl
define(`confTO_IDENT', `0')dnl
define(`confTO_COMMAND', `30s')dnl
define(`confTO_DATABLOCK', `2m')dnl
define(`confTO_STARTTLS', `2m')dnlи
FEATURE(`badmx')dnl
и
define(`confSMTP_LOGIN_MSG', `Qmail Server Ready')dnl - маскарадинг =)
Кроме того, я вот думаю, если указать в файлике acccess:
GreetPause:localhost 0
GreetPause:192.168. 0Будет ли работать? значит, что всем, кроме пользователей локалки будет ПаузаПриветствия равняться 5 секундам, а я из локалки смогу спокойно отправлять почту.
Очень жду Ваших ответов...
>> зачем? какая средняя загрузка? сколько пользователей и доменов обслуживает релей?
> 40 пользователей в одном домене и 2 в другом.при таком кол-ве пользователей, sendmail можно без ограничений пускать :)
>> не пытались понять почему это происходит с вашим релеем?
> Ну как сказать не пытался... я не пойму, как это понять. Я
> проверял свой почтовик на возможный релееинг разными тестерами (telnet relay-test.mail-abuse.org,
> http://www.checkor.com) - проверка показала, что всё как бы в роке, и
> почтовик настроен типа грамотно... Возможно причина в том, что наши менеджеры
> выкладывают свои почтовые адреса везде, где только можно, а спамеры их
> сканять, шлют нам почту и пытаются отправить через нас...
> Хорошо, а какие варианты есть, как проверить?смотреть логи
>[оверквотинг удален]
>> смотреть в сторону ограничений на уровне коннектов: timeout'ы, кол-во соединений
>> в секунду и тд и тп
> хорошо, приведу куски своего конфига:
> +++++++++++++++++++++++++++++++
> FEATURE(dnsbl, `bl.spamcop.net', `"550 Mail from " $&{client_addr} " rejected - see bl.spamcop.net"')
> FEATURE(dnsbl, `cbl.abuseat.org', `"550 Mail from " $&{client_addr} " rejected - see cbl.abuseat.org"')
> FEATURE(dnsbl, `dnsbl.njabl.org', `"550 Mail from " $&{client_addr} " rejected - see dnsbl.njabl.org"')
> FEATURE(dnsbl, `dnsbl.sorbs.net', `"550 Mail from " $&{client_addr} " rejected - see dnsbl.sorbs.net"')
> FEATURE(dnsbl, `list.dsbl.org', `"550 Mail from " $&{client_addr} " rejected - see list.dsbl.org"')
> FEATURE(dnsbl, `zen.spamhaus.org', `"550 Mail from " $&{client_addr} " rejected - see zen.spamhaus.org"')в dnsbl не вижу особого смысла...
> ....................
> FEATURE(`delay_checks')dnl
> dnl FEATURE(`greet_pause', `5000')dnl - это отключил, так как был косяк с отсылкой
> почты. Некоторые письма заворачиваютя в спам, я сажусь их пересылать по
> правильным адресатам, попутно обучая антиспамер. Так вот, я рассылаю письма быстро
> по ящикам, а ограничение не дает мне этого делать =)с отсылкой? с приемом вероятно...
greet_pause есть полезная вещь, особенно при ddos и slamming'е
3000 можно смело задать и затем через access регулировать> define(`confMAX_RCPTS_PER_MESSAGE', `10')
> define(`confMAX_MESSAGE_SIZE', `10000000'')
> define(`confMAX_DAEMON_CHILDREN', `33')я бы вовсе убрал... и следил бы за server-LA (load average)
> define(`confCONNECTION_RATE_THROTTLE', `10') - новые соединения в секунду. Куда уж меньше?
как впрочем и это, наблюдая за поведением sendmail и LA
> define(`confTO_IDENT', `0') - таймаутик...
> +++++++++++++++++++++++++
> Я думаю еще добавить таумауты:
> define(`confTO_CONNECT', `30s')dnl
> define(`confTO_IDENT', `0')dnl
> define(`confTO_COMMAND', `30s')dnl
> define(`confTO_DATABLOCK', `2m')dnl
> define(`confTO_STARTTLS', `2m')dnlпопробуйте для начала без подкрутки таймаутов:
FEATURE(require_rdns)
FEATURE(blacklist_recipients)
FEATURE(`badmx', `^127\.0\.0\.1')
FEATURE(block_bad_helo)FEATURE(`greet_pause', `3000') dnl 3 seconds
FEATURE(`ratecontrol', `nodelay',`terminate')
FEATURE(`conncontrol', `nodelay',`terminate')define(`confTO_IDENT', `0')
define(`confTO_CONNECT', `1m')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy,noetrn')если rnds будет критичен, уберите
> и
> FEATURE(`badmx')dnl
> и
> define(`confSMTP_LOGIN_MSG', `Qmail Server Ready')dnl - маскарадинг =)зачем это, лучше нормальное сообщение про Antispam:
define(`confSMTP_LOGIN_MSG',`Antispam-MTA; "Non-authorized relaying DENIED." ')
> Кроме того, я вот думаю, если указать в файлике acccess:
> GreetPause:localhost 0
> GreetPause:192.168. 0
> Будет ли работать? значит, что всем, кроме пользователей локалки будет ПаузаПриветствия
> равняться 5 секундам, а я из локалки смогу спокойно отправлять почту.будет при использовании feature с greet_pause
в дополнение посмотрите: ratecontrol + conncontrol
Секция CONNECTION CONTROL в /usr/src/contrib/sendmail/cf/README
Ну и подключите milter-greylist> Очень жду Ваших ответов...
100 строк в maillog не есть плохо
> при таком кол-ве пользователей, sendmail можно без ограничений пускать :)ну ладно =) Но ограничения на размер письма я все равно оставлю, а то у нас есть люди, которые шлют 40гб на неверные адреса... потом эти письма возвращаются и т.д. и т.п...
> попробуйте для начала без подкрутки таймаутов:
> FEATURE(`badmx', `^127\.0\.0\.1')С остальным ясно, но что значит запись `^127\.0\.0\.1'?
> если rnds будет критичен, уберите
Убрал =)
FEATURE(blacklist_recipients)
FEATURE(`badmx')
FEATURE(block_bad_helo)Это есть, просто я при описании своего конфига не сказал об этом =)
>> Кроме того, я вот думаю, если указать в файлике acccess:
>> GreetPause:localhost 0
>> GreetPause:192.168. 0
>> Будет ли работать? значит, что всем, кроме пользователей локалки будет ПаузаПриветствия
>> равняться 5 секундам, а я из локалки смогу спокойно отправлять почту.
> будет при использовании feature с greet_pause
> в дополнение посмотрите: ratecontrol + conncontrol
> Секция CONNECTION CONTROL в /usr/src/contrib/sendmail/cf/READMEОке, спасибо
> 100 строк в maillog не есть плохо
а 62 тысячи за 17 часов? =)
и большое спасибо за ответы...!
>> при таком кол-ве пользователей, sendmail можно без ограничений пускать :)
> ну ладно =) Но ограничения на размер письма я все равно оставлю,
> а то у нас есть люди, которые шлют 40гб на неверные
> адреса... потом эти письма возвращаются и т.д. и т.п...правильно, зачем комментировать правильные вещи.
>> попробуйте для начала без подкрутки таймаутов:
>> FEATURE(`badmx', `^127\.0\.0\.1')badmx - reject писем с envelope в котором доменная часть имеет badmx, MX резолвится
в RR=A, позволяет использовать регулярные выражения, кстати, by default:^(127\.|10\.|0\.0\.0\.0)
даже лучше
> С остальным ясно, но что значит запись `^127\.0\.0\.1'?
там же в cf/README расписано
>> если rnds будет критичен, уберите
> Убрал =)сперва с ним лучше попробуйте, потом уберете
>[оверквотинг удален]
>>> GreetPause:localhost 0
>>> GreetPause:192.168. 0
>>> Будет ли работать? значит, что всем, кроме пользователей локалки будет ПаузаПриветствия
>>> равняться 5 секундам, а я из локалки смогу спокойно отправлять почту.
>> будет при использовании feature с greet_pause
>> в дополнение посмотрите: ratecontrol + conncontrol
>> Секция CONNECTION CONTROL в /usr/src/contrib/sendmail/cf/README
> Оке, спасибо
>> 100 строк в maillog не есть плохо
> а 62 тысячи за 17 часов? =)так посмотрите уровень лога sendmail, и что логгируется в maillog (syslogd)
> и большое спасибо за ответы...!
прим: можно много чего навесить к sendmail'у для того чтобы от вас отвалили спамеры
или прекратили ddos'ить, как отвалят, можно дать послабление.
Как вариант, можно изменить ip-address почтового релея (MX в DNS и на сервере) и
посмотреть результат.
Ну ладно, конфиг привел к такому виду:++++++++++++++++++++
...........
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy,noetrn')
FEATURE(`badmx', `^127\.0\.0\.1')dnl
FEATURE(`block_bad_helo')dnl
FEATURE(`delay_checks')dnl
FEATURE(`greet_pause', `3000')dnl
FEATURE(`ratecontrol', `nodelay',`terminate')
FEATURE(`conncontrol', `nodelay',`terminate')define(`confMAX_RCPTS_PER_MESSAGE', `10')
define(`confBAD_RCPT_THROTTLE', `1')dnl
define(`confMAX_MESSAGE_SIZE', `10000000'')
define(`confMAX_DAEMON_CHILDREN', `60')
define(`confCONNECTION_RATE_THROTTLE', `10')define(`confTO_CONNECT', `1m')dnl
define(`confTO_IDENT', `0')
define(`confTO_HELO', `30s')dnl
define(`confTO_STARTTLS', `1m')dnl...........
++++++++++++++++++++
Только лог меньше не становится =(
12 часов - 60 тыщ... IP не сменить - у меня он один выделенный =)
Тэээкс, а как можно проверить весь функционал? Вот как, например, при помощи ehlo я могу badmx проверить, так хочу и с остальным разобраться - работает или нет...
> Ну ладно, конфиг привел к такому виду:
> ++++++++++++++++++++
> ...........
> define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy,noetrn')nobodyreturn добавьте в верхнее, чтобы обратно только заголовки отвергнутых писем
возвращались.>[оверквотинг удален]
> define(`confCONNECTION_RATE_THROTTLE', `10')
> define(`confTO_CONNECT', `1m')dnl
> define(`confTO_IDENT', `0')
> define(`confTO_HELO', `30s')dnl
> define(`confTO_STARTTLS', `1m')dnl
> ...........
> ++++++++++++++++++++
> Только лог меньше не становится =(
> 12 часов - 60 тыщ... IP не сменить - у меня он
> один выделенный =)настройки логгирования смотрели?
> Тэээкс, а как можно проверить весь функционал? Вот как, например, при помощи
> ehlo я могу badmx проверить, так хочу и с остальным разобраться
> - работает или нет...с другой удаленной машины, например через telnet или написать маленькие скрипты на
perl/php/python или bash+toolsприм: поставьте trafshow(или используйте tcpdump) что-ли и snort и посмотрите что с вами
пытаются сделать и откуда, наберите статистику и в firewall или письма на владельцев
сети с которых вас бомбят почтой (всяких китайцев и пр. в firewall без писем к AS/LIR)
> с другой удаленной машины, например через telnet или написать маленькие скрипты на
> perl/php/python или bash+toolsНу я понимаю, что через телнет. Вот, например bad_helo походу не работает:
ehlo sexdrugs
250-this.is-myServer.ru Hello 14.204-client.notlocalmachine.ru [XX.XX.XXX.XXX], pleased to
meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 10000000
250-DSN
250-AUTH LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP
quit=(
> nobodyreturn добавьте в верхнее, чтобы обратно только заголовки отвергнутых писем
возвращались.
Добавил
> настройки логгирования смотрели?
Нет, но уже смотрю!
>[оверквотинг удален]
> 250-STARTTLS
> 250-DELIVERBY
> 250 HELP
> quit
> =(
>> nobodyreturn добавьте в верхнее, чтобы обратно только заголовки отвергнутых писем
> возвращались.
> Добавил
>> настройки логгирования смотрели?
> Нет, но уже смотрю!block_bad_helo Reject messages from SMTP clients which provide a HELO/EHLO
argument which is either unqualified, or is one of our own
names (i.e., the server name instead of the client name).
This check is performed at RCPT stage and disabled for the
following cases:
- authenticated sessions,
- connections from IP addresses in class $={R}.
Currently access_db lookups can not be used to
(selectively) disable this test, moreover,
FEATURE(`delay_checks')
is required.
Читал до просветления README, полное просветление еще не наступило, но уже есть подвижки.1. Для всех FEATURES и define's обозначил хитрые кавычки сендмыла
2. Убрал нафиг divert(-1) и divert(0) - как оказалось они то и не нужны, а просто сворачивают простыню текста, что написана между ними не дают ей добавиться в конфиг.
3. Удалил local_lmtp и кусок кода:FEATURE(`local_lmtp')
FEATURE(`local_procmail')dnlпреобразовал к виду:
FEATURE(`local_procmail', `/usr/local/bin/procmail')dnl
4. Прочитал про ratecontrol и concontrol не только в разделе CONNECTION CONTROL, но и в разделе про FEATURES:
ratecontrol Enable simple ruleset to do connection rate control
checking. This requires entries in access_db of the formClientRate:IP.ADD.RE.SS LIMIT
The RHS specifies the maximum number of connections
(an integer number) over the time interval defined
by ConnectionRateWindowSize, where 0 means unlimited.Take the following example:
ClientRate:10.1.2.3 4
ClientRate:127.0.0.1 0
ClientRate: 1010.1.2.3 can only make up to 4 connections, the
general limit it 10, and 127.0.0.1 can make an unlimited
number of connections per ConnectionRateWindowSize.conncontrol Enable a simple check of the number of incoming SMTP
connections. This requires entries in access_db of the
formClientConn:IP.ADD.RE.SS LIMIT
The RHS specifies the maximum number of open connections
(an integer number).Take the following example:
ClientConn:10.1.2.3 4
ClientConn:127.0.0.1 0
ClientConn: 1010.1.2.3 can only have up to 4 open connections, the
general limit it 10, and 127.0.0.1 does not have any
explicit limit.Делаю вывод, что надо править файлик access и привести его к виду:
127.0.0 OK
localhost RELAY
this-is-my-domain.ru RELAY
GreetPause:localhost 0
GreetPause:192.168.0. 0
-----то, что выше - уже есть-----
ClientRate:127.0.0.1 0
ClientRate: 10
ClientConn:10.1.2.3 4
ClientConn:127.0.0.1 0
ClientConn: 10Только необходимо добавить время ConnectionRateWindowSize.
Теперь вопросы:
1. Я так понимаю, что я "недодобавил" в access строку, касаемо SSL, - т.е. надо написать правило, что разрешение на отсыл почты есть только у тех, кто авторизовался.
2. В чем разница между связкой ratecontrol c ConnectionRateWindowSize и confCONNECTION_RATE_THROTTLE?
ratecontrol - количество соединений в принципе в определенный промежуток времени, например в секунду, а confCONNECTION_RATE_THROTTLE - это кол-во новых соединений в секунду - ну и в чем разница?грейлистинг пока не цепляю - мне бы настроить правильно то, что имею, проверить, все ли работает, перевести на 465 порт отсылку и только тогдаааа...
Очень жду Ваших ответов и огромное спасибо lavr за активное участие в теме и помощь!
>[оверквотинг удален]
> подвижки.
> 1. Для всех FEATURES и define's обозначил хитрые кавычки сендмыла
> 2. Убрал нафиг divert(-1) и divert(0) - как оказалось они то и
> не нужны, а просто сворачивают простыню текста, что написана между ними
> не дают ей добавиться в конфиг.
> 3. Удалил local_lmtp и кусок кода:
> FEATURE(`local_lmtp')
> FEATURE(`local_procmail')dnl
> преобразовал к виду:
> FEATURE(`local_procmail', `/usr/local/bin/procmail')dnlзачем? достаточно FEATURE(`local_procmail'), by default там и путь и флаги правильные,
если память не изменяет.
Если вы хотите использовать procmail в качестве LDA, то в конец добавить:MAILER(procmail) (перед MAILER(smtp) )
> 4. Прочитал про ratecontrol и concontrol не только в разделе CONNECTION CONTROL,
> но и в разделе про FEATURES:<skipped>
> Только необходимо добавить время ConnectionRateWindowSize.
by default ConnectionRateWindowSize=60 секунд
> Теперь вопросы:
> 1. Я так понимаю, что я "недодобавил" в access строку, касаемо SSL,
> - т.е. надо написать правило, что разрешение на отсыл почты есть
> только у тех, кто авторизовался.вы до этого ничего про sendmail + auth + ssl не говорили, посему я не ведаю
что и куда надо прописать касательно SSL> 2. В чем разница между связкой ratecontrol c ConnectionRateWindowSize и confCONNECTION_RATE_THROTTLE?
rate и connection control это лишь механизмы управления и ограничения, макросы
ConnectionRateWindowSize задает общее время относительно которого rate/limit control
будут использоваться> ratecontrol - количество соединений в принципе в определенный промежуток времени, например
> в секунду, а confCONNECTION_RATE_THROTTLE - это кол-во новых соединений в секунду
> - ну и в чем разница?ну в cf/README все же расписано
> ну в cf/README все же расписаноТээкс, почитал еще раз... Просветление стало больше =)
- define(`confCONNECTION_RATE_THROTTLE', `10') - количество соединений в ед. времени в принципе.
- FEATURE(`ratecontrol') - ограничение кол-ва соединений с одного ip в ед. времени
- FEATURE(`conncontrol') - ограничение одновременных соединений с одного ipТеперь вкурил разницу =)
Ладно, если сделаю так:
ClientRate:192.168.0. 0
ClientRate: 10ClientConn:192.168.0. 0
ClientConn: 10И выставлю ConnectionRateWindowSize=1, то это адекватно будет?:)
> вы до этого ничего про sendmail + auth + ssl не говорили, посему я не ведаю
> что и куда надо прописать касательно SSLНу даа.. связка вообще у меня следующая: Sendmail+Procmail+ClamAV+SpamAssassin+CyrusSASL+OpenWebMail
В перспективе хочу прикрутить MIMEDefang и GreyListing, а также сменить OpenWebMail на RoundCube (он, говорят, ну ащеееее).
Задачи:
- Перевести на 465 порт и только на него, чтобы 25 порт вообще даже не слушался!
- Настроить нормально сендмыл (книжечку я себе скачал сендмыловскую с летучей мышью, сижу читаю)Ну и, наверно всё =) Думаю, получится неплохая почта!
>[оверквотинг удален]
> Ладно, если сделаю так:
> ClientRate:192.168.0.
> 0
> ClientRate:
> 10
> ClientConn:192.168.0.
> 0
> ClientConn:
> 10
> И выставлю ConnectionRateWindowSize=1, то это адекватно будет?:)сомневаюсь, еще раз прочитайте про ConnectionRateWindowSize, by default=60
вроде, значит значения ClientConn будут относительно этого default, если
ClientConn=10, то 60/10 = 6 в сек, я так понимаю>> вы до этого ничего про sendmail + auth + ssl не говорили, посему я не ведаю
>> что и куда надо прописать касательно SSL
> Ну даа.. связка вообще у меня следующая: Sendmail+Procmail+ClamAV+SpamAssassin+CyrusSASL+OpenWebMailну и где здесь SSL/TLS?!
если подразумевается smtp+auth, то это sendmail + cyrussasl> В перспективе хочу прикрутить MIMEDefang и GreyListing, а также сменить OpenWebMail на
> RoundCube (он, говорят, ну ащеееее).можно mimedefang или amavisd-new
> Задачи:
> - Перевести на 465 порт и только на него, чтобы 25 порт
> вообще даже не слушался!и как тогда почта будет работать? SMTP работает по 25/tcp
> ну и где здесь SSL/TLS?!
> если подразумевается smtp+auth, то это sendmail + cyrussaslДа, но sendmail собран с:
[root@mail /etc]# /usr/sbin/sendmail -d0.1 -bv root
Version 8.14.3
Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7
NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS PIPELINING SASLv2
SCANF STARTTLS TCPWRAPPERS USERDB XDEBUGПоэтому я установил OpenSSL и в конфиге сендмыла, соответственно:
define(`confCACERT_PATH', `/etc/mail/certs')dnl
define(`confCACERT', `/etc/mail/certs/cacert.pem')dnl
define(`confSERVER_CERT', `/etc/mail/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/mail/certs/sendmail.pem')dnl
define(`confCLIENT_CERT', `/etc/mail/certs/sendmail.pem')dnl
define(`confCLIENT_KEY', `/etc/mail/certs/sendmail.pem')dnl
DAEMON_OPTIONS(`Family=inet, Port=465, Name=MTA-SSL, M=s')dnlTRUST_AUTH_MECH(`LOGIN')dnl
define(`confAUTH_MECHANISMS', `LOGIN')dnlНо SSL работает по 465 порту! Получается что -
> и как тогда почта будет работать? SMTP работает по 25/tcp
- перевестить на 25 порт невозможно? или можно в конфиге, приведенном выше, изменить строчку:
DAEMON_OPTIONS(`Family=inet, Port=465, Name=MTA-SSL, M=s')dnl
на
DAEMON_OPTIONS(`Family=inet, Port=25, Name=MTA-SSL, M=s')dnl
и все будет пучком? Будут юзаться сертификаты?
Ну даа... я оочень большой новичек в этом деле... не стыдно признаться...
>[оверквотинг удален]
> define(`confAUTH_MECHANISMS', `LOGIN')dnl
> Но SSL работает по 465 порту! Получается что -
>> и как тогда почта будет работать? SMTP работает по 25/tcp
> - перевестить на 25 порт невозможно? или можно в конфиге, приведенном
> выше, изменить строчку:
> DAEMON_OPTIONS(`Family=inet, Port=465, Name=MTA-SSL, M=s')dnl
> на
> DAEMON_OPTIONS(`Family=inet, Port=25, Name=MTA-SSL, M=s')dnl
> и все будет пучком? Будут юзаться сертификаты?
> Ну даа... я оочень большой новичек в этом деле... не стыдно признаться...мух от котлет отделите и все станет понятно.
sendmail может работать как клиент при соединение с другим MTA (исходящая почта или со SMART хостом, а может как сервер при входящих соединениях от MUA или MTA для которых он
smart host)
> мух от котлет отделите и все станет понятно.
> sendmail может работать как клиент при соединение с другим MTA (исходящая почта
> или со SMART хостом, а может как сервер при входящих соединениях
> от MUA или MTA для которых он
> smart host)Ну ладно. Эт я понимаю. МТА устанавливает соединения через 25 порт. Прием: идет коннект на 25ый порт, потом принимается письмо, закрывается соединение и бла бла бла... Но, отправку то через 25ый порт запретить можно? При этом, исходя из конфига получается, что обязательно будут заюзаны сертификаты (мы перешли на 465ый порт) -> спамеры врят ли это будут юзать =) Пускай будут пытаться прислать, но зато отрелеить не смогут, потому что 25ый порт закрыт. Или sendmail'у нужен обязательно именно 25 порт и для отправки тоже?
Просто, например, если я укажу в бате или аутлуке порт отправки 465 при текущей конфигурации, приму сертификат и попытаюсь отправить письмо - оно уйдет.
Кстати по поводу syslog. В конфиге ничего не сказать про maillog, вернее, - ничего примечательного. Как я понимаю, просто сказано, что mail события надо записывать туда то...:
++++++++++++++
# $FreeBSD: src/etc/syslog.conf,v 1.28.20.1 2009/04/15 03:14:26 kensmith Exp $
#
# Spaces ARE valid field separators in this file. However,
# other *nix-like systems still insist on using tabs as field
# separators. If you are sharing this file between systems, you
# may want to use only tabs as field separators here.
# Consult the syslog.conf(5) manpage.
*.err;kern.warning;auth.notice;mail.crit /dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
auth.info;authpriv.info /var/log/auth.log
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
ftp.info /var/log/xferlog
cron.* /var/log/cron
*.=debug /var/log/debug.log
*.emerg *
# uncomment this to log all writes to /dev/console to /var/log/console.log
#console.info /var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
# touch /var/log/all.log and chmod it to mode 600 before it will work
#*.* /var/log/all.log
# uncomment this to enable logging to a remote loghost named loghost
#*.* @loghost
# uncomment these if you're running inn
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice /var/log/news/news.notice
!startslip
*.* /var/log/slip.log
!ppp
*.* /var/log/ppp.log
++++++++++++++Черт с ним, хочу узнать уровень логирования sendmail.
Смотрю в sendmail.cf:
[root@mail /etc/mail]# more sendmail.cf | grep LogLevel
O LogLevel=9
#O Milter.LogLevelВижу, что для мильтера вообще лог левел закоменчен... 9ка - это по дефолту, так как в mc-файле я не определял confLOG_LEVEL.
Про уровни логирования sendmail написано в op.me, но, блин, там свихнуться можно...
Ну да ладно. Добавил наконец для ratecontrol и conncontrol записи в access:
ClientRate:192.168.0. 0
ClientRate:127.0.0.1 0
ClientRate: 10
ClientConn:127.0.0.1 0
ClientConn:192.168.0. 0
ClientConn: 10Попробую пока так. Лог очистил. Посмотрим, что будет с утра...
И, черт, я так и не понял, как проверить работоспособность FEATURES =)
Я не специалист по sendmail, но думаю что для ограничения количества подключений наверное есть опция конфигурационного файла, и контроль количества процессов потомков наверное не для этого.
А журналы сервера большие - ну дак у кого они маленькие ;), включайте проверки - spf, sender callout, verify helo.