Настройка пересылки почты в postfix

Настройка Postfix

Если Postfix не установлен, выполняем команду:

yum install postfix

Открываем на редактирование конфигурационный файл main.cf:

vi /etc/postfix/main.cf

Снимаем комментарий с этой строчки:

myorigin = $mydomain

* параметр myorigin определяет домен, который будет подставляться отправителю, если он не указан явно.

Добавляем следующую строчку:

smtp_generic_maps = hash:/etc/postfix/generic_map

Теперь открываем файл generic_map и добавляем в него следующее:

vi /etc/postfix/generic_map

@dmosk.ru    mailer@dmosk.ru

* данной настройкой мы будем перестраховываться — если программа отправки сообщений не подставит поле FROM будет подставлено mailer@dmosk.ru.

Чтобы применить настройки, создаем карту:

postmap /etc/postfix/generic_map

И перезапускаем Postfix:

systemctl restart postfix

Проверяем, что постфикс правильно определяет наши домен и имя компьютера:

postconf myhostname

postconf mydomain

Мы должны получить правильные значения — в моем случае, соответственно, mailer.dmosk.ru и dmosk.ru. Эти данные берутся из локальных настроек системы. Но если, по каким-то причинам, системные имена должны отличаться, задайте жестко имя почтового сервера и домен в настройках postfix:

myhostname = mailer.dmosk.ru
mydomain = dmosk.ru

* после необходимо перезапустить почтовый сервер постфикс.

Подготовка сервера

Независимо от выбранного дистрибутива Linux или редакции Zimbra выполняем следующие действия для подготовки сервера к корректной работы почтового сервера.

1. Настройка времени

Устанавливаем корректный часовой пояс:

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* в данном примере мы зададим московское время.

Теперь установим утилиту для синхронизации времени и запустим ее.

а) если используем систему на базе RPM (CentOS / Red Hat):

yum install chrony

systemctl enable chronyd —now

б) если используем систему на базе deb (Ubuntu):

apt-get install chrony

systemctl enable chrony —now

2. Безопасность

SELinux

Если на сервере используется SELinux (по умолчанию, на системах RPM), рекомендуется ее отключить. Для этого вводим 2 команды:

setenforce 0

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

* подробнее в статье Как отключить SELinux.

Брандмауэр

Для нормальной работы Zimbra нужно открыть много портов:

  • 25 — основной порт для обмена почтой по протоколу SMTP.
  • 80 — веб-интерфейс для чтения почты (http).
  • 110 — POP3 для загрузки почты.
  • 143 — IMAP для работы с почтовым ящиком с помощью клиента.
  • 443 — SSL веб-интерфейс для чтения почты (http).
  • 465 — безопасный SMTP для отправки почты с почтового клиента.
  • 587 — SMTP для отправки почты с почтового клиента (submission).
  • 993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
  • 995 — SSL POP3 для загрузки почты.
  • 5222 — для подключения к Zimbra по протоколу XMPP.
  • 5223 — для защищенного подключения к Zimbra по протоколу XMPP.
  • 7071 — для защищенного доступа к администраторской консоли.
  • 9071 — для защищенного подключения к администраторской консоли.

В зависимости от утилиты управления фаерволом, команды будут следующие.

а) Если используем firewalld (Red Hat, CentOS):

firewall-cmd —permanent —add-port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071}/tcp

firewall-cmd —reload

б) Если используем iptables (Ubuntu):

iptables -A INPUT -p tcp —match multiport —dports 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071 -j ACCEPT 

netfilter-persistent save

в) Если используем ufw (Ubuntu):

ufw allow 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071/tcp

3. DNS и имя сервера

Для корректной работы почтового сервера необходимо создать mx-записи для домена (подробнее о ).

Но для установки Zimbra важнее, чтобы в локальном файле hosts была запись о нашем сервере, в противном случае, установка прервется с ошибкой. И так, задаем FQDN-имя для сервера:

hostnamectl set-hostname zimbra.dmosk.ru

Теперь открываем на редактирование файл:

vi /etc/hosts

… и добавляем:

192.168.1.15      zimbra.dmosk.ru zimbra

* где 192.168.1.15 — IP-адрес нашего сервера; zimbra — имя сервера; dmosk.ru — наш домен.

Шаг 1 — Установка Postfix

На этом шаге мы выполним установку Postfix. Быстрее всего будет установить пакет , включающий Postfix и несколько дополнительных программ, которые можно использовать для тестирования отправки электронной почты.

Вначале обновите базу данных пакетов:

Затем выполните установку Postfix, запустив следующую команду:

Перед окончанием установки вы увидите окно настройки конфигурации Postfix:

По умолчанию используетя опция (сайт). Это наиболее подходящая опция для нашего случая, поэтому нажмите , а затем нажмите . Если вы увидите только текст описания, нажмите для выбора пункта , а затем нажмите .

Если опция не отображается автоматически, запустите следующую команду:

После этого откроется еще один диалог настройки конфигурации System mail name (имя системной почты):

Имя системной почты System mail name должно совпадать с именем, которое вы присвоили своему серверу при его создании. После завершения настройки нажмите , а затем нажмите .

Мы установили Postfix и готовы приступить к настройке.

Подготовка сервера

Задаем правильное имя сервера:

vi /etc/hostname

mail.dmosk.ru

… или командой:

* имя сервера должно быть в формате FQDN, в противном случае мы получим ошибку << ERROR >> Please configure a fully qualified domain name (FQDN) in /etc/hosts before we go further.

Заданное имя сервера должно разрешаться в IP-адрес через DNS. Если на момент установки это невозможно, создадим запись в файле hosts:

vi /etc/hosts

127.0.0.1       mail.dmosk.ru

Останавливаем веб-сервер apache (в данном примере будет использоваться nginx):

systemctl stop apache2

systemctl disable apache2

* если не остановить apache и попытаться установить nginx, мы получим ошибку Errors were encountered while processing: nginx-full.

Postfix

Postfix is a Mail Transfer Agent (MTA) that relays mail between the Linode and the internet. It is highly configurable, allowing for great flexibility. This guide maintains many of Posfix’s default configuration values.

Configuration File Settings

The file is the primary configuration file used by Postfix.

  1. Make a copy of the default Postfix configuration file in case you need to revert to the default configuration:

  2. Edit the file to match the example configurations. Replace occurrences of with your domain name:

    /etc/postfix/main.cf
  3. The file declares the location of , , and files. These files contain the connection information for the MySQL lookup tables created in the section of this guide. Postfix will use this data to identify all domains, corresponding mailboxes, and valid users.

    Create the file for . Replace the value for with your database user’s password. If you used a different name for your database and replace those with your own values:

    /etc/postfix/mysql-virtual-mailbox-domains.cf
  4. Create the file, and enter the following values. Use the database user’s password and make any other changes as needed:

    /etc/postfix/mysql-virtual-mailbox-maps.cf
  5. Create the file and enter the following values. Use the database user’s password and make any other changes as needed:

    /etc/postfix/mysql-virtual-alias-maps.cf
  6. /etc/postfix/mysql-virtual-email2email.cf
  7. Restart Postfix:

  8. The command creates or queries Postfix’s lookup tables, or updates an existing one. Enter the following command to ensure that Postfix can query the table. Replace with the first value. The command should return if it is successful:

Master Program Settings

Postfix’s master program starts and monitors all of Postfix’s processes. The configuration file lists all programs and information on how they should be started.

  1. Make a copy of the file:

  2. Edit to contain the values in the excerpt example. The rest of the file can remain unchanged:

    master.cf
  3. Change the permissions of the directory to restrict permissions to allow only its owner and the corresponding group:

  4. Restart Postfix:

Установка Postfix

Пользователь vmail

  • Создадим нового пользователя vmail, от имени которого будут производится операции с файлами в директории /var/vmail, в которой будут храниться письма:

    # mkdir /var/vmail
    # groupadd  -g 1001 vmail
    # useradd -d /var/vmail/ -g 1001 -u 1001 vmail
    # chown vmail:vmail /var/vmail

    В main.cf добавляем строки

    virtual_mailbox_base = /var/vmail
    virtual_minimum_uid = 1001
    virtual_uid_maps = static:1001
    virtual_gid_maps = static:1001
    virtual_transport = virtual
  • Генерация сертификата и включение, если необходимо, специального порта 465/SMTPS.

SMTP аутентификация

  1. Включим поддержку SMTP AUTH в Postfix, для этого в main.cf добавим строки

    # SMTP AUTH Dovecot
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    # Block old clients
    broken_sasl_auth_clients = no
  2. Настроим SMTP AUTH в Postfix при помощи SASL.

    # aptitude install dovecot-core dovecot-imapd dovecot-mysql
    # service postfix restart
    # service dovecot restart
  3. .

На этом этапе у нас получился рабочий SMTP сервер с поддержкой SMTP AUTH и SSL/TLS.

Команды

Проверка синтаксиса
postfix -c ПУТЬ_К_ФАЙЛУ_НАСТРОЕК_main.cf check
Состояние очереди
postqueue -c ПУТЬ_К_ФАЙЛУ_НАСТРОЕК_main.cf -p
Обработка очереди немедленно
postqueue -c ПУТЬ_К_ФАЙЛУ_НАСТРОЕК_main.cf -f
Очистка очереди
postsuper -c ПУТЬ_К_ФАЙЛУ_НАСТРОЕК_main.cf -d ALL
Тест адресации
postmap -q address@domail.ru ldap:/etc/postfix/ldap-users.cf

Работа с несколькими экземплярами

При решении некоторых задач можно воспользоваться возможностью работы с несколькими экземплярами (instance) сервера.

Для работы нужно добавить такие строки:

/etc/postfix/main.cf
multi_instance_enable = yes
multi_instance_wrapper = ${command_directory}/postmulti -p -g ИМЯ_ГРУППЫ reload
multi_instance_directories = /etc/postfix-mx /etc/postfix-1 /etc/postfix-n

в переменной указывается экземпляры программы, в примере использованы следующие:

Для того, чтобы при запуске/останове и перезапуске Postfix и по команде

service postfix …

нужно параметре нужно указать имя группы () в куда входя нужные экземпляров программы.

Также для того, чтобы разрешить работу с несколькими экземплярами можно использовать команду

postmulti -e init

Для управления служит программа .

Примеры:

Создание
postmulti -I ИМЯ_ЭКЗЕМПЛЯРА -G ИМЯ_ГРУППЫ -e create
Активация
postmulti -i ИМЯ_ЭКЗЕМПЛЯРА -e enable
Управление экземпляром
postmulti -i ИМЯ_ЭКЗЕМПЛЯРА -p КОМАНДА

Безопасность

список подсетей с которых разрешена отправка через этот сервер
Клиент, подключившийся к серверу, может командой определить, существует ли заданный адрес в системе
При попытке клиента отправить письмо несуществующему пользователю по умолчанию сервер выдаст с сообщением (или другой таблице). Отключаем, пусть сервер сообщает
Требуем от клиента приветствия (HELO/EHLO). Все, кто подключается, должны представляться
smtpd_helo_restrictions=
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_invalid_hostname,
    reject_non_fqdn_hostname,
    reject_invalid_helo_hostname,
    reject_unknown_helo_hostname
Ограничения для этапа . Применяются к имени хоста, его IP-адресу и приветствию :
Разрешаем доверенные сети
Разрешаем тем, кто прошёл аутентификацию
Отбрасываем неправильное (несуществующее) имя хоста
Отбрасываем не полностью определённое доменное имя хоста
Отбрасываем, если хост по HELO/EHLO не имеет А или МХ записи
smtpd_sender_restrictions=
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
    reject_unlisted_sender,
    permit_mynetworks,
    permit_sasl_authenticated
Ограничения для этапа MAIL FROM. Применяется ко всему предыдущему + имя отправителя:
Отбрасываем не полностью определённое имя отправителя
Отбрасываем отправителя с несуществующего домена
Отбрасываем несуществующих отправителей
Проверяем отправителя. Если с нашего домена, то проверим, находится ли он в доверенной сети или прошёл аутентификацию
Разрешаем отправлять с доверенных сетей
Разрешаем отправлять прошедшим аутентификацию
smtpd_recipient_restrictions=
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    reject_unlisted_recipient,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination
    reject_invalid_hostname
Ограничения для этапа RCPT TO. Применяется к предыдущему + имя получателя:, если получатель отсутствует в списке нашего домена или списке пересылки. Чтобы сервер не стал открытым
smtpd_data_restrictions=
    reject_unauth_pipelining,
    reject_multi_recipient_bounce
Ограничения для этапа DATA:
Отвергаем запрос, когда клиент посылает команды SMTP раньше времени клиента с пустым именем отправителя, который отправляет сразу нескольким получателям
smtpd_etrn_restrictions=
    permit_mynetworks,
    permit_sasl_authenticated,
    reject
Ограничиваем клиентов, которые могут запрашивать очистку очереди сообщений

Установка и настройка Postfix

Устанавливаем:

После установки, чтоб предотвратить мешанину из конфигурационных файлов, в папке /etc/postfix создаем подпапку mysql. В ней будут храниться файлы запросов почтового сервера к БД. В этой папке создадим три конфигурационных файла:

4.3. virtual-mailbox-maps.cf

Создаем пользователя и группу, которые будут отвечать за почту, точнее за почтовые ящики:

Postfix имеет удобный скрипт для управления конфигурационным файлом. Этот скрипт избавляет от необходимости искать директивы вручную. Теперь, используя этот скрипт, зададим конфигурацию для Postfix. Обычно для настройки параметров, дабы не вводить это все каждый раз вручную, я создаю отдельный скрипт. Назовем его postfix-myconf.sh:

Заключительным аккордом настройки Postfix будет добавление Dovecot интерфейса. Для этого в файл /etc/postfix/master.cf добавляем две строки:

Introduction

In this tutorial, we are going to configure a mail server using Postfix, Dovecot, MySQL and SpamAssassin on Ubuntu 12.04.

Following this tutorial you’ll be able to add virtual domains, users, and aliases. Moreover, your virtual server will be secure from spam hub.

Prerequisites

Before setting up your mail server, it’s necessary your VPS has the following:

* Domain is forwarding to your server (setup domain)
* MySQL installed and configured (setup mysql)* User with root privileges (setup new users- omit step 5)
*Configure and identify your FQDN ()

Optional: SSL certificate (setup free signed ssl certificate)

Optional ( Log in as root user )

Installing packages as the root user is useful because you have all privileges.

Introduce your user’s password. Once it’s successful, you will see that symbol changes to .

Step 4: Configure Dovecot

We are going to copy the 7 files we’re going to modify, so that you could revert it to default if you needed to. Enter the following commands one by one:

Edit configuration file from Dovecot.

Verify this option is uncommented.

We are going to enable protocols (add pop3 if you want to) below the .

Note: Compare these changes with this file to detect mistakes or errors:

Note: Compare these changes with this file to detect mistakes or errors:

Verify permissions

Enter this command:

Ensure permissions are like this:

We are going to create a folder for each domain that we register in the MySQL table:

Create a vmail user and group with an id of 5000

We need to change the owner of the folder to the vmail user.

Then we need to edit the file:

Uncomment plain text authentication and add this line:

Modify parameter:

Comment this line:

Enable MySQL authorization by uncommenting this line:

Note: Compare these changes with this file to detect mistakes or errors:

We need to create the /etc/dovecot/dovecot-sql.conf.ext file with your information for authentication:

Enter the following code in the file:

We need to modify the file with our custom MySQL information:

Uncomment the driver parameter and set mysql as parameter:

Uncomment the connect line and introduce your MySQL specific information:

Uncomment the line and change it to .

Uncomment the line and add this information:

Note: Compare these changes with this file to detect mistakes or errors:

Change the owner and the group of the dovecot folder to vmail user:

Open and modify the file (be careful because different parameters will be changed).

Modify parameter to like this:

Modify like this:

Note: Compare these changes with this file to detect mistakes or errors:

Finally, we are going to modify the SSL configuration file from Dovecot (skip this step if you are going to use default configuration).

Change the ssl parameter to required:

And modify the path for and :

ssl_key = </etc/ssl/private/dovecot.pem

Restart Dovecot

You should check that port 993 is open and working (in case you enable pop3; you should check also port 995).

- Username: email1@example.com
- Password: email1's password
- IMAP: example.com
- SMTP: example.com

Note: use port 993 for secure IMAP and port 587 or 25 for SMTP.

MySQL

  1. Use the mysql_secure_installation tool to configure additional security options. This tool will ask if you want to set a new password for the MySQL root user, but you can skip that step:

    Answer Y at the following prompts:

    • Remove anonymous users?
    • Disallow root login remotely?
    • Remove test database and access to it?
    • Reload privilege tables now?
  2. Create a new database:

  3. Log in to MySQL:

  4. Flush the MySQL privileges to apply the change:

  5. Switch to the new database:

Adding Data

Now that the database and tables have been created, add some data to MySQL.

  1. Add the domains to the table. Replace the values for and with your own settings:

Testing

In the previous section, data was added to the MySQL database. The steps below will test that the data has been stored and can be retrieved.

  1. Log in to MySQL:

  2. Check the contents of the table:

  3. Verify that you see the following output:

  4. Check the table:

  5. Verify the following output, the hashed passwords are longer than they appear below:

  6. Check the table:

  7. Verify the following output:

  8. If everything outputs as expected, exit MySQL:

Обслуживание почтовой системы, которая должна выполнять массовые рассылки

Не стоит надеяться, что правильно настроенный сервер будет всегда хорошо справляться со своей задачей. Необходимо заниматься его обслуживанием, так как поведения фильтров могут меняться, как и сущность СПАМа и методы борьбы с ним.

  1. Проверка репутации сервера. Время от времени, проверяйте свою почтовую систему с помощью сервиса senderscore.
  2. Эффективность рассылок. Выполняем проверку наших рассылок при помощи специализированных сервисов — Постмастер от mail.ru, Postmasters Tools от Google и Почтовый офис от Яндекса. На основе данных незамедлительно принимаем решение об исключении определенных адресов из рассылки и выполняем все рекомендации систем.
  3. Наличие в черных списках. Проверяйте наличие домена/IP-адреса в черных списках. Ранее мы говорили, что это можно сделать на сайтах dnsbl.smtp.bz, 2ip.ru, dnsbl.info и syslab.ru.
  4. Держим руку на пульсе. Время от времени, перечитываем требования к честным рассылкам, например, у Яндекса и . В них могут появляться новые требования.
  5. Анализируем log. Находим по логам неудачные попытки отправить сообщения. Большинство из них делятся на две категории — soft bounce (мягкие возвраты) и hard bounce (жесткие возвраты). Первые означают, что ошибка отправки произошла на принимающей стороне — это может быть переполнение ящика, временная его блокировка, другими словами — временные явления и попытки отправки сообщений этому адресату можно повторить позже. Жесткие возвраты сигнализируют о постоянной проблеме, как правило, отсутствующем адресате. За ошибками hard bounce нужно внимательно следить и реагировать, удаляя несуществующих адресатов из списка рассылки.
  6. Отправляем тестовые сообщения. Используем сервисы mail-tester.com и spamtest.smtp.bz для периодической отправки сообщений и проверки, что наш сервер настроен правильно.

Настройка Dovecot[править]

Создадим файл /etc/dovecot/dovecot-ldap.conf.ext параметров подключения Dovecot к LDAP:

# Контроллер домена (сервер LDAP)
hosts = dc.test.alt

# Пользователь и пароль для подключения к LDAP
dn = ldapbind@test.alt
dnpass = 'PaSSword'

# Следующая опция позволяет аутентифицировать пользователей с помощью подключения к серверу LDAP с их аутентификационными данными
auth_bind = yes

# Преобразуем все имена пользователей в нижний регистр
auth_bind_userdn = %Lu

# Используем защищенное LDAP соединение
tls = yes

# Версия протокола LDAP
ldap_version = 3

# Где искать в LDAP
base = cn=Users,dc=test,dc=alt
deref = never

# Искать во всех вложенных объектах
scope = subtree

# Использовать фильтр для поиска пользователей - искать только пользователей (sAMAccountType=805306368),
# у которых совпадает c переданным логином IMAP или имя пользователя (userPrincipalName=%Lu) или электронная почта (mail=%Lu)
user_filter = (&(sAMAccountType=805306368)(|(userPrincipalName=%Lu)(mail=%Lu)))

# Указываем расположение домашнего каталога подсоединенного пользователя, параметр "%$" будет заменен на значение userPrincipalName (формата user@domain)
user_attrs = userPrincipalName=home=/var/vmail/%$

# Использовать фильтр для паролей
pass_filter = (&(sAMAccountType=805306368)(userPrincipalName=%Lu))

# Указываем имя пользователя найденное в LDAP
pass_attrs = userPrincipalName=user

Ссылка на этот конфигурационный файл есть в файле /etc/dovecot/conf.d/auth-ldap.conf.ext:

passdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf.ext
}
userdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf.ext
}

Далее настраиваем параметры аутентификации в файле /etc/dovecot/conf.d/10-auth.conf:

# Добавляемое к имени пользователю имя домена по умочанию (если пользователь введет имя user, то для dovecot он будет user@test.alt)
auth_default_realm = test.alt

# Преобразуем все имена пользователей в нижний регистр
auth_username_format = %Lu

# Указываем методы аутентификации
auth_mechanisms = plain login

# Добавляем поддержку аутентификации в LDAP
!include auth-ldap.conf.ext

Далее настраиваем параметры работы с почтой в файле /etc/dovecot/conf.d/10-mail.conf:

# Настроим формат и расположение почты пользователей, %h - указывает, что почта располагается в домашнем каталоге пользователя установленном в параметре user_attrs файла  dovecot-ldap.conf.ext
mail_location = maildir:%h

# Указываем системного пользователя, созданного реннее, для работы с почтой и минимальные/максимальные gid/uid пользователей имеющих право работать с почтой (id vmail)
mail_uid = vmail
mail_gid = vmail
first_valid_uid = 1001
last_valid_uid = 1001
first_valid_gid = 1001
last_valid_gid = 1001

# Метод блокировок записи
mbox_write_locks = fcntl

Далее настраваем параметра SSL Dovecot в файле /etc/dovecot/conf.d/10-ssl.conf:

ssl = required
ssl_cert = </etc/dovecot/imap.test.alt.crt
ssl_key = </etc/dovecot/imap.test.alt.key

Далее настраиваем сокет авторизации для postfix. Он настраивается в файле /etc/dovecot/conf.d/10-master.conf секция service auth:

service auth {
  unix_listener auth-userdb {
    mode = 0660
    user = vmail
  }
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

В этом же файле настроим сокет для приема писем из postfix-a — секция service lmtp:

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

В файле /etc/dovecot/dovecot.conf можно все оставить по умолчанию, например он может выглядеть так:

protocols = imap pop3 lmtp
listen = *
base_dir = /var/run/dovecot/
login_greeting = Dovecot ready.
dict {
}
!include conf.d/*.conf

Теперь можно запускать и добавлять в автозагрузку сервис dovecot:

# systemctl enable dovecot
# systemctl start dovecot

Step 2: Create a MySQL Database, Virtual Domains, Users and Aliases

After the installation finishes, we are going to create a MySQL database to configure three different tables: one for domains, one for users and the last one for aliases.

We are going to name the database , but you can use whatever name you want.

Create the servermail database:

Log in as MySQL root user

Enter your MySQL root’s password; if it’s successful you will see:

First we need to create a new user, specific for mail authentication, and we are going to give SELECT permission.

After that, we need to reload MySQL privileges to ensure it applies those permissions successfully:

Finally we need to use the database for creating tables and introduce our data:

We are going to create a table for the specific domains recognized as authorized domains.

We have created the three tables successfully. Now we are going to introduce the data.

Virtual Domains

Here we are going to introduce your domains inside the virtual_domains table. You can add all the domains you want, but in this tutorial we are going to introduce just the primary domain (example.com) and your FQDN (hostname.example.com).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *