LINUX.ORG.RU
ФорумAdmin

SMTP-авторизация и milter-greylist


0

0

Добрый день.

Есть почтовый сервер на Sendmail с работающим milter-greylist (каждому отправителю сообщения предлагается попробовать ещё раз через 10 минут). Всё работает нормально только одна проблема -- невозможно отправить сообщение через этот сервер зарегистрированным пользователям.

Когда пользователь находится во внутренней сети (с IP 192.168.0.XX) всё в порядке, так как этот диапозон занесён в белый список greylisting'а. Но вот когда пользователь пробует отправить сообщение через наш сервер с внешнего IP-адреса (и из Microsoft Outlook), то тут наш сервер честно предлагает ему "попробовать ещё раз". Разумеется Outlook этого не делает, а сразу же присылает уведомление о невозможности доставки сообщения.

Появилась идея связать белый список greylisting'а с прохождением smtp-авторизации. Возможно ли это? Если да, то что для этого нужно? Т. е. если пользователь прошёл авторизацию, то он может отправлять сообщения без каких-либо таймаутов.


В своё время для этого нужно было мало-мало патчить milter-greylist, как обстоит с ним дело сейчас, не знаю.

Вот тут что-то такое, вдруг пригодится.

451a452,466
> 			const char *sym_assassin = smfi_getsymval(ctx, "{assassin}");
> 			if (sym_assassin != NULL)
> 			{
> 				debug(D_MISC,"sym_assassin=%s",sym_assassin);
> 				if ( strcmp(sym_assassin,"MILD") == 0 )
> 					reject_score = 100;	
> 				if ( strcmp(sym_assassin,"NORMAL") == 0 )
> 					reject_score = 9;	
> 				if ( strcmp(sym_assassin,"STERN") == 0 )
> 					reject_score = 4;	
> 				debug(D_MISC,"reject_score now =%d",reject_score);
> 			}
> 			else {
> 				debug(D_MISC,"sym_assassin macro == NULL");
> 			}
799a815,823
>   if (auth) {
>     const char *auth_authen = smfi_getsymval(ctx, "{auth_authen}");
> 
>     if (auth_authen) {
>       debug(D_MISC, "auth_authen=%s", auth_authen);
>       return SMFIS_ACCEPT;
>     }
>   }
> 
932c956
< 				$.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
---
> 				$.$?{auth_authen}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
970a995
> 

anonymous
()

Посмотрел я на это и вспомнил, что первая часть - не об этом, то есть смотреть на ту часть, где auth_authen. Совсем мало.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.