|
||||||||||||||||||||||||
![]()
Mobile LinuxOpen (test version) |
Установка и настройка почтового сервераМне нравится:
Ставим Debian.
При установке выбираем только базовую систему. Без графики. После установки пишем в консоли apt-get install ssh Теперь можно подключатся с другого компьютера! Дальше apt-get install mc tcpdump gcc-4.1 Добавим репозитарии: vim /etc/apt/sources.list Нажимаем i что бы можно было редактировать. Добавляем эти строки: deb ftp://ftp.debian.unn.ru/debian/debian etch main contrib non-free deb http://mirror.yandex.ru/debian/ etch main contrib non-free Чтобы сохранить документ после редактирования в vim необходимо выйти из режима редактирования ESC и потом выйти с сохранением - :x (без сохранения - :q!). Если необходимо прописываем прокси-сервер: export http_proxy=http://192.168.1.1:3128 export ftp_proxy=http://192.168.1.1:3128 Обновляем зеркала apt-get update Устанавливаем WEB сервер apt-get install apache2 apt-get install libapache2-mod-perl2 apt-get install libapache2-mod-php4 Редактируем: vim /etc/apache2/apache2.conf Ищем строки и изменяем их (они скорре всего закоментированны – первый символ #) DefaultLanguage ru AddDefaultCharset koi8-r Создаем виртуальный хост mkdir /var/www/admin vim /etc/apache2/sites-available/admin И прописываем туда эти строки: NameVirtualHost 192.168.1.2 ServerName admin@mydomain.ru ServerAdmin seval@mydomain.ru DocumentRoot /var/www/admin/ Options FollowSymLinks AllowOverride All Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog /var/log/apache2/admin/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/admin/access.log combined ServerSignature On На этом настройка Apache закончена. Устанавливаем MySQL сервер apt-get install mysql-server Установка Postfix c поддержкой TLS и MySQL Postfix отвечает только за приём почты и раскладке его по нужным каталогам. - Устанавливаем необходимые пакеты, также будет весьма полезно установить документацию: apt-get install postfix apt-get install postfix-mysql apt-get install postfix-tls apt-get install postfix-doc Вносим изменения в /etc/postfix/main.cf vim /etc/posfix/main.cf Удаляем все что там есть и прописываем эти строки: # Задаем имя нашего почтового узла myhostname = mydomain.ru # Имя нашего домена, если не указывать, то по умолчанию # выставится myhostname минус первый компонент до точки mydomain = mydomain.ru alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $myhostname # Список доменов на которые будет осуществлятся доставка # через local transport mydestination = $myhostname, localhost.$myhostname, localhost # Здесь задается нужно ли при авторзации указывать домен # например вместо admin@mydomain.ru # можно просто admin append_dot_mydomain = no # Здесь задается откуда Postfix принимает smtp соединения mynetworks = 127.0.0.0/8 192.168.1.0/24 # Здесь задается на каких сетевых интерфейсах слушает Postfix inet_interfaces = all # Какой баннер выдается при приглашении smtpd_banner = $myhostname ESMTP $mail_name (Seval/Linux) biff = no recipient_delimiter = + # Uncomment the next line to generate "delayed mail" warnings delay_warning_time = 4h # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # Серевер на который будет пересылатся вся не локальная почта # relayhost = 192.168.200.200 #mailbox_command = procmail -a "$EXTENSION" # устанавливаем ограничение на ящик в 100Мб и на письмо в 10Мб mailbox_size_limit = 102400000 message_size_limit = 10240000 # Создаём виртуальный домен, учитывая что uid=106(postfix) gid=107(postfix) # проверить можно id postfix virtual_mailbox_base = /var/spool/postfix/vmail virtual_mailbox_domains = mysql:/etc/postfix/virt_domain.cf virtual_alias_maps = mysql:/etc/postfix/virt_alias.cf virtual_mailbox_maps = mysql:/etc/postfix/virt_mailbox.cf transport_maps = mysql:/etc/postfix/transport.cf virtual_minimum_uid = 100 virtual_uid_maps = static:106 virtual_gid_maps = static:107 # Добавим небольшой фильтр от спама header_checks = regexp:/etc/postfix/header_checks # Различные ограничения, призванные помочь в борьбе со спамом smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_helo_required = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination # Здесь указывается куда отправлять копию всей почты #always_bcc =backup@mydomain.ru - Создаём каталог, где будет храниться почта и изменяем владельца и права доступа: mkdir /var/spool/postfix/vmail chown postfix.postfix /var/spool/postfix/vmail chmod 700 /var/spool/postfix/vmail - Создаём файл, в котором пропишем правило отсева сообщений в теме которых содержаться слова sex, viagra, seduce, naked: vim /etc/postfix/header_checks Прописываем /^Subject.*(sex|viagra|seduce|naked)/ FILTER REJECT: - Создадим файлы доступа к MySQL. Пользователь postfixadmin в MySQL будет создан позже, при установке Postfix Admin. vim /etc/postfix/virt_alias.cf Там прописываем: user = postfixadmin password = postfixadmin hosts = 127.0.0.1 dbname = postfix table = alias select_field = goto where_field = address vim /etc/postfix/virt_domain.cf Там прописываем: user = postfixadmin password = postfixadmin hosts = 127.0.0.1 dbname = postfix table = domain select_field = description where_field = domain vim /etc/postfix/virt_mailbox.cf Там прописываем: user = postfixadmin password = postfixadmin hosts = 127.0.0.1 dbname = postfix table = mailbox select_field = maildir where_field = username vim /etc/postfix/transport.cf Там прописываем: user = postfixadmin password = postfixadmin hosts = 127.0.0.1 dbname = postfix table = transport select_field = destination where_field = domain указывая в hosts IP адрес, мы принуждаем Postfix соединяться с MySQL через порт, если же указать localhost, то он будет стараться соединиться через сокет. Устанавливаем Postfix Admin для настройки postfix через веб-интерфейс. Доустановим пакет позволяющий PHP работать с MySQL: apt-get install php4-mysql Автоматически подгружаем расширение PHP для MySQL vim /etc/php4/apache2/php.ini Там убираем комментарий со строки extension=mysql.so В данном случае комметарии не символ # а символ ; Берём последнюю версию пакета с wget http://downloads.sourceforge.net/postfixadmin/postfixadmin-2.2.1.1.tar.gz?modtime=1216813976&big_mirror=0 - Распаковываем tar -zxvf postfixadmin-x.x.x.tgz Переносим в рабочую директорию mv postfixadmin-x.x.x /var/www/admin/postfix Заходим в рабочую директорию cd /var/www/admin/postfix - Создаём таблицы: mysql -u root -p < DATABASE_MYSQL.TXT - Копируем config.inc.php.sample в config.inc.php cp config.inc.php.sample config.inc.php и редактируем vim config.inc.php Там изменяем: $CONF['default_language'] = 'ru'; $CONF['admin_email'] = 'postmaster@electro.alrosa-mir.ru'; $CONF['default_aliases'] = array ( // 'abuse' => 'abuse@electro.alrosa-mir.ru ', // 'hostmaster' => 'hostmaster@electro.alrosa-mir.ru ', 'postmaster' => 'pm@electro.alrosa-mir.ru ', 'webmaster' => 'pm@electro.alrosa-mir.ru ' ); $CONF['domain_path'] = 'NO'; $CONF['domain_in_mailbox'] = 'YES'; // Specify your default values below. Quota in MB. $CONF['aliases'] = '10'; $CONF['mailboxes'] = '10'; $CONF['maxquota'] = '10'; $CONF['show_footer_text'] = 'NO'; поставляемый с программой руссифицирующий файл создан в кодировке windows-1251, да к тому же с длинными строками, чего программа не предусматривает. В результате невозможно работать из-за наезжания кнопок друг на друга. Попытки сменить кодировку не увенчались успехом. Программа упорно выдаёт свои страницы на русском языке невзирая на значение переменной default_language. Но мы - русские люди, поэтому русификацию пришлось доработать. Можно скачать другой лэнг файл wget http://pm4u.opennet.ru/files/ru_koi8-r.lang mv ru_koi8-r.lang ru.lang rm /var/www/admin/postfix/languages/ru.lang cp ru.lang var/www/admin/postfix/languages/ - Cоздаём таблицу transport в MySQL и заносим туда данные: mysql -u root postfix CREATE TABLE IF NOT EXISTS transport (domain varchar(128) not null primary key, destination varchar(128) not null); INSERT INTO transport (domain,destination) VALUES ('electro.alrosa-mir.ru','virtual'); SELECT * FROM transport; - Даём пользователю postfixadmin право на подключение к базе через порт. Для этого переходим в базу mysql: USE mysql; INSERT INTO db (host,db,user) VALUES ('127.0.0.1','postfix','postfixadmin'); INSERT INTO user (host,user,password) VALUES ('127.0.0.1','postfixadmin',password('postfixadmin')); UPDATE db SET Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y', Create_priv='Y', Drop_priv='Y', Grant_priv='Y', References_priv='Y', Index_priv='Y', Alter_priv='Y', Create_tmp_table_priv='Y', Lock_tables_priv='Y' WHERE user='postfixadmin'; SELECT * FROM db WHERE user='postfixadmin'; - Активируем все изменения и покидаем командную оболочку MySQL: flush privileges; quit Здесь нужно обратить внимание на то что строка заканчивается точкой с запятой. - Проверяем из браузера страницу http://192.168.1.2/admin/postfix/admin/list-admin.php - Смотрим конфигурацию (если возникли проблемы, то здесь можно найти подсказку) на http://192.168.1.2/admin/postfix/setup.php - Добавляем домен electro.alrosa-mir.ruи почтовые ящики pm и p. - Теперь в консоли проверяем как работает доставка почты, т.е. smtp: telnet 192.168.1.2 25 Trying 192.168.1.2... Connected to 192.168.1.2. Escape character is '^]'. 220 electro.alrosa-mir.ru ESMTP Postfix (Seval/Linux) helo mydomain 250 electro.alrosa-mir.ru mail from: pm@mydomain.ru 250 2.1.0 Ok rcpt to: p@mydomain.ru 250 2.1.5 Ok data 354 End data with This test mail from our domen aem.local . 250 2.0.0 Ok: queued as AC4D32A40CF quit 221 Bye Connection closed by foreign host. - Идём в наш почтовый каталог /var/spool/postfix/vmail/ там, если не был, появился каталог p@mydomain.ru, а в нём (в каталоге new) сообщение. Устанавливаем Courier с поддержкой MySQL Courier отвечает за отдачу почты пользователю. apt-get install courier-imap apt-get install courier-pop apt-get install courier-authmysql apt-get install courier-authdaemon - Настраиваем демон авторизации, редактируя его конфигурационный файл vim /etc/courier/authdaemonrc Находим и изменяем если надо: authmodulelist="authmysql" daemons=10 Настраиваем доступ к БД MySQL vim /etc/courier/authmysqlrc Там изменяем: MYSQL_SERVER localhost #или 127.0.0.1, если не работает MYSQL_USERNAME postfixadmin MYSQL_PASSWORD postfixadmin #MYSQL_SOCKET /var/lib/mysql/mysql.sock MYSQL_PORT 3306 MYSQL_OPT 0 MYSQL_DATABASE postfix MYSQL_USER_TABLE mailbox MYSQL_CRYPT_PWFIELD password DEFAULT_DOMAIN electro.alrosa-mir.ru MYSQL_UID_FIELD '106' MYSQL_GID_FIELD '107' MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD '/var/spool/postfix/vmail' MYSQL_NAME_FIELD name MYSQL_MAILDIR_FIELD maildir - Запускаем: /etc/init.d/courier-authdaemon start /etc/init.d/courier-pop start /etc/init.d/courier-imap start - Проверяем можем ли забрать почту, т.е. работоспособность pop3: telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Hello there. user pm +OK Password required. pass 123 +OK logged in. list +OK POP3 clients that break here, they violate STD53. 1 555 . quit +OK Bye-bye. Connection closed by foreign host. Как видим одно письмо на 555 байт лежит. Можно его просмотреть командой retr 1 (конечно перед quit) Устанавливаем SquirrelMail для работы с почтой через Вэб сервер. Скачиваем пакет wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fprdownloads.sourceforge.net%2Fsquirrelmail%2Fsquirrelmail-1.4.15.tar.gz tar zxvf squirrelmail-1.4.13.tar.gz mv squirrelmail-1.4.13 /var/www/mail cd /var/www/mail/ Конфигурируем: ./configure Запускается перловый скрипт настройки, в котором нам нужно пройтись по пунктам и изменить в минимальном варианте язык по умолчанию (пункт 10-1 - задать ru_RU), Кодировку (пункт 10-2 задать koi8-r) свой домен по умолчанию (пункт 2-1, mydomain.ru) демона IMAP (пункт 2-А-8, указать courier) Каталоги (пункт 4-1 задать /var/www/mail/data/ и пункт 4-2 задать /var/www/mail/attach/) Теперь можно перегрузить сервер reboot и проверить вэб почту http://192.168.1.2/mail Вводим pm и пароль который давали при создании аккаунта pm. Далее необходимо по адресу http://192.168.1.2/admin/postfix/admin/list-admin.php Добавить необходимых пользователей и все. Источники http://pm4u.opennet.ru/linux_server_debian.htm http://linux.yaroslavl.ru/docs/conf/SquirrelMail/SquirrelMail.html
Похожие статьиКомментировать: |
|||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||