Сервер · 12 min read · Jan 14, 2026

Идеальный сервер - OpenSUSE 11.2 x86_64 [ISPConfig 3] - Страница 5

12 MyDNS

Мы устанавливаем пакет MyDNS rpm для i386, который также работает на x86_64:

wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm  
rpm -ivh --force mydns-mysql-1.1.0-1.i386.rpm

Создайте следующий скрипт инициализации MyDNS:

vi /etc/init.d/mydns

| #! /bin/sh # Copyright (c) 1995-2004 SUSE Linux AG, Nuernberg, Germany. # Все права защищены. # # Автор: Курт Гарлофф # Пожалуйста, отправьте отзывы на http://www.suse.de/feedback/ # # /etc/init.d/mydns # и его символическая ссылка # /(usr/)sbin/rcmydns # # Эта программа является свободным программным обеспечением; вы можете перераспределять и/или изменять # ее в соответствии с условиями GNU General Public License, опубликованной # Фондом свободного программного обеспечения; либо версии 2 Лицензии, либо # (по вашему выбору) любой более поздней версии. # # Эта программа распространяется в надежде, что она будет полезной, # но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; без даже подразумеваемой гарантии # товарности или пригодности для конкретной цели. См. GNU # General Public License для получения более подробной информации. # # Вы должны были получить копию GNU General Public License # вместе с этой программой; если нет, напишите в Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # Шаблонный скрипт запуска системы для некоторой примерной службы/демона mydns # # Совместимый с LSB скрипт управления службой; см. http://www.linuxbase.org/spec/ # # Примечание: Этот шаблон использует функции rc_XXX, определенные в /etc/rc.status на # дистрибутивах Linux на основе UnitedLinux (UL). Если вы хотите основать свой # скрипт на этом шаблоне и гарантировать, что он работает на не UL-основанных LSB # совместимых дистрибутивах Linux, вам нужно либо предоставить функции rc.status # из UL, либо изменить скрипт, чтобы он работал без них. # ### BEGIN INIT INFO # Provides: mydns # Required-Start: $syslog $remote_fs # Should-Start: $time ypbind sendmail # Required-Stop: $syslog $remote_fs # Should-Stop: $time ypbind sendmail # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: mydns XYZ демон, предоставляющий ZYX # Description: Запустите mydns, чтобы разрешить XY и предоставить YZ # продолжено на второй строке '#' # должно содержать достаточно информации для редактора уровня запуска # чтобы дать администратору представление о том, что делает эта служба и # для чего она нужна... # (Краткое описание должно уже быть хорошим намеком.) ### END INIT INFO # # Любые расширения к ключевым словам, указанным выше, должны предшествовать # X-VendorTag- (X-UnitedLinux- X-SuSE- для нас) в соответствии с LSB. # # Примечания по Required-Start/Should-Start: # * Существуют две разные проблемы, которые решаются Required-Start # и Should-Start # (a) Жесткие зависимости: Это используется редактором уровня запуска для определения # какие службы абсолютно необходимо запустить, чтобы запуск этой службы имел смысл. Пример: nfsserver должен иметь # Required-Start: $portmap # Кроме того, необходимые службы запускаются перед зависимыми. # Редактор уровня запуска предупредит о таких отсутствующих жестких зависимостях # и предложит включить. Во время загрузки системы вы можете ожидать ошибку, # если зависимость не выполнена. # (b) Указание порядка скрипта инициализации, а не реальных (жестких) зависимостей. # Это необходимо для insserv, чтобы определить, какая служба должна быть # запущена первой (и на более позднем этапе, какие службы могут быть запущены # параллельно). Тег Should-Start: используется для этого. # Он говорит, что если служба доступна, ее следует запустить # раньше. Если нет, не беспокойтесь. # * При указании жестких зависимостей или требований к порядку вы можете # использовать названия служб (содержимое их секции Provides:) # или псевдоназвания, начинающиеся с $. Следующие доступны # в соответствии с LSB (1.1): # $local_fs все локальные файловые системы смонтированы # (большинство служб должны это требовать!) # $remote_fs все удаленные файловые системы смонтированы # (обратите внимание, что /usr может быть удаленным, так что # многие службы должны это требовать!) # $syslog система ведения журналов включена # $network низкоуровневое сетевое соединение (eth карта, ...) # $named разрешение имен хостов доступно # $netdaemons все сетевые демоны работают # Псевдослужба $netdaemons была удалена в LSB 1.2. # На данный момент мы все еще предлагаем ее для обратной совместимости. # Это новые (LSB 1.2): # $time системное время установлено правильно # $portmap служба сопоставления портов SunRPC доступна # Расширения UnitedLinux: # $ALL указывает, что скрипт должен быть вставлен # в конец # * Службы, указанные в тегах остановки # (Required-Stop/Should-Stop) # указывают, какие службы должны продолжать работать, когда эта служба # отключается. Часто записи там просто копии или подмножество # из соответствующего тега запуска. # * Should-Start/Stop теперь являются частью LSB с 2.0, # ранее SUSE/Unitedlinux использовали X-UnitedLinux-Should-Start/-Stop. # insserv поддерживает оба варианта. # * X-UnitedLinux-Default-Enabled: yes/no используется во время установки # (%fillup_and_insserv макрос в %post многих RPM) для указания, должен ли # скрипт запуска по умолчанию быть включен после установки. # Он не используется insserv. # # Примечание о уровнях запуска: # 0 - остановка/выключение 6 - перезагрузка # 1 - один пользователь 2 - многопользовательский без экспортируемой сети # 3 - многопользовательский с сетью (текстовый режим) 5 - многопользовательский с сетью и X11 (xdm) # # Примечание о названиях скриптов: # http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html # Регистратура была создана для управления пространством имен скриптов инициализации. # http://www.lanana.org/ # Пожалуйста, используйте уже зарегистрированные названия или зарегистрируйте одно или используйте # префикс поставщика. # Проверка отсутствующих бинарных файлов (устаревшие символические ссылки не должны возникать) # Примечание: Специальное обращение к остановке для соответствия LSB MYDNS_BIN=/usr/sbin/mydns test -x $MYDNS_BIN || { echo "$mydns_BIN не установлен"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } # Проверка существования необходимого конфигурационного файла и чтение его #MYDNS_CONFIG=/etc/sysconfig/mydns #test -r $MYDNS_CONFIG || { echo "$mydns_CONFIG не существует"; # if [ "$1" = "stop" ]; then exit 0; # else exit 6; fi; } # Чтение конфигурации #. $MYDNS_CONFIG # Источник функций инициализации LSB # предоставляющий start_daemon, killproc, pidofproc, # log_success_msg, log_failure_msg и log_warning_msg. # Это в настоящее время не используется дистрибутивами на основе UnitedLinux и # не требуется для скриптов инициализации только для UnitedLinux. Если это используется, # функции из rc.status не должны быть загружены или использованы. #. /lib/lsb/init-functions # Функции оболочки загружены из /etc/rc.status: # rc_check проверить и установить локальный и общий статус rc # rc_status проверить и установить локальный и общий статус rc # rc_status -v быть подробным в локальном статусе rc и очистить его после # rc_status -v -r то же самое и очистить как локальный, так и общий статус rc # rc_status -s отобразить "пропущено" и выйти со статусом 3 # rc_status -u отобразить "неиспользуемый" и выйти со статусом 3 # rc_failed установить локальный и общий статус rc как неудачный # rc_failed установить локальный и общий статус rc как # rc_reset очистить как локальный, так и общий статус rc # rc_exit выйти в соответствии с общим статусом rc # rc_active проверяет, активирована ли служба символическими ссылками . /etc/rc.status # Сброс статуса этой службы rc_reset # Возврат значений в соответствии с LSB для всех команд, кроме статуса: # 0 - успех # 1 - общая или неопределенная ошибка # 2 - недопустимый или избыточный аргумент(ы) # 3 - не реализованная функция (например, "перезагрузить") # 4 - у пользователя недостаточно прав # 5 - программа не установлена # 6 - программа не настроена # 7 - программа не работает # 8--199 - зарезервировано (8--99 LSB, 100--149 дистрибуция, 150--199 приложение) # # Обратите внимание, что запуск уже работающей службы, остановка # или перезапуск неработающей службы, а также перезапуск # с принудительной перезагрузкой (в случае, если сигнализация не поддерживается) считается # успехом. case "$1" in start) echo -n "Запуск mydns " ## Запуск демона с startproc(8). Если это не удается ## значение возврата устанавливается соответствующим образом startproc. startproc $MYDNS_BIN # Запомнить статус и быть подробным rc_status -v ;; stop) echo -n "Остановка mydns " ## Остановка демона с killproc(8) и если это не удается ## killproc устанавливает значение возврата в соответствии с LSB. killproc -TERM $MYDNS_BIN # Запомнить статус и быть подробным rc_status -v ;; try-restart|condrestart) ## Выполнить перезапуск только если служба была активна ранее. ## Примечание: try-restart теперь является частью LSB (с 1.9). ## RH имеет аналогичную команду с названием condrestart. if test "$1" = "condrestart"; then echo "${attn} Используйте try-restart ${done}(LSB)${attn} вместо condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then $0 restart else rc_reset # Не работает - это не ошибка. fi # Запомнить статус и быть тихим rc_status ;; restart) ## Остановить службу и независимо от того, была ли она ## работающей или нет, запустить ее снова. $0 stop $0 start # Запомнить статус и быть тихим rc_status ;; force-reload) ## Сигнализировать демону о перезагрузке его конфигурации. Большинство демонов ## делают это на сигнал 1 (SIGHUP). ## Если он этого не поддерживает, перезапустите. echo -n "Перезагрузка службы mydns " ## если он поддерживает это: killproc -HUP $MYDNS_BIN #touch /var/run/mydns.pid rc_status -v ## В противном случае: #$0 try-restart #rc_status ;; reload) ## Как force-reload, но если демон не поддерживает ## сигнализацию, ничего не делать (!) # Если он поддерживает сигнализацию: echo -n "Перезагрузка службы mydns " killproc -HUP $MYDNS_BIN #touch /var/run/mydns.pid rc_status -v ## В противном случае, если он не поддерживает перезагрузку: #rc_failed 3 #rc_status -v ;; status) echo -n "Проверка службы mydns " ## Проверка статуса с checkproc(8), если процесс работает ## checkproc вернет статус выхода 0. # Возврат значения немного отличается для команды статуса: # 0 - служба работает # 1 - служба мертва, но /var/run/ pid файл существует # 2 - служба мертва, но /var/lock/ lock файл существует # 3 - служба не работает (неиспользуемая) # 4 - статус службы неизвестен :-( # 5--199 зарезервировано (5--99 LSB, 100--149 дистрибуция, 150--199 приложение) # ПРИМЕЧАНИЕ: checkproc возвращает значения статуса, соответствующие LSB. checkproc $MYDNS_BIN # ПРИМЕЧАНИЕ: rc_status знает, что мы вызвали этот скрипт инициализации с # опцией "статус" и адаптирует свои сообщения соответственно. rc_status -v ;; probe) ## Необязательно: Проверьте необходимость перезагрузки, выведите ## аргумент к этому скрипту инициализации, который требуется для перезагрузки. ## Примечание: probe не (еще) является частью LSB (с 1.9) test /etc/mydns/mydns.conf -nt /var/run/mydns.pid && echo reload ;; *) echo "Использование: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit |

Сделайте скрипт инициализации исполняемым…

chmod 755 /etc/init.d/mydns

… и создайте системные ссылки запуска для MyDNS:

chkconfig --add mydns

13 Установите vlogger и Webalizer

cd /tmp
wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
tar xvfz vlogger-1.3.tar.gz
mv vlogger-1.3/vlogger /usr/sbin/
rm -rf vlogger*
yast2 -i webalizer perl-DateManip

14 Установите fail2ban

rpm -i http://download.opensuse.org/repositories/home:/kolbma/openSUSE_11.1/x86_64/fail2ban-0.8.4-2.1.x86_64.rpm

Предупреждения, такие как warning: /var/tmp/rpm-xfer.SCm0TM: Header V3 DSA signature: NOKEY, key ID 5b00c76e можно игнорировать.

15 Установите jailkit

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.10.tar.gz
tar xvfz jailkit-2.10.tar.gz
cd jailkit-2.10
./configure
make
make install
cd ..
rm -rf jailkit-2.10*

16 Синхронизация системных часов

Если вы хотите синхронизировать системные часы с сервером NTP, выполните следующее:

yast2 -i xntp

Затем добавьте системные ссылки запуска для ntp и запустите ntp:

chkconfig --add ntp  
/etc/init.d/ntp start

17 ISPConfig 3

Скачайте текущую версию ISPConfig и установите ее. Установщик ISPConfig настроит все службы, такие как postfix, sasl, courier и т.д. за вас. Ручная настройка, как это требовалось для ISPConfig 2, больше не нужна.

cd /tmp
wget http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.1.6.tar.gz?use_mirror=
tar xvfz ISPConfig-3.0.1.6.tar.gz
cd ispconfig3_install/install/

Теперь начните процесс установки, выполнив:

php -q install.php

server1:/tmp/ispconfig3_install/install # php -q install.php

——————————————————————————–
_ _ _
|
/
| _ \ / \ / ()
| | |\ --.| |_/ / | |/ \/ ___ _ __ | |_ _ __ _ | | |–. \ / | | / \| ‘ \| | |/ ` |
| |_| |\
/ / | | _/\ () | | | | | | | (| |
__
/_/| __/_/|| ||| ||\, |
/ |
|_
/
——————————————————————————–

>> Начальная конфигурация

Операционная система: openSUSE 11.2 или совместимая

Следующие будут несколько вопросов для первичной конфигурации, поэтому будьте внимательны.
Значения по умолчанию находятся в [скобках] и могут быть приняты с .
Введите “quit” (без кавычек), чтобы остановить установщик.

Выберите язык (en,de) [en]: <– ENTER

Режим установки (стандартный, эксперт) [стандартный]: <– ENTER

Полное квалифицированное имя хоста (FQDN) сервера, например server1.domain.tld [server1.example.com]: <– ENTER

Имя хоста MySQL [localhost]: <– ENTER

Имя пользователя root MySQL [root]: <– ENTER

Пароль root MySQL []: <– вашпарольrootsql

База данных MySQL для создания [dbispconfig]: <– ENTER

Кодировка MySQL [utf8]: <– ENTER

Генерация 2048-битного RSA закрытого ключа
…………………+++
…………..+++
запись нового закрытого ключа в ‘smtpd.key’
—–
Вы собираетесь ввести информацию, которая будет включена
в ваш запрос на сертификат.
То, что вы собираетесь ввести, называется
различаемым именем или DN.
Существует довольно много полей, но вы можете оставить некоторые пустыми
Для некоторых полей будет значение по умолчанию,
Если вы введете ‘.’, поле останется пустым.
—–
Название страны (2-буквенный код) [AU]: <– ENTER
Название штата или провинции (полное имя) [Некоторый штат]: <– ENTER
Название местности (например, город) []: <– ENTER
Название организации (например, компания) [Internet Widgits Pty Ltd]: <– ENTER
Название организационного подразделения (например, секция) []: <– ENTER
Общее имя (например, ВАШЕ имя) []: <– ENTER
Адрес электронной почты []: <– ENTER
Настройка Jailkit
Настройка SASL
Настройка PAM
Настройка Courier
Настройка Spamassassin
Настройка Amavisd
Настройка Getmail
Настройка Pureftpd
Настройка MyDNS
Настройка Apache
Настройка vlogger
Настройка брандмауэра
Установка ISPConfig
Порт ISPConfig [8080]: <– ENTER

Настройка DBServer
Установка Crontab
нет crontab для root
нет crontab для getmail
Перезапуск служб …
Перезапуск службы MySQL
Остановка службы MySQL ..готово
Запуск службы MySQL ..готово
Остановка почтовой службы (Postfix)..готово
Запуск почтовой службы (Postfix)..готово
Остановка службы saslauthd..готово
Запуск службы saslauthd..готово
Ожидание завершения процесса [1836]
Ожидание завершения процесса [1836]
Ожидание завершения процесса [1836]
Ожидание завершения процесса [1836]
Демон [1836] завершен по SIGTERM
Остановка антивирусного сканера (amavisd-new): ..готово
Запуск антивирусного сканера (amavisd-new): ..готово
Остановка демона Clam AntiVirus ..готово
Запуск демона Clam AntiVirus ..готово
Остановка демона аутентификации Courier ..готово
Запуск демона аутентификации Courier ..готово
Остановка Courier-IMAP ..готово
Запуск Courier-IMAP ..готово
Остановка Courier-IMAP (SSL)..готово
Запуск Courier-IMAP (SSL) генерация SSL-сертификата…..готово
Остановка Courier-POP3 ..готово
Запуск Courier-POP3 ..готово
Остановка Courier-POP3 (SSL)..готово
Запуск Courier-POP3 (SSL) генерация SSL-сертификата…..готово
Синтаксис OK
Остановка httpd2 (ожидание завершения всех дочерних процессов) ..готово
Запуск httpd2 (prefork) ..готово
Остановка pure-ftpd..готово
Запуск pure-ftpd..готово
Установка завершена.
server1:/tmp/ispconfig3_install/install # Создайте символическую ссылку для phpMyAdmin: ln -s /srv/www/htdocs/phpMyAdmin /usr/local/ispconfig/interface/web/phpmyadmin Очистите каталог /tmp: rm -rf /tmp/ispconfig3_install
rm -f /tmp/ISPConfig-3.0.1.6.tar.gz Чтобы войти в панель управления ISPConfig, откройте этот URL в вашем браузере (замените IP на соответствующий вашим настройкам!): http://192.168.0.100:8080/ Логин по умолчанию: пользователь: admin
пароль: admin #### 17.1 Руководство ISPConfig 3 Чтобы узнать, как использовать ISPConfig 3, я настоятельно рекомендую скачать Руководство ISPConfig 3. На почти 300 страницах оно охватывает концепцию ISPConfig (администраторы, реселлеры, клиенты), объясняет, как установить и обновить ISPConfig 3, включает справочник для всех форм и полей форм в ISPConfig вместе с примерами допустимых вводов и предоставляет учебники для самых распространенных задач в ISPConfig 3. Оно также описывает, как сделать ваш сервер более безопасным и содержит раздел по устранению неполадок в конце. ### 18 Дополнительно Установите веб-клиент электронной почты: rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.2/noarch/squirrelmail-1.4.19-4.1.noarch.rpm ln -s /srv/www/htdocs/squirrelmail /usr/local/ispconfig/interface/web/webmail ### 19 Отключите AppArmor AppArmor - это расширение безопасности SUSE (аналогично SELinux в Fedora), которое должно обеспечивать расширенную безопасность. На мой взгляд, вам не нужно это для настройки безопасной системы, и оно обычно вызывает больше проблем, чем преимуществ (подумайте об этом после того, как вы провели неделю по устранению неполадок, потому что какая-то служба не работала так, как ожидалось, а затем вы обнаружите, что все было в порядке, только AppArmor вызывало проблему). Поэтому я отключаю его (это обязательно, если вы хотите установить ISPConfig позже). Мы можем отключить его следующим образом: /etc/init.d/boot.apparmor stop chkconfig -d boot.apparmor ### 20 Ссылки - OpenSUSE: http://www.opensuse.org/ - ISPConfig: http://www.ispconfig.org/

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.