Обновление iRedMail с версии 0.9.9 до 1.0
Процесс обновления от версии к версии отличается — чтобы получить подробную информацию об обновлении, заходим на страницу со списком релизов iRedMail и переходим по ссылке для описания обновления соответствующей версии сервера:
Рассмотрим подробнее обновление всех компонентов по шагам:
1. Обновление iRedAPD
Переходим на страницу dl.iredmail.org/yum/misc и копируем ссылку на самую последнюю версию iRedAPD:
* в данном примере мы скопировали ссылку на iRedAPD 3.5.
Используя ссылку, загружаем пакет на сервер:
wget https://dl.iredmail.org/yum/misc/iRedAPD-3.5.tar.gz
Распаковываем скачанный пакет:
tar zxvf iRedAPD-*.tar.gz
Переходим в папку tools распакованного каталога:
cd iRedAPD-*/tools/
И запускаем скрипт на обновление пакета:
bash upgrade_iredapd.sh
Выходим из каталога:
cd ../../
2. Установка mlmmjadmin версии 2.1
В инструкции указана установка именно версии 2.1 — выполняем следующие команды:
wget https://github.com/iredmail/mlmmjadmin/archive/2.1.tar.gz
tar zxvf 2.1.tar.gz
cd mlmmjadmin-2.1/tools/
bash upgrade_mlmmjadmin.sh
cd ../../
3. Обновление Roundcube
Для iRedMail 0.9.9 используется Roundcube версии 1.3.8. Его необходимо обновить до версии 1.4.1. Сначала нам необходимо выполнить резервное копирование баз данных и файлов, после можно обновлять сам портал.
Резервное копирование
Перед обновление Roundcube сохраняем данные текущей версии. Создадим каталог, куда поместим архивы:
mkdir /backup
Делаем дамп базы следующей командой:
mysqldump -v -uroot -p roundcubemail | gzip > /backup/roundcubemail.sql.gz
Копируем портал:
cp -LR /opt/www/roundcubemail /backup/
Обновление roundcube
Переходим на страницу GitHub для загрузки roundcube версии 1.4.1 — копируем ссылку на загрузку данной версии:
Используя скопированную ссылку загружаем на сервер портал:
wget https://github.com/roundcube/roundcubemail/releases/download/1.4.1/roundcubemail-1.4.1-complete.tar.gz
Распаковываем архив:
tar zxvf roundcubemail-1.4.1-complete.tar.gz
Переходим в распакованный каталог:
cd roundcubemail-1.4.1/
Запускаем установку roundcubemail:
bin/installto.sh /opt/www/roundcubemail
* в данном примере мы запускаем скрипт установки новой версии roundcubе в каталог /opt/www/roundcubemail.
Система обнаружит, что в каталоге /opt/www/roundcubemail уже установлен портал другой версии и предложит его обновить — отвечаем утвердительно:
Upgrading from 1.3.8. Do you want to continue? (y/N)
y
Установщик автоматически заменит необходимые файлы и обновит базу данных.
Выходим их каталога:
cd ..
4. Обновление netdata до версии 1.19.0
Переходим на GitHub, страницу netdata 1.19.0 — копируем ссылку на скачивание run-файла:
... и скачиваем пакет на сервер:
wget https://github.com/netdata/netdata/releases/download/v1.19.0/netdata-v1.19.0.gz.run
Разрешаем запуск файла на выполнение:
chmod +x netdata-v1.19.0.gz.run
Выполняем запуск:
./netdata-v1.19.0.gz.run --accept
Запрещаем отправку анонимной статистики:
touch /opt/netdata/etc/netdata/.opt-out-from-anonymous-statistics
5. Вносим правки в Postfix
Открываем конфигурационный файл postfix:
vi /etc/postfix/main.cf
Находим строку:
smtpd_sender_restrictions =
reject_unknown_sender_domain
...
check_sender_access pcre:/etc/postfix/sender_access.pcre
... и перемещаем reject_unknown_sender_domain после check_sender_access pcre:/etc/postfix/sender_access.pcre — получаем:
smtpd_sender_restrictions =
...
check_sender_access pcre:/etc/postfix/sender_access.pcre
reject_unknown_sender_domain
Открываем файл /etc/postfix/helo_access.pcre:
vi /etc/postfix/helo_access.pcre
Добавляем в самый низ:
/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}\.mail-mail\.facebook\.com$/ DUNNO
Перезапускаем postfix:
systemctl restart postfix
6. Изменение правил Fail2ban
Переходим в каталог с правилами fail2ban
cd /etc/fail2ban/filter.d/
По очереди выполняем команды:
wget -O postfix.iredmail.conf https://github.com/iredmail/iRedMail/raw/1.0/samples/fail2ban/filter.d/postfix.iredmail.conf
wget -O dovecot.iredmail.conf https://github.com/iredmail/iRedMail/raw/1.0/samples/fail2ban/filter.d/dovecot.iredmail.conf
После перезапускаем Fail2ban:
systemctl restart fail2ban
7. Обновление бэкэнда
Далее действия зависят от типа базы данных, которая используется для нашего iRedMail. Есть варианты использования OpenLDAP, MySQL/MariaDB, PostgreSQL. В данной инструкции подробнее затронем только MySQL/MariaDB. Действия по обновлению бэкэнда до версии 1.0 позволят включить проверку состояния квот.
Добавление поля mysql
Скачиваем дамп с новой структурой для базы vmail:
wget -O /tmp/iredmail.mysql https://github.com/iredmail/iRedMail/raw/1.0/update/1.0/iredmail.mysql
Загружаем изменения:
mysql vmail < /tmp/iredmail.mysql
Удаляем скачанный файл:
rm -f /tmp/iredmail.mysql
Настройка Dovecot
Открываем файл /etc/dovecot/dovecot.conf:
vi /etc/dovecot/dovecot.conf
Находим строку plugin:
plugin {
...
... и добавляем строки:
plugin {
...
# Used by quota-status service.
quota_status_success = DUNNO
quota_status_nouser = DUNNO
quota_status_overquota = "552 5.2.2 Mailbox is full"
}
Ниже после plugin { ... } добавим:
service quota-status {
executable = quota-status -p postfix
client_limit = 1
inet_listener {
address = 127.0.0.1
port = 12340
}
}
Перезапускаем dovecot:
systemctl restart dovecot
Настройка Postfix
Открываем конфигурационный файл:
vi /etc/postfix/main.cf
Находим:
smtpd_recipient_restrictions =
... и добавляем в конец группы:
smtpd_recipient_restrictions =
...
check_policy_service inet:127.0.0.1:12340
Перезапускаем postfix:
systemctl restart postfix
8. Редактируем номер релиза
Обновление выполнено — меняем версию релиза. Открываем файл:
vi /etc/iredmail-release
Меняем версию на 1.0. В итоге получим:
1.0 MARIADB edition.
* где MARIADB edition в вашем случаем может быть другим значением.