Настройка пересылки почты в postfix
Содержание:
- Настройка Postfix
- Подготовка сервера
- Шаг 1 — Установка Postfix
- Подготовка сервера
- Postfix
- Установка Postfix
- Команды
- Работа с несколькими экземплярами
- Безопасность
- Установка и настройка Postfix
- Introduction
- Step 4: Configure Dovecot
- MySQL
- Обслуживание почтовой системы, которая должна выполнять массовые рассылки
- Настройка Dovecot[править]
- Step 2: Create a MySQL Database, Virtual Domains, Users and Aliases
Настройка 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.
-
Make a copy of the default Postfix configuration file in case you need to revert to the default configuration:
-
Edit the file to match the example configurations. Replace occurrences of with your domain name:
- /etc/postfix/main.cf
-
-
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
-
-
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
-
-
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
-
-
- /etc/postfix/mysql-virtual-email2email.cf
-
-
Restart Postfix:
-
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.
-
Make a copy of the file:
-
Edit to contain the values in the excerpt example. The rest of the file can remain unchanged:
- master.cf
-
-
Change the permissions of the directory to restrict permissions to allow only its owner and the corresponding group:
-
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 аутентификация
-
Включим поддержку 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
-
Настроим SMTP AUTH в Postfix при помощи SASL.
# aptitude install dovecot-core dovecot-imapd dovecot-mysql # service postfix restart # service dovecot restart
- .
На этом этапе у нас получился рабочий 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
-
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?
-
Create a new database:
-
Log in to MySQL:
-
Flush the MySQL privileges to apply the change:
-
Switch to the new database:
Adding Data
Now that the database and tables have been created, add some data to MySQL.
-
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.
-
Log in to MySQL:
-
Check the contents of the table:
-
Verify that you see the following output:
-
Check the table:
-
Verify the following output, the hashed passwords are longer than they appear below:
-
Check the table:
-
Verify the following output:
-
If everything outputs as expected, exit MySQL:
Обслуживание почтовой системы, которая должна выполнять массовые рассылки
Не стоит надеяться, что правильно настроенный сервер будет всегда хорошо справляться со своей задачей. Необходимо заниматься его обслуживанием, так как поведения фильтров могут меняться, как и сущность СПАМа и методы борьбы с ним.
- Проверка репутации сервера. Время от времени, проверяйте свою почтовую систему с помощью сервиса senderscore.
- Эффективность рассылок. Выполняем проверку наших рассылок при помощи специализированных сервисов — Постмастер от mail.ru, Postmasters Tools от Google и Почтовый офис от Яндекса. На основе данных незамедлительно принимаем решение об исключении определенных адресов из рассылки и выполняем все рекомендации систем.
- Наличие в черных списках. Проверяйте наличие домена/IP-адреса в черных списках. Ранее мы говорили, что это можно сделать на сайтах dnsbl.smtp.bz, 2ip.ru, dnsbl.info и syslab.ru.
- Держим руку на пульсе. Время от времени, перечитываем требования к честным рассылкам, например, у Яндекса и . В них могут появляться новые требования.
- Анализируем log. Находим по логам неудачные попытки отправить сообщения. Большинство из них делятся на две категории — soft bounce (мягкие возвраты) и hard bounce (жесткие возвраты). Первые означают, что ошибка отправки произошла на принимающей стороне — это может быть переполнение ящика, временная его блокировка, другими словами — временные явления и попытки отправки сообщений этому адресату можно повторить позже. Жесткие возвраты сигнализируют о постоянной проблеме, как правило, отсутствующем адресате. За ошибками hard bounce нужно внимательно следить и реагировать, удаляя несуществующих адресатов из списка рассылки.
- Отправляем тестовые сообщения. Используем сервисы 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).