Серверы · 10 min read · Dec 17, 2025

Виртуальная многосерверная среда с выделенными веб-серверами и MySQL, почтовыми и DNS-серверами на Debian Squeeze с ISPConfig 3 - Страница 2

5 Создание виртуальных серверов

Теперь мы будем использовать OVZ Web Panel для создания наших виртуальных серверов. Войдите в панель и добавьте свои IP-адреса в разделе IP Addresses. Затем нажмите на localhost и OS Templates.

Теперь нам нужно загрузить шаблон для наших виртуальных серверов. Мы делаем это, нажав Install New OS Template -> Contributed и выбрав debian-6.0-amd64-minimal.

Теперь вернитесь к localhost и нажмите Create virtual server. Заполните поля следующим образом:

  • Server ID (VEID): номер (я бы выбрал последнюю часть вашего IP, так что 2 для первого)
  • OS Template: уже выбран правильно
  • Server Template: unlimited
  • IP Address: 192.168.1.2
  • Host Name: web.example.tld
  • DNS Server: 8.8.4.4 8.8.8.8 (это DNS Google)
  • оставьте остальные поля как есть и назначьте дисковое пространство, ОЗУ и ЦП по своему усмотрению…

Повторите этот шаг для всех ваших виртуальных серверов (всего 4 раза: Web, Mail, 2x DNS).

5.1 Подготовка виртуальных серверов

Теперь вам следует войти в каждый виртуальный сервер и выполнить следующие команды:

apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
apt-get -y install nano wget ntp ntpdate

что обновит их до последней версии и установит некоторые недостающие пакеты.

6 Установка выделенных серверов

6.1 Установка веб/БД сервера

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

nano /etc/hosts

127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 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

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

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

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

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

nano /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 zip wget

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

Web server to reconfigure automatically: <– apache2

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

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest headers expires

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

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

Отредактируйте файл /etc/default/pure-ftpd-common…

vi /etc/default/pure-ftpd-common

… и убедитесь, что virtualchroot установлен на VIRTUALCHROOT=true:

[...]  
VIRTUALCHROOT=true  
[...]  

Теперь мы настраиваем PureFTPd для разрешения FTP и TLS-сессий. FTP - это очень небезопасный протокол, потому что все пароли и все данные передаются в открытом виде. Используя TLS, всю коммуникацию можно зашифровать, что делает FTP гораздо более безопасным.

Если вы хотите разрешить FTP и TLS-сессии, выполните

echo 1 > /etc/pure-ftpd/conf/TLS

Чтобы использовать TLS, мы должны создать SSL-сертификат. Я создаю его в /etc/ssl/private/, поэтому сначала создаю этот каталог:

mkdir -p /etc/ssl/private/

После этого мы можем сгенерировать SSL-сертификат следующим образом:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Country Name (2 letter code) [AU]: <– Введите название вашей страны (например, “DE”).
State or Province Name (full name) [Some-State]: <– Введите название вашего штата или провинции.
Locality Name (eg, city) []: <– Введите ваш город.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <– Введите название вашей организации (например, название вашей компании).
Organizational Unit Name (eg, section) []: <– Введите название вашего подразделения (например, “IT Department”).
Common Name (eg, YOUR name) []: <– Введите полное доменное имя системы (например, “web.example.tld”).
Email Address []: <– Введите ваш адрес электронной почты.

Измените права доступа к SSL-сертификату:

chmod 600 /etc/ssl/private/pure-ftpd.pem

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

apt-get -y install vlogger webalizer awstats

Откройте /etc/cron.d/awstats после этого…

vi /etc/cron.d/awstats

… и закомментируйте обе задачи cron в этом файле:

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Генерировать статические отчеты:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

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

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

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit2.14-1.deb
rm -rf jailkit-2.14

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

apt-get install fail2ban

Чтобы заставить fail2ban мониторить PureFTPd, создайте файл /etc/fail2ban/jail.local:

vi /etc/fail2ban/jail.local

[pureftpd]

enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

Затем создайте следующий файл фильтра:

vi /etc/fail2ban/filter.d/pureftpd.conf

[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =

Перезапустите fail2ban после этого:

/etc/init.d/fail2ban restart

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

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

CREATE USER ‘root’@’192.168.1.3’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.3’ 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.1.4’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.4’ 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.1.5’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.5’ 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’@’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.1.3 - 192.168.1.5) на IP-адреса ваших серверов и замените mail.example.tld, ns1.example.tld и ns2.example.tld на имена хостов ваших серверов и myrootpassword на желаемый пароль root.

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

Вернитесь в оболочку web.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]: <–n
Установить веб-интерфейс ISPConfig (y,n) [y]: <–y
Порт ISPConfig [8080]: <– 8080
Включить SSL для веб-интерфейса ISPConfig (y,n) [y]: <– y
Название страны (2 буквы) [AU]: <– ENTER
Название штата или провинции (полное название) [Some-State]: <– ENTER
Название населенного пункта (например, город) []: <– ENTER
Название организации (например, компания) [Internet Widgits Pty Ltd]: <– ENTER
Название организационного подразделения (например, отдел) []: <– ENTER
Общее название (например, ВАШЕ имя) []: <– ENTER
Адрес электронной почты []: <– ENTER
Пароль для проверки []: <– ENTER
Необязательное название компании []: <– ENTER

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

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

6.2 Установка почтового сервера

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

nano /etc/hosts

127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 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 mail.example.tld > /etc/hostname
echo mail.example.tld > /etc/mailname
/etc/init.d/hostname.sh start

Установите postfix, dovecot и MySQL одной командой:

apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d

Введите новый пароль для mysql, когда установщик запросит, и ответьте на следующие вопросы, как описано ниже:

Общий тип конфигурации? <– Интернет-сайт
Имя почты? <– mail.example.tld

Чтобы установить amavisd-new, SpamAssassin и ClamAV, мы выполняем:

apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl

Если вы хотите использовать почтовые списки на вашем сервере, установите mailman. Этот шаг необязателен. mailman требует веб-сервер Apache, поэтому, если вы не хотите запускать экземпляр Apache на вашем почтовом сервере, не устанавливайте mailman.

apt-get -y install mailman

Установщик apt для mailman затем спросит вас выбрать языки для почтового списка. Включите все языки, которые вы хотите использовать для mailman. Затем создайте почтовый список “mailman”.

newlist mailman

и введите адрес электронной почты и новый пароль для администратора почтового списка. Это последний шаг установки mailman. Следующая команда для установки php должна быть выполнена на каждом сервере, независимо от того, установили вы mailman или нет.

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

apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt

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

apt-get install fail2ban

Чтобы заставить fail2ban мониторить PureFTPd и Dovecot, создайте файл /etc/fail2ban/jail.local:

vi /etc/fail2ban/jail.local

[dovecot-pop3imap]

enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

Затем создайте следующий файл фильтра:

vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf

[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex =

Перезапустите fail2ban после этого:

/etc/init.d/fail2ban restart

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

Загрузите последнюю стабильную версию 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) сервера, например server1.domain.tld [mail.example.tld]: <– mail.example.tld
Имя хоста MySQL сервера [localhost]: <– localhost
Имя пользователя root MySQL [root]: <– root
Пароль root MySQL []: <– Введите здесь свой пароль root MySQL
База данных MySQL для создания [dbispconfig]: <– dbispconfig
Кодировка MySQL [utf8]: <– utf8
Должен ли этот сервер присоединиться к существующей многосерверной настройке ISPConfig (y,n) [n]: <– y
Имя хоста главного сервера MySQL []: <– web.example.tld
Имя пользователя root главного сервера MySQL [root]: <– root
Пароль root главного сервера MySQL []: <– Введите пароль root главного сервера здесь
Имя базы данных главного сервера MySQL [dbispconfig]: <– dbispconfig
Настроить почту (y,n) [y]: <– y

Название страны (2 буквы) [AU]: <– DE (Введите здесь ISO-код страны, в которой вы живете)
Название штата или провинции (полное название) [Some-State]: <– Niedersachsen (Введите здесь штат, в котором вы живете)
Название населенного пункта (например, город) []: <– Lueneburg (Введите здесь город)
Название организации (например, компания) [Internet Widgits Pty Ltd]: <– ENTER
Название организационного подразделения (например, отдел) []: <– ENTER
Общее название (например, ВАШЕ имя) []: <– ENTER
Адрес электронной почты []: <– ENTER

Настроить Jailkit (y,n) [y]: <– n
Настроить FTP сервер (y,n) [y]: <– n
Настроить DNS сервер (y,n) [y]: <– n
Настроить сервер Apache (y,n) [y]: <– n
Настроить сервер брандмауэра (y,n) [y]: <–n
Установить веб-интерфейс ISPConfig (y,n) [y]: <–n

Запустите…

rm -f /var/www/ispconfig

… чтобы удалить ссылку интерфейса ISPConfig в каталоге /var/www.

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

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.