Работа из учетной записи администратора, root оставьте для расчетов и проверки состояния счета, последнее рекомендую делать почаще, так как оплата производится за количество использованных ресурсов. Услуги Amazon, задействованые в данном хауту — в рамках бесплатного аккаунта, если вы самостоятельно не нажмете еще на какую-нибудь кнопочку в панели управления Amazon.
Ингредиенты
- Основные:
- Учетная запись Amazon Web Services с правами AdministratorAccess (не root).
- LAMP.
- Postfix + Policyd + Amavisd + SpamAssassin + ClamAV.
- Dovecot + Roundcude (плагины: filesystem_attachments, jqueryui, managesieve, password).
- iRedAdmin.
- Сопутствующие:
Инструменты
Условные обозначения
- => Следующее действие.
- Цитата — Ответ в интерпретаторе.
- domain.tk — Заменить на ваш домен!
- 5.175.174.8 — Заменить на ваш Elastic IP!
- Next — Next: Configure Instance Details.
Способ приготовления
- В панели управления Amazon создаем инстанс, раздел для хранения почтовых данных, Elastic IP, политику безопасности:
Открываем EC2: Instances => кнопка Launch Instance => AWS Marketplace => CentOS 7 (x86_64) with Updates HVM => оставляем как есть (t2.micro) => Next => запишите себе Network по умолчанию (например: 172.31.0.0/16) => выберите Subnet (например: 172.31.32.0/20) => отметьте Protect against accidental termination => Next => Next => Key: EC2 => Value: mailServer => Next => Select an existing security group (default) => Review and Launch => Launch => Выберите: Create a new key pair => Key pair name: EC2t2micro-mS => Download Key Pair => Сохраните в надежное место => отметьте чекбокс => Launch Instance => кнопка View Instances
Открываем EC2: Volumes => Create Volume => Size (GiB): 1 => Availability Zone: при создании инстанса выбирали "...1a" значит снова выбираем "...1a" => Create => выбираем вновь созданный Volume (размер 1GiB) => Actions => Attach Volume => выбираете инстанс с установленной CentOS 7 (8GiB) => Attach
Открываем EC2: Elastic IPs => Allocate New Address => Yes, Allocate => Выберите созданный адрес => Actions => Associate Address => Instance: выберите ваш интстанс => Associate
Открываем EC2: Security Groups => выбираем группу безопасности (default) => вкладка Inbound => кнопка Edit => удаляем All traffic => кнопка Add Rule:
для всех: Source: 0.0.0.0/0 (Anywhere)
Custom ICMP Rule: Echo Reply и Echo Request
Протокол UDP:
DNS (UDP): 53
Протокол TCP:
DNS (TCP): 53
POP3: 110
POP3S: 995
IMAP: 143
IMAPS: 993
SMTP: 25
SMTPS: 465
HTTP: 80
HTTPS: 443
LDAP: 389
MYSQL/Aurora: 3306
SSH: 22
Custom TCP Rule: 24, 111, 387, 587, 2000, 4190, 7777, 9998, 10024, 10025, 10031, 43011, 43200, 43220, 43259, 43325, 43362
Итого: 32 правила.
Проверить номера портов можно после завершения установки:sudo netstat -anpe
- В панели управления ClouDNS создаем DNS-записи:
domain.tk A 5.175.174.8 1h(TTL)
domain.tk MX 10 mail.domain.tk 1h(TTL)
domain.tk NS ns11.cloudns.net 1h(TTL)
domain.tk NS ns12.cloudns.net 1h(TTL)
domain.tk NS ns13.cloudns.net 1h(TTL)
domain.tk NS ns14.cloudns.net 1h(TTL)
domain.tk TXT v=spf1 a mx ip4:5.17… 1h(TTL)
ftp.domain.tk A 5.175.174.8 1h(TTL)
mail.domain.tk A 5.175.174.8 1h(TTL)
mail._domainkey.domain… TXT k=rsa; p=fMA0GCSq… 1h(TTL)
pop.domain.tk A 5.175.174.8 1h(TTL)
www.domain.tk CNAME domain.tk 1h(TTL)
_domainkey.domain.tk TXT t=y; o=~; 1h(TTL)
=> Проверяем: http://intodns.com/domain.tk.
- Открываем PuTTY Key Generator => Load => All files => Save private key => Да => Имя файла: EC2t2micro-mS => закрываем PuTTY Key Generator
- Открываем PuTTY => SSH => Auth => Browse… => Выбираем EC2t2micro-mS.ppk => Open => Session => HostName (or IP address): ваш Elastic IP => Saved Sessions: EC2t2micro-mS => Save => Open => Да => centos => Enter =>
cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)
sudo yum -y update
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
L-xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 1G 0 disk
Смотрим:sudo file -s /dev/xvda1
SGI XFS filesystem data (blksz 4096, inosz 256, v2 dirs)
sudo mkfs -t xfs /dev/xvdf
meta-data=/dev/xvdf isize=256 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Проверяем:sudo file -s /dev/xvdf
/dev/xvdf: SGI XFS filesystem data (blksz 4096, inosz 256, v2 dirs)
sudo mkdir -p /data/mail/
sudo mount /dev/xvdf /data/mail/
Проверяем:lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
L-xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 1G 0 disk /data/mail
sudo cp /etc/fstab /etc/fstab.orig
sudo vi /etc/fstab
[Insert]
# Add a new line to the end of the file for your volume using the following format.
# device_name mount_point file_system_type fs_mntops fs_freq fs_passno
/dev/xvdf /data/mail xfs defaults,nofail 0 2
[Esc] :wq [Enter]
sudo mount -a
Если есть ошибки перезагружаться нельзя пока не исправите. Больше информации.
sudo vi /etc/hosts
[Insert]
127.0.0.1 mail.domain.tk mail localhost localhost.localdomain
[Esc] :wq [Enter]
Проверяем:sudo cat /etc/hosts
127.0.0.1 mail.citr.tk mail localhost localhost.localdomain
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
yum repolist all
C7.0.1406-base/x86_64 CentOS-7.0.1406 — Base disabled
C7.0.1406-centosplus/x86_64 CentOS-7.0.1406 — CentOSPlus disabled
C7.0.1406-extras/x86_64 CentOS-7.0.1406 — Extras disabled
C7.0.1406-fasttrack/x86_64 CentOS-7.0.1406 — CentOSPlus disabled
C7.0.1406-updates/x86_64 CentOS-7.0.1406 — Updates disabled
base/7/x86_64 CentOS-7 — Base enabled: 8,652
base-debuginfo/x86_64 CentOS-7 — Debuginfo disabled
base-source/7 CentOS-7 — Base Sources disabled
centosplus/7/x86_64 CentOS-7 — Plus disabled
centosplus-source/7 CentOS-7 — Plus Sources disabled
cr/7/x86_64 CentOS-7 — cr disabled
extras/7/x86_64 CentOS-7 — Extras enabled: 149
extras-source/7 CentOS-7 — Extras Sources disabled
fasttrack/7/x86_64 CentOS-7 — fasttrack disabled
updates/7/x86_64 CentOS-7 — Updates enabled: 1,198
updates-source/7 CentOS-7 — Updates Sources disabled
Ничего лишнего!
sudo yum install php php-mysql
… 5.4.16-36.e17_1 ...
=> y => Скачать на жесткий диск и распаковать.
Залейте папку iRedMail-0.9.2 с помощью FileZilla (Редактирование => настройки => SFTP => Добавить файл с ключом (EC2t2micro-mS.ppk) ip — ваш Elastic IP => Соединиться). Проследите чтобы все файлы были переданы успешно.
sudo cp -r /home/centos/iRedMail-0.9.2 /root
Проверяем:sudo ls /root
iRedMail-0.9.2
rm -rf /home/centos/iRedMail-0.9.2
Отключаем и больше не включаем:sudo vi /etc/selinux/config
[Insert]
SELINUX=disabled
[Esc] :wq [Enter]
Проверяем:sudo cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing — SELinux security policy is enforced.
# permissive — SELinux prints warnings instead of enforcing.
# disabled — No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted — Targeted processes are protected,
# minimum — Modification of targeted policy. Only selected processes are protected.
# mls — Multi Level Security protection.
SELINUXTYPE=targeted
sudo reboot
Проверяем:getenforce
Disabled
sudo su -
vi /etc/hostname
[Insert]
# Удаляем старое значение [D][D] на строке под курсором
mail.domain.tk
[Esc] :wq [Enter]
Проверяем:sudo cat /etc/hostname
mail.domain.tk
hostname mail.domain.tk
Проверяем:hostname
mail.domain.tk
cd /root/iRedMail-0.9.2
bash iRedMail.sh
=> Yes
=> /data/mail
=> Apache
=> MariaDB
=> Создайте root-пароль БД
=>
=> postmaster-пароль
=> DKIM signing/verification
iRadAdmin
Roundcubemail
Awstats
=> y за исключением use firewall rules — n
=> Обновляем базу ClamAV, правда не с первого разу…
********************************************************************
* Congratulations, mail server setup completed successfully. Please
* read below file for more information:
*
* — /root/iRedMail-0.9.2/iRedMail.tips
*
* And it's sent to your mail account postmaster@citr.tk.
*
********************* WARNING **************************************
*
* Rebooting your system is required to enable mail services.
*
********************************************************************
Выход из root:exit
sudo reboot
Проверяем, если все правильно, то ссылки будут ссылаться на ваш домен:
sudo cat /root/iRedMail-0.9.2/iRedMail.tips
Перемещаем в безопасное место:sudo cat /root/iRedMail-0.9.2/config
sudo rm -f /root/iRedMail-0.9.2/config
Так как после перезагрузки системы hostname слетает:
sudo hostname mail.domain.tk
sudo rm -f /var/www/html/index.html
sudo chmod 777 /var/www/html
=> с помощью FileZilla заливаете ваш index-файл сюда: /var/www/html
sudo chmod 755 /var/www/html
sudo yum -y update
sudo openssl passwd -1 Ваш postmaster-пароль
# Значения будут отличаться.
$1$2dQ48hyz$.mCLeDSdPkP3fxVmARsB.0
mysql -u root -p
=> Введите root-пароль БД.
USE vmail;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
UPDATE mailbox SET password='$1$2dQ48hyz$.mCLeDSdPkP3fxVmARsB.0' WHERE username='postmaster@domain.tk';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
exit
exit
Пробуем готовый продукт
domain.tk/iredadmin
mail.domain.tk/mail
mail.domain.tk/cluebringer
mail.domain.tk/awstats/awstats.pl?config=web
mail.domain.tk/awstats/awstats.pl?config=smtp
Mozilla Thunderbird
D1abloRUS
В чем соль? в амазоне? или в каких то тонкостях настройки?
может не стоит? не долго ведь освоитьвоу воу полегче
ruRikki
в амазоне, у них свой фаервол
D1abloRUS
да как бы SELINUX и не фаервол вовсе
ruRikki
iredmail не работает с SELINUX
D1abloRUS
Тогда простите, а почему 777 на /var/www/html
ruRikki
ну это косяк) не знаю, меня не разу не взламывали, была один раз попытка и то, там у хостера был косяк с доступом) перегадили мне кодировку) я съехала потом оттуда) да и переустановить инстанс по этому же хауту — 15 мин, засекала) кому нужен мой хлам) 755, щас добавлю строчку
ruRikki
А пояснить в ответе почему минусуем это наверно очень страшно, боимся наверное, что заминусуют в ответ. Сколько минусов не ставь а тот кто последует моим советам очень быстро развернет надежный почтовый сервер, если собирать самостоятельно по частям и задать где-нибудь на форуме вопрос о конфигурировании postfix, то в ответ будет в лучшем случае ссылка на ман, ну а в противоположном случае на платную электронную книжечку.