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

Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-26 16:58:38
maxrad
Добрый всем день! Попробую еще раз задать вопрос про интеграцию exim + winbind
Samba была собрана по статье http://www.lissyara.su/?id=1180
вот ее конфиг

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

[global]
  workgroup = BEER
  realm = BEER.SARATOV.RU
  netbios name = fs4
  server string = Samba Server %v
  security = domain
  auth methods = winbind
  map to guest = Bad User
  password server = 10.0.1.200
  encrypt passwords = yes
  printer admin = root 
  client NTLMv2 auth = Yes
  log file = /var/log/samba/log.%m
  max log size = 50
  client signing = Yes
  disable spoolss = Yes
  preferred master = No
  local master = No
  domain master = No
#  template homedir = /usr/home/winnt/%U/Maildir/new
#  temlate shell = /bin/bash
  dns proxy = No
  idmap uid = 10000-20000
  idmap gid = 10000-20000
  winbind use default domain = Yes
  inherit acls = Yes
  hosts allow = 10.0.1., 127.
  map acl inherit = Yes
  case sensitive = No
  nt acl support = yes
  os level = 10
  socket options = TCP_NODELAY
  load printers = yes
  printing = cups 
  printcap name = /etc/printcap
  guest account = nobody
  guest ok = yes
  winbind enum users = yes
  winbind enum groups = yes
#  debug level = 3 

[printers]
  comment = All Printers
  path = /var/spool/samba
  printable = Yes
  browseable = No
  use client driver = yes
  public = yes

[tmp]
  comment = Temporary file space
  path = /tmp
  read only = No
  create mask = 0666
  create mode = 666
  directory mode = 666
  directory mask = 0777
  guest ok = Yes

[films]
  comment = Films, films, films
  path = /var/shares/films
  read list = "@KK\Domain Users"
  write list = "@KK\Domain Admins"
  read only = No
  create mode = 666
  directory mode = 666
  create mask = 0666
подключался к домену через винбинд, керберос не использовал
Далее конфиг exim

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

primary_hostname = fs4.beer.saratov.ru
#ldap_default_servers = 10.0.1.207::389
#LDAP_AUTH = user="cn=exim,ou=system,dc=l1523,dc=ru" pass="123456"
domainlist local_domains = beer.saratov.ru
domainlist relay_to_domains = 
hostlist   relay_from_hosts = localhost:127.0.0.0/8:10.0.1.0/24
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
av_scanner = clamd:/var/run/clamav/clamd.sock
#spamd_address = 127.0.0.1 783
#tls_advertise_hosts = *
#tls_certificate = /usr/local/etc/ssl/mail.pem
#tls_privatekey = /usr/local/etc/ssl/mail.pem
qualify_domain = beer.saratov.ru
qualify_recipient = beer.saratov.ru
allow_domain_literals = false
exim_user = mailnull
exim_group = mail
never_users = root
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 45m
timeout_frozen_after = 7d
freeze_tell = root@exim
helo_accept_junk_hosts = 10.0.1.0/24
auto_thaw = 1h
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"
smtp_accept_max = 20
smtp_accept_max_per_connection = 4
smtp_connect_backlog = 30
smtp_accept_max_per_host = 4
split_spool_directory = true
remote_max_parallel = 5
return_size_limit = 70k
message_size_limit = 20M
helo_allow_chars = _
smtp_enforce_sync = true
log_selector = \
    +all_parents \
    +connection_reject \
    +incoming_interface \
    +lost_incoming_connection \
    +received_sender \
    +received_recipients \
    +smtp_confirmation \
    +smtp_syntax_error \
    +smtp_protocol_error \
    -queue_run
syslog_timestamp = no

begin acl

acl_check_rcpt:
  accept  hosts = :
  deny    message       = "Nedopustimye simvoly"
          domains       = +local_domains
          local_parts   = [.] : .*[@%!/|]
  deny    message       = "Nedopustimye symvoly"
          domains       = !+local_domains
          local_parts   = [./|] : .*[@%!] : .*/\\.\\./

  deny    message       = "HELO/EHLO obyazano byt po SMTP RFC"
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

  deny    message       = "Ne nado pihat svoy  IP v kachestve HELO!"
          hosts         =  *:!+relay_from_hosts
          condition     = ${if eq{$sender_helo_name}\
                          {$sender_host_address}{true}{false}}

  deny    condition     = ${if eq{$sender_helo_name}\
                          {$interface_address}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "eto moy IP-adress! phshol von!"

  deny    condition     = ${if match{$sender_helo_name}\
                          {\N\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1:!localhost:*
          message       = "V HELO ne mogut byt tolko chifry!"

  deny    message       = "Ne nravitsya mne vash host.."
          condition     = ${if match{$sender_host_name} \
                               {adsl|dialup|pool|peer|dhcp} \
                               {yes}{no}}
  accept  authenticated = *

  warn
        set acl_m0 = 25s
  warn
        hosts = +relay_from_hosts
        set acl_m0 = 0s

  accept  domains       = +local_domains
          endpass
          message       = "V etom domene net takogo polzovatelya"
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = "Moya servera ne znat marshrut na etot host"
          verify        = recipient

  accept  hosts         = +relay_from_hosts
  deny    message       = "Svoboden. Eto ne openrelay"
acl_check_data:
  deny malware = * 
  message = "In e-mail found VIRUS - $malware_name"
   
 #deny message = "this is spam - denied"
 # condition = ${if match{$message_body} \
#              {105[-_]*51[-_]*86|778[-_]*98[-_]*94} \
#              {yes}{no}}
  accept

begin routers

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 10.0.1.0/24 : 127.0.0.0/8
  no_more

system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup{$local_part}lsearch{/etc/aliases}}
    user = mailnull
    group = mail
    file_transport = address_file
    pipe_transport = address_pipe
 localuser:  
 driver = accept  
 check_local_user    
 transport = local_delivery
 cannot_route_message = Unknown user
 
begin transports

remote_smtp:
    driver = smtp
#dovecot_delivery:
#  driver = pipe 
#  command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain  
 # message_prefix = 
 # message_suffix =
 # delivery_date_add  
 # envelope_to_add 
 # return_path_add  
 # log_output
 # user = mailnull
     

local_delivery: 
 driver = appendfile  
 check_string = ""
 create_directory  
 delivery_date_add  
 directory = /usr/home/${local_part}/Maildir
    #directory_mode = 770
    envelope_to_add
    user = mailnull
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0600

#    quota = ${lookup ldap{LDAP_AUTH \
#	    ldap:///ou=exim,dc=beer,dc=saratov,dc=ru?mailQuotaSize? \
#            sub?(&(accountStatus=active) \
#	    (mail=${quote_ldap:$local_part}$ \
#	    {quote_ldap:@}${quote_ldap:$domain}))}{$value}fail}
#    quota_warn_message = "\
#    To: $local_part@$domain\n\
#    From: postmaster@$domain\n\
#    Subject: Your maildir is going full\n\
#    This message is automaticaly gnerated by your mail server.\n\
#    This means, that your mailbox is 80% full. If you would \n\
#    override this limit new mail would not be delivered to you!\n\n\
#    Please, clean your mailbox."
#    quota_warn_threshold = 80%
#    return_path_add

address_file:
    driver = appendfile
    delivery_date_add
    envelope_to_add
    return_path_add

address_pipe:
  driver = pipe
  return_output

address_reply:
  driver = autoreply

begin retry

*                    quota
*                    *       F,2h,15m; G,16h,1h,1.5; F,4d,6h


begin rewrite


begin authenticators
plain_pam:   
     driver                  = plaintext
     public_name             = PLAIN 
     server_prompts          = : 
     server_condition        = ${if pam{$auth2:${sg{$auth3}{:}{::}}}}   
     server_set_id           = $auth2
     
login_pam:
        driver            = plaintext     
      public_name             = LOGIN  
        server_prompts          = Username:: : Password::
    server_condition        = ${if pam{$auth1:${sg{$auth2}{:}{::}}}}  
      server_set_id           = $auth1

auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
 server_secret = ${if pam{$auth1:${sg{$auth2}{:}{::}}}}
   server_set_id = $1
Что пытаюсь сделать:
отправить письмо с локальной машины домена beer.saratov.ru с адреса типа rtt@beer.saratov.ru на пользователя в домене test@beer.saratov.ru
клиент пиьсмот отправляет, но тут же приходит письмо с ошибкой, что письмо не доставлено. В maillog есть запись:

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

no such file or directory: failed to chdir /home/BEER/test
Папка /usr/home/BEER существует, на нее даны права группа mail, пользователь mailnull.

Помогите, где порыть? Вопрос нерешается уже 3 недели! Спасибо, что прочитали :)

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-26 17:08:51
Alex Keda
дебаг?

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-26 17:17:37
maxrad
Дебаг это что значит? Что надо сделать? Я не очень грамотный, прошу не пинать.

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-27 17:33:36
maxrad
Ну вот, опять молчание...
Вобщем че наделал я еще:
При попытке зайти с машины домена и попробовать обновить список имап папок папки на юниксе делаются. После этого экзим может отсылать письма, хотя до этого писал ошибку, описанную выше сообщением. (хотя и присутствует в конфиге exim запись create_directory). Письма кладутся куда надо, однако при отсылке письма с локальной машины он не может переместить письмо в папку отправленные, а когда захожу на юникс в папку почты, то вижу там нормальные набоор папок типа cur, new .Trash и вижу папку .$VNBFGFSDFSDHGDFGHADSFGHH куда складываются письма отправленные. Ниче не понимаю, неужели некому мне помочь??

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 11:33:47
maxrad
Изображение
Вот кусок дебага почему он не хочет создавать директорию. Может щас у кого какие мысли будут?

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 11:37:24
Alex Keda
почему-то мен кажется, что такой директории нету...

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 11:40:42
maxrad
ЕЕ действительно нету. Однако в конфиге exim присутствует опция создать директорию. В чем загвоздка?

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

local_delivery: 
driver = appendfile  
check_string = ""
create_directory  
delivery_date_add  
directory = /usr/home/${local_part}/Maildir
    #directory_mode = 770
    envelope_to_add
    user = mailnull
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0600

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 11:45:09
Alex Keda
владелец директории home - кто? права на неё какие?
незнаю от кого создаёт экзим в вашем случае, но подозреваю что от пользователя у которого не хватает прав на это.
==========
и хватит меня в аське доставать.

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 11:49:13
maxrad
Если бы прав не хватало, он писал бы другое сообщение - Permission denied. Такая надпись появлялась, когда на папку home были права рута. Я поменял права на home - они стали rwx-r-x-r-x owner mailnull group mail. Теперь пишет то что пишет - не могу создать директорию

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 11:53:10
Alex Keda
для эксперименту, попробуй 777 для начала

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 12:02:21
maxrad
поставил на директорию home rwxrwxrwx (777) в опциях exim поставил directory_mode= 0777. Результат, к сожалению тот же

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 12:29:01
Alex Keda

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

    user = mailnull
    group = mail
а доставляешь к тесту...
несходиться, не замечаешь?
посомтри как реализовано в статье где экзим и системные юзеры. у тебя должно быть также.

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 12:54:14
maxrad
Если ссылка идет на эту статью http://www.lissyara.su/?id=1181, то там я заметил что не используется в конфиге транспорта user=mailnull. Я закомментировал эту строку, однако все по прежнему... Может что-то еще?

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-11-29 18:21:41
maxrad
Не понимаю... ну не говорите загадками, скажите где копать? Если доставляю к тесту, но директорию создаю от mailgroup - что в этом плохого?

Re: Исче раз про exim + winbind + AD 2003

Добавлено: 2008-12-03 16:54:16
maxrad
В общем, проблема свелась к одному. exim почему то сильно зависит от папки указаной в самбе, а именно от

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

template homedir = /usr/home/%U
причем не важно, что ты указал в конфиге exim в local_delivery - все равно он пытается создать директорию именно по образу самбы. Может это кого наведет на нужную мысль и подскажет че делать?
Если пользователь до этого создал почту и зашел в нее (dovecot создал все дерево папок) то почту этому пользователю отолсчать можно. Если пользователь не заходил, то почту ему не отправить - приходит письмо содержания

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

  test@beer.saratov.ru
    retry timeout exceeded