Установка сервера · 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.servicesystemctl enable postfix.service
systemctl start postfix.servicesystemctl 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/clamdOpenSUSE 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.serviceGet new posts in your inbox
No spam. Unsubscribe anytime.