Серверы · 21 min read · Nov 03, 2025

Идеальный сервер - Debian 10 (Buster) с Apache, BIND, Dovecot, PureFTPD и ISPConfig 3.2

Этот учебник показывает, как подготовить сервер Debian 10 (с Apache2, BIND, Dovecot) для установки ISPConfig 3.2 и как установить ISPConfig. Веб-хостинг панель управления ISPConfig 3 позволяет вам настраивать следующие службы через веб-браузер: веб-сервер Apache или nginx, почтовый сервер Postfix, IMAP/POP3 сервер Courier или Dovecot, MySQL, BIND или MyDNS сервер имен, PureFTPd, SpamAssassin, ClamAV и многие другие. Эта настройка охватывает Apache (вместо nginx), BIND и Dovecot.

1 Предварительная заметка

В этом учебнике я буду использовать имя хоста server1.example.com с IP-адресом 192.168.0.100 и шлюзом 192.168.0.1. Эти настройки могут отличаться у вас, поэтому вам нужно заменить их, где это необходимо. Прежде чем продолжить, вам необходимо иметь минимальную установку Debian 10. Это может быть минимальный образ Debian от вашего хостинг-провайдера или вы можете использовать учебник по минимальному серверу Debian для настройки базовой системы.

Все команды ниже выполняются от имени пользователя root. Либо войдите как пользователь root напрямую, либо войдите как ваш обычный пользователь, а затем используйте команду

su -

чтобы стать пользователем root на вашем сервере перед тем, как продолжить. ВАЖНО: Вы должны использовать ‘su -‘, а не просто ‘su’, иначе ваша переменная PATH будет установлена неправильно Debian.

2 Установите SSH-сервер (по желанию)

Если вы не установили OpenSSH сервер во время установки системы, вы можете сделать это сейчас:

apt-get install ssh openssh-server

С этого момента вы можете использовать SSH-клиент, такой как PuTTY, и подключаться с вашего рабочего места к вашему серверу Debian 9 и следовать оставшимся шагам из этого учебника.

3 Установите текстовый редактор оболочки (по желанию)

Мы будем использовать текстовый редактор nano в этом учебнике. Некоторые пользователи предпочитают классический редактор vi, поэтому мы установим оба редактора здесь. Программа vi по умолчанию имеет странное поведение на Debian и Ubuntu; чтобы исправить это, мы устанавливаем vim-nox:

apt-get install nano vim-nox

Если vi - ваш любимый редактор, замените nano на vi в следующих командах для редактирования файлов.

4 Настройте имя хоста

Имя хоста вашего сервера должно быть поддоменом, таким как “server1.example.com”. Не используйте имя домена без части поддомена, такое как “example.com”, в качестве имени хоста, так как это вызовет проблемы позже с вашей почтовой настройкой. Сначала вы должны проверить имя хоста в /etc/hosts и изменить его при необходимости. Строка должна выглядеть так: “IP-адрес - пробел - полное имя хоста, включая домен - пробел - часть поддомена”. Для нашего имени хоста server1.example.com файл должен выглядеть так:

nano /etc/hosts
127.0.0.1       localhost.localdomain   localhost
192.168.0.100   server1.example.com     server1

# Следующие строки желательны для хостов, поддерживающих IPv6
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Затем отредактируйте файл /etc/hostname:

nano /etc/hostname

Он должен содержать только часть поддомена, в нашем случае:

server1

Наконец, перезагрузите сервер, чтобы применить изменения:

systemctl reboot

Войдите снова и проверьте, правильно ли теперь имя хоста с помощью этих команд:

hostname  
hostname -f

Вывод должен выглядеть так:

root@server1:/tmp# hostname  
server1  
root@server1:/tmp# hostname -f  
server1.example.com

5 Обновите вашу установку Debian

Сначала убедитесь, что ваш /etc/apt/sources.list содержит репозиторий buster/updates (это гарантирует, что вы всегда получаете последние обновления безопасности), и что репозитории contrib и non-free включены, так как некоторые необходимые пакеты отсутствуют в основном репозитории.

nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ buster main contrib non-free  
deb-src http://deb.debian.org/debian/ buster main contrib non-free  
  
deb http://security.debian.org/debian-security buster/updates main contrib non-free  
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

Запустите:

apt-get update

Чтобы обновить базу данных пакетов apt

apt-get upgrade

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

6. Измените оболочку по умолчанию

/bin/sh является символической ссылкой на /bin/dash, однако нам нужна /bin/bash, а не /bin/dash. Поэтому мы делаем это:

dpkg-reconfigure dash

Использовать dash в качестве оболочки по умолчанию системы (/bin/sh)? <– Нет

Если вы этого не сделаете, установка ISPConfig завершится неудачей.

7 Синхронизируйте системные часы

Хорошей идеей является синхронизация системных часов с сервером NTP ( network time protocol) через Интернет. Просто выполните

apt-get -y install ntp

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

8 Установите Postfix, Dovecot, MariaDB, rkhunter и Binutils

Мы можем установить Postfix, Dovecot, MariaDB как альтернативу MySQL, rkhunter и Binutils одной командой:

apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo curl

Вам будут заданы следующие вопросы:

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

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

mysql_secure_installation

Ответьте на вопросы следующим образом:

Изменить пароль root? [Y/n] <-- y  
Новый пароль: <-- Введите новый пароль root для MariaDB  
Повторите новый пароль: <-- Повторите пароль root для MariaDB  
Удалить анонимных пользователей? [Y/n] <-- y  
Запретить удаленный вход root? [Y/n] <-- y  
Удалить тестовую базу данных и доступ к ней? [Y/n] <-- y  
Перезагрузить таблицы привилегий сейчас? [Y/n] <-- y

Далее откройте порты TLS/SSL и отправки в Postfix:

nano /etc/postfix/master.cf

Раскомментируйте разделы отправки и smtps следующим образом и добавьте строки, где это необходимо, чтобы этот раздел файла master.cf выглядел точно так же, как приведенный ниже. ВАЖНО: Удалите # перед строками, которые начинаются с smtps и отправки, а не только перед строками -o после этих строк!

[...]
submission inet n - - - - smtpd  
 -o syslog_name=postfix/submission  
 -o smtpd_tls_security_level=encrypt  
 -o smtpd_sasl_auth_enable=yes  
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject  
# -o smtpd_reject_unlisted_recipient=no  
# -o smtpd_client_restrictions=$mua_client_restrictions  
# -o smtpd_helo_restrictions=$mua_helo_restrictions  
# -o smtpd_sender_restrictions=$mua_sender_restrictions  
# -o smtpd_recipient_restrictions=  
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject  
# -o milter_macro_daemon_name=ORIGINATING  
smtps inet n - - - - smtpd  
 -o syslog_name=postfix/smtps  
 -o smtpd_tls_wrappermode=yes  
 -o smtpd_sasl_auth_enable=yes  
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject  
# -o smtpd_reject_unlisted_recipient=no  
# -o smtpd_client_restrictions=$mua_client_restrictions  
# -o smtpd_helo_restrictions=$mua_helo_restrictions  
# -o smtpd_sender_restrictions=$mua_sender_restrictions  
# -o smtpd_recipient_restrictions=  
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject  
# -o milter_macro_daemon_name=ORIGINATING
[...]

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

systemctl restart postfix

Мы хотим, чтобы MySQL слушал на всех интерфейсах, а не только на localhost. Поэтому мы редактируем /etc/mysql/mariadb.conf.d/50-server.cnf и закомментируем строку bind-address = 127.0.0.1, добавив # перед ней.

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

Установите метод аутентификации пароля в MariaDB на native, чтобы мы могли использовать PHPMyAdmin позже для подключения как пользователь root:

echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root

Отредактируйте файл /etc/mysql/debian.cnf и установите там пароль root для MYSQL / MariaDB дважды в строках, которые начинаются со слова password.

nano /etc/mysql/debian.cnf

Пароль root для MySQL, который нужно добавить, показан красным. В этом примере пароль - “howtoforge”.

# Автоматически сгенерировано для скриптов Debian. НЕ ТРОГАЙТЕ!  
[client]  
host = localhost  
user = root  
password = howtoforge  
socket = /var/run/mysqld/mysqld.sock  
[mysql_upgrade]  
host = localhost  
user = root  
password = howtoforge  
socket = /var/run/mysqld/mysqld.sock  
basedir = /usr

Чтобы предотвратить ошибку ‘ Ошибка в accept: Слишком много открытых файлов ‘, мы установим более высокие лимиты открытых файлов для MariaDB сейчас.

Откройте файл /etc/security/limits.conf с помощью редактора:

nano /etc/security/limits.conf

и добавьте эти строки в конец файла.

mysql soft nofile 65535  
mysql hard nofile 65535

Затем создайте новый каталог /etc/systemd/system/mysql.service.d/ с помощью команды mkdir.

mkdir -p /etc/systemd/system/mysql.service.d/

и добавьте новый файл внутри:

nano /etc/systemd/system/mysql.service.d/limits.conf

вставьте следующие строки в этот файл:

[Service]  
LimitNOFILE=infinity

Сохраните файл и закройте редактор nano.

Затем мы перезагрузим systemd и перезапустим MariaDB:

systemctl daemon-reload  
systemctl restart mariadb

Теперь проверьте, что сеть включена. Выполните

netstat -tap | grep mysql

Вывод должен выглядеть так:

root@server1:/home/administrator# netstat -tap | grep mysql  
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld

9 Установите Amavisd-new, SpamAssassin и ClamAV

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

apt-get install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip 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 libdbd-mysql-perl postgrey

Настройка ISPConfig 3 использует amavisd, который загружает библиотеку фильтра SpamAssassin внутренне, поэтому мы можем остановить SpamAssassin, чтобы освободить немного ОЗУ:

systemctl stop spamassassin  
systemctl disable spamassassin

10 Установите веб-сервер Apache и PHP

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

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu libapache2-reload-perl

Затем выполните следующую команду, чтобы включить модули Apache suexec, rewrite, ssl, actions и include (плюс dav, dav_fs и auth_digest, если вы хотите использовать WebDAV):

a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi alias

Чтобы убедиться, что сервер не может быть атакован через уязвимость HTTPOXY, мы отключим заголовок HTTP_PROXY в apache глобально, добавив конфигурационный файл /etc/apache2/conf-available/httpoxy.conf.

*Примечание: Уязвимость называется httpoxy (без ‘r’), и поэтому файл, в который мы добавляем конфигурацию для предотвращения этого, называется httpoxy.conf, а не httproxy.conf, так что в имени файла нет ‘r’.*

nano /etc/apache2/conf-available/httpoxy.conf

Вставьте следующий контент в файл:


    RequestHeader unset Proxy early

И включите модуль, выполнив:

a2enconf httpoxy  
systemctl restart apache2

11 Установите Let’s Encrypt

ISPConfig теперь использует acme.sh в качестве клиента Let’s Encrypt. Установите acme.sh, используя следующую команду:

curl https://get.acme.sh | sh -s

12 Установите Mailman

ISPConfig позволяет вам управлять (создавать/изменять/удалять) почтовыми списками Mailman. Если вы хотите воспользоваться этой функцией, установите Mailman следующим образом:

apt-get install mailman

Выберите хотя бы один язык, например:

Языки для поддержки: <-- en (английский)  
Отсутствующий список сайтов <-- Ок

Прежде чем мы сможем запустить Mailman, необходимо создать первый почтовый список под названием mailman:

newlist mailman
root@server1:~# newlist mailman  
Введите email человека, управляющего списком: <-- адрес электронной почты администратора, например [email protected]  
Первоначальный пароль mailman: <-- пароль администратора для списка mailman  
Чтобы завершить создание вашего почтового списка, вы должны отредактировать ваш /etc/aliases (или  
эквивалентный) файл, добавив следующие строки, и, возможно, запустив  
программу `newaliases`:  
  
## почтовый список mailman  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"  
  
Нажмите enter, чтобы уведомить владельца mailman... <-- ENTER  
  
root@server1:~#

Откройте /etc/aliases после этого…

nano /etc/aliases

… и добавьте следующие строки:

[...]  
## почтовый список mailman  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Запустите:

newaliases

и перезапустите Postfix:

systemctl restart postfix

Наконец, мы должны включить конфигурацию Apache для Mailman:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf

Это определяет псевдоним /cgi-bin/mailman/ для всех виртуальных хостов Apache, что означает, что вы можете получить доступ к интерфейсу администратора Mailman для списка по адресу http://server1.example.com/cgi-bin/mailman/admin/, а веб-страница для пользователей почтового списка может быть найдена по адресу http://server1.example.com/cgi-bin/mailman/listinfo/.

По адресу http://server1.example.com/pipermail вы можете найти архивы почтовых списков.

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

systemctl restart apache2

Затем запустите демон Mailman:

systemctl restart mailman

13 Установите PureFTPd и Quota

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

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

Создайте файл dhparam для pure-ftpd:

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

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

nano /etc/default/pure-ftpd-common

… и убедитесь, что режим запуска установлен на standalone и VIRTUALCHROOT=true:

[...]  
STANDALONE_OR_INETD=standalone  
[...]  
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) []: <-- Введите полное доменное имя системы (например, "server1.example.com").  
Email Address []: <-- Введите ваш адрес электронной почты.

Измените разрешения SSL-сертификата:

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

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

systemctl restart pure-ftpd-mysql

Отредактируйте /etc/fstab. Мой выглядит так (я добавил, usrjquota=quota.user, grpjquota=quota.group, jqfmt=vfsv0 к разделу с точкой монтирования /):

nano /etc/fstab
# /etc/fstab: статическая информация о файловой системе.  
#  
# Используйте 'blkid', чтобы напечатать универсальный уникальный идентификатор для  
# устройства; это может быть использовано с UUID= как более надежный способ наименования устройств,  
# который работает даже если диски добавляются и удаляются. См. fstab(5).  
#  
# <файловая система> <точка монтирования> <тип> <опции> <дамп> <передача>  
# / была на /dev/sda1 во время установки  
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# swap была на /dev/sda5 во время установки  
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 none swap sw 0 0  
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

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

mount -o remount /
quotacheck -avugm  
quotaon -avug

14 Установите DNS-сервер BIND

BIND можно установить следующим образом:

apt-get install bind9 dnsutils

Если ваш сервер является виртуальной машиной, то настоятельно рекомендуется установить демон haveged для получения более высокой энтропии для подписи DNSSEC. Вы можете установить haveged и на не виртуальных серверах, это не повредит.

apt-get install haveged

Объяснение по этой теме можно найти здесь.

15 Установите Webalizer, AWStats и GoAccess

Webalizer и AWStats можно установить следующим образом:

apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl

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

nano /etc/cron.d/awstats

… и закомментируйте все в этом файле:

#MAILTO=root

#*/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

Установка последней версии GoAccess напрямую из репозитория GoAccess:

echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list  
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -  
apt-get update  
apt-get install goaccess

16 Установите Jailkit

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

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp  
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz  
tar xvfz jailkit-2.20.tar.gz  
cd jailkit-2.20  
echo 5 > debian/compat  
./debian/rules binary

Теперь вы можете установить пакет Jailkit.deb следующим образом:

cd ..  
dpkg -i jailkit_2.20-1_*.deb  
rm -rf jailkit-2.20*

17 Установите fail2ban и брандмауэр UFW

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

apt-get install fail2ban

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

nano /etc/fail2ban/jail.local

И добавьте следующую конфигурацию в него.

[pure-ftpd]  
enabled = true  
port = ftp  
filter = pure-ftpd  
logpath = /var/log/syslog  
maxretry = 3  
  
[dovecot]  
enabled = true  
filter = dovecot  
logpath = /var/log/mail.log  
maxretry = 5  
  
[postfix-sasl]  
enabled = true  
port = smtp  
filter = postfix[mode=auth]  
logpath = /var/log/mail.log  
maxretry = 3

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

systemctl restart fail2ban

Чтобы установить брандмауэр UFW, выполните эту команду apt:

apt-get install ufw

18 Установите инструмент администрирования баз данных PHPMyAdmin

Поскольку PHPMyAdmin 10, PHPMyAdmin больше не доступен в виде пакета .deb. Поэтому мы установим его из исходников.

Создайте папки для PHPMyadmin:

mkdir /usr/share/phpmyadmin  
mkdir /etc/phpmyadmin  
mkdir -p /var/lib/phpmyadmin/tmp  
chown -R www-data:www-data /var/lib/phpmyadmin  
touch /etc/phpmyadmin/htpasswd.setup

Перейдите в каталог /tmp и загрузите исходники PHPMyAdmin:

cd /tmp  
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz

Распакуйте загруженный архив и переместите файлы в папку /usr/share/phpmyadmin и очистите каталог /tmp.

tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz  
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/  
rm phpMyAdmin-4.9.0.1-all-languages.tar.gz  
rm -rf phpMyAdmin-4.9.0.1-all-languages

Создайте новый конфигурационный файл для PHPMyaAdmin на основе предоставленного образца:

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Откройте конфигурационный файл с помощью редактора nano:

nano /usr/share/phpmyadmin/config.inc.php

Установите безопасный пароль (секрет blowfish), который должен быть длиной 32 символа:

$cfg['blowfish_secret'] = 'bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* ВЫ ДОЛЖНЫ ЗАПОЛНИТЬ ЭТО ДЛЯ COOKIE AUTH! */

Не используйте мой пример секретного слова blowfish, установите свой собственный!

Затем добавьте строку, чтобы установить каталог, который PHPMyAdmin будет использовать для хранения временных файлов:

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Далее мы создаем конфигурационный файл Apache для PHPMyAdmin, открыв новый файл в редакторе nano:

nano /etc/apache2/conf-available/phpmyadmin.conf

Вставьте следующую конфигурацию в файл и сохраните его.

# phpMyAdmin конфигурация по умолчанию Apache  
  
Alias /phpmyadmin /usr/share/phpmyadmin  
  
  
 Options FollowSymLinks  
 DirectoryIndex index.php  
  
   
 AddType application/x-httpd-php .php  
  
 php_flag magic_quotes_gpc Off  
 php_flag track_vars On  
 php_flag register_globals Off  
 php_value include_path .  
   
  
  
  
# Авторизация для настройки  
  
   
 AuthType Basic  
 AuthName "phpMyAdmin Setup"  
 AuthUserFile /etc/phpmyadmin/htpasswd.setup  
   
 Require valid-user  
  
  
# Запретить веб-доступ к каталогам, которые не нуждаются в этом  
  
 Order Deny,Allow  
 Deny from All  
  
  
 Order Deny,Allow  
 Deny from All  

Активируйте конфигурацию и перезапустите Apache.

a2enconf phpmyadmin  
systemctl restart apache2

На следующем шаге мы настроим хранилище конфигурации phpMyadmin (базу данных).

Войдите в MariaDB как пользователь root:

mysql -u root -p

В оболочке MariaDB создайте новую базу данных для PHPMyAdmin:

MariaDB [(none)]> CREATE DATABASE phpmyadmin;

Затем создайте нового пользователя:

MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'mypassword';

Замените слово mypassword на безопасный пароль по вашему выбору в приведенных выше и ниже командах, используйте один и тот же пароль дважды. Затем предоставьте пользователю доступ к этой базе данных и перезагрузите разрешения базы данных.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  
MariaDB [(none)]> FLUSH PRIVILEGES;  
MariaDB [(none)]> EXIT;

Наконец, загрузите SQL-таблицы в базу данных:

mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql

Введите пароль root MariaDB по запросу.

Все, что нам осталось сделать, это установить учетные данные пользователя phpmyadmin в конфигурационном файле. Снова откройте файл в редакторе nano:

nano /usr/share/phpmyadmin/config.inc.php

Прокрутите вниз, пока не увидите строки ниже, и отредактируйте их:

/* Пользователь, используемый для манипуляций с хранилищем */  
$cfg['Servers'][$i]['controlhost'] = 'localhost';  
$cfg['Servers'][$i]['controlport'] = '';  
$cfg['Servers'][$i]['controluser'] = 'pma';  
$cfg['Servers'][$i]['controlpass'] = 'mypassword';  
  
/* Хранилище базы данных и таблицы */  
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';  
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';  
$cfg['Servers'][$i]['relation'] = 'pma__relation';  
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';  
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';  
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';  
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';  
$cfg['Servers'][$i]['history'] = 'pma__history';  
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';  
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';  
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';  
$cfg['Servers'][$i]['recent'] = 'pma__recent';  
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';  
$cfg['Servers'][$i]['users'] = 'pma__users';  
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';  
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';  
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';  
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';  
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';  
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Я выделил строки красным, которые я отредактировал. Замените mypassword на пароль, который вы выбрали для пользователя phpmyadmin. Обратите внимание, что // перед строками также были удалены!

19 Установите RoundCube Webmail (по желанию)

В этой главе мы установим веб-клиент RoundCube. Сначала мы должны вручную создать базу данных для Roundcube, так как в настоящее время есть проблема в установщике RoundCube Debian, которая вызывает его сбой при автоматическом создании базы данных. Выполните эту команду, чтобы создать базу данных:

echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnf

Затем установите RoundCube с помощью этой команды:

apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins

Установщик задаст следующие вопросы:

Настроить базу данных для roundcube с dbconfig.common? <-- да  
Пароль приложения MySQL для roundcube: <-- нажмите enter

Затем отредактируйте файл RoundCube /etc/roundcube/config.inc.php и настройте несколько параметров:

nano /etc/roundcube/config.inc.php

Установите default_host на localhost и smtp_server.

$config['default_host'] = 'localhost';  
$config['smtp_server'] = 'localhost';  
$config['smtp_port']  = 25;

Затем отредактируйте конфигурационный файл Apache RoundCube /etc/apache2/conf-enabled/roundcube.conf:

nano /etc/apache2/conf-enabled/roundcube.conf

И добавьте строку псевдонима для псевдонима apache /webmail и одну для /roundcube, вы можете добавить строку прямо в начале файла. ПРИМЕЧАНИЕ: Не используйте /mail в качестве псевдонима, иначе модуль электронной почты ispconfig перестанет работать!

Alias /roundcube /var/lib/roundcube  
Alias /webmail /var/lib/roundcube

Затем перезагрузите Apache:

systemctl reload apache2

Теперь вы можете получить доступ к RoundCube следующим образом:

http://192.168.0.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (после установки ISPConfig, см. следующую главу)

Существуют некоторые плагины для интеграции RoundCube Webmail с ISPConfig, ознакомьтесь с инструкциями по установке плагина ISPConfig RoundCube.

20 Загрузите ISPConfig 3

20 Загрузите стабильный релиз ISPConfig (рекомендуется)

Чтобы установить 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/

21 Установите ISPConfig

Следующий шаг - запустить установщик ISPConfig.

php -q install.php

Это запустит установщик ISPConfig 3. Установщик настроит все службы, такие как Postfix, Dovecot и т.д. для вас. Ручная настройка, как это требовалось для ISPConfig 2 (идеальные руководства по настройке), не требуется.

# php -q install.php
  
--------------------------------------------------------------------------------  
_____ ___________ _____ __ _ ____  
|_ _/ ___| ___ \ / __ \ / _(_) /__ \  
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /  
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |  
_| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \  
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/  
__/ |  
|___/  
--------------------------------------------------------------------------------
  
>> Начальная конфигурация
Операционная система: Debian 10.0 (Buster) или совместимая
Следующие будут несколько вопросов для первичной конфигурации, поэтому будьте осторожны.  
Значения по умолчанию находятся в [скобках] и могут быть приняты с .  
Введите "quit" (без кавычек), чтобы остановить установщик.
  
Выберите язык (en,de) [en]: <-- Нажмите Enter
Режим установки (стандартный, эксперт) [стандартный]: <-- Нажмите Enter
Полное квалифицированное имя хоста (FQDN) сервера, например server1.domain.tld [server1.example.com]: <-- Нажмите Enter
Имя хоста MySQL [localhost]: <-- Нажмите Enter
Порт MySQL [3306]: <-- Нажмите Enter
Имя пользователя root MySQL [root]: <-- Нажмите Enter
Пароль root MySQL []: <-- Введите ваш пароль root MySQL
База данных MySQL для создания [dbispconfig]: <-- Нажмите Enter
Кодировка MySQL [utf8]: <-- Нажмите Enter
Настройка Postgrey  
Настройка Postfix  
Генерация 4096-битного RSA закрытого ключа  
.......................................................................++  
........................................................................................................................................++  
запись нового закрытого ключа в 'smtpd.key'  
-----  
Вам будет предложено ввести информацию, которая будет включена  
в ваш запрос сертификата.  
То, что вы собираетесь ввести, называется Уникальным именем или DN.  
Существует довольно много полей, но вы можете оставить некоторые пустыми  
Для некоторых полей будет значение по умолчанию,  
Если вы введете '.', поле будет оставлено пустым.  
-----  
Код страны (2 буквы) [AU]: <-- Введите 2-буквенный код страны  
Название штата или провинции (полное название) [Some-State]: <-- Введите название  штата  
Название населенного пункта (например, город) []: <-- Введите ваш город  
Название организации (например, компания) [Internet Widgits Pty Ltd]: <-- Введите название вашей компании или нажмите enter  
Название организационного подразделения (например, раздел) []: <-- Нажмите Enter  
Общее имя (например, FQDN сервера или ВАШЕ имя) []: <-- Введите имя хоста сервера, в моем случае: server1.example.com  
Адрес электронной почты []: <-- Нажмите Enter  
Настройка Mailman  
Настройка Dovecot  
Настройка Spamassassin  
Настройка Amavisd  
Настройка Getmail  
Настройка BIND  
Настройка Jailkit  
Настройка Pureftpd  
Настройка Apache  
Настройка vlogger  
[INFO] служба Metronome XMPP Server не обнаружена  
Настройка брандмауэра Ubuntu  
Настройка Fail2ban  
[INFO] служба OpenVZ не обнаружена  
Настройка виртуального хоста приложений  
Установка ISPConfig  
Порт ISPConfig [8080]:
Пароль администратора [admin]:
Хотите ли вы безопасное (SSL) соединение с веб-интерфейсом ISPConfig (y,n) [y]: <-- Нажмите Enter
Генерация RSA закрытого ключа, длиной 4096 бит  
.......................++  
................................................................................................................................++  
Вы собираетесь ввести информацию, которая будет включена  
в ваш запрос сертификата.  
То, что вы собираетесь ввести, называется Уникальным именем или DN.  
Существует довольно много полей, но вы можете оставить некоторые пустыми  
Для некоторых полей будет значение по умолчанию,  
Если вы введете '.', поле будет оставлено пустым.  
-----  
Код страны (2 буквы) [AU]: <-- Введите 2-буквенный код страны  
Название штата или провинции (полное название) [Some-State]: <-- Введите название  штата  
Название населенного пункта (например, город) []: <-- Введите ваш город  
Название организации (например, компания) [Internet Widgits Pty Ltd]: <-- Введите название вашей компании или нажмите enter  
Название организационного подразделения (например, раздел) []: <-- Нажмите Enter  
Общее имя (например, FQDN сервера или ВАШЕ имя) []: <-- Введите имя хоста сервера, в моем случае: server1.example.com  
Адрес электронной почты []: <-- Нажмите Enter
Пожалуйста, введите следующие 'дополнительные' атрибуты  
для отправки с вашим запросом сертификата  
Пароль для вызова []: <-- Нажмите Enter  
Необязательное название компании []: <-- Нажмите Enter  
запись RSA ключа
  
Настройка DBServer  
Установка crontab ISPConfig  
нет crontab для root  
нет crontab для getmail  
Обнаружение IP-адресов  
Перезапуск служб ...  
Установка завершена.

Установщик автоматически настраивает все подлежащие службы, поэтому ручная настройка не требуется.

После этого вы можете получить доступ к ISPConfig 3 по адресу http(s)://server1.example.com:8080/ или http(s)://192.168.0.100:8080/ (http или https зависит от того, что вы выбрали во время установки). Войдите с именем пользователя admin и паролем admin (вы должны изменить пароль по умолчанию после первого входа):

Вход в ISPConfig на Debian 10

Панель управления ISPConfig на Debian 10

Система теперь готова к использованию.

21.1 Руководство ISPConfig 3

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

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

22 Ссылка на загрузку образа виртуальной машины этого учебника

Этот учебник доступен в виде готового к использованию образа виртуальной машины в формате ovf/ova, который совместим с VMWare и Virtualbox. Образ виртуальной машины использует следующие данные для входа:

SSH / Shell Вход

Имя пользователя: administrator
Пароль: howtoforge

Имя пользователя: root
Пароль: howtoforge

Вход в ISPConfig

Имя пользователя: admin
Пароль: admin

Вход в MySQL

Имя пользователя: root
Пароль: howtoforge

IP виртуальной машины - 192.168.0.100, его можно изменить в файле /etc/network/interfaces. Пожалуйста, измените все вышеперечисленные пароли для обеспечения безопасности виртуальной машины.

23 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.