Мы — долго запрягаем, быстро ездим, и сильно тормозим.

Авторы
История сайта
Статистика
Архив
  CVSup
  EXIM & courier-imap
  postfix & courier-imap
  SQUID
  SAMBA
  IPsec
  C-ICAP
  exim & dbmail
  vpnd
  Samba как PDC
  pureftpd
  diskless
  gmirror
  SAMBA + LDAP
  IPSEC
  SAMBA+ACL
  Lightsquid
  LiveCD (+restore)
  1С:Предприятие 8.2
Карта сайта
поисковые слова
Личные настройки
Реклама
Друзья сайта


www.lissyara.su —> главная —> Архив —> EXIM & courier-imap

настройка связки EXIM, courier-imap и MySQL

Автор: lissyara.


Эта статья в архиве. Новая версия доступна по адресу: http://www.lissyara.su/?id=1175


   Когда я начинал общаться с UNIX`ами, то по инерции в качестве MTA (Message Transfer Agent) использовал Sendmail - инерция заключалась в том, что он ставился по умолчанию. Его я и настроил, и стал использовать. Работал он нормально, никаких проблем не было, но весьма доставали маловразумительные конфиги на макросах m4 которые мало кому легко даются, и отсутствие поддержки виртуальных доменов - у меня на машине была почта двух доменов, а вот раскладывалась она в одни и те же ящики - т.е. был ящик admin и в него ложилась почта и для admin@domain1.ru и для admin@domain2.ru. Естественно, что это было неудобно. Да и в плане безопастности меня беспокоило то, что использовались системные аккаунты.
   В-общем, по прошествии некоторого времени было принято решение эмигрировать на что-то иное. После бесплодных попыток настроить qmail я поставил связку postfix и courier-imap которая до сих пор успешно работает на той машине.
   Позже и у этой пары нашлись недостатки и я "эмигрировал" на exim. Он мне сразу понравился понятным конфигом (намного более вразумительным чем у того же postfix, который славится простотой конфигурационных файлов), плюс - файл один, а не куча как у постфикса. Также порадовала поддержка перл-совместимых регулярных выражений и нормальная поддержка MySQL - запросы к БД можно писать прямо в конфе... Короче - сказка :)
   Через некоторое время использования меня окончательно достал спам - уже не помогали ни блэк-листы, ни запрет на приём почты с хостов не имеющих доменного имени. Связано это было не с косяками самого экзима, а с тем что на мой ящик собиралась почта с одного домена целиком, и с "популярных" ящиков другого - postmaster, admin, support, & etc... После некоторого рыскания и метания - "а что делать?" было найдено интересное решение - задержка при приёме писем. В итоге это и было реализовано -  защита от спама методами самого exim и некоторым знанием того, как рассылается спам - серверу спамеров надо за малое время отослать несколько миллионов писем - поэтому, в отличие от нормального сервера он не может ждать больше нескольких секунд. Для "срезания" таких серверов в конфиг введена задержка на приёме письма - как итог нормальные сервера могут ждать и по 30 секунд, и по 99 - а вот спамерские отваливаются через 10-15 секунд. Им некогда - надо слать письма. Честно говоря эффектом был сам удивлён - спам пропал вообще. Потом выяснилось, что не всё так гладко - раз в три-четыре дня приходило письмо или пара. Судя по тому, что серверы с которых приходили эти письма в тот же день попадали в списки блэк-листов - спамеры просто находили и юзали очередной опен релей. Нужно заметить что это не моё изобретение, этот кусок конфига я подобрал в рассылке exim`a - exim-users.
   Итак, поехали. Ставим из портов, предварительно обновив их до нынешней версии.
/root/>cd /usr/ports/mail/exim
/usr/ports/mail/exim/>mcedit Makefile

там правим (комментируем или раскомментируем) такие строчки:
WITH_CONTENT_SCAN=     yes # для поддержки антивируса
WITH_MYSQL=            yes # для поддержки БД MySQL
WITH_MYSQL_VER=        40 # версия MySQL
WITHOUT_IPV6=          yes # Отрубаем IP шестой версии
WITH_DEFAULT_CHARSET?=  koi8-r # кодировка по-умолчанию
#LOGDIR?=        /var/log/exim # без директории для лог файлов, ибо 
# по умолчанию exim пишет логи в свою директорию, что на мой взгляд 
# не самый лучший вариант - для этого есть syslogd
LOG_FILE_PATH?= syslog # говорим ему куда писать логи - в syslog

Всё это шаманство с редактированием Makefile нужно только из-за того, что логи по-умолчанию пишутся дурацки - я хотел чтоб они писались в /var/log/maillog. Все опции кроме опций логов можно задать ключами при запуске Make. Но коли уж лезть - так на полную :) (что конечно же тоже неправильно, т.к. при использовании утилиты portupgrade она обновит порт с параметрами Makefile по-умолчанию, ибо ей-то невдомёк что файл был отредактирован - потому как при обновлении дерева портов он будет перезаписан дефолтовым.) После чего делаем make && make install && make clean.
   Создаём БД, заводим пользователя в MySQL - и таблицы по прилагаемым дампам:
-- MySQL dump 9.11
--
-- Host: localhost    Database: exim
-- ------------------------------------------------------
-- Server version       4.0.25-log

--
-- Current Database: exim
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ exim;

USE exim;

--
-- Table structure for table `aliases`
--

CREATE TABLE aliases (
  to_user varchar(128) NOT NULL default '',
  recipients text,
  PRIMARY KEY  (to_user)
) TYPE=MyISAM;

--
-- Dumping data for table `aliases`
--

INSERT INTO aliases VALUES ('@gate.domain1.ru','admin@lissyara.su');
INSERT INTO aliases VALUES ('@gate','admin@lissyara.su');
INSERT INTO aliases VALUES ('admin@domain1.ru','admin@lissyara.su');
INSERT INTO aliases VALUES ('postmaster@domain1.ru','admin@lissyara.su');
INSERT INTO aliases VALUES ('abuse@domain1.ru','admin@lissyara.su');

--
-- Table structure for table `domains`
--

CREATE TABLE domains (
  domainname varchar(128) NOT NULL default '',
  type enum('LOCAL','RELAY','VIRTUAL') default 'LOCAL',
  PRIMARY KEY  (domainname)
) TYPE=MyISAM;

--
-- Dumping data for table `domains`
--

INSERT INTO domains VALUES ('gate','LOCAL');
INSERT INTO domains VALUES ('domain1.ru','LOCAL');
INSERT INTO domains VALUES ('domain2.ru','VIRTUAL');
INSERT INTO domains VALUES ('gate.domain1.ru','LOCAL');

--
-- Table structure for table `users`
--

CREATE TABLE users (
  id varchar(64) NOT NULL default '',
  full_name varchar(128) NOT NULL default '',
  passwd varchar(64) NOT NULL default '',
  uid int(5) unsigned default '26',
  gid int(5) unsigned default '26',
  home varchar(128) binary default '/var/mail/exim/',
  active enum('Y','N') default 'Y',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

--
-- Dumping data for table `users`
--

INSERT INTO users VALUES ('vasya@domain1.ru', 
'пользователь Вася','1234567',26,26,'/var/mail/exim/','Y');
INSERT INTO users VALUES ('petya@domain1.ru', 
'юзер Петя','568954',26,26,'/var/mail/exim/','Y');
INSERT INTO users VALUES ('marina@domain2.ru', 
'пользователь Mарина','1234567',26,26,'/var/mail/exim/','Y');
INSERT INTO users VALUES ('sanya@domain2.ru', 
'ящик Саши','568954',26,26,'/var/mail/exim/','Y');

Следующим образом (cСЧИТАЕМ что приведённый выше дамп Вы скопировали в файл sql_dump.sql и он лежит в домашней директории):
/usr/home/lissyara/>mysql --user=root --password=root_password < sql_dump.sql

После чего редактируем конфиг exim`а - /usr/local/etc/exim/configure:
# Файл конфигурации: /usr/local/etc/exim/configure

primary_hostname = gate.domain1.ru
domainlist local_domains = ${lookup mysql{SELECT domainname FROM domains \
                                WHERE domainname='${domain}' AND \
                                (type='LOCAL' OR type='VIRTUAL')}}
domainlist relay_to_domains = ${lookup mysql{SELECT domainname FROM domains \
                                WHERE domainname='${domain}' AND type='RELAY'}}
hostlist   relay_from_hosts = 127.0.0.1 : 192.168.0.0/24

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
av_scanner = clamd:/var/run/clamav/clamd
qualify_domain = domain1.ru

log_selector = \
        +all_parents \
        +lost_incoming_connection \
        +received_sender \
        +received_recipients \
        +smtp_confirmation \
        +smtp_syntax_error \
        +smtp_protocol_error \
        -queue_run

allow_domain_literals = false
never_users = root:daemon:bin
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 30d
freeze_tell = postmaster
auto_thaw = 1h
message_size_limit = 16M
smtp_accept_max = 50
smtp_accept_max_per_connection = 50
smtp_connect_backlog = 50
smtp_accept_max_per_host = 25
split_spool_directory = true
remote_max_parallel = 15
# вводим параметры подключения к MySQL серверу хост/БД/имя_пользователя/пароль
hide mysql_servers = localhost/exim/exim/exim

begin acl

acl_check_rcpt:

  accept  hosts = :
# Задержка приёма письма - как средство борьбы со спамом -
# спамерам некогда ждать по 99 секунд :)
        warn
        set acl_m0 = 0s

        warn
        hosts = !+relay_from_hosts:!213.234.195.226/32
        set acl_m0 = 30s

        warn
        condition = ${if and {\
                {match{$sender_host_name}\
                {\N^[-a-z]*\d{0,3}[-a-z]*\.?[-a-z]*\d{0,3}[-a-z]*\.\w+$\N}} \
                {!eq{$acl_c0}{outblaze_helo}} \
                }{yes}{no}}
        set acl_m0 = 1s

        warn
        condition = ${if and {\
                {match{$sender_helo_name}{\N^\w*\.\w{3}$\N}} \
                {eq{$acl_c1}{}} \
                        }{yes}{no}}
        set acl_m0 = 99s

        warn
        condition = ${if and {\
                {!match{$sender_host_name}{\N.+.outblaze.com$\N}} \
                {eq{$acl_c0}{outblaze_helo}} \
                        }{yes}{no}}
        set acl_m0 = 99s

        warn
        condition = ${if and {\
                {!match{$sender_host_name}{\N.+.outblaze.com$\N}} \
                {eq{$acl_c2}{outblaze_domain}} \
                        }{yes}{no}}
        set acl_m0 = 99s

        warn
        condition = ${if or {\
                {eq{$sender_address}{}} \
                {eq{$acl_m1}{0s}} \
                } {yes}{no}}
        set acl_m0 = 0s

        warn
        logwrite = Delay $acl_m0 for $sender_host_name \
        [$sender_host_address] with HELO=$sender_helo_name. \
        Mail from $sender_address to $local_part@$domain.
        set acl_m1 = 0s
        delay = $acl_m0

############  ###################
    deny    local_parts   = ^.*[@%!/|] : ^\\.

# Приём писем для постмастера локальных доменов без проверок
#  accept  local_parts   = postmaster
#          domains       = +local_domains

  require verify        = sender

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

  deny    message       = Go Away! You are spammer.
          condition     = ${if match{$sender_host_name} \
                           {bezeqint\\.net|net\\.il|dialup|pool|peer|dhcp} \
                           {yes}{no}}

  deny    message       = host is listed in $dnslist_domain
          dnslists      = sbl.spamhaus.org : \
                          relays.ordb.org : \
                          opm.blitzed.org : \
                          proxies.blackholes.easynet.nl

  accept  domains       = +local_domains
          endpass
          message       = unknown user
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = unrouteable address
          verify        = recipient

  accept  hosts         = +relay_from_hosts

  accept  authenticated = *

  deny    message       = RELAY NOT PERMITTED

acl_check_data:

    deny        message         = Go Away! Eat Your Spam Self!
                condition       = ${if match{$message_body} \
                               {105[-_]*51[-_]*86|778[-_]*98[-_]*94} \
                               {yes}{no}}
    deny        malware         = *
                message         = Virus found ($malware_name)
    accept

begin routers

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

system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT recipients FROM aliases WHERE \
            to_user='${quote_mysql:$local_part@$domain}' OR \
                to_user='${quote_mysql:@$domain}'}}

mysqluser:
  driver = accept
  condition = ${if eq{} {${lookup mysql{SELECT home FROM users \
                WHERE id='${quote_mysql:$local_part@$domain}' OR \
                id='${quote_mysql:@$domain}'}}}{no}{yes}}
  transport = mysql_delivery

begin transports

remote_smtp:
  driver = smtp

mysql_delivery:
    driver = appendfile
    check_string = ""
    create_directory
    delivery_date_add
    directory = ${lookup mysql{SELECT CONCAT(home, '${local_part}@${domain}')\
    		 FROM users WHERE id='${local_part}@${domain}'}}
    directory_mode = 770
    envelope_to_add
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0600

address_pipe:
    driver = pipe
    return_output

address_file:
    driver = appendfile
    delivery_date_add
    envelope_to_add
    return_path_add

address_reply:
    driver = autoreply

begin retry

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

begin rewrite

begin authenticators

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT id FROM users \
                        WHERE id = '${quote_mysql:$1}' \
                        AND passwd = '${quote_mysql:$2}' \
                        AND active = 'Y'}{yes}{no}}
  server_prompts = :
server_set_id = $2

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT id FROM users \
                        WHERE id = '${quote_mysql:$1}' \
                        AND passwd = '${quote_mysql:$2}' \
                        AND active = 'Y'}{yes}{no}}
  server_prompts = Username:: : Password::
server_set_id = $1

auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT passwd FROM users \
                        WHERE id = '${quote_mysql:$1}' \
                        AND active = 'Y'}{$value}fail}
server_set_id = $1

Затем проверяем корректность конфига командой exim -bV:
/root/>exim -bV
Exim version 4.52 #0 (FreeBSD 4.11) built 24-Aug-2005 17:25:35
Copyright (c) University of Cambridge 2005
Probably Berkeley DB version 1.8x (native mode)
Support for: iconv() PAM Perl OpenSSL Content_Scanning Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz 
dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Configuration file is /usr/local/etc/exim/configure

Если нет ошибок - то продолжаем, если есть - исправлям (он достаточно подробно жалуется на ошибки, поэтому тут относительно просто, а чаще всего ошибки бывают из-за невнимательности).
   Добавляем в /etc/rc.conf строку exim_enable="YES" и там же меняем sendmail_enable="YES" на sendmail_enable="NONE", после чего убиваем sendmail, запускаем exim, и проверяем - запустился ли:
/root/>killall sendmail
/root/>/usr/local/etc/rc.d/exim.sh start
Starting exim.
/root/>ps -ax | grep exim
 2775  ??  Ss     0:00.00 /usr/local/sbin/exim -bd -q30m (exim-4.52-0)
/root/>

   Теперь ставим антивирус - ClamAV. Почему именно он? Просто когда-то у меня стоял DrWeb, но под него очень тяжело найти ключи :) Под UNIX-версию намного тяжелее чем под виндовую.... Потом, по проценту отлова заражённых файлов ClamAV недалеко от платных антивирей, иногда даже впереди (как-то отправил письмо другу с картинкой прикольной - приходит ответ моего же почтаря - фотка зарублена как заражённая каким-то jpeg-вирусом.... Касперский на моей машине с самыми свежими базами файл этот в упор не видел как заражённый....).
/root/>cd /usr/portd/security/clamav
make && make install && make clean

При запуске вылазиет красивое окошко с выбором опций - ничего не выбираем (у меня он предложил "URL downloading" и "milter"). Добавляем в /etc/rc.conf строку clamav_clamd_enable="YES" запускаем демона и проверяем заработало ли:
/root/>/usr/local/etc/rc.d/clamav-clamd.sh start
Starting clamav_clamd.
/root/>ps -ax | grep clam
 3073  ??  Is     0:00.00 /usr/local/sbin/clamd
 3078  p0  DL+    0:00.00 grep clam
/root/>

В особой настройке не нуждается, по умолчанию неплохо работает, но при желании можно поправить конфиг - /usr/local/etc/clamd.conf, ещё есть прикол - строка в этом файле в начале файла - Example если она есть и незакомментирована - то он неработает. Единственное для чего точно требуется настройка - это обновление антивирусных баз - для этого запускаем планировщик (crontab -e - нужно учесть что запускается редактор по-умолчанию, т.е. vi если вы это не исправили :)) от суперпользователя и вносим в него такую строку:
28	*/4	*	*	*    /usr/local/bin/freshclam >/dev/null 2>&1

Теперь каждый час, который делится нацело на 4 (т.е. в 0, 4, 8, 12, 16, 20) в 28 минут будет проводиться обновление антивируса. Если кажется слишком часто - можно поставить и реже.
   Собственно почту сервер уже может принимать. Для проверки можно отправить самому себе письмо с консоли:
/root/>mail -s test_e_mail admin@domain1.ru < /usr/local/etc/rc.d/exim.sh

После чего надо сходить в папку /var/mail/exim и посмотреть появилась ли внутри папка с именем пользователя а в ней файл письма в папке NEW. Если всё нормально - идём дальше, нет - смотрим логи - /var/log/maillog и устраняем ошибки. Есть одна особенность у инсталлятора exim - если до него стоял sendmail, то содержимое файла /etc/mail/mailer.conf остаётся неизменным, а вот если до него стоял другой MTA то в него стоит заглянуть - при удалении не все они восстанавливают после себя всё `как былО` - е если в нём прописан старый майлер то заменить его содержимое на следующее:
sendmail        /usr/local/sbin/exim
send-mail       /usr/local/sbin/exim
mailq           /usr/local/sbin/exim -bp
newaliases      /usr/local/sbin/exim -bi
hoststat        /usr/local/sbin/exim
purgestat       /usr/local/sbin/exim

Только нужно учесть что это действует только на отправку сообщений с консоли. Если у Вас проблема не в этом месте, то его править бесполезно.
   Теперь осталось научить его отдавать почту клиентам. Для этого ставим courier-imap:
/root/>cd /usr/ports/mail/courier-imap
/usr/ports/mail/courier-imap/>make && make install && make clean

В появившемся окошке с опциями нам нужно только одно - поддержка авторизации MySQL. Остальное никчему. По окончании настройки конфигурим, но не сам courier-imap, a courier-authlib которого он за собой тащит при установке. Редактируем файл /usr/local/etc/authlib/authmysqlrc до такого состояния:
MYSQL_SERVER            localhost
MYSQL_USERNAME          exim
MYSQL_PASSWORD          exim
MYSQL_PORT              3306
MYSQL_DATABASE          exim
MYSQL_USER_TABLE        `users`
MYSQL_CLEAR_PWFIELD     `passwd`
MYSQL_UID_FIELD         `uid`
MYSQL_GID_FIELD         `gid`
MYSQL_LOGIN_FIELD       `id`
MYSQL_NAME_FIELD        `full_name`
MYSQL_MAILDIR_FIELD     CONCAT(`home`, `id`)
DEFAULT_DOMAIN          domain1.ru

После чего добавляем следующие строки в /etc/rc.conf:
courier_imap_pop3d_enable="YES"
courier_imap_imapd_enable="YES"
courier_authdaemond_enable="YES"

И запускаем службы:
/etc/>cd /usr/local/etc/rc.d
/usr/local/etc/rc.d/>./courier-authdaemond.sh start
Starting courier_authdaemond.
/usr/local/etc/rc.d/>./courier-imap-imapd.sh  start
Starting courier_imap_imapd.
/usr/local/etc/rc.d/>./courier-imap-pop3d.sh  start
Starting courier_imap_pop3d.
/usr/local/etc/rc.d/>ps -ax | grep imap
 6223  ??  I      0:00.00 /usr/local/sbin/courierlogger -
 6224  ??  I      0:00.00 /usr/local/libexec/courier-imap
 6235  ??  S      0:00.00 /usr/local/libexec/courier-imap
/usr/local/etc/rc.d/>sockstat | grep couri
root     couriert  6235    3 tcp4   *:110                 *:*
root     couriert  6224    3 tcp4   *:143                 *:*
root     courierl  6234    4 dgram  syslogd[113]:3
root     courierl  6223    4 dgram  syslogd[113]:3
root     courierl  6207    4 dgram  syslogd[113]:3
/usr/local/etc/rc.d/>sockstat | grep auth
root     authdaem  6213    5 stream /var/run/authdaemond/socket.tmp
root     authdaem  6212    5 stream /var/run/authdaemond/socket.tmp

   Вот и всё. Тестируйте, проверяйте. Всё это руководство писалось при наладке тестовой машины следующей конфигурации:
P-II 233 MHz
64 Mb RAM
8 Gb HDD

Версии ПО:
exim-4.52
clamav-0.86.2_1
courier-authlib-base-0.57
courier-authlib-mysql-0.57
courier-imap-4.0.4,1
mysql-server-4.0.25

После чего конфиг переносился на "боевой" сервак. Также подразумевается что MySQL уже стоит.



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=486.

размещено: 2005-08-27,
последнее обновление: 2009-10-24,
автор: lissyara

оценить статью:

..::GNUтёнок::.., 2005-10-13 в 0:31:30

УРА! Спасибо Лёха. мне удалось поднять Сервак.
Работает вроде. тьфу тьфу тьфу.
В общем запара была с курьером. там crypt нужно было вычеркнуть, что бы почту забирал.  а так писал в логи
051013  4:28:32      48 Connect     exim@localhost on
48 Init DB     exim
48 Query       SELECT `id`, crypt, `passwd`, `uid`, `gid`, home, CONCAT(`home`, `id`), "", `full_name`, "" FROM `users` WHERE `id` = "name@domain1.com"

..::GNUтёнок::..,, 2005-10-13 в 0:40:16

Вот только я не понял. почему на yandex.ru я отправляю письмо, оно в другой кодировки приходит. непонял что то.

lissyara, 2005-10-13 в 9:00:27

Ага. Exim, от нечего делать, письма на лету перекодирует....
Рой клиента своего почтового.

..::GNUтёнок::.., 2005-10-14 в 6:46:22

В общем все тип топ. Вот думаю dhcpd поставить.. мне dhcp на винде никак не нравится.

..::GNUтёнок::.., 2005-10-14 в 9:40:59

мм..  а квоты на отправку почты анлимит? ^)

lissyara, 2005-10-14 в 9:51:11

Я сервак для офиса настраивал, а не магистральный SMTP-релей :)

monstr, 2005-12-23 в 10:36:04

все бы хорошо только не могу понать вот этого

Создаём БД, заводим пользователя в MySQL - и таблицы по прилагаемым дампам:
— MySQL dump 9.11
--
— Host: localhost    Database: exim
— ------------------------------------------------------
— Server version       4.0.25-log

--
— Current Database: exim
--


что сним делать и куда его пихать ???
Я не ламер я только учусь.

lissyara, 2005-12-23 в 10:55:20

Сорри. Щас добавлю в статью. А в общих чертах оно делается так - либо копируешь текст отсюда и вставляешь в phpMyAdmin - в окно выполнить SQL запрос, либо в текстовый файл и с ним делаешь так:
mysql --user=root --password=root_passwd < file.sql

P.S. надо добавить, что нынешний exim умеет сразу сам писать логи в maillog - поэтому эту часть Makefile можно не трогать.

Alexandr, 2005-12-26 в 7:33:49

Всё прекрасно но как избежать сообщений типа, не понятно от кого. Может кто знает как закрыть эту траблу!

Вот кусок лога

2005-12-26 09:08:55 Delay 0s for  [66.246.218.96] with HELO=mail.idiot.com. Mail from  to int_chel@example.com.

lissyara, 2005-12-26 в 9:08:04

А что тебе не нравится в этом логе?
Это ещё не сообщение, это тока факт соединения серверов...

Alexandr, 2005-12-27 в 7:35:06

вот  ->>
2005-12-26 09:08:55 Delay 0s for  [66.246.218.96] with HELO=mail.hoster.kz. Mail from  to int_chel@example.com.
2005-12-26 09:09:27 1EqijI-0001jn-FK <= <> H=(mail.hoster.kz) [66.246.218.96] P=esmtps X=TLSv1:AES256-SHA:256 S=109204 id=E1EqjiG-00
0IS8-4x@mail.hoster.kz

Alexandr, 2005-12-27 в 7:36:20

2005-12-26 09:09:27 1EqijI-0001jn-FK Completed

lissyara, 2005-12-27 в 9:30:12

так бы и сказал, что с пустым полем "From".
Хрен его знает. Надо читать документацию и правило писать...

dmart, 2005-12-30 в 16:03:54

С пустым MAIL From: - это стандарт для сообщений об отлупах. А то зафильтруете, и знать не будете, что ваши письма куда-то не доходят.

Showjumper, 2006-01-10 в 20:18:43

А расшифруйте плиз как тут почта по алиасам бегает ?
как я понял все алиасы только из MySQL, расшифруйте что есть to_user ....ну собсно воопче чт отам сказано :)
Спасибо.
PS я еще встретил не system_aliases, a mysql_system_aliases:
на етой странице http://www.exim.org/pipermail/exim-users/Week-of-Mon-19991025/014854.html

lissyara, 2006-01-10 в 20:53:37

Поле `to_user` - получатель письма в локальном домене (кому она пришла на этом сервере), поле `recipients` - получатель почты, кому она уйдёт с этого сервера в итоге

Zzz, 2006-01-23 в 17:53:36

Спасибо за хорошую статью.
У меня проблема такая: при доставке почты время доставки указывается на 3 часа больше, чем есть на самом деле. Системное время в норме. В настройках courier-imap про время ничего не указать. Может, кто сталкивался - подскажите.

Rustem, 2006-02-08 в 15:41:47

Проверка на антивирус идет все файлы - болшие и маленькие, как можно ограничить проверку размером , можеть кто нить написать?

Николай, 2006-02-08 в 16:09:07

To Zzz:
Дело скорее всего в том что ты при установке системы установил временную зону как Москва + 3 часа :)
Оттуда этот косяк и лезет. Выправить можно просто:
sysinstall и там уже по месту разберешься.

Саня, 2006-04-17 в 15:04:19

Спасибо за статью! Материал приятно выложен, удобен для чтения и понимания. Буду пробовать поднятть серв по этому описанию. (Сам я лишь немного знаком с freeBSD, поэтому для меня статья более чм полезна)

Александр, 2006-05-17 в 16:08:37

Сделали все как описано в статье - не работает, письма отправляются, но не принимаются и почтовый клиент (Outlook) не может прочитать каталоги, пишет ошибку:
       Temporary problem, please try again later
   Протокол:    IMAP
   Сервер:    mail.my-domain.ru
   Порт:    143
и пишет что не удалось загрузить папку для пользователя, не удалось соединиться с сервером.  в maillog на сервере input\output error :(
Очень жаль что подобные "справочные материалы" только впустую убивают рабочее время, целую неделю было потрачено на настройку почтового сервера основываясь на данной статье. Пробовали фри 5.4 и 6.1

lissyara, 2006-05-17 в 16:14:33

Наберут Пэ-Тэ-Ушников по объявлению... :))
1. Чиать умеешь, про комментарии и форум для вопросов?
2. Включи отладку.
3. И без отладки скажу - а директории такие есть? Их экзим при отпраке первого письма создаёт. завёл юзера - отправь ему письмо.
4. На что ты неделю потратил? на копи-пасте, у меня самого (а статью я для себя писал - чтоб проще было) уходит минут 20, после чего всё работает.

имя, 2006-06-08 в 18:16:46

а у меня один баг вылез - после обновления до последней версии под фри-бсд - запускается, порт слушает но при попытке коннекта - обрывается - в логи ничего кроме lost input connection Connection closed by foreign host - не пишет - что деалть? exim -bd -d+all тоже выдает  Process 10418 is ready for new message и потом lost input connection
уже второй день бьюсь - все библиотеки и перлы пересобрал - все одно и то-же при чем на второй машине с этим-же конфигом все работает

DarkHost, 2007-08-28 в 13:17:55

Тю...а я-то думал, что наконец-то заработала нормально фича с PASSWD_CRYPT_FIELD, обрадовался.... :(

Maksim, 2008-01-13 в 12:46:25

А вот такой вопрос: у меня в mysql базе пароли зашифрованны sha, сейчас пока стоит dovecot как pop и imap сервер. Возможно ли в courier использовать шифрование?
Я сам конечно сейчас разберусь, только вот было бы хорошо и тут написать про шифрование.

majestic, 2008-04-03 в 0:48:35

relays.ordb.org : \
- надо убрать (http://www.opennet.ru/openforum/vsluhforumID3/40914.html)

Oleg, 2009-10-24 в 22:58:31

Делаю по инструкции запускаю exim -bV, получаю вот такую ощибку.
2009-10-24 05:45:25 Exim configuration error in line 43 of /usr/local/etc/exim/configure:
 main option "mysql_servers" unknown

Как быть?

lissyara, 2009-10-24 в 23:07:34

взять статью не из архива - линк есть вверху этой.
обсуждения закрыты.



Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга

Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff

Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа

Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL

Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)

Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP

Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools

Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP

Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network

Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem

В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID

Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN

Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS

В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL

Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)

Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external

mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 13 чел.
За последние 30 мин было: 45 человек
За сегодня было
3291 показов,
462 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.2182 секунд
Из них PHP: 74%; SQL: 26%; Число SQL-запросов: 53 шт.
Исходный размер: 141786; Сжатая: 30003