Серверные настройки · 7 min read · Feb 13, 2026
Идеальный сервер - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3) - Страница 2
Теперь войдите с именем пользователя root и паролем, который вы выбрали во время установки.
4 Настройка сетевых параметров
Мы используем Yast, инструмент управления системой OpenSuSE, чтобы перенастроить параметры сетевой карты. После первой загрузки система настроена на получение IP-адреса с помощью DHCP. Для сервера мы переключим его на статический IP-адрес.
Запустите
yast2Выберите Устройства сети > Настройки сети:

Выберите вашу сетевую карту, а затем нажмите Изменить:

Выберите Статически назначенный IP-адрес и введите IP-адрес, маску подсети и имя хоста, затем сохраните изменения, выбрав Далее:

Теперь выберите Имя хоста/DNS и введите имя хоста (например, server1.example.com) и DNS-серверы (например, 192.168.1.200 и 8.8.8.8):

Теперь выберите Маршрутизация и введите шлюз по умолчанию, затем нажмите ОК:
Чтобы настроить брандмауэр (в случае, если вы не настраивали его во время базовой установки), выберите Безопасность и пользователи > Брандмауэр в Yast:

Я хочу установить ISPConfig в конце этого руководства, который поставляется со своим собственным брандмауэром. Поэтому я сейчас отключаю брандмауэр OpenSUSE по умолчанию. Конечно, вы можете оставить его включенным и настроить по своему усмотрению (но тогда вам не следует использовать какой-либо другой брандмауэр позже, так как он, скорее всего, будет мешать брандмауэру OpenSUSE).
Выберите Отключить автоматический запуск брандмауэра и Остановить брандмауэр сейчас, затем нажмите Далее:

Нажмите Завершить и выйдите из Yast:

После этого вам следует проверить с помощью
ifconfigправильность вашей сетевой конфигурации. Если это не так (например, если eth0 отсутствует), перезагрузите систему…
reboot… и снова проверьте вашу сетевую конфигурацию - она теперь должна быть правильной.
5 Установите обновления
Теперь мы устанавливаем последние обновления из репозиториев openSUSE. Запустите
zypper updateА затем перезагрузите сервер, так как вы, скорее всего, установили и некоторые обновления ядра:
reboot6 Установите некоторые базовые пакеты
Запустите
zypper install findutils readline glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ subversion make vim telnet cron iptables iputils man man-pages nano pico sudo perl-TimeDate7 Журналируемая квота
Чтобы установить квоту, выполните
zypper install quotaОтредактируйте /etc/fstab, чтобы он выглядел так (я добавил, usrjquota=aquota.user, grpjquota=aquota.group, jqfmt=vfsv0 к точкам монтирования / и /srv):
vi /etc/fstab| /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part1 swap swap defaults 0 0 /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part2 / ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part3 /srv ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 2 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 |
Затем выполните:
mount -o remount /
mount -o remount /srvquotacheck -avugm
quotaon -avugНе беспокойтесь, если вы увидите эти сообщения об ошибках - они нормальны, когда вы впервые запускаете quotacheck:
server1:~ # quotacheck -avugm
quotacheck: Сканирование /dev/sda2 [/] завершено
quotacheck: Не удается получить старый файл квоты пользователя: Нет такого файла или директории
quotacheck: Не удается получить старый файл квоты группы: Нет такого файла или директории
quotacheck: Не удается получить старый файл квоты пользователя: Нет такого файла или директории
quotacheck: Не удается получить старый файл квоты группы: Нет такого файла или директории
quotacheck: Проверено 3872 каталога и 32991 файлов
quotacheck: Старый файл не найден.
quotacheck: Старый файл не найден.
quotacheck: Сканирование /dev/sda3 [/srv] завершено
quotacheck: Не удается получить старый файл квоты пользователя: Нет такого файла или директории
quotacheck: Не удается получить старый файл квоты группы: Нет такого файла или директории
quotacheck: Не удается получить старый файл квоты пользователя: Нет такого файла или директории
quotacheck: Не удается получить старый файл квоты группы: Нет такого файла или директории
quotacheck: Проверено 6 каталогов и 0 файлов
quotacheck: Старый файл не найден.
quotacheck: Старый файл не найден.
server1:~ #8 Установите Postfix, Dovecot, MySQL
Запустите
zypper install postfix postfix-mysql mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron pythonЕсли вы получите следующее сообщение, пожалуйста, выберите удаление exim:
Проблема: 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' для получения дополнительных сведений.rebootЗапустите 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
Новый пароль: <– вашпарольrootsql
Повторите новый пароль: <– вашпарольrootsql
Пароль успешно обновлен!
Перезагрузка таблиц привилегий..
… Успех!
По умолчанию установка 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.