smtp proxy

Anton Yuzhaninov citrin at citrin.ru
Thu Apr 19 13:03:40 MSD 2007


Hello Andrey,

You wrote on Thursday, April 19, 2007, 11:13:15 AM:

AYO> 1. Из неочевидного: невозможно назначить access_log и error_log внутри
AYO> секций mail{} и server{} внутри mail.

access_log только для http, и определяется эта директива в модуле ngx_http_log_module

А куда добавить описание error_log пока не придумал :)

Что касается access_log, то можно писать его так:

http {
    log_format mail '[$time_local] $http_auth_user@$http_client_ip by $http_auth_protocol status: "$sent_http_auth_status
" backend: $sent_http_auth_server:$sent_http_auth_port attempt: $http_auth_login_attempt auth: $http_auth_method';
    access_log  /var/log/nginx/access.log mail;

    server {
        listen       127.0.0.1:7000;
        error_page 502 504 = /null;
        location = /null {
                internal;
                add_header Auth-Status "Try later";
                return 204;
        }
        location /auth.cgi {
                fastcgi_pass   unix:/var/run/fcgi/auth;
                allow 127.0.0.1/32;
                deny  all;
        }
    }
}

mail {
     auth_http    localhost:7000/auth.cgi
     .....
}
    
AYO> 2. http://citrin.ru/nginx:ngx_mail_core_module - небольшая ошибка в
AYO> документации:

>> *smtp_auth
>> syntax*: pop3_auth /*[login] [plain] [cram-md5]*/
>>
AYO>               ^^^^^^^^^^^^^^

Спасибо, поправил.

AYO> 3. А вообще smtp без авторизации - нельзя включить? У меня почему-то
AYO> ругается, что
AYO> 530 5.7.1 Authentication required

Нет. Такой функциональности не предусмотрено в данном модуле.

Клиентов с обязательной авторизации и без неё нужно разносить по
разным ip и/или портам.

В целом хочу заметить, что использовать данный smtp-proxy имеет смысл
только ради авторизации через http сервер (где можно гибко задавать
различные условия и быстро их менять).

Загрузку сервера он снижает только при очень специфичной нагрузке -
когда идет много подключений от зомби (трояны/вирусы), которые очень
медленно подключаются (и большая часть из них просто отваливается по
таймауту), потом очень медленно пытаются что то отправить (без
авторизации там, где она обязательна). nginx может не напрягаясь
посылать далеко тысячи таких зомби и до MTA (postfix/exim/sendmail)
допускать только тех, кто указал правильный пароль.

Что касается проксирования smtp для входящей почты (совсем без
авторизации), то такая функциональность планируется. Но не факт, что
можно будет принимать на одной паре ip/port подключения с авторизацией
и без.

В больших почтовых системах это все равно разные сервера, а в
маленьких и без nginx жить можно...

-- 
 Anton Yuzhaninov.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1781 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070419/f5cc4e5c/attachment.bin>


More information about the nginx-ru mailing list