Инструкция по установке 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">

  1. Проверьте, что у почтового сервиса имеется статус «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> 
  1. Проверьте открытые зону файрвола и сетевой интерфейс
<strong># firewall-cmd --get-active-zones</strong> 

 

Пример

<strong>public</strong> 
<strong>interfaces: ens32</strong> 
  1. Проверьте сервисы файрвола в публичной зоне
<strong># firewall-cmd --zone=public --list-services</strong> 

 

Пример

<strong>cockpit dhcpv6-client ssh </strong> 
  1. Откройте необходимые сервисы на файрволе в публичной зоне почтового сервера
<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> 

 

  1. Еще раз проверьте список сервисов на файрволе в публичной зоне, вы увидите только открытые сервисы *Дополнительно: задайте конфигурацию сервисов файрвола для почтового сервера (<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> 
  1. <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> 
  1. Перезапустите сервер
<strong># reboot</strong> 
<strong># sestatus</strong> 

 

Пример

<strong>disabled </strong> 

Создайте SSL-сертификат

Пошаговая инструкция для создания SSL-ключа, чтоб использовать с postfix и dovecot

  1. Создайте индивидуальный ключ
<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> 
  1. Удалите 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> 
  1. Создайте 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>