Страница 1 из 1

помогите настроить почтовый сервер

Добавлено: 2007-01-17 17:26:45
Dmitry
помогите пожалуйста решить проблемку:
имеется небольшая сеть (~150ПК) в которой работает Windows 2003 (контроллер домена) и FreeBSD 6.0 - выполняет функцию файлового сервера (Samba c авторизацией пользователей из Active Directory).
Установил на FreeBSD postfix (используя IMAP) , который бы также авторизировал пользователей из AD (т.е. по LDAP);
К большому сожалению ничего не получается :(
Подскажите пож-ста как эту задачку можно решить?
Заранее спасибо !

Добавлено: 2007-01-17 22:45:56
Alex Keda
exim умеет ldap...

Добавлено: 2007-01-20 18:36:49
bakake
Делал похожую конфигурацию, но на exim :-) Правда встроенный LDAP у меня почему то отказался нормально работать. Вывернулся процедуркой на встроенном perl. Процедурку могу есессно предоставить. Однако, если там стоит samba с security = ADS, то не понятно зачем вообще LDAP нужен, совершенно замечательно все через pam работает. Я такое тоже делал, но тоже на exim :-)

Добавлено: 2007-01-22 8:53:19
Abigor
Процедурку могу есессно предоставить
интересно взглянуть

Добавлено: 2007-01-22 9:24:16
Гость
bakake писал(а):Делал похожую конфигурацию, но на exim :-) Правда встроенный LDAP у меня почему то отказался нормально работать. Вывернулся процедуркой на встроенном perl. Процедурку могу есессно предоставить. Однако, если там стоит samba с security = ADS, то не понятно зачем вообще LDAP нужен, совершенно замечательно все через pam работает. Я такое тоже делал, но тоже на exim :-)
если не сложно, можно подробности выслать на маил: dmi3@gsspo.ru
заранее благодарен!

Добавлено: 2007-01-22 15:55:57
bakake
это собсно perl

Код: Выделить всё

#!/usr/bin/perl -w

use strict;
use Net::LDAP;
use Net::LDAP::Message;


my $ldap_server = 'pdc.mydomain.local';
my $ldap_principal = '@mydomain.local';

sub print_error
{
  my ($message) = @_;
  Exim::log_write('ERROR: ' . $message);
#  warn 'ERROR: ' . $message . "\n";
}

sub ldap_auth
{
  my ($username, $passwd) = @_;
  my $bind_dn = $username . $ldap_principal;
  my $ldap;
  my $mesg;

  $ldap = Net::LDAP->new($ldap_server);
  unless ($ldap)
  {
    print_error("Unable connect to ldap server " . $ldap_server);
    return 0;
  }

  $mesg = $ldap->bind($bind_dn, password => $passwd);
  unless ($mesg && $mesg->code == 0)
  {
    print_error("Invalid username/password");
    return 0;
  }
  return 1;
}
такое и аналогичное в конфиге exim

Код: Выделить всё

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = {perl{ldap_auth}{$1}{$2}}
  server_prompts = :
  server_set_id = $2
PS
CRAM_MD5 с такой штукой работать не будет :)

помогите настроить почтовый сервер

Добавлено: 2007-01-22 16:35:12
Dmitry
спасибо!
попробую поразбираться...