Инструкция по установке EAI почтового сервера под ОС CentOS 7
Инструкция по установке EAI почтового сервера под ОС CentOS 7
<img width="698" height="2" src="file:///C|/Users/Voronin/AppData/Roaming/Adobe/Dreamweaver 2021/ru_RU/OfficeImageTemp/clip_image001.gif">
Почтовый сервер с поддержкой EAI
С помощью данной инструкции вы сможете установить почтовый сервер с поддержкой использования интернационализированных адресов электронной почты (EAI) на базе ПО с открытым исходным кодом. Почтовый сервер можно развивать далее с помощью другого ПО.
Необходимое ПО
<img width="698" height="2" src="file:///C|/Users/Voronin/AppData/Roaming/Adobe/Dreamweaver 2021/ru_RU/OfficeImageTemp/clip_image002.gif">
- Centos 7.4
- Postfix 3.2.3
- Dovecot 2.2.10
- MariaDB 10.3.11
- Squirrelmail 5.5.56
Примечания:
- в данной инструкции не разъясняется, как установить Centos 7.4
- версия Postfix 3.x.x и выше поддерживает EAI
- в реальных условиях необходимо также настроить сервер DNS
- putty и winscp используются для подключения к серверу
Установка EAI почтового сервера
<img width="698" height="2" src="file:///C|/Users/Voronin/AppData/Roaming/Adobe/Dreamweaver 2021/ru_RU/OfficeImageTemp/clip_image001_0000.gif">
Задайте имя хоста
- Обновите пакеты почтового сервера до последней версии
# yum -y update
- Задайте имя хоста (например, mail.test.ru) с помощью команды
<strong># hostnamectl set-hostname </strong><a href="https://wiki.thnic.or.th/index.php?title=Mail.eai.in.th&action=edit&redlink=1" title="Mail.eai.in.th (ไม่มีหน้า)"><strong><em>mail.test.ru</em></strong></a>
- Добавьте имя хоста в файл hosts
<strong># vi /etc/hosts</strong>
Пример файла hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 <a href="https://wiki.thnic.or.th/index.php?title=Mail.eai.in.th&action=edit&redlink=1" title="Mail.eai.in.th (ไม่มีหน้า)"><strong><em>mail.test.ru</em></strong></a>
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 <a href="https://wiki.thnic.or.th/index.php?title=Mail.eai.in.th&action=edit&redlink=1" title="Mail.eai.in.th (ไม่มีหน้า)"><strong><em>mail.test.ru</em></strong></a>
*В зависимости от среды установки CentOSвам может понадобиться установить дополнительные сервисы (например, может быть недоступна команда «vi»)
- Установите wget для скачивания дополнительного ПО
<strong># yum -y install wget</strong>
- Установите telnet для тестирования работы почтового сервера
<strong># yum -y install telnet</strong>
Настройте файрвол
<img width="698" height="2" src="file:///C|/Users/Voronin/AppData/Roaming/Adobe/Dreamweaver 2021/ru_RU/OfficeImageTemp/clip_image001_0001.gif">
- Проверьте, что у почтового сервиса имеется статус «firewalld service»
Статус должен быть активным (работающим)
<strong># systemctl status firewalld</strong>
Пример
<strong>Active: </strong><strong>active (running)</strong><strong> since Mon 2019-11-18 14:12:03 +07; 1h 13min ago</strong>
- Проверьте открытые зону файрвола и сетевой интерфейс
<strong># firewall-cmd --get-active-zones</strong>
Пример
<strong>public</strong>
<strong>interfaces: ens32</strong>
- Проверьте сервисы файрвола в публичной зоне
<strong># firewall-cmd --zone=public --list-services</strong>
Пример
<strong>cockpit dhcpv6-client ssh </strong>
- Откройте необходимые сервисы на файрволе в публичной зоне почтового сервера
<strong># firewall-cmd --permanent --zone=public --add-service=http</strong>
<strong># firewall-cmd --permanent --zone=public --add-service=https</strong>
<strong># firewall-cmd --permanent --zone=public --add-service=mysql</strong>
<strong># firewall-cmd --permanent --zone=public --add-service=smtp</strong>
<strong># firewall-cmd --permanent --zone=public --add-service=smtps</strong>
<strong># firewall-cmd --permanent --zone=public --add-service=imap</strong>
<strong># firewall-cmd --permanent --zone=public --add-service=imaps</strong>
<strong># firewall-cmd --reload</strong>
- Еще раз проверьте список сервисов на файрволе в публичной зоне, вы увидите только открытые сервисы *Дополнительно: задайте конфигурацию сервисов файрвола для почтового сервера (<a href="https://spalinux.com/2015/06/centos-7-basic-configure-firewall-by-firewall-cmd">https://spalinux.com/2015/06/centos-7-basic-configure-firewallby-firewall-cmd</a><a href="https://spalinux.com/2015/06/centos-7-basic-configure-firewall-by-firewall-cmd">)</a>
<strong># firewall-cmd --zone=public --list-services</strong>
Пример
<strong>cockpit dhcpv6-client </strong><strong>http https imap imaps mysql smtp smtps</strong><strong> ssh </strong>
- <img width="698" height="2" src="file:///C|/Users/Voronin/AppData/Roaming/Adobe/Dreamweaver 2021/ru_RU/OfficeImageTemp/clip_image002_0000.gif">
В этом примере мы открыли SELinux для удобства настройки
<strong># vi /etc/selinux/config</strong>
Пример
<strong>This file controls the state of SELinux on the system.</strong>
<strong># SELINUX= can take one of these three values:</strong>
<strong># enforcing - SELinux security policy is enforced.</strong>
<strong># permissive - SELinux prints warnings instead of enforcing.</strong>
<strong># disabled - No SELinux policy is loaded.</strong>
<strong>SELINUX=</strong><strong>disabled</strong>
<strong># SELINUXTYPE= can take one of these two values:</strong>
<strong># targeted - Targeted processes are protected,</strong>
<strong># mls - Multi Level Security protection.</strong>
<strong>SELINUXTYPE=targeted</strong>
- Перезапустите сервер
<strong># reboot</strong>
<strong># sestatus</strong>
Пример
<strong>disabled </strong>
Создайте SSL-сертификат
Пошаговая инструкция для создания SSL-ключа, чтоб использовать с postfix и dovecot
- Создайте индивидуальный ключ
<strong># cd /etc/pki/tls/certs</strong>
<strong># make </strong><a href="https://wiki.thnic.or.th/index.php?title=Eai.key&action=edit&redlink=1" title="Eai.key (ไม่มีหน้า)">eai.key</a><strong> </strong>
Пример
<strong>umask 77 ; \</strong>
<strong>/usr/bin/openssl genrsa -aes128 2048 > eai.key</strong>
<strong>Generating RSA private key, 2048 bit long modulus</strong>
<strong>...</strong>
<strong>...</strong>
<strong>e is 65537 (0x10001)</strong>
<strong>Enter pass phrase: </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#set_passphrase">#set passphrase</a>
<strong>Verifying - Enter pass phrase: </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#confirm">#confirm</a><strong> </strong>
- Удалите Passphase из созданного ключа
<strong># openssl rsa -in </strong><a href="https://wiki.thnic.or.th/index.php?title=Eai.key&action=edit&redlink=1" title="Eai.key (ไม่มีหน้า)">eai.key</a><strong> -out </strong><a href="https://wiki.thnic.or.th/index.php?title=Eai.key&action=edit&redlink=1" title="Eai.key (ไม่มีหน้า)">eai.key</a><strong> </strong>
Пример
<strong>Enter pass phrase for eai.key: </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#input_passphrase">#input passphrase</a>
<strong>writing RSA key</strong>
- Создайте csr
<strong># make eai.csr</strong>
Пример
<strong>umask 77 ; \</strong>
<strong>/usr/bin/openssl req -utf8 -new -key eai.key -out eai.csr</strong>
<strong>You are about to be asked to enter information that will be incorporated</strong>
<strong>into your certificate request.</strong>
<strong>What you are about to enter is what is called a Distinguished Name or a DN.</strong>
<strong>There are quite a few fields but you can leave some blank</strong>
<strong>For some fields there will be a default value,</strong>
<strong>If you enter '.', the field will be left blank.</strong>
<strong>-----</strong>
<strong>Country Name (2 letter code) [XX]:</strong>RU<strong> </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#country">#country</a>
<strong>State or Province Name (full name) []:</strong><a href="https://wiki.thnic.or.th/index.php?title=Bangkok&action=edit&redlink=1" title="Bangkok (ไม่มีหน้า)">Moscow</a><strong> </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#state">#state</a>
<strong>Locality Name (eg, city) [Default City]:</strong><a href="https://wiki.thnic.or.th/index.php?title=Dusit&action=edit&redlink=1" title="Dusit (ไม่มีหน้า)">Moscow</a><strong> </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#city">#city</a>
<strong>Organization Name (eg, company) [Default Company Ltd]:</strong><a href="https://wiki.thnic.or.th/index.php?title=EAI&action=edit&redlink=1" title="EAI (ไม่มีหน้า)">EAI</a><strong> </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#company">#company</a>
<strong>Organizational Unit Name (eg, section) []:</strong><a href="https://wiki.thnic.or.th/index.php?title=IT&action=edit&redlink=1" title="IT (ไม่มีหน้า)">IT</a><strong> </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#department">#department</a>
<strong>Common Name (eg, your name or your server's hostname) []:</strong><a href="https://wiki.thnic.or.th/index.php?title=Mail.eai.in.th&action=edit&redlink=1" title="Mail.eai.in.th (ไม่มีหน้า)">mail.test.ru</a><strong> </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#server.27s_FQDN">#server's FQDN</a>
<strong>Email Address []:</strong><a href="mailto:xxx@test.ru">xxx@test.ru</a><strong> </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#email_address">#email address</a>
<strong>Please enter the following 'extra' attributes</strong>
<strong>to be sent with your certificate request</strong>
<strong>A challenge password []: </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#Enter">#Enter</a>
<strong>An optional company name []: </strong><a href="https://wiki.thnic.or.th/th/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2_EAI_Mail_Server_%E0%B8%9A%E0%B8%99_CentOS_7/en#Enter">#Enter</a><strong> </strong>
4. Сгенерируйте ключ
<strong># openssl x509 -in </strong><a href="https://wiki.thnic.or.th/index.php?title=Eai.csr&action=edit&redlink=1" title="Eai.csr (ไม่มีหน้า)">eai.csr</a><strong> -out </strong><a href="https://wiki.thnic.or.th/index.php?title=Eai.crt&action=edit&redlink=1" title="Eai.crt (ไม่มีหน้า)">eai.crt</a><strong> -req -signkey </strong><a href="https://wiki.thnic.or.th/index.php?title=Eai.key&action=edit&redlink=1" title="Eai.key (ไม่มีหน้า)">eai.key</a><strong> -days 3650</strong>
Пример
<strong>Signature ok</strong>
<strong>subject=/C=JP/ST=Hiroshima/L=Hiroshima/O=GTS/OU=Server World/CN=www.srv.world/emailAddress=xxx@test.ru</strong>
<strong>Getting Private key</strong>