Установка серверов · 7 min read · Jan 05, 2026

Установка многосерверной конфигурации с выделенными веб-, почтовыми, DNS и MySQL серверами на Debian 5.0 с ISPConfig 3

Установка многосерверной конфигурации с выделенными веб-, почтовыми, DNS и MySQL серверами на Debian 5.0 с ISPConfig 3

Версия 1.0
Автор: Тилл Брем

Это руководство описывает установку многосерверной конфигурации ISPConfig 3 с выделенными веб-, почтовыми, базами данных и двумя DNS серверами, которые управляются через единую панель управления ISPConfig 3. Описанная ниже конфигурация использует пять серверов и может быть легко расширена до большего количества серверов, просто добавив больше серверов. Например, если вы хотите иметь два почтовых сервера, выполните шаги настройки из главы 2 на обоих этих серверах. Если вы хотите настроить больше веб-серверов, установите ISPConfig на все остальные веб-серверы в экспертном режиме, кроме первого.

Чтобы узнать, как использовать ISPConfig 3, я настоятельно рекомендую скачать руководство ISPConfig 3.

На почти 300 страницах оно охватывает концепцию ISPConfig (администраторы, реселлеры, клиенты), объясняет, как установить и обновить ISPConfig 3, включает справочник для всех форм и полей форм в ISPConfig вместе с примерами допустимых вводов и предоставляет учебные пособия для самых распространенных задач в ISPConfig 3. Оно также описывает, как сделать ваш сервер более безопасным и содержит раздел по устранению неполадок в конце.

1 Установка пяти базовых систем Debian

В этой конфигурации будет один главный сервер (который запускает веб-сервер и интерфейс панели управления ISPConfig) и четыре вспомогательных сервера для базы данных, почты и DNS.

Чтобы установить кластерную конфигурацию, нам нужно пять серверов (или виртуальных серверов) с минимальной установкой Debian 5.0. Базовая установка описана в следующем руководстве в шагах 1 - 6:

https://www.howtoforge.com/perfect-server-debian-lenny-ispconfig3

Установите только шаги 1 - 6 из руководства по идеальному серверу и не устанавливайте другие шаги, так как они отличаются для кластерной конфигурации!

В моем примере я использую следующие имена хостов и IP-адреса для пяти серверов:

Веб-сервер
Имя хоста: web.example.tld
IP-адрес: 192.168.0.105

Почтовый сервер
Имя хоста: mail.example.tld
IP-адрес: 192.168.0.106

Сервер БД
Имя хоста: db.example.tld
IP-адрес: 192.168.0.107

DNS сервер (первичный)
Имя хоста: ns1.example.tld
IP-адрес: 192.168.0.108

DNS сервер (вторичный)
Имя хоста: ns2.example.tld
IP-адрес: 192.168.0.109

Где бы ни встречались эти имена хостов или IP-адреса в следующих шагах установки, вам нужно будет изменить их, чтобы они соответствовали IP-адресам и именам хостов ваших серверов.

2 Установка веб-сервера

Отредактируйте файл hosts и добавьте IP-адреса и имена хостов для всех серверов. Имена хостов и IP-адреса должны быть скорректированы в соответствии с вашей конфигурацией.

vi /etc/hosts
127.0.0.1       localhost
192.168.0.105   web.example.tld
192.168.0.106   mail.example.tld
192.168.0.107   db.example.tld
192.168.0.108   ns1.example.tld
192.168.0.109   ns2.example.tld
 
# Следующие строки желательны для хостов, поддерживающих IPv6
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Установите имя хоста сервера:

echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Отредактируйте файл sources.list…

vi /etc/apt/sources.list 

… и убедитесь, что он содержит следующую строку для включения изменяемого репозитория.

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

Запустите…

 apt-get update

… чтобы обновить базу данных пакетов apt; затем выполните…

apt-get upgrade

… чтобы установить последние обновления (если они есть).

Хорошей идеей будет синхронизировать системные часы с сервером NTP ( n etwork t ime p rotocol) через Интернет. Просто выполните…

apt-get -y install ntp ntpdate

… и ваше системное время всегда будет синхронизировано.

Установите сервер MySQL. Экземпляр сервера MySQL необходим на каждом сервере, так как ISPConfig использует его для синхронизации конфигурации между серверами.

apt-get -y install mysql-client mysql-server

Введите новый пароль для MySQL, когда установщик запросит.

Мы хотим, чтобы MySQL слушал на всех интерфейсах на главном сервере, а не только на localhost, поэтому мы редактируем /etc/mysql/my.cnf и закомментируем строку bind-address = 127.0.0.1:

vi /etc/mysql/my.cnf
[...]  
# Вместо skip-networking по умолчанию теперь слушает только  
# localhost, что более совместимо и не менее безопасно.  
#bind-address           = 127.0.0.1  
[...]  

Затем перезапустите MySQL:

/etc/init.d/mysql restart

Теперь установите Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt следующим образом:

apt-get -y install apache2 apache2.2-common apache2-doc   apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5   php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli   php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth   php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo 

Вы увидите следующий вопрос:

Веб-сервер для автоматической переустановки: <– apache2

Затем выполните следующую команду, чтобы включить модули Apache suexec, rewrite, ssl, actions и include:

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest

PureFTPd и quota можно установить следующей командой:

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

Отредактируйте /etc/fstab. У меня он выглядит так (я добавил,usrquota,grpquota к разделу с точкой монтирования /):

vi /etc/fstab

| # /etc/fstab: статическая информация о файловой системе. # # <файловая система> <точка монтирования> <тип> <опции> <дамп> <передача> proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1 /dev/sda5 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |

Чтобы включить квоты, выполните эти команды:

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /

quotacheck -avugm
quotaon -avug

Установите vlogger, webalizer и awstats:

apt-get -y install vlogger webalizer awstats 

Установите Jailkit: Jailkit нужен только в том случае, если вы хотите chroot пользователей SSH. Его можно установить следующим образом (важно: Jailkit должен быть установлен до ISPConfig - его нельзя установить после!):

apt-get -y install build-essential autoconf automake1.9 libtool flex bison

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

Установите fail2ban: Это необязательно, но рекомендуется, потому что монитор ISPConfig пытается показать журнал:

apt-get install fail2ban

Далее мы установим ISPConfig 3. Чтобы получить URL-адрес для загрузки последней стабильной версии ISPConfig 3, пожалуйста, посетите веб-сайт ISPConfig: http://www.ispconfig.org/ispconfig-3/download/

Этот сервер является главным сервером в нашей конфигурации, который запускает интерфейс панели управления ISPConfig. Чтобы разрешить другим экземплярам MySQL подключаться к базе данных MySQL на этом узле во время установки, мы должны добавить записи пользователя root MySQL в главную базу данных для каждого имени хоста и IP-адреса вспомогательного сервера. Самый простой способ сделать это - использовать веб-инструмент администрирования phpmyadmin, который мы уже установили. Откройте URL http://192.168.0.105/phpmyadmin в веб-браузере, войдите как пользователь root MySQL и выполните следующие запросы MySQL:

CREATE USER ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

В приведенных выше SQL-командах замените IP-адреса (192.168.0.106 - 192.168.0.109) на IP-адреса ваших серверов и замените mail.example.tld, db.example.tld, ns1.example.tld и ns2.example.tld на имена хостов ваших серверов и myrootpassword на желаемый пароль root.

Нажмите кнопку перезагрузки разрешений или перезапустите MySQL. Затем закройте phpmyadmin.

Вернитесь к оболочке server1.example.tld и загрузите последнюю стабильную версию ISPConfig 3:

cd /tmp
wget
http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Затем запустите скрипт установки:

php -q install.php

Выберите язык (en,de) [en]: <– en
Режим установки (standard,expert) [standard]: <– expert
Полное квалифицированное имя хоста (FQDN) сервера, например server2.domain.tld [web.example.tld]: <– web.example.tld
Имя хоста сервера MySQL [localhost]: <– localhost
Имя пользователя root MySQL [root]: <– root
Пароль root MySQL []: <– Введите здесь ваш пароль root MySQL
База данных MySQL для создания [dbispconfig]: <– dbispconfig
Кодировка MySQL [utf8]: <– utf8
Должен ли этот сервер присоединиться к существующей многосерверной конфигурации ISPConfig (y,n) [n]: <– n
Настроить почту (y,n) [y]: <– n
Настроить Jailkit (y,n) [y]: <– y
Настроить FTP сервер (y,n) [y]: <– y
Настроить DNS сервер (y,n) [y]: <– n
Настроить сервер Apache (y,n) [y]: <– y
Настроить сервер брандмауэра (y,n) [y]: <–y
Установить веб-интерфейс ISPConfig (y,n) [y]: <–y
Порт ISPConfig [8080]: <– 8080

Очистите каталоги установки:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.