• Главная
  • Карта сайта
Не найдено

Установка і настройка поштового сервера PostfixAdmin на Ubuntu 16.04

  1. Увійдіть на свій VPS через SSH
  2. Установка PHP 7.0 і PHP всіх необхідних модулів
  3. Установка і настройка Nginx
  4. PostfixAdmin
  5. Встановіть і налаштуйте Postfix
  6. Установка і настройка Dovecot
  7. SpamAssassin
У цій статті ми покажемо вам, як встановити та налаштувати поштовий сервер з Postfix, Dovecot, Spamassassin, SQLite і PostfixAdmin на Ан Ubuntu 16.04 VPS з Nginx і PHP 7.0. Це керівництво повинно працювати так само добре і на інших системах Linux VPS, але була випробувана і написана для Ubuntu 16.04 VPS .

Увійдіть на свій VPS через SSH

ssh furious @ my_server

Оновлення систему і встановіть необхідні пакети

sudo apt-get update && sudo apt-get -y upgrade sudo apt-get -y install wget nano dbconfig-common sqlite3

Створіть системного користувача

З міркувань безпеки, ми створимо нового користувача системи, який буде власником всіх поштових скриньок.

sudo useradd -r -u 150 -g mail -d / var / vmail -s / sbin / nologin -c "Virtual Mail User" vmail sudo mkdir -p / var / vmail sudo chmod -R 770 / var / vmail sudo chown - R vmail: mail / var / vmail

Установка PHP 7.0 і PHP всіх необхідних модулів

Якщо ви не встановили PHP на вашому сервері, ви можете встановити останню стабільну версію PHP 7.0 і всі необхідні модулі, за допомогою наступної команди:

sudo apt-get -y install php-fpm php-cli php7.0-mbstring php7.0-imap php7.0-sqlite3

Установка і настройка Nginx

Якщо у вас немає веб-сервера, встановленого на вашому комп'ютері, встановіть Nginx з офіційних репозиторіїв Ubuntu:

sudo apt-get -y install nginx

Створення нового блоку сервера Nginx з наступним змістом:

sudo nano /etc/nginx/sites-available/postfixadmin.your_domain.ru server {listen 80; server_name postfixadmin.your_domain.ru; return 301 https: // $ server_name $ request_uri; } Server {listen 443 ssl; server_name postfixadmin.your_domain.ru; root /var/www/postfixadmin-3.0; index index.php; charset utf-8; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; ssl_protocols TLSv1.2; ssl_ciphers "EECDH + ECDSA + AESGCM: EECDH + aRSA + AESGCM:! aNULL:! eNULL:! LOW:! 3DES:! MD5:! EXP:! PSK:! SRP:! DSS:! RC4"; ssl_prefer_server_ciphers on; ssl_session_cache shared: SSL: 10m; ssl_session_timeout 10m; ssl_ecdh_curve secp521r1; location / {try_files $ uri $ uri / index.php; } Location ~ * \ .php $ {fastcgi_split_path_info ^ (. + \. Php) (/.+) $; include fastcgi_params; fastcgi_pass unix: /run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; }}

Активуйте блок сервера, створивши символічне посилання:

sudo ln -s /etc/nginx/sites-available/postfixadmin.your_domain.ru /etc/nginx/sites-enabled/postfixadmin.your_domain.ru

Перевірте конфігурацію Nginx і перезапустіть Nginx:

sudo nginx -t sudo service nginx restart

PostfixAdmin

PostfixAdmin є PHP на основі веб - інтерфейсу, який дозволяє керувати базою даних, і використовує postfix для віртуальних доменів і користувачів. Остання версія PostfixAdmin, 3 -й версії, підтримує MySQL , PostgreSQL і базу даних SQLite. У цьому керівництві ми будемо використовувати останню.
Скачайте архів PostfixAdmin з SourceForge і розпакуйте його в каталог / var / www /:

wget -q -O - "http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0/postfixadmin-3.0.tar.gz" | sudo tar -xzf - -C / var / www

Відкрийте файл конфігурації пошти та змініть наступні значення:

sudo nano /var/www/postfixadmin-3.0/config.inc.php $ CONF [ 'configured'] = true; $ CONF [ 'database_type'] = 'sqlite'; $ CONF [ 'database_name'] = '/var/vmail/postfixadmin.db'; // $ CONF [ 'database_host'] = 'localhost'; // $ CONF [ 'database_user'] = 'postfix'; // $ CONF [ 'database_password'] = 'postfixadmin'; // $ CONF [ 'database_name'] = 'postfix'; $ CONF [ 'domain_path'] = 'NO'; $ CONF [ 'domain_in_mailbox'] = 'YES'; sudo chown -R www-data: /var/www/postfixadmin-3.0

Створення бази даних SQLite:

sudo touch /var/vmail/postfixadmin.db sudo chown vmail: mail /var/vmail/postfixadmin.db sudo usermod -a -G mail www-data

Для заповнення бази даних перейдіть до https://postfixadmin.your_domain.ru/setup.php і ви повинні побачити що - щось на зразок цього:

Testing database connection - OK - sqlite: //: xxxxx@//var/vmail/postfixadmin.db

Створіть нового користувача з правами адміністратора:

bash /var/www/postfixadmin-3.0/scripts/postfixadmin-cli admin add admin@your_domain.ru --password strong_password --password2 strong_password --superadmin 1 --active 1

Встановіть і налаштуйте Postfix

Встановіть postfix за допомогою команди нижче:

sudo apt-get install postfix

Створіть наступні файли:

sudo nano /etc/postfix/sqlite_virtual_alias_maps.cf dbpath = /var/vmail/postfixadmin.db query = SELECT goto FROM alias WHERE address = '% s' AND active = '1' sudo nano /etc/postfix/sqlite_virtual_alias_domain_maps.cf dbpath = /var/vmail/postfixadmin.db query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '% d' and alias.address = printf ( "% u ',' @ ', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active = '1' sudo nano /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf dbpath = /var/vmail/postfixadmin.db query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '% d' and alias. address = printf ( '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active = '1' sudo nano /etc/postfix/sqlite_virtual_domains_maps.cf dbpath = /var/vmail/postfixadmin.db query = SELECT domain FROM domain WHERE domain = '% s' AND active = '1' sudo nano /etc/postfix/sqlite_virtual_mailbox_maps.cf dbpath = /var/vmail/postfixadmin.db query = SELECT maildir FROM mailbox WHERE username = '% s' AND active = '1' sudo nano /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf dbpath = /var/vmail/postfixadmin.db query = SELECT maildir FROM mailbox, alias_domain WHERE alias_domain.alias_domain = '% d' and mailbox.username = printf ( "% u ',' @ ', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active =' 1 '

Відредагуйте файл main.cf:

postconf -e "myhostname = $ (hostname -A)" postconf -e "virtual_mailbox_domains = sqlite: /etc/postfix/sqlite_virtual_domains_maps.cf" postconf -e "virtual_alias_maps = sqlite: /etc/postfix/sqlite_virtual_alias_maps.cf, sqlite: / etc / postfix / sqlite_virtual_alias_domain_maps.cf, sqlite: /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf "postconf -e" virtual_mailbox_maps = sqlite: /etc/postfix/sqlite_virtual_mailbox_maps.cf, sqlite: /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf "postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem" postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key" postconf -e "smtpd_use_tls = yes" postconf -e "smtpd_tls_auth_only = yes" postconf -e "smtpd_sasl_type = dovecot" postconf -e "smtpd_sasl_path = private / auth" postconf -e "smtpd_sasl_auth_enable = yes" postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination" postconf -e "mydestination = localhost "p ostconf -e "mynetworks = 127.0.0.0/8" postconf -e "inet_protocols = ipv4" postconf -e "virtual_transport = lmtp: unix: private / dovecot-lmtp"

Відкрийте файл master.cf, знайти розділи submission inet n і smtps inet n і відредагуйте наступним чином:

sudo nano /etc/postfix/master.cf smtp inet n - y - - smtpd #smtp inet n - y - 1 postscreen #smtpd pass - - y - - smtpd #dnsblog unix - - y - 0 dnsblog #tlsproxy unix - - y - 0 tlsproxy submission inet n - y - - smtpd -o syslog_name = postfix / submission -o smtpd_tls_security_level = encrypt -o smtpd_sasl_auth_enable = yes # -o smtpd_reject_unlisted_recipient = no -o smtpd_client_restrictions = permit_sasl_authenticated, reject # -o smtpd_helo_restrictions = $ mua_helo_restrictions # -o smtpd_sender_restrictions = $ mua_sender_restrictions # -o smtpd_recipient_restrictions = # -o smtpd_relay_restrictions = permit_sasl_authenticated, reject -o milter_macro_daemon_name = ORIGINATING smtps inet n - y - - smtpd -o syslog_name = postfix / smtps # -o smtpd_tls_wrappermode = yes -o smtpd_sasl_auth_enable = yes # -o smtpd_reject_unlisted_recipient = no -o smtpd_client_restrictions = permit_sasl_authenticated, reject # -o smtpd_helo_restrictions = $ mua_helo_restrictions # -o smtpd_sender_restrictions = $ mua_sender_restrictions # -o smt pd_recipient_restrictions = # -o smtpd_relay_restrictions = permit_sasl_authenticated, reject -o milter_macro_daemon_name = ORIGINATING

Увімкніть і перезапустіть службу postfix

systemctl enable postfix systemctl restart postfix

Установка і настройка Dovecot

Встановити Dovecot з підтримкою SQLite, використовуючи команду нижче:

sudo apt-get install dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-sqlite

Відкрийте файл /etc/dovecot/conf.d/10-mail.conf і змініть наступні значення:

mail_location = maildir: / var / vmail /% d /% n mail_privileged_group = mail mail_uid = vmail mail_gid = mail first_valid_uid = 150 last_valid_uid = 150

Відкрийте файл /etc/dovecot/conf.d/10-auth.conf і змініть наступні значення:

auth_mechanisms = plain login #! include auth-system.conf.ext! include auth-sql.conf.ext

Створіть новий файл dovecot-sql.conf.ext:

sudo nano /etc/dovecot/dovecot-sql.conf.ext driver = sqlite connect = /var/vmail/postfixadmin.db default_pass_scheme = MD5-CRYPT password_query = \ SELECT username as user, password, '/ var / vmail /% d /% n 'as userdb_home, \' maildir: / var / vmail /% d /% n 'as userdb_mail, 150 as userdb_uid, 8 as userdb_gid \ FROM mailbox WHERE username ='% u 'AND active =' 1 'user_query = \ SELECT '/ var / vmail /% d /% n' as home, 'maildir: / var / vmail /% d /% n' as mail, \ 150 AS uid, 8 AS gid, printf ( "dirsize: storage = ', quota) AS quota \ FROM mailbox WHERE username ='% u 'AND active =' 1 '

У файлі /etc/dovecot/conf.d/10-ssl.conf включите підтримку SSL :

ssl = yes

Відкрийте файл /etc/dovecot/conf.d/15-lda.conf і встановіть в параметрі postmaster_address адреса електронної пошти.

postmaster_address = [email protected]_domain.ru

Відкрийте файл /etc/dovecot/conf.d/10-master.conf, знайдіть розділ служби LMTP і змінити його на:

service lmtp {unix_listener / var / spool / postfix / private / dovecot-lmtp {mode = 0600 user = postfix group = postfix}}

Знайдіть розділ служби аутентифікації і змінити його на:

service auth {unix_listener / var / spool / postfix / private / auth {mode = 0666 user = postfix group = postfix} unix_listener auth-userdb {mode = 0600 user = vmail #group = vmail} user = dovecot}

Змініть розділ служби auth-worker до таких функцій:

service auth-worker {user = vmail}

Встановіть дозволу:

chown -R vmail: dovecot / etc / dovecot chmod -R o-rwx / etc / dovecot

Увімкніть і перезапустіть службу dovecot

systemctl enable dovecot systemctl restart dovecot

SpamAssassin

SpamAssassin є інструментом з відкритим кодом написаний на Perl, який допомагає відфільтрувати небажану пошту. Якщо ви хочете включити і налаштувати SpamAssassin ласка, продовжуйте з наступними кроками.

Щоб встановити SpamAssassin, виконайте наступну команду:

sudo apt-get install spamassassin sudo adduser spamd --disabled-login

Відкрийте файл / etc / default / spamassassin і внесіть наступні зміни:

ENABLED = 1 OPTIONS = "- create-prefs --max-children 5 -d 127.0.0.1 --username spamd --helper-home-dir / home / spamd / -s /home/spamd/spamd.log" PIDFILE = "/ home / spamd / spamd.pid" CRON = 1

Для інтеграції SpamAssassin з Postfix, додайте наступний рядок в кінці файлу /etc/postfix/master.cf:

smtp inet n - - - - smtpd -o content_filter = spamassassin spamassassin unix - nn - - pipe user = nobody argv = / usr / bin / spamc -f -e / usr / sbin / sendmail -oi -f $ {sender} $ {recipient}

Увімкніть і перезапустіть службу Spamassassin

systemctl enable spamassassin systemctl restart spamassassin systemctl restart postfix

Якщо все налаштовано правильно, то ви повинні в стані увійти в свій бекенда PostfixAdmin, перейшовши за посиланням https://postfixadmin.your_domain.ru/и створити свій перший віртуальний домен і поштовий ящик.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту і натисніть Ctrl + Enter.

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью