The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Настройка Postfix и Cyrus-Imap с хранением базы пользователей в MySQL (postfix mail imap mysql sasl auth)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: postfix, mail, imap, mysql, sasl, auth,  (найти похожие документы)
From: Lubimez Newsgroups: admin at lubimez.tomsk.ru Date: Mon, 8 Sep 2004 14:31:37 +0000 (UTC) Subject: Настройка Postfix и Cyrus-Imap с хранением базы пользователей в MySQL Оригинал: http://lubimez.tomsk.ru/postfix/ Установка mysql-server version 4.0.18 (можно версии ниже.. ) cd /usr/posts/databases/mysql40-server/ make install clean создать базу mail create database mail; use mail; Таблица алиасов CREATE TABLE aliases ( email varchar(128) NOT NULL default '', alias varchar(128) NOT NULL default '', listid int(10) unsigned NOT NULL default '0', info varchar(150) NOT NULL default '' ) TYPE=MyISAM; Список CREATE TABLE lists ( listid int(10) unsigned NOT NULL auto_increment, name varchar(50) NOT NULL default '', info varchar(150) NOT NULL default '', PRIMARY KEY (listid) ) TYPE=MyISAM; Таблица с учетными записями CREATE TABLE users ( email varchar(128) NOT NULL default '', passwd varchar(128) NOT NULL default '', enabled tinyint(4) NOT NULL default '1', name varchar(150) default NULL, info varchar(150) default NULL, PRIMARY KEY (email) ) TYPE=MyISAM; Предоставляем права для юзера mail grant select,insert,update,delete,create,drop on mail.* to mail@localhost identified by 'mail'; далее ставим cyrus-imapd2 cd /usr/ports/mail/cyrus-imapd2 делай патч make patch далее заходим в каталог /usr/ports/mail/cyrus-imapd2/work/cyrus_версия_х_х_/imap открываем файл message.c ee message.c ищем 'Х' для этого жмем ctrl-y и набираем в строке поиска 'X' меняем if (inheader && *p >= 0x80) { на if (0 && inheader && *p >= 0x80) { таким же образом меняем в файле lmtpengine.c if (c >= 0x80) { на if (0 && c >= 0x80) { далее устанавливаем cyrus-imapd2 /usr/ports/mail/cyrus-imapd2 make install clean устанавливаем cyrus-sasl2 cd /usr/ports/security/cyrus-sasl2 собираем для работы с мускулом (с флагом with_mysql=yes) make FORCE_PKG_REGISTER=yes WITH_MYSQL=yes инсталируем make install или make WITH_MYSQL=YES FORCE_PKG_REGISTER=YES install clean ну и на конец самое основное - ставим postfix cd /usr/ports/mail/postfix make install clean выбрать sasl2 и mysql на все вопросы отвечаем y (при добавлении в mailer.conf и др.) а теперь приступим к самому главному-- НАСТРОЙКЕ идемс в /usr/local/etc/postfix (или куда вы тама ставили при конфигурировании) открываем файл main.cf и... удаляем тама все.-))) пишем туда ниже следующее (пишете все точно. даже пробелы в начале строки, где указано) queue_directory = /var/spool/postfix command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix mail_owner = postfix myhostname = ваш домен mydestination = localhost, $myhostname, localhost.$mydomain, $config_directory/mydestination unknown_local_recipient_reject_code = 550 mynetworks_style = subnet mynetworks = 127.0.0.0/8, 192.168.1.0/24 alias_maps = hash:/etc/mail/aliases mysql:/usr/local/etc/postfix/mysql-aliases.cf alias_database = hash:/etc/mail/aliases mailbox_transport = cyrus fallback_transport = smtpd_banner = $myhostname Postfix rules! debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/local/sbin/sendmail newaliases_path = /usr/local/bin/newaliases mailq_path = /usr/local/bin/mailq setgid_group = maildrop manpage_directory = /usr/local/man sample_directory = /usr/local/etc/postfix readme_directory = no allow_mail_to_commands = alias # max message_size_limit = 10240000 bounce_size_limit = 65536 header_size_limit = 32768 allow_untrusted_routing = no local_recipient_maps = $alias_maps mysql:/usr/local/etc/postfix/mysql-local.cf smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = smtpd_sasl_tls_security_options = $smtpd_sasl_security_options smtpd_recipient_restrictions = permit_mynetworks, hash:/etc/mail/access, permit_sasl_authenticated, permit_auth_destination, reject_unauth_destination smtpd_client_restrictions = permit_mynetworks relayhost = тут пишем релэи-)) если нету внешнего инета далее создадим файл mysql-local.cf в той же директории и пишем там user = mail (юзер которому вы предоставляли право на базу) password = mail (пароль) dbname = mail (если вы создавали другую пишите её) table = users select_field = email where_field = email additional_conditions = and enabled = 1 hosts = localhost (если на другой тачке стоит, то пишем её) таким же образом создадим файл mysql-aliases.conf и пишем user = mail (юзер которому вы предоставляли право на базу) password = mail (пароль) dbname = mail (если вы создавали другую пишите её) table = aliases ( таблица) select_field = alias where_field = email hosts = localhost (если на другой тачке стоит, то пишем её) в файле master.cf проверить запись cyrus, одна должна быть такой cyrus unix - n n - - pipe user=cyrus argv=/usr/local/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} создаем файл /usr/local/etc/imapd.conf и пишем в нем следующее # чтоб не различал регистр почтового ящика lmtp_downcase_rcpt: 1 # чтоб врга брутфорсом не перебрал plaintextloginpause: 2 # чтоб не тусились в очереди письма для аккаунта с превышенной квотой lmtp_overquota_perm_failure: yes # Директория с конфигурацией configdirectory: /var/imap partition-default: /var/spool/imap quotawarn: 95 # Суперпользователь для IMAP-а admins: cyrus # Автоматически давать права админу на созданный аккаунт defaultacl: cyrus lrswipcda # Стандартная квота ~10 мег autocreatequota: 10000 logtimestamps: yes # по идее совсем не нужно reject8bit: no postmaster: postmaster # MySQL sasl_pwcheck_method: auxprop sasl_auxprop_plugin: sql sasl_sql_engine: mysql sasl_mech_list: plain login cram-md5 digest-md5 sasl_sql_user: mail (юзер которому вы предоставляли право на базу) sasl_sql_passwd: mail (пароль) sasl_sql_database: mail (если вы создавали другую пишите её) sasl_sql_hostnames: localhost sasl_sql_select: SELECT passwd FROM users WHERE email = LOWER('%u') AND enabled = 1 sasl_log_level: 255 содаем файл /usr/local/etc/cyrus.conf и пишем в нем START { recover cmd="ctl_cyrusdb -r" } SERVICES { imap cmd="imapd" listen="imap" prefork=0 # imaps cmd="imapd -s" listen="imaps" prefork=0 (по не обходимости можно включить) pop3 cmd="pop3d" listen="pop3" prefork=0 # pop3s cmd="pop3d -s" listen="pop3s" prefork=0 # sieve cmd="timsieved" listen="sieve" prefork=0 lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0 # notify cmd="notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1 } EVENTS { checkpoint cmd="ctl_cyrusdb -c" period=30 delprune cmd="ctl_deliver -E 3" at=0400 tlsprune cmd="tls_prune" at=0400 } далее создадим файл touch /usr/local/lib/sasl2/smtpd.conf и внесем в него следующую информацию pwcheck_method: auxprop auxprop_plugin: sql sql_engine: mysql mech_list: plain login cram-md5 digest-md5 sql_user: mail (аналогично предыдущему) sql_passwd: mail (аналогично предыдущему) sql_database: mail (аналогично предыдущему) sql_hostnames: localhost (аналогично предыдущему) sql_select: SELECT passwd FROM users WHERE email = LOWER('%u') AND enabled=1 выставим права chown root:mail /usr/local/lib/sasl2/smtpd.conf chmod 440 /usr/local/lib/sasl2/smtpd.conf с настройкой конфигов покончено. приступим к настройке учетных записей и mailbox'ов сделаем команду /usr/local/cyrus/bin/mkimap должно быть следующее сообщение # /usr/local/cyrus/bin/mkimap reading configure file... i will configure directory /var/imap. i saw partition /var/spool/imap. done creating /var/imap... creating /usr/sieve... creating /var/spool/imap... done Выставим права на каталоги chown -R cyrus:cyrus /var/imap chown -R cyrus:cyrus /var/spool/imap добавим в базу mail пользователя cyrus insert into users(email,passwd,enabled,name,info) values('cyrus','пароль',1,'cyrus','cyrus'); Для того что бы добавлять пользователей почты необходимо также сконфигурить apache+php причем php нужно конфигурить с socket'ами web приложение для администрирование mailbox'ов mailadm.tar.gz файл config.php в архиве $MYSQLHOST = "localhost"; (настройки аналогичные для коннекта к мускулу выше) $MYSQLUSER = "mail"; $MYSQLPASS = "mail"; $MYSQLDB = "mail"; $CYRUS_HOST="localhost"; $CYRUS_PORT="143"; $CYRUS_USERNAME="cyrus"; (пользователь которого вы добавили в базу) $CYRUS_PASSWORD="cyrus"; (пароль) $SESS_TIMEOUT=600; $DEFQUOTE=10000; $DEFNAME='yourdomain.com'; - доменное имя CopyRight by Lubimez <admin at lubimez.tomsk.ru>

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, vek (??), 10:17, 24/11/2004 [ответить]  
  • +/
    web приложение для администрирование mailbox'ов mailadm.tar.gz

    ???????????????????? И где оно ? или тама была ссылка ? Если да то битая если это просто говорится что нада качать маил админ то кскажи какой пажалуйста. Я попробовал разные но видать нето что нада

     
  • 1.2, Lubimez (?), 19:32, 09/12/2004 [ответить]  
  • +/
    Полная ссылка
    http://lubimez.tomsk.ru/postfix/mailadm.tar.gz
    в связи с тем что на данном сервере иногда не бывает
    Внешнего интернета, прошу писать на admin at lubimez.tomsk.ru что бы выслать вам данный архив (web приложение).

    С уважением Lubimez

     
  • 1.3, Visual (??), 18:07, 25/02/2005 [ответить]  
  • +/
    а как быть, если мы добавляем пользователей с использованием команды encrypt('пароль')?!

    ведь sasl берет пароль без шифрования.... поэтому мы не сможем отправить почту использую sasl..

    Кто с таким сталкивался?!


     
  • 1.4, ILyaZ (?), 16:49, 09/03/2005 [ответить]  
  • +/
    таким же образом создадим файл mysql-aliases.conf и пишем , тута ошибочка файл у нас должнен называться mysql:/usr/local/etc/postfix/mysql-aliases.cf.
     
  • 1.5, betatester (?), 15:29, 29/09/2005 [ответить]  
  • +/
    http://ctc.tsu.ru/mailadm.tar.gz
     
  • 1.6, Georgi (ok), 14:39, 04/02/2006 [ответить]  
  • +/
    А не могли бы по подробнее расказать как потом все протестировать! Как через что авторизоваться!
    Вроде telmet localhost 143
    мне выводит:
    Trying 127.0.0.1...
    telnet: connect to address 127.0.0.1: Connection refused
    telnet: Unable to connect to remote host: Connection refused
    !
    Что делать ХЕЛПППП!!!!
     
     
  • 2.7, Lubimez (?), 11:09, 21/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    на сколько я понимаю Imap сервер у вас не запущен.
    проверьте настройки в rc.conf/imapd.conf/ и запустите скриптом imapd.sh

    при telnet localhost 143
    должно быть сообщение следующего вида
    к примеру
    * OK lubimez.tomsk.ru Cyrus IMAP4 v2.1.18 server ready

     

  • 1.8, Sarge (??), 13:57, 29/08/2006 [ответить]  
  • +/
    А если у меня несколько доменов на одном серваке для которых я почту принимаю.??
    Тогда как изменится конфигурация..?
     
     
  • 2.10, kopic (??), 14:40, 14/04/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Собственно никак.
     

  • 1.9, sypperpit (??), 22:56, 01/11/2006 [ответить]  
  • +/
    не работают ссылки на mailadm.tar.gz
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру