Установка сервера · 4 min read · Nov 19, 2025

Идеальный сервер - OpenSUSE 12.3 x86_64 (nginx, Dovecot, ISPConfig 3) - Страница 3

8 Установите Postfix, Dovecot, MySQL

Запустите

zypper install postfix postfix-mysql mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron python

Если вы получите следующее сообщение, выберите удаление sendmail:

Проблема: sendmail-8.14.5-85.1.2.x86_64 конфликтует с postfix, предоставляемым postfix-2.9.6-1.2.1.x86_64  
  Решение 1: Будут выполнены следующие действия:  
   не устанавливать postfix-2.9.6-1.2.1.x86_64  
   не устанавливать postfix-mysql-2.9.6-1.2.1.x86_64  
  Решение 2: деинсталляция sendmail-8.14.5-85.1.2.x86_64  
   
Выберите одно из вышеуказанных решений по номеру или отмените [1/2/c] (c):<-- 2

Создайте следующую символическую ссылку:

ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot

На этом этапе мне пришлось перезагрузить систему, потому что иначе MySQL отказывался запускаться с ошибкой:

Не удалось выполнить вызов метода: Юнит mysql.service не удалось загрузить: Нет такого файла или каталога. См. системные журналы и 'systemctl status mysql.service' для получения подробностей.
перезагрузка

Запустите MySQL, Postfix и Dovecot и включите службы, чтобы они запускались при загрузке.

systemctl enable mysql.service  
 systemctl start mysql.service
systemctl enable postfix.service  
 systemctl start postfix.service
systemctl enable dovecot.service  
 systemctl start dovecot.service

Теперь я устанавливаю пакет getmail:

zypper install getmail

Чтобы обеспечить безопасность установки MySQL, выполните:

mysql_secure_installation

Теперь вам будет задано несколько вопросов:

server1:~ # mysql_secure_installation

ПРИМЕЧАНИЕ: РЕКОМЕНДУЕТСЯ ЗАПУСКАТЬ ВСЕ ЧАСТИ ЭТОГО СКРИПТА ДЛЯ ВСЕХ MySQL
СЕРВЕРОВ В ПРОИЗВОДСТВЕ! Пожалуйста, внимательно прочитайте каждый шаг!

Чтобы войти в MySQL и обеспечить его безопасность, нам нужен текущий
пароль для пользователя root. Если вы только что установили MySQL и
еще не установили пароль root, то пароль будет пустым,
поэтому вам просто нужно нажать Enter здесь.

Введите текущий пароль для root (нажмите Enter для отсутствия): <– ENTER
Хорошо, пароль успешно использован, продолжаем…

Установка пароля root гарантирует, что никто не сможет войти в MySQL
пользователя root без надлежащей авторизации.

Установить пароль root? [Y/n] <– Y
Новый пароль: <– yourrootsqlpassword
Повторите новый пароль: <– yourrootsqlpassword
Пароль успешно обновлен!
Перезагрузка таблиц привилегий..
… Успех!

По умолчанию установка MySQL имеет анонимного пользователя,
что позволяет любому войти в MySQL без необходимости
создания учетной записи пользователя для них.
Это предназначено только для тестирования и
для упрощения установки.
Вы должны удалить их перед переходом в
производственную среду.

Удалить анонимных пользователей? [Y/n] <– Y
… Успех!

Обычно root должен иметь возможность подключаться
только с ‘localhost’.
Это гарантирует, что кто-то не сможет угадать
пароль root из сети.

Запретить удаленный вход root? [Y/n] <– Y
… Успех!

По умолчанию MySQL поставляется с базой данных
с именем ‘test’, к которой может получить доступ любой.
Это также предназначено только для тестирования и
должно быть удалено перед переходом в
производственную среду.

Удалить тестовую базу данных и доступ к ней? [Y/n] <– Y

  • Удаление тестовой базы данных…
    … Успех!
  • Удаление привилегий на тестовую базу данных…
    … Успех!

Перезагрузка таблиц привилегий гарантирует, что
все изменения, сделанные до сих пор,
вступят в силу немедленно.

Перезагрузить таблицы привилегий сейчас? [Y/n] <– Y
… Успех!

Очистка…

Все готово! Если вы завершили все
вышеуказанные шаги, ваша установка MySQL
должна быть теперь безопасной.

Спасибо за использование MySQL!

server1:~ #

Теперь ваша установка MySQL должна быть защищена.

9 Amavisd-new, Spamassassin и Clamav

Установите Amavisd-new, Spamassassin и антивирус Clamav. Запустите

zypper install amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql

Откройте /etc/amavisd.conf…

vi /etc/amavisd.conf

… и добавьте строку $myhostname с вашим правильным именем хоста под строкой $mydomain:

| [...] $mydomain = 'example.com'; # удобный стандарт для других настроек $myhostname = "server1.$mydomain"; [...] |

Затем создайте символическую ссылку из /var/run/clamav/clamd в /var/lib/clamav/clamd-socket:

mkdir -p /var/run/clamav  
 ln -s /var/lib/clamav/clamd-socket /var/run/clamav/clamd

OpenSUSE 12.3 имеет каталог /run для хранения данных времени выполнения. /run теперь является tmpfs, а /var/run теперь смонтирован в /run из tmpfs и, следовательно, очищается при перезагрузке.

Это означает, что после перезагрузки каталог /var/run/clamav, который мы только что создали, больше не будет существовать, и, следовательно, clamd не сможет запуститься. Поэтому мы создаем файл /etc/tmpfiles.d/clamav.conf, который создаст этот каталог при запуске системы (см. http://0pointer.de/public/systemd-man/tmpfiles.d.html для получения дополнительной информации):

vi /etc/tmpfiles.d/clamav.conf

| D /var/run/clamav 0755 root root - |

Перед тем как запустить amavisd и clamd, мы должны отредактировать инициализационный скрипт /etc/init.d/amavis - я не смог надежно запустить, остановить и перезапустить amavisd с помощью стандартного инициализационного скрипта:

vi /etc/init.d/amavis

Закомментируйте следующие строки в секции запуска и остановки:

| [...] start) # ZMI 20100428 проверка на устаревший pid файл #if test -f $AMAVIS_PID ; then # checkproc -p $AMAVIS_PID amavisd # if test $? -ge 1 ; then # # pid файл устарел, удалите его # echo -n "(устаревший pid файл amavisd $AMAVIS_PID найден, удаление. Упал ли amavisd?)" # rm -f $AMAVIS_PID # fi #fi echo -n "Запуск сканера вирусов (amavisd-new): " $AMAVISD_BIN start #if ! checkproc amavisd; then # rc_failed 7 #fi rc_status -v #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then # rc_reset # echo -n "Запуск amavis-milter:" # startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1 # rc_status -v #fi ;; stop) echo -n "Выключение сканера вирусов (amavisd-new): " #if checkproc amavisd; then # rc_reset $AMAVISD_BIN stop #else # rc_reset #fi rc_status -v #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then # rc_reset # echo -n "Выключение amavis-milter: " # killproc -TERM $AMAVIS_MILTER_BIN # rc_status -v #fi ;; [...] |

Поскольку мы изменили инициализационный скрипт, мы должны выполнить

systemctl --system daemon-reload

Теперь, чтобы запустить clamav, нам нужно загрузить базу данных и продолжить с командой

freshclam

Примечание: Загрузка базы данных занимает много времени, вам рекомендуется не прерывать и не останавливать службу обновления freshclam в процессе

Чтобы включить службы, выполните:

systemctl enable amavis.service  
 systemctl enable clamd.service  
 systemctl start amavis.service  
 systemctl start clamd.service
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.