Почтовый сервер в связке Postfix, Dovecot — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 586: | Строка 586: | ||
первый <code>/usr/local/etс/postfix/main.cf</code> | первый <code>/usr/local/etс/postfix/main.cf</code> | ||
<spoiler> | <spoiler> | ||
− | biff=no | + | biff=no<br/> |
− | smtpd_banner = $myhostname ESMTP | + | smtpd_banner = $myhostname ESMTP<br/> |
− | queue_directory = /var/spool/postfix | + | queue_directory = /var/spool/postfix<br/> |
− | command_directory = /usr/local/sbin | + | command_directory = /usr/local/sbin<br/> |
− | daemon_directory = /usr/local/libexec/postfix | + | daemon_directory = /usr/local/libexec/postfix<br/> |
− | data_directory = /var/db/postfix | + | data_directory = /var/db/postfix<br/> |
− | mail_owner = postfix | + | mail_owner = postfix<br/> |
− | append_dot_mydomain = no | + | append_dot_mydomain = no<br/> |
− | recipient_delimiter = + | + | recipient_delimiter = +<br/> |
− | default_destination_recipient_limit = 1 | + | default_destination_recipient_limit = 1<br/> |
− | mailbox_size_limit = 1024000000 | + | mailbox_size_limit = 1024000000<br/> |
− | message_size_limit = 20480000 | + | message_size_limit = 20480000<br/> |
queue_directory = /var/spool/postfix | queue_directory = /var/spool/postfix | ||
− | inet_protocols = ipv4 | + | inet_protocols = ipv4<br/> |
inet_interfaces = all | inet_interfaces = all | ||
− | myhostname = mail.megapuper.ru | + | myhostname = mail.megapuper.ru<br/> |
− | mydomain = megapuper.ru | + | mydomain = megapuper.ru<br/> |
− | myorigin = $mydomain | + | myorigin = $mydomain<br/> |
− | mydestination = localhost.$mydomain, localhost | + | mydestination = localhost.$mydomain, localhost<br/> |
mynetworks = 127.0.0.0/8, 192.168.0.0/24 | mynetworks = 127.0.0.0/8, 192.168.0.0/24 | ||
− | alias_maps = hash:/etc/aliases | + | alias_maps = hash:/etc/aliases<br/> |
− | alias_database = hash:/etc/aliases | + | alias_database = hash:/etc/aliases<br/> |
− | smtp_generic_maps = hash:/usr/local/etc/postfix/aliases_smtp_output | + | smtp_generic_maps = hash:/usr/local/etc/postfix/aliases_smtp_output<br/> |
− | lmtp_generic_maps = hash:/usr/local/etc/postfix/aliases_lmtp | + | lmtp_generic_maps = hash:/usr/local/etc/postfix/aliases_lmtp<br/> |
− | sender_bcc_maps = mysql:/usr/local/etc/postfix/mysql_bcc_mailbox_maps.cf, mysql:/usr/local/etc/postfix/mysql_bcc_domain_maps.cf | + | sender_bcc_maps = mysql:/usr/local/etc/postfix/mysql_bcc_mailbox_maps.cf, mysql:/usr/local/etc/postfix/mysql_bcc_domain_maps.cf<br/> |
− | virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains.cf | + | virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains.cf<br/> |
− | virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_maps.cf | + | virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_maps.cf<br/> |
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_domain_maps.cf,mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf | virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_domain_maps.cf,mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf | ||
Строка 627: | Строка 627: | ||
smtpd_helo_required = yes | smtpd_helo_required = yes | ||
− | delay_notice_recipient = postmaster@megapuper.ru | + | delay_notice_recipient = postmaster@megapuper.ru<br/> |
− | bounce_notice_recipient = postmaster@megapuper.ru | + | bounce_notice_recipient = postmaster@megapuper.ru<br/> |
− | 2bounce_notice_recipient = postmaster@megapuper.ru | + | 2bounce_notice_recipient = postmaster@megapuper.ru<br/> |
error_notice_recipient = postmaster@megapuper.ru | error_notice_recipient = postmaster@megapuper.ru | ||
− | debug_peer_level = 2 | + | debug_peer_level = 2<br/> |
− | debugger_command = | + | debugger_command =<br/> |
− | + | PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin | |
− | + | ddd $daemon_directory/$process_name $process_id & sleep 5 | |
− | sendmail_path = /usr/local/sbin/sendmail | + | sendmail_path = /usr/local/sbin/sendmail<br/> |
− | newaliases_path = /usr/local/bin/newaliases | + | newaliases_path = /usr/local/bin/newaliases<br/> |
mailq_path = /usr/local/bin/mailq | mailq_path = /usr/local/bin/mailq | ||
− | setgid_group = maildrop | + | setgid_group = maildrop<br/> |
sample_directory = /usr/local/etc/postfix | sample_directory = /usr/local/etc/postfix | ||
</spoiler> | </spoiler> |
Версия 15:08, 23 апреля 2015
При установке будем ориентироваться на этот мануал: http://dummyluck.com/page/pochtovyi_server_nastroika_opisanie
Настройку будем производить для сервера с одним доменом. Система FreeBSD 10.1
1. Подготовка.
прописываем хостнейм /etc/rc.conf
hostname="mail.megapuper.ru"
делаем изменения в хостах /etc/hosts
127.0.0.1 localhost 109.172.52.114 megapuper.ru 109.172.52.114 mail.megapuper.ru
создаём пользователя и группу vmail
# pw groupadd vmail -g 5000 # pw useradd vmail -g vmail -s /sbin/nologin -u 5000
сразу отключаем sendmail
/etc/rc.conf
sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO"
/etc/periodic.conf
daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO"
2. Ставим Nginx, MySQL, PHP, PHP-extension. Этот web-сервер будет использоваться для postfixadmin.
Здесь коротко, ибо уже тыщу раз ставилось)
Nginx cтавим из пакетов
# pkg install nginx
основной конфиг /usr/local/etc/nginx/nginx.conf
user www; worker_processes 2; pid /var/run/nginx.pid; events { worker_connections 1024; } http { access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; include /usr/local/etc/nginx/mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; client_max_body_size 5m; server_names_hash_bucket_size 64; types_hash_max_size 2048; types_hash_bucket_size 64; include /usr/local/etc/nginx/conf/*.conf; }
конфиг виртуального хоста /usr/local/etc/nginx/conf/postfix.conf
server { listen 80; server_name postfix.megapuper.ru; root /usr/local/www/postfix; index index.php index.html index.htm; access_log /var/log/nginx/postfix.access.log; error_log /var/log/nginx/postfix.error.log; location / { # try_files $uri $uri/ /index.php?$uri&$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:10000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_intercept_errors on; include fastcgi_params; } }
PHP и нужные PHP-extension тоже ставим из пакетов
# pkg install php55 # pkg install php55-* (пригодятся php55-ctype php55-dom php55-gd php55-hash php55-iconv php55-imap php55-json php55-mbstring php55-mcrypt php55-mysql php55-mysqli php55-session php55-xml)
конфиг php-fpm /usr/local/etc/php-fpm.conf
[global] error_log = /var/log/php/php-fpm.log pid = /var/run/php-fpm.pid log_level = notice include=/usr/local/etc/php/*.conf
конфиг для виртуального хоста /usr/local/etc/php/postfix.conf
[postfix] prefix = /usr/local/www/$pool listen = 127.0.0.1:10000 listen.allowed_clients = 127.0.0.1 listen.owner = www listen.group = www listen.mode = 0660 user = www group = www pm = dynamic pm.max_children = 4 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 pm.max_requests = 100 ;pm.status_path = /status/php-fpm/$pool request_terminate_timeout = 0 request_slowlog_timeout = 1m slowlog = /var/log/php/$pool.slow.log catch_workers_output = yes
MySQL тоже из пакетов
# pkg install mysql56-server
простенький конфиг /etc/my.cnf
[mysqld] bind-address=127.0.0.1
в конфигах. где используется подключение к базе указываем хост 127.0.0.1
После этого имеем готовый web-сервер можно переходить к установке postfixadmin
3. Установка PostfixAdmin
Скачиваем последнюю версию отсюда http://sourceforge.net/projects/postfixadmin/ и заливаем на web-сервер
создаём базу и даём права пользователю
> create database postfix character set utf8 collate utf8_general_ci; > grant all on postfix.* to postfix@127.0.0.1 identified by 'пароль';
Правим основной конфиг postfixadmin config.inc.php
Spoiler
Теперь заходим на http://postfixadmin/setup.php и видим, что запустилась установка
Если все условия установки выполнены, то в базе создадутся необходимые таблицы и будет предложено создать суперадмина.
В поле Setup password вводим пароль из config.inc.php: $CONF['setup_password'] = 'пароль_установки';
Заполняем остальные поля, и после нажатия кнопки Создать сгенерится хэш.
Этот хеш надо вставить в config.inc.php : $CONF['setup_password'] = 'хеш';
Повторяем процедуру заведения суперадмина используя пароль_установки
осле создания суперадмина временно оставляем postfixadmin(так как без postfix и dovecot ящики создаваться не будут)
6. Устанавливаем Postfix.
Postfix ставим из портов, т.к. пакет ставится без поддержки mysql
# cd /usr/ports/mail/postfix # make install clean [X] MYSQL, PCRE, SASL2, TLS CYRUS-SASL [X] MYSQL, CRAM, DIGEST, LOGIN, PLAIN
По окончании установки активируем postfix
Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y
Заведём нужные aliases /etc/aliases
www: postmaster@megapuper.ru
Инициализируем базу алиасов
# newaliases
Рихтуем основные конфиги postfix
первый /usr/local/etс/postfix/main.cf
Spoiler
второй /usr/local/etс/postfix/master.cf
Spoiler
7. Устанавливаем Dovecot.