Поиск по сайту:

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


На этой странице

  1. 1 Предварительное примечание
  2. 2. Установите сервер SSH (необязательно)
  3. 3. Установите текстовый редактор оболочки (необязательно)
  4. 4 Настройте имя хоста
  5. 5 Обновите установку Debian
  6. 6. Изменить оболочку по умолчанию
  7. 7 Синхронизация системных часов
  8. 8. Установите Postfix, Dovecot, MariaDB, rkhunter и Binutils.
  9. 9 Установите Amavisd-new, SpamAssassin и ClamAV
  10. 10 Установите веб-сервер Apache и PHP
  11. 11 Установите Lets Encrypt
  12. 12. Установите Mailman
  13. 13 Установите PureFTPd и Quota
  14. 14 Установите DNS-сервер BIND
  15. 15. Установите Webalizer, AWStats и GoAccess.
  16. 16. Установка джейлкита
  17. 17. Установите fail2ban и брандмауэр UFW.
  18. 18. Установите инструмент администрирования базы данных PHPMyAdmin.
  19. 19. Установите RoundCube Webmail (необязательно)
  20. 20 Загрузите ISPConfig 3
    1. 20 Загрузите стабильную версию ISPConfig (рекомендуется)

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

    В этом руководстве показано, как подготовить сервер Debian 10 (с Apache2, BIND, Dovecot) для установки ISPConfig 3.2 и как установить ISPConfig. Панель управления веб-хостингом ISPConfig 3 позволяет настроить следующие службы через веб-браузер: веб-сервер Apache или nginx, почтовый сервер Postfix, сервер Courier или Dovecot IMAP/POP3, сервер имен 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
    
    # 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

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

    server1

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

    systemctl reboot

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

    hostname
    hostname -f

    Вывод должен быть таким:

    :/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

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

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

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

    Рекомендуется синхронизировать системные часы с сервером NTP (сетевой протокол времени) через Интернет. Просто запустите

    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

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

    Change the root password? [Y/n] <-- y
    New password: <-- Enter a new MariaDB root password
    Re-enter new password: <-- Repeat the MariaDB root password
    Remove anonymous users? [Y/n] <-- y
    Disallow root login remotely? [Y/n] <-- y
    Remove test database and access to it? [Y/n] <-- y
    Reload privilege tables now? [Y/n] <-- y

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

    nano /etc/postfix/master.cf

    Раскомментируйте разделы отправки и smtps, как показано ниже, и добавьте строки там, где это необходимо, чтобы этот раздел файла master.cf выглядел точно так же, как приведенный ниже. ВАЖНО: Удалите # перед строками, которые начинаются с smtps и submit, а не только из строк -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 прослушивал все интерфейсы, а не только локальный. Поэтому мы редактируем /etc/mysql/mariadb.conf.d/50-server.cnf и закомментируем строку bind-address=127.0.0.1, добавив перед ней #.

    nano /etc/mysql/mariadb.conf.d/50-server.cnf
    [...]
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    #bind-address           = 127.0.0.1

    [...]

    Установите метод аутентификации по паролю в MariaDB на собственный, чтобы мы могли использовать 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\.

    # Automatically generated for Debian scripts. DO NOT TOUCH!
    [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

    Чтобы предотвратить ошибку Ошибка при приеме: слишком много открытых файлов, теперь мы установим более высокие ограничения на количество открытых файлов для 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

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

    :/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, action и 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, а не httpproxy.conf, поэтому в имени файла отсутствует буква r.

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

    Вставьте в файл следующее содержимое:

    <IfModule mod_headers.c>
        RequestHeader unset Proxy early
    </IfModule>

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

    a2enconf httpoxy
    systemctl restart apache2

    11 Установите Lets Encrypt

    ISPConfig теперь использует acme.sh в качестве клиента Lets Encrypt. Установите acme.sh с помощью следующей команды:

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

    12 Установить почтальона

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

    apt-get install mailman

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

    Languages to support: <-- en (English)
    Missing site list <-- Ok

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

    newlist mailman
    :~#

    После этого откройте /etc/aliases...

    nano /etc/aliases

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

    [...]
    ## mailman mailing list
    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

    и перезапустите Постфикс:

    systemctl restart postfix

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

    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

    ... и убедитесь, что режим запуска установлен на автономный и установите 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]: <-- Enter your Country Name (e.g., "DE").
    State or Province Name (full name) [Some-State]: <-- Enter your State or Province Name.
    Locality Name (eg, city) []: <-- Enter your City.
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter your Organization Name (e.g., the name of your company).
    Organizational Unit Name (eg, section) []: <-- Enter your Organizational Unit Name (e.g. "IT Department").
    Common Name (eg, YOUR name) []: <-- Enter the Fully Qualified Domain Name of the system (e.g. "server1.example.com").
    Email Address []: <-- Enter your 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: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point> <type> <options> <dump> <pass>
    # / was on /dev/sda1 during installation
    UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
    # swap was on /dev/sda5 during installation
    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

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

    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
    
    # Generate static reports:
    #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 нужен, только если вы хотите 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 Firewall

    Это необязательно, но рекомендуется, поскольку монитор 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-get install ufw

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

    Начиная с Debian 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

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

    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'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

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

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

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

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

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

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

    # phpMyAdmin default Apache configuration

    Alias /phpmyadmin /usr/share/phpmyadmin

    <Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php

    <IfModule mod_php7.c>
    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 .
    </IfModule>

    </Directory>

    # Authorize for setup
    <Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authn_file.c>
    AuthType Basic
    AuthName "phpMyAdmin Setup"
    AuthUserFile /etc/phpmyadmin/htpasswd.setup
    </IfModule>
    Require valid-user
    </Directory>

    # Disallow web access to directories that don't need it
    <Directory /usr/share/phpmyadmin/libraries>
    Order Deny,Allow
    Deny from All
    </Directory>
    <Directory /usr/share/phpmyadmin/setup/lib>
    Order Deny,Allow
    Deny from All
    </Directory>

    Активируйте конфигурацию и перезапустите 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

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

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

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

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

    /* User used to manipulate with storage */
    $cfg['Servers'][$i]['controlhost'] = 'localhost';
    $cfg['Servers'][$i]['controlport'] = '';
    $cfg['Servers'][$i]['controluser'] = 'pma';
    $cfg['Servers'][$i]['controlpass'] = 'mypassword';

    /* Storage database and tables */
    $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 (необязательно)

    В этой главе мы установим клиент веб-почты 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

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

    Configure database for roundcube with dbconfig.common? <-- yes
    MySQL application password for roundcube: <-- press 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 следующим образом:

    Существует несколько плагинов для интеграции 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

    --------------------------------------------------------------------------------
    _____ ___________ _____ __ _ ____
    |_ _/ ___| ___ \ / __ \ / _(_) /__ \
    | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
    | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
    _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
    \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
    __/ |
    |___/
    --------------------------------------------------------------------------------

    >> 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]: <-- Hit Enter
    Installation mode (standard,expert) [standard]: <-- Hit Enter
    Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <-- Hit Enter
    MySQL server hostname [localhost]: <-- Hit Enter
    MySQL server port [3306]: <-- Hit Enter
    MySQL root username [root]: <-- Hit Enter
    MySQL root password []: <-- Enter your MySQL root password
    MySQL database to create [dbispconfig]: <-- Hit Enter
    MySQL charset [utf8]: <-- Hit Enter
    Configuring Postgrey
    Configuring Postfix
    Generating a 4096 bit RSA private key
    .......................................................................++
    ........................................................................................................................................++
    writing new private key to 'smtpd.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
    State or Province Name (full name) [Some-State]: <-- Enter the name of the  state
    Locality Name (eg, city) []: <-- Enter your city
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
    Organizational Unit Name (eg, section) []: <-- Hit Enter
    Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case: server1.example.com
    Email Address []: <-- Hit Enter
    Configuring Mailman
    Configuring Dovecot
    Configuring Spamassassin
    Configuring Amavisd
    Configuring Getmail
    Configuring BIND
    Configuring Jailkit
    Configuring Pureftpd
    Configuring Apache
    Configuring vlogger
    [INFO] service Metronome XMPP Server not detected
    Configuring Ubuntu Firewall
    Configuring Fail2ban
    [INFO] service OpenVZ not detected
    Configuring Apps vhost
    Installing ISPConfig
    ISPConfig Port [8080]:
    Admin password [admin]:
    Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- Hit Enter
    Generating RSA private key, 4096 bit long modulus
    .......................++
    ................................................................................................................................++
    e is 65537 (0x10001)
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
    State or Province Name (full name) [Some-State]: <-- Enter the name of the  state
    Locality Name (eg, city) []: <-- Enter your city
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
    Organizational Unit Name (eg, section) []: <-- Hit Enter
    Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case: server1.example.com
    Email Address []: <-- Hit Enter
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []: <-- Hit Enter
    An optional company name []: <-- Hit Enter
    writing RSA key

    Configuring DBServer
    Installing ISPConfig crontab
    no crontab for root
    no crontab for getmail
    Detect IP addresses
    Restarting services ...
    Installation completed.

    Программа установки автоматически настраивает все базовые службы, поэтому ручная настройка не требуется.

    После этого вы можете получить доступ к 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/оболочке

    Имя пользователя:admin
    Пароль: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/