AstraLinux почтовый сервер

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-16 12:07:19

Здравствуйте.
Сразу прошу прощения за глупый вопрос.
А вопрос вот в чем. Есть ОС AstraLinux. В ней уже установлены exim4, dovecot и Thunderbird. Мне необходимо настроить почтовый сервер для отправки почты по локальной сети.
Прочитал множество мануалов по данной теме, но либо описана простейшая настройка exim, либо слишком сложная с антивирусами и антиспамами. Ни то, ни другое не помогает.
Сообщения в самому себе могу посылать, а вот подключится с Thunderbird не получается, а так же не получается подключиться с другого компа к серверу почты.

P.S. файла mailer.conf у меня в ОС нет.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-16 16:45:23

серьезная у вас задача, серьезный подход, очень много вы уже сделали. И очень много исходных данных предоставили

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-16 18:14:59

а каких Вам не хватает данных? Вам надо ссылки на те источники, с которых я пробовал настаивать exim? или выложить конфигурационный файл?
Я сразу извинился за глупый вопрос - но не получается настроить почтовый сервер под AstraLinux.

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-16 19:18:45

1. Описание задачи - самы важный этап. Поможет Вам и "вашим помошникам" четко уяснить что Вам хочется.
2. Что сделано и что уже работает
3. Что не работает, результаты логи, выводы.

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-16 19:27:45

Мне казалось, что я описал все это, но все же опишу еще раз.
1. Есть ОС AstraLinux (Debian 64 bit), на которой установлены следующие пакеты: exim4, dovecot и Thunderbird.
Мне необходимо настроить почтовый сервер на моем компьютере, чтобы он являлся сервером почты для остальных локальных компьютеров;
2.Exim я настроил и теперь могу сам себе отправлять через консоль сообщения.
3. Подключиться из Thunderbird к серверу я не могу - пишет что в соединении отказано. Соответственно, я не могу отправлять почту на серверный компьютер с локальных машин.

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-16 19:53:39

С такими исходными данными - соответствующий ответ: У вас не настроен экзим, довекот и почтовый клиент - настраивайте.
За небольшие $ , при условии удаленной работы - Вам помогут.

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-16 19:59:33

Офигенный ответ для форума! Вы мне так помогли, что у меня сразу все заработало, да еще настроился антивирус, антиспам и стал работать в интернете.
Спасибо Вам Большое!!!

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-16 20:07:49

Вижу, что не дошло.

Пример вопроса для оленей.

Проблема: не работает отправка почты
Настраиваю exim для отсылки почты. Домен такой-то. MX настроен. Без авторизации. В фаерволе порт открыт.
Выкладывю конфиг, лог проблемной части.
Что делалось: менялись такие-то опции в конфиге (указано), проблема осталась.

Пример http://forum.lissyara.su/viewtopic.php?f=20&t=36737

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-16 20:14:52

Допустим пришлю я конфиги exim - что Вам от этого легче будет?! Он же рабочий. Домен: astra.
В логах он пишет 3 строки, которые информируют о приходе сообщения, его доставке получателю и Complited.
У меня работает exim, но дальнейшая часть не работает главная задача я не понимаю какких ему компонент не хватает для правильной работы!!!!!

И между прочим - я Вас не оскорблял!

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-16 20:27:15

Поверьте, столько ответов на ТАК ПОСТАВЛЕНЫЙ вопрос Вам никто не даст. Посему, откланиваюсь.

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-16 20:29:24

Спасибо за потерянное мною и Вами время.

rayder
лейтенант
Сообщения: 661
Зарегистрирован: 2008-12-18 16:29:43
Откуда: Ukraine/Kiev
Контактная информация:

Re: AstraLinux почтовый сервер

Непрочитанное сообщение rayder » 2012-10-17 0:33:04

А можно я тоже не буду тратить свое время, и не давать глупых ответов на глупые вопросы?
Вам сказали что нужно сделать, дабы вас поняли... но проблема в том, что вы понимать не хотите
ЗЫ. и разберитесь уже с тем что у вас почту принимает, а что отдает пользователю. И вообще разберитесь как оно (почта) работает
Человеку свойственно ошибаться, но для нечеловеческих ляпов нужен компьютер.

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-18 11:21:34

Прошу прощения за мою упертость :st:. Я все обдумал, переварил и буду исправляться. Напишу как было показано в примере для оленей.

Есть ОС AstraLinux (Debian 64 bit). Необходимо настроить почтовый сервер.

Настраивал по данной теме: http://www.lissyara.su/articles/freebsd ... t_+_pgsql/.
Пропустил сборку exim'a и dovecot'a , т.к. в системе они уже были. Также в изменил домен с "testim.ua" на "astra".

Конфиг Exim'a:

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

######################################################################
#                  Runtime configuration file for Exim               #
######################################################################


CONFIG_PREFIX=/etc/exim4

hide pgsql_servers = localhost/exim/exim/exim

domainlist local_domains =${lookup pgsql{SELECT domain FROM local_domain}}



hostlist host_reject = ${lookup pgsql{SELECT domain FROM hostreject}}

domainlist relay_to_domains = ${lookup pgsql{SELECT hosts FROM relaytohosts}}

hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/16

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime

exim_user = exim
exim_group = exim

never_users = root

spool_directory = /var/spool/exim

split_spool_directory


host_lookup = !192.168.0.0/16 : *

rfc1413_query_timeout = 0s

smtp_accept_max = 50
smtp_connect_backlog = 40
smtp_accept_max_per_host = 10
smtp_accept_queue = 22
smtp_accept_queue_per_connection = 10
recipients_max = 16
recipients_max_reject = true
message_size_limit = 20M
accept_8bitmime

ignore_bounce_errors_after = 12h

timeout_frozen_after = 1d

tls_certificate = CONFIG_PREFIX/mailed.crt
tls_privatekey = CONFIG_PREFIX/mailed.key
tls_advertise_hosts = *
tls_verify_certificates = *

######################################################################
#                       ACL CONFIGURATION                            #
#         Specifies access control lists for incoming SMTP mail      #
######################################################################

begin acl

acl_check_rcpt:

  accept  hosts = :

  accept hosts = 127.0.0.1 : 192.168.0.0/16 : 127.0.1.1


    deny    message       = "FUCK YOU"
            !senders      = :
            condition     = ${if eq{$sender_host_name}{}{yes}{no}}


  deny    message       = "???????????? ??????? ? ??????"
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]

  deny    message       = "???????????? ??????? ? ??????"
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

  accept  local_parts   = postmaster
         domains       = +local_domains

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

  
  accept  authenticated = *

  deny    message       = "?? ???? ?????? ???? IP ? ???????? 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       = "??? ??? IP-?????! ???? ?????!"

  deny    condition     = ${if match{$sender_helo_name}\
                          {\N^\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1:!localhost:*
          message       = "? HELO ?? ????? ???? ???? ?????!"

  deny    message       = "?? ???????? ??? ??? ????..."
          condition     = ${if match{$sender_host_name} \
                               {adsl|dialup|pool|peer|dhcp} \
                               {yes}{no}}
  deny    message = "host in blacklist- $dnslist_domain \n $dnslist_text"
#          dnslists      = opm.blitzed.org : \
#                          proxies.blackholes.easynet.nl : \
#                          cbl.abuseat.org : \
#                          bl.spamcop.net : \
#                          bl.csma.biz : \
#                          dynablock.njabl.org :

	dnslists      =  :


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


   accept  domains       = +local_domains
          endpass
          message       = "? ???? ?????? ??? ?????? ????????????"
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = "??? ??????? ?? ????? ??????? ?? ???? ????..."
          verify        = recipient
  
accept  hosts         = +relay_from_hosts
        deny hosts         =!+relay_from_hosts

  deny   hosts          = +host_reject
         message        = You are banned. Go away.

  deny    message       = ?? ?? ????????? ".$found_extension" \
                          ?????????????? ???????? \
                          ??? ???????? ????????? ??.
          demime = bat:btm:cmd:com:cpl:dll:exe:lnk:msi:pif:prf:reg:scr:vbs:url


  deny    message       = "????????. ??? ???? ?? ?????????."

  acl_check_mime:

  warn decode = default

  deny message = Blacklisted file extension detected
       condition = ${if match \
          {${lc:$mime_filename}} \
          {\N(\.wav|\.cpl|\.pif|\.bat|\.scr|\.lnk|\.com)$\N} \
                     {1}{0}}

  deny message = Sorry, noone speaks chinese here
       condition = ${if eq{$mime_charset}{gb2312}{1}{0}}

  accept

#acl_check_virus:
        
  #      warn  message = X-Spam-Score: $spam_score ($spam_bar)
    #            spam = nobody:true

        # spamasssasin'??
      #  warn message = X-Spam-Scanned: Yes
        # warn message = X-Spam-Scanner: SpamAssassin running

        #deny  message   = Message rejected: virus found. \
#Your message was successfully trashed.
  #                  hosts       = *
    #                malware     = *
      #  accept

######################################################################
#                      ROUTERS CONFIGURATION                         #
#               Specifies how addresses are handled                  #
######################################################################
#     THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT!       #
# An address is passed to each router in turn until it is accepted.  #
######################################################################

begin routers

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

system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup pgsql{select alias from aliases \
           where mail ='$local_part'}{$value}fail}
  user = exim
  group = exim
  #file_transport = address_file
  #pipe_transport = address_pipe


userforward:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup pgsql{SELECT recipients FROM userforward \
         WHERE local_part='${local_part}'}}

############################################################################




localuser:
  driver = accept
  condition = ${lookup pgsql {select uid from \
            accounts where login = '$local_part'}{yes}{no}}
  transport = local_delivery
  cannot_route_message = Unknown user

######################################################################
#                      TRANSPORTS CONFIGURATION                      #
######################################################################
#                       ORDER DOES NOT MATTER                        #
#     Only one appropriate transport is called for each delivery.    #
######################################################################

begin transports

remote_smtp:
  driver = smtp

local_delivery:
  driver = appendfile
  directory = ${lookup pgsql{select maildir from \
            accounts where login = '$local_part'}{$value}fail}
  create_directory
  directory_mode = 0770
  maildir_format
  delivery_date_add
  envelope_to_add
  return_path_add
  group = 26
  user = 26
  mode = 0660
  no_mode_fail_narrower
  quota = ${lookup pgsql{select mailquota from \
        accounts where login = '$local_part'}{$value}fail}M
  quota_warn_message = "\
          To: $local_part\n\
        From: postmaster@test.ru\n\
        Subject: Your maildir is going full\n\
        This message is automaticaly gnerated by your mail server.\n\
        This means, that your mailbox is 75% full. If you would \n\
        override this limit new mail would not be delivered to you!\n"
  quota_warn_threshold = 75%

address_file:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add


address_reply:
  driver = autoreply

######################################################################
#                      RETRY CONFIGURATION                           #
######################################################################

begin retry

# This single retry rule applies to all domains and all errors. It specifies
# retries every 15 minutes for 2 hours, then increasing retry intervals,
# starting at 1 hour and increasing each time by a factor of 1.5, up to 16
# hours, then retries every 6 hours until 4 days have passed since the first
# failed delivery.

# Address or Domain    Error       Retries
# -----------------    -----       -------

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


######################################################################
#                   AUTHENTICATION CONFIGURATION                     #
######################################################################


begin authenticators
lookup_cram:
        driver = cram_md5
        public_name = CRAM-MD5
        server_secret = ${lookup pgsql {select password \
                      from accounts where login='$1'}{$value}fail}
        server_set_id = $1
login:
        driver = plaintext
        public_name = LOGIN
        server_prompts = Username:: : Password::
        server_condition = ${lookup pgsql {select login \
          from accounts where login='$1' and password='$2'}{yes}{no}}
        server_set_id = $1


# End of Exim configuration file
Конфиг dovecot.conf:

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

#!/bin/sh

base_dir = /var/run/dovecot/

protocols = imap pop3

listen = *

ssl = no

disable_plaintext_auth = no


shutdown_clients = yes

info_log_path = /var/log/dovecot

log_timestamp = "%b %d %H:%M:%S "

syslog_facility = mail

login_dir = /var/run/dovecot/login

login_chroot = yes

login_user = dovecot

login_process_size = 64

login_process_per_connection = yes

login_processes_count = 3

login_max_processes_count = 64

login_max_processes_count = 128

login_greeting = dovecot MUA ready

login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c

login_log_format = %$: %s

verbose_proctitle = yes

first_valid_uid = 25

first_valid_gid = 0
mail_privileged_group = exim

mail_location = maildir:/d/%n

protocol imap {

  
#  mail_plugins = quota trash
#  mail_plugin_dir = /usr/local/lib/dovecot

  imap_client_workarounds = delay-newmail outlook-idle \
                             netscape-eoh tb-extra-mailbox-sep
}


protocol pop3 {
    pop3_uidl_format = %08Xu%08Xv

  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}


protocol lda {
  postmaster_address = postmaster@astra

  auth_socket_path = /var/run/dovecot/auth-master
}



auth default {
  mechanisms = plain

   socket listen {
     master {
       path = /var/run/dovecot/auth-master
       mode = 0600
       user = exim
       #group = mail
     }
   }

auth_debug = yes

  passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }

  userdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }

}


plugin {
trash = /etc/dovecot/dovecot-trash.conf
}
Конфиг dovecot-sql.conf:

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

driver = pgsql
connect = host=localhost dbname=exim user=exim password=exim
default_pass_scheme = PLAIN
password_query = SELECT login as username, password FROM accounts WHERE login = '%n'
user_query = SELECT maildir as home,1003 as uid,1003 as gid FROM accounts WHERE login = '%n'
отправляю сообщение командой:

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

echo "privet" | mail -s Topic test@astra 
Письмо сохраняется в каталоге:

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

/d/test/new/
Теперь перехожу к Thunderbird. Создаю учетную запись test@astra с протоколом POP3. При отправке письма на адрес retest@astra создается папка "Send" и в нее помещается отправленное сообщение. Так же оно помещается в каталог /d/retest/new/.

При создании учетной записи test@astra, но с протоколом IMAP, сообщения отправляются только в каталог /d/retest/new/, а в Thunderbird'e процесс повисает при попытке Копирования сообщения в папку "Sent".

При попытке подключения с другого компа на сервер, соответственно, не возможно подключаться.

Что это за папка Sent? И может мне надо настроить сам Thunderbird?

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-18 13:02:33

а вы пользователя test в БД создали? Логи смотрели?
Протестируйте сначала работу SMTP. Как заработает, приступайте к POP3 и IMAP.

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-18 13:49:00

пользователя в БД создал, вернее он и был. посоветуйте мне как протестировать работу SMTP?????(я так понимаю за это овечает exim, если да, то он стартует, работает, посылает и принимает, что и пишет в своих логах)

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-18 14:39:07

В настойках учетной записи Thunderbird убрал галку "Сохранять почту в локальной папке" и теперь сообщение отправляется без ошибок, находится в папке Отправленные. А при попытке прочитать папку входящие после таймаута выводится сообщение о том, что время ожидания истекло - т.е. получается он отправляет почту, но прочитать ее не может?
Видимо у меня что-то с папкой "Входящие"....

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-18 14:48:11

Итак, экзим у вас доставляет почту .
Соответственно теперь смотрите в логи довекота, именно он отвечает за доставку.

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-18 14:53:27

Dovecot в файле /var/log/dovecot пишет такое:

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

parsec_fchmac=0
parsec_fchmac=0
Dovecot v1.2.10 starting up (core dump disabled)
pgsql: Connected to exim
т.е. в логах ошибок нет.


Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-18 15:29:59

Так вот в том то и дело - что этот лог переписывается только в момент запуска/остановки самого Dovecot'a, а в процессе работы там ни чего не записывается. Пробовал найти другой лог Dovecot'a, но не получилось...

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-18 15:41:28

Смотрите в сторону состояния демона, работает ли он на нужном порту.

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

netstat -tunap | grep dovecot
Фаерволом не блочит 110 993 995 143?

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

telnet localhost 110
что говорит?

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-18 15:51:31

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

netstat -tunap | grep dovecot
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      5613/dovecot
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      5613/dovecot
tcp      272      0 127.0.0.1:52271         127.0.0.1:5432          CLOSE_WAIT  5616/dovecot-auth
хм...CLOSE_WAIT - я так понимаю так не должно быть?

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

telnet localhost 110
Trying 127.0.0.1..
Connected to localhost.
Escape charaster is '^]'
Файрволл отключил вообще для Eth0, так что по идее не должен.

Кстати совсем забыл - у меня exim ругался на pipe, поэтому я его убрал из конфига. Могло ли это повлиять как-нибудь на доставку сообщений?

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-18 16:00:57

ну соединение устанавливается, теперь смортите в сторону авторизации
/var/log/dovecot
Ну лог авторизаций на постгре

Reverenge
рядовой
Сообщения: 25
Зарегистрирован: 2012-10-16 11:57:51

Re: AstraLinux почтовый сервер

Непрочитанное сообщение Reverenge » 2012-10-18 16:04:33

Лог порстгреса выводит сообщения только о том, что подключился или отключился пользователь exim.

mak_v_
проходил мимо

Re: AstraLinux почтовый сервер

Непрочитанное сообщение mak_v_ » 2012-10-18 16:19:25

1) телнет на 110 с другой машины
2) в довекот добавьте строки

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

auth_debug=yes
auth_verbose=yes
auth_debug_passwords=yes
auth_verbose_passwords=plain
и смотрите лог при авторизации