В этом руководстве вы ознакомитесь с установкой собственной многосерверной установки ISPConfig 3 с выделенными серверами для панели, web, DNS, почты и webmail. И DNS, и почтовый сервер будут иметь зеркальный сервер для резервирования. Впоследствии вы можете легко добавить больше серверов определенного типа.
Для настройки серверов будет использоваться официальный автоустановщик ISPConfig. В качестве операционной системы будет использоваться Debian 10. Руководство также было протестировано с Ubuntu 20.04.2.
Вы можете прочитать больше об автоматической установке https://www.howtoforge.com/community/threads/ispconfig-3-autoinstaller.86078/
1 Предварительное примечание
Это будут хосты, которые мы устанавливаем:
host | FQDN | IP |
panel | panel.example.com | 10.20.64.12 |
web01 | web01.example.com | 10.20.64.13 |
mx1 | mx1.example.com | 10.20.64.14 |
mx2 | mx2.example.com | 10.20.64.15 |
ns1 | ns1.example.com | 10.20.64.16 |
ns2 | ns2.example.com | 10.20.64.17 |
webmail | webmail.example.com | 10.20.64.18 |
Мы будем использовать примеры имен хостов, IP-адресов и диапазонов IP-адресов. Обязательно измените их соответствующим образом в своих командах/конфигурации.
Все серверы находятся в одной частной сети, но имеют свой собственный общедоступный IP. Если ваши серверы не имеют общей локальной сети, используйте их общедоступные IPv4-адреса.
Перед началом установки сервера настройте запись A и, возможно, AAAA, которая указывает на общедоступный IP-адрес вашего сервера. Например, если имя хоста panel.example.com, а общедоступный IP-адрес 11.22.33.44, вам следует настроить запись A для panel.example.com, указывающую на 11.22.33.44. У каждого сервера должен быть свой собственный общедоступный IP и имя хоста.
2 Установка главного сервера
Войдите в систему от имени root или запустите su — чтобы стать пользователем root на вашем сервере, прежде чем продолжить. ВАЖНО: Вы должны использовать «su -«, а не просто «su», в противном случае Debian неправильно установит вашу переменную PATH.
2.1 Настройте имя хоста и узлы
Имя хоста вашего сервера должно быть поддоменом типа «panel.example.com«. Не используйте доменное имя без части поддомена типа «example.com» в качестве имени хоста, так как это позже вызовет проблемы с настройкой вашей почты. Сначала вы должны проверить имя хоста в /etc/hosts и изменить его при необходимости. Строка должна быть такой: «IP-адрес — пробел — полное имя хоста, включая. домен — пробел — часть поддомена». Для нашего имени хоста panel.example.com файл должен выглядеть следующим образом (некоторые строки могут отличаться, это может отличаться у каждого хостинг-провайдера):
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
# This line should be changed on every node to the correct servername:
127.0.1.1 panel.example.com panel
# These lines are the same on every node:
10.20.64.12 panel.example.com panel
10.20.64.13 web01.example.com web01
10.20.64.14 mx1.example.com mx1
10.20.64.15 mx2.example.com mx2
10.20.64.16 ns1.example.com ns1
10.20.64.17 ns2.example.com ns2
10.20.64.18 webmail.example.com webmail
как вы можете видеть, мы добавили имена хостов и других наших серверов, чтобы позже они могли взаимодействовать по внутренней сети.
Затем отредактируйте файл /etc/hostname:
vi /etc/hostname
В нашем случае он должен содержать только часть поддомена:
panel
Наконец, перезагрузите сервер, чтобы применить изменения:
systemctl reboot
Войдите в систему еще раз и проверьте правильность имени хоста с помощью следующих команд:
hostname
hostname -f
Результат должен быть таким:
root@panel:~$ hostname
panel
root@panel:~$ hostname -f
panel.example.com
Теперь мы можем запустить автоустановщик для установки всех необходимых пакетов и ISPConfig:
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=system
Через некоторое время вы увидите:
WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type ‘yes’ if you really want to continue:
предупреждение! Этот скрипт полностью перенастроит ваш сервер!
Его следует запустить на только что установленном сервере, и все текущие настройки, которые вы выполнили, скорее всего, будут потеряны!
Введите «yes», если вы действительно хотите продолжить:
Ответьте «yes» и нажмите enter. Теперь запустится программа установки.
Когда программа установки завершит работу, она покажет вам пароль администратора ISPConfig и пользователя MySQL root следующим образом:
[INFO] Your ISPConfig admin password is: 5GvfSSSYsdfdYC
[INFO] Your MySQL root password is: kkAkft82d!kafMwqxdtYs
[ИНФОРМАЦИЯ] Ваш пароль администратора ISPConfig: 5GvfSSSYsdfdYC
[ИНФОРМАЦИЯ] Ваш пароль root для MySQL: kkAkft82d!kafMwqxdtYs
Обязательно запишите эту информацию вместе с указанием сервера, для которого она предназначена, поскольку она понадобится вам позже.
2.2 Настройка удаленных пользователей MySQL для наших подчиненных серверов
Мы войдем в систему MySQL, чтобы позволить другим серверам подключаться к базе данных ISPConfig на этом узле во время установки, добавив записи пользователя MySQL root в базу данных master для каждого имени хоста и IP-адреса подчиненного сервера.
На терминале запустите:
mysql -u root -p
Введите свой пароль MySQL, а затем выполните следующие команды:
CREATE USER 'root'@'10.20.64.13' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.13' 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'@'10.20.64.14' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.14' 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'@'10.20.64.15' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' 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'@'10.20.64.16' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.16' 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 ;
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.17' 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'@'10.20.64.17' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.17' 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'@'10.20.64.18' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.18' 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-адреса (10.20.64.12 — 10.20.64.18) на IP-адреса ваших серверов, web01.example.com, mx1.example.com, mx2.example.com, ns1.example.com, ns2.example.com, и webmail.example.com с именами хостов ваших серверов и myrootpassword с желаемым паролем root (рекомендуется использовать разные пароли для каждого хоста . Запишите их, так как они понадобятся вам позже при установке или обновлении ваших подчиненных серверов).
Когда это будет сделано, вы можете выйти из MySQL с помощью:
EXIT;
Теперь вы можете войти в ISPConfig на https://panel.example.com:8080, используя имя пользователя admin и пароль, которые вам показал установщик.
2.3 Настройка брандмауэра
Последнее, что нужно сделать, это настроить наш брандмауэр.
Войдите в пользовательский интерфейс ISPConfig и перейдите в меню Система -> Брандмауэр. Затем нажмите «Добавить новую запись брандмауэра».
Для сервера панели мы должны открыть следующие порты:
TCP:
22,80,443,8080,8081
Никакие UDP-порты не должны открываться через пользовательский интерфейс.
Мы также собираемся открыть порт 3306, который используется для MySQL, но только из нашей локальной сети по соображениям безопасности. Чтобы сделать это, запустите следующую команду из командной строки после распространения изменений на панели ISPConfig (когда красная точка исчезнет).:
ufw allow from 10.20.64.0/24 to any port 3306 proto tcp
Теперь ваша панель настроена и готова к использованию.
На следующем шаге мы установим веб-сервер.
Автоустановщик обновляет версии php только в базе данных web01.
Обходной путь:
http://web01.example.com/phpmyadmin
войдите в систему с правами root и задайте sql pw
экспортируйте таблицу server_php
удалите все строки, кроме insert into part
удалите id во всех 7 строках
https://panel.webprofi.space:8080/phpmyadmin
войдите в систему от имени пользователя root с помощью панели sql pw
откройте server_php
импортируйте таблицу
3 Installing the webserver
Войдите в систему от имени пользователя root или запустите
su -
чтобы стать пользователем root на вашем сервере, прежде чем продолжить. ВАЖНО: вы должны использовать «su -«, а не просто «su», иначе Debian неправильно установит вашу переменную PATH.
Для ubuntu используем команду
sudo -i
3.1 Configure the hostname
Именем хоста вашего сервера должен быть поддомен, например «web01.example.com». Не используйте доменное имя без части поддомена, например «example.com», в качестве имени хоста, так как это может вызвать проблемы с настройкой почты в дальнейшем. Во-первых, вы должны проверить имя хоста в файле /etc/hosts и изменить его при необходимости. Строка должна быть такой: «IP-адрес — пространство — полное имя хоста, включая. домен — пространство — часть поддомена». Для нашего имени хоста web01.example.com , файл должен выглядеть следующим образом:
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
# This line should be changed on every node to the correct servername:
127.0.1.1 web01.example.com web01
# These lines are the same on every node:
10.20.64.12 panel.example.com panel
10.20.64.13 web01.example.com web01
10.20.64.14 mx1.example.com mx1
10.20.64.15 mx2.example.com mx2
10.20.64.16 ns1.example.com ns1
10.20.64.17 ns2.example.com ns2
10.20.64.18 webmail.example.com webmail
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Как вы можете видеть, мы также добавили имена хостов других наших серверов, чтобы позже они могли обмениваться данными по внутренней сети.
Затем отредактируйте файл /etc/hostname:
nano /etc/hostname
В нашем случае он должен содержать только часть поддомена:
web01
Наконец, перезагрузите сервер, чтобы применить изменения:
reboot
Снова войдите в систему и проверьте правильность имени хоста с помощью следующих команд:
hostname
hostname -f
Результат должен быть таким:
root@web01:~$ hostname
web01
root@web01:~$ hostname -f
web01.example.com
3.2 Установка ISPConfig
Теперь мы можем запустить автоустановщик для всех пакетов и ISPConfig:
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --interactive
Через некоторое время вы увидите:
WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type ‘yes’ if you really want to continue:
Answer «yes» and hit enter. The installer will now start.
предупреждение! Этот скрипт полностью перенастроит ваш сервер!
Его следует запускать на только что установленном сервере, и вся текущая настройка, которую вы выполнили, скорее всего, будет потеряна!
Введите «yes», если вы действительно хотите продолжить:
Ответьте «yes» и нажмите enter. Теперь запустится программа установки.
[INFO] Installing ISPConfig3.
[INFO] Your MySQL root password is: kl3994aMsfkkeE
———————————————————————————
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `—.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `—. \ __/ | | / _ \| ‘_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
———————————————————————————
Initial configuration
Operating System: Debian 10.0 (Buster) or compatible
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with <ENTER>.
Tap in "quit" (without the quotes) to stop the installer.
Select language (en,de) [en]: <— Нажмите Enter
Installation mode (standard,expert) [standard]: <— expert
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [web01.example.com]: <— Нажмите Enter
MySQL server hostname [localhost]: <— Нажмите Enter
MySQL server port [3306]: <— Нажмите Enter
MySQL root username [root]: <— Нажмите Enter
MySQL root password []: <— Enter the MySQL password the script just gave you
MySQL database to create [dbispconfig]: <— Нажмите Enter
MySQL charset [utf8]: <— Нажмите Enter
Следующие два вопроса касаются пользователя и пароля внутренней базы данных ISPConfig.
Рекомендуется использовать в качестве имени пользователя ispconfig по умолчанию и случайный пароль.
Если вы используете другой пароль, используйте в качестве пароля только цифры и символы.
ISPConfig mysql database username [ispconfig]: <— Нажмите Enter
ISPConfig mysql database password [aakl203920459853sak20284204]: <— Нажмите Enter
Shall this server join an existing ISPConfig multiserver setup (y,n) [n]: <— y
MySQL master server hostname []: <— panel.example.com
MySQL master server port []: <— Нажмите Enter
MySQL master server root username [root]: <— Нажмите Enter
MySQL master server root password []: <— пароль, который вы предоставили внешнему пользователю root на главном сервере.
MySQL master server database name [dbispconfig]: <— Нажмите Enter
Adding ISPConfig server record to database.
Configure Mail (y,n) [y]: <— n
Configuring Jailkit
Configuring Pureftpd
Configure DNS Server (y,n) [y]: <— n
he Web Server option has to be enabled when you want run a web server or when this node shall host the ISPConfig interface.
Configure Web Server (y,n) [y]: <— Нажмите Enter
Configuring Apache
Configuring vlogger
[WARN] autodetect for OpenVZ failed
Force configure OpenVZ (y,n) [n]: <— Нажмите Enter
Skipping OpenVZ
Configure Firewall Server (y,n) [y]: <— Нажмите Enter
Configuring Ubuntu Firewall
[WARN] autodetect for Metronome XMPP Server failed
Force configure Metronome XMPP Server (y,n) [n]: <— Нажмите Enter
Skipping Metronome XMPP Server
Configuring Fail2ban
Install ISPConfig Web Interface (y,n) [n]: <— Нажмите Enter
Do you want to create SSL certs for your server? (y,n) [y]: <— Нажмите Enter
Checking / creating certificate for web01.example.com
Using certificate path /etc/letsencrypt/live/web01.example.com
Using apache for certificate validation
Symlink ISPConfig SSL certs to Postfix? (y,n) [y]: <— Нажмите Enter
Symlink ISPConfig SSL certs to Pure-FTPd? Creating dhparam file may take some time. (y,n) [y]: <— Нажмите Enter
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
………………….+…………………………………….+……………
Configuring Apps vhost
Configuring DBServer
Installing ISPConfig crontab
Detect IP addresses
Restarting services …
Installation completed.
[INFO] Adding php versions to ISPConfig.
[INFO] Checking all services are running.
[INFO] mysql: OK
[INFO] clamav-daemon: OK
[INFO] postfix: OK
[INFO] bind9: OK
[INFO] pureftpd: OK
[INFO] apache2: OK
[INFO] Installation ready.
[INFO] Your MySQL root password is: kl3994aMsfkkeE
[INFO] Warning: Please delete the log files in /tmp/ispconfig-ai/var/log/setup-* once you don’t need them anymore because they contain your passwords!
Note: if you want to redirect example.com/webmail to webmail.example.com, follow this guide.
Чтобы установить этот сервер в качестве сервера по умолчанию для ваших веб-сайтов и баз данных, войдите в ISPConfig и перейдите в System -> Main config. Выберите web01.example.com в качестве сервера по умолчанию.
3.3 Настройка брандмауэра
Последнее, что нужно сделать, это настроить наш брандмауэр.
Войдите в пользовательский интерфейс ISPConfig и перейдите в меню Система -> Брандмауэр. Затем нажмите «Добавить новую запись брандмауэра».
Убедитесь, что вы выбрали правильный сервер. Для нашего веб-сервера мы должны открыть следующие порты:
TCP:
20,21,22,80,443
Никакие UDP-порты не должны открываться через пользовательский интерфейс.
Мы также собираемся открыть порт 3306, который используется для MySQL, но только из нашей локальной сети по соображениям безопасности. Чтобы сделать это, запустите следующую команду из командной строки после распространения изменений на панели ISPConfig (когда красная точка исчезнет).:
ufw allow from 10.0.64.0/24 to any port 3306 proto tcp
Теперь ваш веб-сервер готов к использованию. На следующем шаге мы установим первый почтовый сервер.
No responses yet