Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||||||||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
#обновим порты (очень рекомендую начинать именно с этого) portsnap fetch portsnap extract cd /usr/ports/databases/postgresql90-server/ make install clean echo 'postgresql_enable="YES"' >> /etc/rc.conf cd /usr/ports/databases/postgresql90-contrib/ make install clean #подправим консоль echo "postgres:\" >> /etc/login.conf echo " :lang=ru_RU.KOI8-R:\ " >> /etc/login.conf echo " :charset=KOI8-R:\ " >> /etc/login.conf echo " :setenv=LC_COLLATE=C:\ " >> /etc/login.conf echo " :tc=default:" >> /etc/login.conf echo 'postgresql_class="postgres"' >> /etc/rc.conf cap_mkdb /etc/login.conf #В /usr/local/etc/rc.d/postgresql #меняем utf-8 на koi8-r #это нужно чтобы в консоле русский отображался корректно #если у вас консоль koi8-r /usr/local/etc/rc.d/postgresql initdb /usr/local/etc/rc.d/postgresql start cd /usr/ports/www/apache22/ make install clean echo 'apache22_enable="YES"' >> /etc/rc.conf cd /usr/ports/lang/php5/ make install clean |
При компиляции PHP не забываем включить опцию
|
После компиляции не забываем добавить в конфиг apache
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
И в DirectoryIndex добавить index.php
cd /usr/ports/lang/php5-extensions/ make install clean |
В extensions выбираем пункт PgSQL и убираем sqlite
|
cd /usr/ports/mail/exim-postgresql/ make install clean echo 'exim_enable="YES"' >> /etc/rc.conf echo 'sendmail_enable="NONE"' >> /etc/rc.conf |
В меню выбираем
|
cd /usr/ports/mail/dovecot/ make install clean echo 'dovecot_enable="YES"' >> /etc/rc.conf |
|
#если вы не забыли в exim включить SA_EXIM то этот пункт не нужен ###cd /usr/ports/mail/p5-Mail-SpamAssassin/ ###make install clean ### Впроцессе установки отвечаем на вопросы по желанию echo 'spamd_enable="YES"' >> /etc/rc.conf echo 'spamd_flags="-u spamd -H /var/spool/spamd"' >> /etc/rc.conf ### обязательно запустим обновление и создание правил sa-update cd /usr/ports/security/clamav/ make install clean echo 'clamav_clamd_enable="YES"' >> /etc/rc.conf ### Обновляем базу (желательно это делать раз в день) freshclam cd /usr/ports/mail/squirrelmail make install clean ################################# #или roundcube #cd /usr/ports/mail/roundcube #make install clean #как настроить смотрим в инете #лень описывать - там все очень просто ################################# cd /usr/ports/sysutils/monit make install clean echo 'monit_enable="YES"' >> /etc/rc.conf |
Теперь переходим непосредственно к настройкам , и начнем , как всегда с БД.
su - pgsql createuser exim createdb -U exim exim exit psql -U exim exim |
Создаем таблицы
|
Правим настройки clamv в /usr/local/etc/clamd.conf (раскоментировать)
|
Файл /etc/mail/mailer.conf приводим к виду
|
Создаем 2 фала
|
/usr/local/etc/exim/sender_reject.list - для блокировки отправителей
/usr/local/etc/exim/domain_to_reject.list - блокировка доменов
получателей
Настраиваем sa_exim /usr/local/etc/exim/sa-exim.conf
Собственно находим и меняем только одну строчку
|
Настраиваем EXIM /usr/local/etc/exim/configure
(тупо приводим к этому виду)
|
P.S если у вас несколько обслуживаемых доменов, лучше замените
domainlist local_domains =${lookup pgsql{SELECT domain FROM local_domain}}
на
domainlist local_domains = testim.ua : domain1.testim.ua : mailcomp
mailcomp = имя вашего сервера, которое назначили при установке
(в /etc/rc.conf hostname="mailcomp" и в /etc/hosts указали как
xx.xx.xx.xx mailcomp mailcomp.testim.ua)
Чтобы почта приходящая на root@localhost (root@mailcomp) приходила
на (к примеру) postmaster@testim.ua - сделайте переадресcацию через
вэб интерфейс с root@mailcomp на postmaster@testim.ua (при этом,
заводить юзера root через вэб - не нужно (!), только переадрессация
на заведенного пользователя postmaster)
cd /usr/local/etc/exim/ |
Генерим сертификаты
openssl genrsa -out mailed.key 2048 openssl req -new -x509 -key mailed.key -days 365 -out mailed.crt |
Настраиваем dovecot /usr/local/etc/dovecot.conf
|
Обратите внимание !!! mail_location = maildir:/d/%n
Если вы выбрали другую директорию для ящиков, переназначьте во избежание
ошибки "Couldn't open INBOX".(Замените /d на /var/mail например)
Создаем /usr/local/etc/dovecot-sql.conf
|
* Команды прописывайте в одной строке! (в статье нельзя сделать строку
более 80 символов)
Создаем /usr/local/etc/dovecot-trash.conf , где указываем очередность
очистки директорий в случае превышения квоты.
|
В /etc/crontab добавим строки
|
и перезапустим /etc/rc.d/cron restart
Тепперь БД антивируса и антиспама будут обновляться раз в сутки в 3 утра.
Создаем /usr/local/etc/monitrc следующего вида
|
PS меняем postmaster@testim.ua и mailcomp на свой
Поскольку я человек ленивый , ребутнемся , чтобы не запускать все вручную.
Создадим тестового пользователя
psql -U exim exim SET client_encoding to 'koi8-r'; INSERT INTO accounts VALUES (1,'test','12345','/d/test/','/d/test/',20,'Иванов И И'); INSERT INTO accounts VALUES (2,'retest','12345','/d/retest/','/d/retest/',20,'Петров'); INSERT INTO local_domain VALUES ('testim.ua'); INSERT INTO relayfromhosts VALUES ('localhost','локально'); INSERT INTO relayfromhosts VALUES ('192.168.0.0/16','тоже локалка'); INSERT INTO relaytohosts VALUES ('testim.ua','наш любимый'); INSERT INTO hostreject VALUES ('195.195.195.195','ну не нравится он мне'); INSERT INTO userforward VALUES (1,'test','retest@testim.ua'); \q |
*Обратите внимение на заполнение таблицы userforward !
Имя (без домена ) на полный email адресс!
Теперь проверим работоспособность exim
mail -s testmail test@testim.ua < /etc/rc.conf tail /var/log/exim/mainlog |
Если директория /d/test создана - все ОК, нет -
проверяем права доступа к директории /d и настройки.
(chown -R 26:26 /d где 26 uid mailnull который мы прописали
в конфиге dovecot-sql.conf)
При чем , должна быть создана и директория /d/retestim , т.к.
мы внесли данные в таблицу переадрессации почты.
Дальше проверяем отправку от test@testim.ua на самого себя
и куда-то в мир.Смотрим лог : на себя отправка проходит, в мир
типа
... Domain of sender address test@testim.ua does not exist |
Теперь можно прописывать реальный домен и пользователей.
(Замените testim.ua на ваш домен и директорию /d на вашу в конфиге
dovecot , а так же данные в БД exim Postgresql)
Замечание : директории для ящика НЕ создаются , пока не будет получено
первое письмо, поэтому, после вставки нового юзера в БД, либо
создайте директории , либо выполните команду
mail -s hello_new_user new_user@domain < file_to _hello
Для настройки squirrelmail необходимо зайти в /usr/local/www/squirrelmail/
и запустить configure. Далее настроить по необходимости.
В /usr/local/etc/apache22/extra/httpd-vhosts.conf прописать типа :
|
И в /usr/local/etc/apache22/httpd.conf пропишем Listen 8888
Перезапускаем апач.
*Скорее всего возникнет ошибка при использовании squirrelmail, для устранения которой
вставьте в начало файла /usr/local/www/squirrelmail/functions/date.php ,
после <?php , команду date_default_timezone_set("Europe/Kiev");
Ну и запускаем http://ваш_ip:8888/ , входим с логином retest и паролем 12345 и
видим счастье в виде вашего rc.conf.
Подробно о настройках squirrelmail смотрим здесь
Загружаем
|
***Файл перезалит!
Кидаем архив в /usr/local/www/ (или куда захотите) и распаковываем
(tar -xzf exim-www.tgz)
В /usr/local/etc/apache22/extra/httpd-vhosts.conf добавляем
|
Перезапускаем апач , генерим пароль для админа (смотрим .htaccess где хранить
пароль,ну и подправляем под себя)
и запускаем http://ваш_IP:9999/
Собственно все. Если установку делали копи-пастом , должно все заработать.
Управляющая формочка простая и примитвная, но рабочая.
размещено: 2011-06-06,
последнее обновление: 2013-04-16,
автор: DNK
KIper, 2011-06-09 в 12:40:49
Хотелось бы, вместо довекота, cyrus imap использовать. Потому что cyrus imap на много интереснее в плане управления через cyradm и sieve.
KIper, 2011-06-09 в 12:51:05
опечатка:
### Впроцессе установки отвечаем на поросы по желанию
DNK, 2011-06-09 в 12:52:45
О вкусах не спорят. Dovecot удобный в настройках,
да и по функционалу хорош.
Спасибо, ошибку исправил
aibolit, 2011-06-09 в 14:44:18
Спасибо за статью. Прошу исправить "dovekot" на "dovecot" в заголовке статьи.
JsN, 2011-06-24 в 8:56:02
Всё работает! Большое спасибо!
DNK, 2011-06-24 в 9:30:46
Пользуйтесь :) Теперь попробуйте разобраться с настройками
gabell, 2011-06-24 в 19:23:21
А вы реально тестировали эту систему на 10000 абонентов?
alik, 2011-06-26 в 22:31:11
Автор спасибо за статью, но если можно допишите пжл
создание алиасов а также запрет входящих писем на некоторые алиасы.
Очень нужно.
Заранее спасибо.
DNK, 2011-06-29 в 10:14:45
В данной статье описан вариант авторизации по имени и паролю , а не имени@домену.Поэтому, если у вас на почтовый сервер направляется почта с нескольких доменов
(например : ***@my.domain и ***@second.domain),в этом случае вы получите на один логин два почтовых ящика
(например test@my.domain = test@second.domain).Чтобы разделить почту , необходимо внести изменения в настройки exim (авторизация будет по логин@домен)
Конструкции вида
${lookup pgsql {select ЧТО_ТО from \
accounts where login = '$local_part'}{yes}{no}}
где обращение к таблице accounts ,заменить на
${lookup pgsql {select ЧТО_ТО from \
accounts where login = '${local_part}@${domain}'}{yes}{no}}
По поводу запрета входящей почты - почитайте на форуме, там есть.Хотя самый простой способ не получать письма на алиас - не создавать алиас.
Надеюсь я правильно понял ваш вопрос.
k21, 2011-07-04 в 23:43:47
Уважаемый DNK, сделал вроде бы все так как на писано в этой довольно таки позновательно как для меня новичка в *nix системах пользователя, но неработает. ситуация в следующем
при mail -s testmail test@testim.ua < /etc/rc.conf
tail /var/log/exim/mainlog
пишет что нет разрешения на папку /d/test.
я дал ей разрешения как написано тут chown -R 26:26 /d
может быть я до конца не понимаю логики, но разве польвателю mailnull (26) разрешено создавать папки прямо от корня или в базе поля maildir character varying(255) и home character varying(255) заполнены одинаковыми путями это не ошибка? (хотя скорее всего я чегото до конца не понял где по абсолютному пути должны располагаться ящики пользователей)
DNK, 2011-07-05 в 9:43:16
В статье я указал о необходимости задания разрешений
на директорию /d
1) 26:26 посмотрите в /etc/passwd значение mailnull
2)chown -R mailnull:mailnull /d
3)или можете сделать chmod -R a+wr /d (худший случай)
В БД таблице accounts поля одинаковы, собственно home не используется. Это поле таблицы понадобится (возможно)
когда разберетесь с конфигом exim и будете расширять
настройки.Абсолютный путь для ящиков - maildir.
k21, 2011-07-05 в 21:22:55
DNK спасибо разьяснили, хотя по кесту и так было написано достаточно ясно что абсолютный путь /d/<ящики пользователей>
все работает! Спасибо за статью
DNK, 2011-07-05 в 22:40:45
Да не за що :))
В настройках exim использован хороший способ борьбы со спамом.Мне было лень его описывать.Думаю, наблюдая за логами , вы это увидите.Но (!) все-таки разберитесь с настройками exim и dovecot, найдете много интересного.
Удачи.
k21, 2011-07-06 в 9:13:12
сори забыл еще уточнить один непонятный мне момент.
как связан squirrelmail c нашей БД логинов (или откуда эта вэб мордочка знает о существовании заполненных в БД логинов) что-то подобное (имеется ввиду привязка к БД) я видел при запуске configure squirrelmail но что куда вписывать несовсем разобрался...если можете поясните как реализована эта связка в данной статье и как бы можно было связать с БД...
DNK, 2011-07-06 в 9:35:14
Squirrelmail никак не связан с БД. Авторизация происходит по протоколу IMAP (http://kunegin.narod.ru/ref3/email/pop_imap.htm)
На самом деле, squirrelmail можно поднимать на любой машине, а не на почтовом сервере.Его конфигурация по умолчанию настроена на локальную машину, поэтому у вас проблем при запуске и не возникло.
k21, 2011-07-06 в 10:00:42
спасибо теперь прояснилось :-)
k21, 2011-07-08 в 22:57:50
установил разрешения 600 для этих файлов при отправки от почты gmail.com письмо не доставляется и в логах пишет не может получить доступ к этим файлам сертификата, когда устанавливаешь всем на чтение, то письма приходят. но насколько это безопасно чтобы все читали эти файлы или какие правельные разрешения должны быть установлены?
tls_certificate = CONFIG_PREFIX/mailed.crt
tls_privatekey = CONFIG_PREFIX/mailed.key
DNK, 2011-07-11 в 9:40:39
1)убейте сертификаты и создайте заново (от рута)
2)не убивая :
chown root:wheel /usr/local/etc/exim/mailed*
k21, 2011-07-11 в 21:34:15
пробовал все как написано в обоих вариантах
разрешения изначально были именно такими как вы и сказали
root.wheel 600 для этих файлов
но в логах пишет ошибку насколько я понимаю связаную именно с ними
"(SSL_CTX_use_PrivatKey_file file=/usr/local/etc/exim/maled.key): error 0200100D: system lybrary:fopen: permission denied" если можете обясните что не так делаю....
_KUL, 2011-07-12 в 7:26:46
Вопрос - а почему используется PostgreSQL а не MySQL ? Это чем то обусловлено или сила привычки?
dnk, 2011-07-12 в 9:47:33
2 _KUL я ( в отличии от уважаемого лиссяры) предпочитаю
постгрес, как БД для профессиональных систем (пример :
PGSQL используется в биллингах японии и германии для управления жд перевозками, авиа диспетчерской службой и т.д)
2 к1
-rw-r--r— 1 root wheel 1570 8 июн 12:41 mailed.crt
-rw-r--r— 1 root wheel 1679 8 июн 12:40 mailed.key
вам придется пересобрать почтовик заново.
при сборке вы использовали не стандартные установки и включили использование СTX (его нужно убрать- опция TLS).
и почему у вас ссылка на файд maled.key а не mailed.key?
Перед пересборкой попробуйте chmod a+wrx на эти файлы.Да , проверьте от кого запускается exim, если не от рута - возможна данная ошибка.
k21, 2011-07-12 в 10:46:33
спасибо уважаемый dnk, буду пробовать
- да при сборке эксима я скроее всего увидев что в статье используется tls и подумав что для єксима забыли указать выбрал ее (как оказалось зря т.к несовсем понимал то это или не то)
- если дать разрешения на эти файлы для всех на чтение то письма доходят с гугла (читал в других источниках пишут что для этих файлов если не дать пользователю и группе эксима доступ на чтение то небудет работать, а других что нужно обязатально только для рута дать тоступ и только)
я так понимаю для dovevot (который имеет доступ к этим файлам от root это не проблема и будет работать просто указав к ним путь, весь вопрос - дать нужные разрешения для эксима.
-разные имена файлов maled.key а не mailed.key - это опечатка
в одном из коментов вы дали очень хорушую ссылку на статью по проверки работоспособности протоколов imap и pop3 из консоли, уже 2 день занимаюсь поисками подобніх команд для imaps и pop3s...немоглибы вы дать какуюто толковую статью по проверки работы этих протоколов из консоли
DNK, 2011-07-12 в 11:29:28
Когда уберете TLS , разрешения для exim - рутовские.
Никаких дополнительных разрешений ни на один конфиг не назначается!
Для проверки работы почтовой системы локально - используйте mail (man mail), а так же смотрите логи.
k21, 2011-07-12 в 23:33:40
насколько я понимаю:
-rw-r--r— 1 root wheel 1570 8 июн 12:41 mailed.crt
-rw-r--r— 1 root wheel 1679 8 июн 12:40 mailed.key
тут чтение секретного файла mailed.key для всех (это настораживает)
при переустановке эксима не выбирал опцию TLS при этом эксим перстал понимать в своем конфиге строки с tls_:
tls_certificate = CONFIG_PREFIX/mailed.crt
tls_privatekey = CONFIG_PREFIX/mailed.key
tls_advertise_hosts = *
tls_verify_certificates = *
auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}
эксим запускается под рутом. файлы ключей пересоздавал под рутом. хоть убейте не пашет. в конфиге dovecot добавил строки для поддержки tls:
protocols = imap imaps pop3 pop3s
listen = *
ssl_disable = no
ssl_cert_file = /usr/local/etc/exim/mailer.crt
ssl_key_file = /usr/local/etc/exim/mailer.key
disable_plaintext_auth = no
в итоге начал тестить получил слежующий ошибки (должен заметить что у меня в сети нет ДНС и ДХЦП, но при Вашем конфиге по умолчанию все работало и без них, вернее без записи MX о моем почтовике в прямой и обратной зоне ДНС, но стоило поробовать перейти на защишеное соединение TLS как вот такая ситуация. наверое чтото я не добавил в конфиги для поддержки работы по imaps и pop3s)
<мой реальный домен># /usr/local/sbin/exim -bV
Exim version 4.76 #0 (FreeBSD 8.2) built 12-Jul-2011 21:11:17
Copyright (c) University of Cambridge, 1995 - 2007
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch nis nis0 passwd pgsql
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Configuration file is /usr/local/etc/exim/configure
<мой реальный домен># /usr/local/sbin/exim -bV
Exim version 4.76 #0 (FreeBSD 8.2) built 12-Jul-2011 21:11:17
Copyright (c) University of Cambridge, 1995 - 2007
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch nis nis0 passwd pgsql
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Configuration file is /usr/local/etc/exim/configure
<мой реальный домен>#
<мой реальный домен># cd /usr/local/sbin/
<мой реальный домен># exim -bt <мой реальный ящик>@mail.ru
<мой реальный ящик>@mail.ru
router = dnslookup, transport = remote_smtp
host mxs.mail.ru [94.100.176.20] MX=10
<мой реальный домен># exim -bt user1@<мой реальный домен>.org.ua
user1@<мой реальный домен>.org.ua
router = localuser, transport = local_delivery
<мой реальный домен># exim -v user1@<мой реальный домен>.org.ua
From: user2@<мой реальный домен>.org.ua
To: user1@<мой реальный домен>.org.ua
Subject: Testing Exim My!!!
Theis is a test message !!!!
LOG: MAIN
<= root@<мой реальный домен>.org.ua U=root P=local S=409
<мой реальный домен># delivering 1Qgi33-0000Mi-BR
LOG: MAIN
=> user1 <user1@<мой реальный домен>.org.ua> R=localuser T=local_delivery
LOG: MAIN
Completed
<мой реальный домен># exim -v <мой реальный ящик>@mail.ru
From: user2@<мой реальный домен>.org.ua
To: <мой реальный ящик>@mail.ru
Subject: Testing Exim
This is a Hall!
LOG: MAIN
<= root@<мой реальный домен>.org.ua U=root P=local S=364
<мой реальный домен># delivering 1Qgi5v-0000Mt-Ua
Connecting to mxs.mail.ru [94.100.176.20]:25 ... connected
SMTP<< 220 Mail.Ru ESMTP
SMTP>> EHLO <мой реальный домен>.org.ua
SMTP<< 250-mx98.mail.ru ready to serve
250-SIZE 31457280
250 8BITMIME
SMTP>> MAIL FROM:<root@<мой реальный домен>.org.ua> SIZE=1398
SMTP<< 250 OK
SMTP>> RCPT TO:<<мой реальный ящик>@mail.ru>
SMTP<< 550 Sorry, we do not accept mail from hosts with dynamic IP or generic DNS PTR-records. Please get a custom reverse DNS name from your ISP for your host <мой реальный айпи> or contact abuse@corp.mail.ru in case of error
SMTP>> QUIT
LOG: MAIN
** <мой реальный ящик>@mail.ru R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<<мой реальный ящик>@mail.ru>: host mxs.mail.ru [94.100.176.20]: 550 Sorry, we do not accept mail from hosts with dynamic IP or generic DNS PTR-records. Please get a custom reverse DNS name from your ISP for your host <мой реальный айпи> or contact abuse@corp.mail.ru in case of error
LOG: MAIN
<= <> R=1Qgi5v-0000Mt-Ua U=mailnull P=local S=1485
delivering 1Qgi7p-0000NF-27
LOG: MAIN
** root@<мой реальный домен>.org.ua: Unknown user
LOG: MAIN
Frozen (delivery error message)
LOG: MAIN
Completed
k21, 2011-07-12 в 23:36:47
эксим переустановил обратно с опцией tls (получил лог ошибок который приведен выше)
впринципе меня устраивает работа без tls, но хотелось бы понять что не так сделал...
DNK, 2011-07-13 в 10:19:54
Попробуйте сделать точно так, как я описал в статье . Сделайте все с самого начала.Вы неправильно установили криптование, но где ошибка была при установке ,в ssl или exime, сразу определить сложно.
TLS нужен, прошу прощения за неверный ответ.
│[X] TLS Link against OpenSSL
МТА это exim а не dovecot, то что вы добавили pop3s в dovecot, на отправку не повлияет :)
То что работает отправка без DNS - смотрите строку
host_lookup = !192.168.0.0/16 | *
заремьте и не будет отправки без MX записи.
насколько я понимаю:
-rw-r--r— 1 root wheel 1570 8 июн 12:41 mailed.crt
-rw-r--r— 1 root wheel 1679 8 июн 12:40 mailed.key
тут чтение секретного файла mailed.key для всех (это настораживает)
разрешение a+r нормально и настораживаюшего нет ничего.Сертификатом пользуется много служб, если запретить всем чтение (кроме рута) , службы не смогут работать.
Судя по вашему логу - все работает, отправка происходит, но не принимает mail.ru
Sorry, we do not accept mail from hosts with dynamic IP or generic DNS PTR-records. Please get a custom reverse DNS name from your ISP for your host <мой реальный айпи> or contact
k21, 2011-07-14 в 0:07:27
попробую сделать все сначала.
Можна ли модифицировать давнные конфиги эксима/давекота так чтобы изначально прием/отправка пробовало осуществляться по tls а если неполучилось то не шифрованым методом?...заранее спасибо
DNK, 2011-07-14 в 9:36:05
Отправка либо с TLS (изначально) , либо без.
Для тренировки можете переставить заново, но у вас сейчас рабочая система, судя по логу.
Скрипт очистки очереди, чтобы убрать ваши замороженные сообщения
#!/usr/bin/perl
my $ar = "";
if ($#ARGV == -1) {
$ar="q";
}
$ar= shift(@ARGV);
open ( MQ, "/usr/local/sbin/exim -bp|") or die "can't run the exim command\n";
$count = 0;
$state = 0; # simple state machine
$recips = 0;
while ( <MQ> ) {
$line = $_;
chop $line;
if($line =~ /\<\>/) {
if($line =~ /(.*) (.*) (.*) \<\>/) {
$ident = $3;
system("exim -Mrm ". $ident);
$count++;
}
}
if($line =~ /\|/) {
if($line =~ /(.*) (.*) (.*) (.*)/) {
$ident = $3;
system("exim -Mrm ". $ident);
$count++;
}
}
}
close(MQ);
print "Deleting count: ". $count."\n";
# end
k21, 2011-07-24 в 14:58:28
Подскажите что добавить или изменить в конфигах, чтобы почту можно было отправлять/принимать для определенной локальной сети и для заданого перечня айпишников(имен хостов) вне локальной сети, а для остальных (кто допустим знает пароль и имя почтового ящика) извне такой возможности небыло...спасибо
k21, 2011-07-24 в 16:22:05
Зарегестрировал на https://www.startssl.com/ сертификат на 1год для своего домена (можна заходить и по http и https), почта с сервера на сервер ходит нормально, но вот как модифицировать "белку" чтоб также по https заходить можна была для логина...спасибо
DNK, 2011-07-24 в 20:50:22
k21
1)на ваш первый вопрос : самое простое решение с помощью PF . Пропишите правила как вам нужно
типа такого :
......
table <mail> persist file "/etc/pf.mail"
.......
block in on $int_if from any to IP port 25
.....
pass in on $int_if from <mail> to IP port 25
и тд
2)вместо белки посмотрите , например, roundcube или еще какой-то интерфейс
ttys, 2011-08-14 в 4:42:10
2 k21
оО тебя, что на форуме забанили? "k21, 2011-07-12 в 23:33:40"
Valeriy Biliy, 2011-08-22 в 1:19:22
привет всем.
статья очень детальная, автору благодарность с занесением пивка в серверную :)
понадобилось создать на основе статьи мультидоменный почтовик, если кому-то сие тоже интересно, а детально разбираться еще нет опыта (как у меня) - по ссылке конфиги экзима и довекота, дамп базы (структура) и немного переделанная админка, предложенная автором.
Логика такая - ручками вбить названия доменов в базу, и потом при вводе юзеров выбирать домен из списка. При создании алиаса нужно указывать полный адрес алиаса и полный адрес ящика-получателя. Логином тоже является полный почтовый адрес (user@domain). Если белке не задавать домен по умолчанию - тоже работает, если вводить в кач-ве логина полный адрес.
Единственный момент - у меня почему-то не заработала выборка доменов при получении почти, пришлось указать имя домена напрямую (строку в конфиге экзима - domainlist local_domains = ${lookup pgsql{SELECT domain FROM local_domain}} - заменил на domainlist local_domains = maildomain1.com.ua : maildomain2.com.ua : maildomain.org. Пока разбираюсь, почему.
DNK, 2011-08-22 в 10:24:47
На самом деле цель статьи - как раз уйти от доменной идентификации.Возьмите любую статью про exim из постов выше - там будет доменная идентификация, что не очень удобно для небольших фирм , или наоборот , для почты провайдера.В одном из ответов выше , я указал как перейти к "мультипочтовому" серверу , и что нужно заменить в конфиге exim.
Valeriy Biliy, 2011-08-22 в 10:45:01
Цель реализована отлично - немного таких вот "копи-паст" статей, описывающих 100% работающие конфигурации. Как начинающему по части почтовых систем Ваша статья лично мне очень полезна тем, что представляет из себя комплексное решение, позволяющее построить работающую систему и потом изучать на ее базе опции экзима и не только :)
ttys, 2011-10-01 в 14:19:47
>>(Замените testim.ua на ваш домен и директорию /d на ашу в конфиге dovecot , а так же данные в БД exim Postgresql)
и ещё в insert.php
ато веб-морда юзеров создаёт в /d/.. =)
vitya, 2011-11-04 в 3:29:55
Уважаемый DNK! Спасибо за статью.
В комментариях Вы приводите пример как исправить авторизацию, чтобы было по имени@домену. Не понятно как это применить к авторизации CRAM. ((
Что в этом куске (ниже) нужно подправить, чтобы авторизация шла по имени@домену?
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'
DNK, 2011-11-04 в 10:50:31
В этом куске не нужно ничего подправлять .
Запись поля login у вас будет в виде user@domain
Login='$1' , '$1'='user@domain'
Cоответственно в аутглюке установить login в user@domain
KIper, 2011-11-08 в 17:10:19
Жаль не рассмотрена настройка SpamAssasin, она конечно простая, но я наверное минут 10 искал, где он конфиг хранит, а потом боролся с ошикой когда он не может bayes данные записать.
cat /usr/local/etc/mail/spamassasin/local.cf
...
rewrite_header Subject *****SPAM*****
report_safe 1
trusted_networks 192.168.250. 127/8
required_score 5.0
use_bayes 1
bayes_path /usr/local/etc/mail/spamassassin/bayes/
bayes_file_mode 0666
bayes_min_ham_num 1
bayes_min_spam_num 1
bayes_auto_learn 1
bayes_learn_to_journal 1
# Some shortcircuiting, if the plugin is enabled
Дальше оставил как в конфиге
...
И надо было создать каталог:
drwxrw--— 2 spamd wheel /usr/local/etc/mail/spamassassin/bayes
DNK, 2011-11-08 в 17:28:18
При установке ассасина по умолчанию, каталоги создавать не нужно, а как запускать обновления - я указал.
KIper, 2011-11-08 в 17:39:35
Если всё по умолчанию, то ошибка вот такая:
eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile /nonexistent/.spamassassin/
по этому и пришлось искать конфиг
DNK, 2011-11-08 в 18:32:24
Вы выбрали в конфиге дополнительный пункт. Этого можно не делать
KIper, 2011-11-08 в 20:07:39
А есть ветка форума для обсуждения статьи?
DNK, 2011-11-09 в 11:53:24
На форуме есть ветки по exim.Отличие данной статьи от других в том, что здесь настройки для одного домена, добавлены антиспамовые примочки, и конфиги настроены для копи-паста. Открывать еще одну ветку на форуме не вижу смысла.
mix, 2011-11-13 в 22:55:48
Доброго времени суток! Не могли бы подсказать вот по такому вопросу. Почта на удалённые адреса уходит, по типу: mail.ru, gmail.com и т.д Но не принимается, в логе exim пишет следующее:
userside# mail -s testmail test@domain.ru < /etc/rc.conf
2011-11-13 22:51:40 1RPf9Y-000JsZ-4l <= root@domain.ru U=root P=local S=1808
2011-11-13 22:51:40 1RPf9Y-000JsZ-4l ** retest@domain.ru <test@domain.ru: Unknown user
2011-11-13 22:51:40 1RPf9Y-000Jsc-5w <= <> R=1RPf9Y-000JsZ-4l U=mailnull P=local S=2599
2011-11-13 22:51:40 1RPf9Y-000JsZ-4l Completed
Честно говоря уже не знаю куда копать. Ибо на другой машине всё работает нормально.
DNK, 2011-11-14 в 10:55:40
Проверьте наличие пользователей test и retest
Вы просто забыли их завести
mix, 2011-11-14 в 11:08:19
В базе постгреса они имеются.
DNK, 2011-11-14 в 11:28:03
2011-11-13 22:51:40 1RPf9Y-000JsZ-4l ** retest@domain.ru <test@domain.ru: Unknown user
говорит о том что нет такого пользователя.
проверьте все-таки пользователей и др настройки в БД.
ваш домен прописан как domain.ru?
1)перезапустите сервер (можете рестартавать комп)
2)mail -s testmail retest@domain.ru < /etc/rc.conf
mix, 2011-11-14 в 12:17:33
Домён прописан как мой домён.ru Сервер ребутнул, в логе
2011-11-14 12:11:47 1RPrdr-0004TY-OC <= root@домён.ru U=root P=local S=1812
2011-11-14 12:11:47 1RPrdr-0004TY-OC ** retest@домён.ru: Unknown user
2011-11-14 12:11:47 1RPrdr-0004Tb-PL <= <> R=1RPrdr-0004TY-OC U=mailnull P=local S=2569
2011-11-14 12:11:47 1RPrdr-0004TY-OC Completed
при этом через вебморду нормально логинится.
DNK, 2011-11-14 в 12:47:37
Ошибка : exim не находит в БД юзера.
Удалите все записи юзеров и создайте заново.
Имя должно быть без пробелов в конце и начале и т.д.
Sergius, 2011-12-05 в 21:39:36
В определении ACL RCPT у Вас есть недопустимое условие:
demime = bat:btm:cmd:com:cpl:dll:exe:lnk:msi:pif:prf:reg:scr:vbs:url
Согласно п.41.6 официального хелпа demime может использоваться лишь в DATA и не-SMTP ACL.
Полагаю нужно перенести в следующий раздел и в DATA.
DNK, 2011-12-13 в 17:17:34
Данное условие необходимо для проверки вложений.Работает.Переносить не нужно
bmwden, 2012-02-11 в 16:59:38
Наша управляющаф мордочка, статейка понравилась, попробую на 9ке ;)
DNK, 2012-02-28 в 12:15:02
На 9-ке проблем не возникает :)
DNK, 2012-02-28 в 12:20:44
PS ошибку исправил, спасибо
MrSeasAdmin, 2012-07-13 в 14:39:29
# еще боримся со спамом и вирусами
deny message = Мы не принимает ".$found_extension" \
незапакованные вложения \
Для отправки запакуйте их.
demime = bat:btm:cmd:com:cpl:dll:exe:lnk:msi:pif:prf:reg:scr:vbs:url
Не сработает (Sergius прав), потому что надо этот блок запихивать в
acl_check_mime. У меня если как по вашему конфигу, то просто пропускает письмо с экзешниками.
Убедился в этом из вики: http://wiki.exim.org/ExiscanFilenameBlocking
MrSeasAdmin, 2012-07-13 в 14:48:08
Еще одна незадачка.
В хелпе ($found_extension), у вас ".$found_extension". Однако, ни один вариант не пашет. В логах (и в возвратном письме) приходит
550-We don't accept () such extensions (123test.exe). Please, archive your 550 attachments! (in reply to end of DATA command)
Такое приходит на мою конфу:
deny message = We don't accept ($found_extension) \
such extensions ($mime_filename). \
Please, archive your attachments!
condition = ${if match \
{${lc:$mime_filename}} \
{\N(\.exe|\.msi|\.cmd|\.pif|\.bat|\.dll|\.prf|\.reg|\.scr|\.lnk|\.com)$\N} \
{1}{0}}
MrSeasAdmin, 2012-07-13 в 15:24:39
Кажется, я понял. Лисс подсказал в статье:))
“
http://www.lissyara.su/doc/exim/4.62/content_scanning_at_acl_time/
Надо собирать экзим с WITH_OLD_DEMIME,
$found_extension- Когда условие demime
” истинно, эта переменная содержит найденное расширение файла.
А у меня он без этой опции, поэтому и не работает demime, соответственно $found_extension.
Ну я юзаю резак через acl_smtp_mime, не страшно.
Поправьте пжл в статье - работает с опцией сборки - WITH_OLD_DEMIME
DNK, 2012-11-23 в 12:37:44
опция OLD_DEMIME включена по умолчанию
Михаил, 2013-05-12 в 11:12:15
Есть домен который уже используется для почтовика, можно каким то образом сделать еще одни почтовый сервер, используя этот домен?
DNK, 2013-05-14 в 14:34:58
нет.
можно поднять второй сервер с другим именем и на него
алиасами (на имя сервера) отправлять почту с основного.
ttys, 2013-05-14 в 15:47:59
по моему он хочет мультидомен сделать
на одном хосте несколько доменов
если я правильно понял вопрос - то это можно делать.
Михаил, 2013-05-14 в 17:06:06
Есть домен который используется, я делаю еще один почтовый сервер, и хочу как то использовать этот же домен...DNK, про алиасы слышал, но как организовать, может есть какой то мануал, или статья?
Михаил, 2013-05-14 в 17:08:57
Еще забыл сказать, доступа к серваку на котором стоит почта и используется домен, я не имею...
mikis, 2013-05-14 в 18:11:52
Ребята, может есть у кого то уже отредактирован файл /usr/local/etc/exim/configure, с этой конфигурацией что в статье, можете скинуть? Времени нету, а писать очень долго...Буду очень благодарен!
Михаил, 2013-05-24 в 13:00:27
Всем привет! Народ подскажите какой то мануал, или статью по поднятию почтового сервера с алиасами, есть домен, но он уже используется, как это правильно сделать?
DNK, 2013-05-24 в 13:58:21
Михаил
"Еще забыл сказать, доступа к серваку на котором стоит почта и используется домен, я не имею."
Не решите вашу проблему без доступа
Дмитрий, 2020-07-21 в 13:17:28
deny message = "Не нравится мне Ваш хост..."
condition = ${if match{$sender_host_name} \
{adsl|dialup|pool|peer|dhcp} \
{yes}{no}}
А чем вам не нравится домен glavpooltorg.su?
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [68 шт.]