Много потребители на Ubuntu използват системата не само за домашни нужди. Този подход е напълно оправдан, защото на Linux-системите е много по-удобно да се прави програмиране, създаване на сървъри и уебсайтове. Едно от удобствата е създаването на имейл сървър. За начинаещи, тази задача ще изглежда ужасно трудна, но ако разберете как да инсталирате и конфигурирате пощенския сървър за Ubuntu, задачата няма да изглежда толкова трудна за вас.
Как да настроите пощенски сървър на базата на Ubuntu.
Малко теория
Преди конкретни инструкции и ферментация на кода не може да се направи без част от теоретичния материал. Важно е да се разбере какво е имейл сървър и как работи.
Конфигурираният пощенски сървър, просто казано, е пощальон, който получава „писмо“ от един имейл клиент и го предава на друг. В това, по принцип, цялата същност на работата на този софтуер. Пощенският сървър е необходим не само за изпращане на имейл. На сайтовете той е отговорен за регистриране на потребители, подаване на формуляри и други важни действия, без които сайтът би станал като книга, която можете да разгледате само чрез обръщане на страниците, но е трудно да се направи нещо.
Пощенските сървъри на Linux значително се различават от тези на Windows и други системи. В Windows това е готова затворена програма, която може да започне да се използва. Линукс дистрибуциите също изискват самонастройване на всички компоненти. И сървърът в крайна сметка ще се състои от не една програма, а няколко. Ще използваме Postfix в комбинация с Dovecot и MySQL.
Защо Postfix?
Има няколко имейл клиента в Ubuntu, но все пак сме избрали този. Настройването на Posfix на Ubuntu е много по-лесно от същата SendMail, а това е важно за начинаещия потребител. В комбинация с Dovecot, Postfix може да прави всичко, което обикновено се изисква от пощенските сървъри.
Postfix е директно самият агент за прехвърляне на поща. Той ще играе основна роля в цялото представяне. Това е програма с отворен код, която много сървъри и уебсайтове използват по подразбиране. Dovecot е агент за доставка на поща. Неговата основна роля е да гарантира сигурността на сървъра. MySQL е идеална система за управление на бази данни (СУБД) за всички сайтове. Необходимо е да се справим с информацията, която получаваме от потребителите на нашия сървър.
И така, с теоретичната част свърши. Сега си струва да практикуваме.
Създаване на пощенски сървър
Какво трябва да се конфигурира преди инсталирането на пощенския сървър?
- MySQL;
- DNS зона, трябва да имате личен FDQN. След това ще използваме namehost.
монтаж
Инсталирайте програмата:
apt-get install postfix postfix-mysql dovecot-ядрото dovecot-imapd dovecot-lmtpd dovecot-mysql
Когато се появи прозорецът за конфигуриране на Postfix, ще трябва да изберете "Интернет сайт".
По-долу ще бъдете помолени да въведете име на домейн, използвайте "primer.ru".
MySQL настройка
Сега трябва да конфигурираме три таблици за данни в MySQL: за домейни, потребители и за т.нар. Alias - псевдоними или допълнителни потребителски пощенски кутии. Тук няма да обсъждаме подробно конфигурацията на MySQL базата данни.
Нека да извикаме базата данни на примерната поща. Създайте база данни със следното име:
mysqladmin -p създава servermail
Вход в MySQL:
mysql -u root –p
След това въведете паролата. Ако всичко е направено правилно, ще има запис в терминала:
MySQL>
Създайте нов потребител специално за влизане в мрежата:
mysql> GRANT SELECT ON Примерна поща * TO 'usermail'@'127.0.0.1' ИДЕНТИФИЦИРАНА ОТ 'парола';
Сега рестартирайте MySQL, за да се уверите, че всички промени се прилагат успешно.
Ние използваме нашата база данни за създаване на таблици на базата на нея:
mysql> USE пример;
Създайте таблица за домейни:
CREATE TABLE "virtual_domains" (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR (50) НЕ NULL,
PRIMARY KEY ("id")
) ДВИГАТЕЛ = InnoDB DEFAULT CHARSET = utf8;
Създайте таблица за потребителите:
CREATE TABLE "virtual_users" (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`password` VARCHAR (106) НЕ NULL,
`email` VARCHAR (120) НЕ NULL,
PRIMARY KEY ("id"),
УНИКАЛЕН КЛЮЧ "email" ("имейл"),
ВЪТРЕШЕН КЛЮЧ (domain_id) REFERENCES virtual_domains (id) НА ИЗТРИВАНЕ НА КАСКАД
) ДВИГАТЕЛ = InnoDB DEFAULT CHARSET = utf8;
Тук, както виждате, добавихте имейл и парола. И всеки потребител е обвързан с домейна.
Накрая създайте таблица за псевдоними:
CREATE TABLE "virtual_aliases" (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`source` varchar (100) NOT NULL,
`` дестинация 'varchar (100) НЕ NULL,
PRIMARY KEY ("id"),
ВЪТРЕШЕН КЛЮЧ (domain_id) REFERENCES virtual_domains (id) НА ИЗТРИВАНЕ НА КАСКАД
) ДВИГАТЕЛ = InnoDB DEFAULT CHARSET = utf8;
Успешно конфигурирахме MySQL и създадохме три необходими таблици. Сега трябва да се занимавате с домейни и имейли.
Домейни, имейл адреси и псевдоними
Нека добавим нашия домейн към таблицата с домейни. FDQN трябва да се въведе там:
INSERT INTO `examplemail`.`virtual_domains`
(`id`, ` name`)
СТОЙНОСТИ
(„1“, „example.com“),
(„2“, „namehost.example.com“);
Добавете данни за имейл адреса в таблицата на потребителя:
INSERT INTO `examplemail`.`virtual_users`
(`id`, ` domain_id`, `password`, ` email`)
СТОЙНОСТИ
('1', '1', ENCRYPT ('firstpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16))), ' '),
(„2“, „1“, ENCRYPT („secondpassword“, CONCAT („$ 6 $“, SUBSTRING (SHA (RAND ()), -16))), „ “);
Сега добавете информацията към последната таблица:
INSERT INTO `examplemail`.`virtual_aliases`
("id", "domain_id", "source", "destination")
СТОЙНОСТИ
(„1“, „1“, „ “, „ “);
Затвори MySQL:
mysql> exit
Postfix настройка
Преминаване директно към параметрите Postfix. Нуждаем се от пощенския клиент, за да изпращаме съобщения от името на потребителите, въведени в базата данни и да управлява SMTP връзката. Първо, ще създадем резервно копие на конфигурационния файл, в който случай е възможно да се върнете към настройките по подразбиране:
cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
Сега отворете конфигурационния файл:
nano /etc/postfix/main.cf
Вместо nano, можете да използвате всеки удобен за вас текстов редактор.
Ще коментираме параметрите на TLS и ще добавим и други. Тук се използва безплатен SSL:
# TLS параметри
# 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 = да
#smtpd_tls_session_cache_database = btree: $ {data_directory} / smtpd_scache
#smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache
smtpd_tls_cert_file = / etc / ssl / certs / dovecot.pem
smtpd_tls_key_file = / etc / ssl / private / dovecot.pem
smtpd_use_tls = да
smtpd_tls_auth_only = да
След това ще добавим още няколко параметъра:
smtpd_sasl_type = гълъбарник
smtpd_sasl_path = private / auth
smtpd_sasl_auth_enable = да
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
Също така трябва да коментираме настройките за mydestination и да ги променим на localhost:
#mydestination = example.com, namehost.example.com, localhost.example.com, localhost
mydestination = localhost
Параметърът myhostname трябва да съдържа името на нашия домейн:
myhostname = namehost.example.com
Сега добавете ред, за да изпращате съобщения до всички домейни, изброени в таблицата MySQL:
virtual_transport = lmtp: unix: private / dovecot-lmtp
Добавете още три параметъра, така че Postfix да може да се свързва с MySQL таблици:
virtual_mailbox_domains = mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql: /etc/postfix/mysql-virtual-alias-maps.cf
Настройване на MySQL и Postfix файлове
Създайте файл
mysql-virtual-mailbox-domains.cf
Добавете към тях следните стойности:
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_domains WHERE име = '% s'
Рестартирайте Postfix:
рестартиране на постфикс
Тест на домейна за Postfix:
postmap -q example.com mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
Създайте друг файл:
nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_users WHERE имейл = '% s'
Рестартирайте Postfix:
рестартиране на постфикс на услугата
След това проверете отново Postfix:
postmap -q mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
Ако е направено правилно, трябва да се покаже
Създайте последния файл за псевдоними:
nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT местоназначение FROM virtual_aliases WHERE източник = '% s'
рестартирайте:
рестартиране на постфикс на услугата
Последния път, когато тествахме:
postmap -q mysql: /etc/postfix/mysql-virtual-alias-maps.cf
Настройка на гълъбарника
Ние правим резервни копия за седем файла, които ще бъдат променени:
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
Това е примерна команда. Въведете още шест от същите за тези файлове:
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf
Отворете първия файл:
nano /etc/dovecot/dovecot.conf
Проверете дали този параметър е коментиран:
включва conf.d / *. conf
въведете:
! include_try /usr/share/dovecot/protocols.d/*.protocol
protocol = imap lmtp
Вместо:
! include_try /usr/share/dovecot/protocols.d/*.protocol ред
Редактирайте следния файл:
nano /etc/dovecot/conf.d/10-mail.conf
Намерете реда mail_location, премахнете коментара, задайте следния параметър:
mail_location = maildir: / var / mail / vhosts /% d /% n
Намерете mail_privileged_group, поставете там:
mail_privileged_group = поща
Проверяваме достъпа. Въведете командата:
ls -ld / var / mail
Достъпът трябва да изглежда така:
drwxrwsr-x 3 root vmail 4096 Jan 24 21:23 / var / mail
Създайте папка за всеки регистриран домейн:
mkdir -p /var/mail/vhosts/example.com
Създайте потребител и група с идентификационен номер 5000:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / var / mail
Промяна на собственика на потребителя VMail:
chown -R vmail: vmail / var / mail
Редактирайте следния файл:
nano /etc/dovecot/conf.d/10-auth.conf
Разкоментирайте текста за удостоверяване и добавете реда:
disable_plaintext_auth = yes
Промяна на следния параметър:
auth_mechanisms = обикновена регистрация
Коментиране на този ред:
#! include auth-system.conf.ext
Добавете MySQL разрешение, коментирайте реда:
! включва auth-sql.conf.ext
Създайте файл с данни за удостоверяване:
nano /etc/dovecot/conf.d/auth-sql.conf.ext
Въведете следното:
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = статичен
args = uid = vmail gid = vmail начало = / var / mail / vhosts /% d /% n
}
Редактирайте следния файл:
nano /etc/dovecot/dovecot-sql.conf.ext
Задайте параметъра на MySQL и коментирайте:
driver = mysql
Разкоментирайте и въведете:
connect = host = 127.0.0.1 dbname = servermail потребител = парола на usermail = mailpassword
Намерете реда default_pass_scheme, uncomment и въведете параметъра:
default_pass_scheme = SHA512-CRYPT
Разкомментирайте и въведете нов параметър:
password_query = ИЗБЕРИ имейл като потребител, парола ОТ virtual_users WHERE имейл = '% u';
Промяна на собственика:
chown -R vmail: dovecot / и т.н.
chmod -R o-rwx / etc / dovecot
Отваряне и редактиране на файла:
nano /etc/dovecot/conf.d/10-master.conf
Отпишете коментар и въведете параметъра:
услуга imap-login {
inet_listener imap {
port = 0
}
въведете:
service lmtp {
unix_listener / var / spool / postfix / частен / dovecot-lmtp {
режим = 0600
user = postfix
group = postfix
}
#inet_listener lmtp {
# Избягвайте да виждате LMTP в интернет
#address =
#port =
#}
}
Промяна на следната конфигурация:
услуга auth {
unix_listener / var / spool / postfix / private / auth {
режим = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
режим = 0600
user = vmail
#group =
}
#unix_listener / var / spool / postfix / private / auth {
# mode = 0666
#}
потребител = гълъб
}
Променете последната конфигурация в този файл:
Служител за авторизация {
# Процес на упълномощен работник
# / etc / shadow. Ако това не е необходимо
# $ default_internal_user.
user = vmail
}
Така че накрая създадохме пощенски сървър на Ubuntu. Можете също да добавите там SSL конфигурация или да използвате стандартната конфигурация. За да се предпазите от спам, можете да конфигурирате Spam Assassin да работи с нашия сървър.
Използвайте стандартния имейл клиент, за да въведете тази информация:
- Потребителско име:
- Парола: email1
- IMAP: example.com
- SMTP: example.com