Серверы · 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/hosts127.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.com5 Обновите вашу установку Debian
Сначала убедитесь, что ваш /etc/apt/sources.list содержит репозиторий buster/updates (это гарантирует, что вы всегда получаете последние обновления безопасности), и что репозитории contrib и non-free включены, так как некоторые необходимые пакеты отсутствуют в основном репозитории.
nano /etc/apt/sources.listdeb 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/mysqld9 Установите 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 spamassassin10 Установите веб-сервер 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 apache211 Установите Let’s Encrypt
ISPConfig теперь использует acme.sh в качестве клиента Let’s Encrypt. Установите acme.sh, используя следующую команду:
curl https://get.acme.sh | sh -s12 Установите Mailman
ISPConfig позволяет вам управлять (создавать/изменять/удалять) почтовыми списками Mailman. Если вы хотите воспользоваться этой функцией, установите Mailman следующим образом:
apt-get install mailmanВыберите хотя бы один язык, например:
Языки для поддержки: <-- en (английский)
Отсутствующий список сайтов <-- ОкПрежде чем мы сможем запустить Mailman, необходимо создать первый почтовый список под названием mailman:
newlist mailmanroot@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 mailman13 Установите 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.pemCountry 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 -avug14 Установите 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 goaccess16 Установите Jailkit
Jailkit нужен только в том случае, если вы хотите chroot пользователей SSH. Его можно установить следующим образом:
apt-get install build-essential autoconf automake libtool flex bison debhelper binutilscd /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 ufw18 Установите инструмент администрирования баз данных 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 (вы должны изменить пароль по умолчанию после первого входа):


Система теперь готова к использованию.
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 Ссылки
- Debian: http://www.debian.org/
- ISPConfig: http://www.ispconfig.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.