Серверное ПО · 20 min read · Sep 11, 2025

Идеальный сервер - Ubuntu 20.04 с Apache, PHP, MariaDB, PureFTPD, BIND, Postfix, Dovecot и ISPConfig 3.2

Этот учебник показывает установку веб-хостинг-сервера Ubuntu 20.04 (Focal Fossa) с Apache 2.4, Postfix, Dovecot, Bind и PureFTPD для подготовки его к установке ISPConfig 3.2. Полученная система будет предоставлять веб-сервер, почтовый сервер, сервер рассылок, DNS и FTP-сервер.

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

Существует два способа установить ISPConfig. Вы можете либо использовать инструкции по ручной установке ниже, либо вы можете использовать автоустановщик ISPConfig, который автоматически устанавливает ISPConfig за несколько минут. Мы рекомендуем использовать автоустановщик, который также поддерживает Ubuntu 22.04. См. автоматическую установку ISPConfig для инструкций по автоматической установке ISPConfig.

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

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

Команды в этом учебнике должны выполняться с правами root. Чтобы избежать добавления sudo перед каждой командой, вам нужно стать пользователем root, выполнив:

sudo -s

прежде чем продолжить.

2. Редактирование /etc/apt/sources.list и обновление вашей установки Linux

Отредактируйте /etc/apt/sources.list. Закомментируйте или удалите установочный CD из файла и убедитесь, что репозитории universe и multiverse включены. После этого он должен выглядеть так:

nano /etc/apt/sources.list
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu focal main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu focal-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu focal universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal universe
deb http://de.archive.ubuntu.com/ubuntu focal-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu focal multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal multiverse
deb http://de.archive.ubuntu.com/ubuntu focal-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner

deb http://de.archive.ubuntu.com/ubuntu focal-security main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security main restricted
deb http://de.archive.ubuntu.com/ubuntu focal-security universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security universe
deb http://de.archive.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security multiverse

Затем выполните

apt-get update

для обновления базы данных пакетов apt и

apt-get upgrade

для установки последних обновлений (если они есть). Если вы видите, что новая версия ядра устанавливается в рамках обновлений, вам следует перезагрузить систему после этого:

reboot

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

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

dpkg-reconfigure dash

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

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

4. Отключите AppArmor

AppArmor - это расширение безопасности (аналог SELinux), которое должно обеспечивать расширенную безопасность. На мой взгляд, вам это не нужно для настройки безопасной системы, и оно обычно вызывает больше проблем, чем преимуществ (подумайте об этом после того, как вы провели неделю, устраняя неполадки, потому что какая-то служба не работала так, как ожидалось, и затем вы обнаруживаете, что все было в порядке, только AppArmor вызывал проблему). Поэтому я отключаю его (это обязательно, если вы хотите установить ISPConfig позже).

Мы можем отключить его следующим образом:

service apparmor stop  
update-rc.d -f apparmor remove   
apt-get remove apparmor apparmor-utils

5. Синхронизация системных часов

Хорошей идеей является синхронизация системных часов с сервером NTP ( n etwork t ime p rotocol) через Интернет, когда вы запускаете физический сервер. Если вы запускаете виртуальный сервер, то вы можете пропустить этот шаг. Просто выполните

apt-get -y install ntp

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

6. Установка Postfix, Dovecot, MariaDB, rkhunter и binutils

Для установки postfix нам нужно убедиться, что sendmail не установлен и не работает. Чтобы остановить и удалить sendmail, выполните эту команду:

service sendmail stop; update-rc.d -f sendmail remove

Сообщение об ошибке:

Failed to stop sendmail.service: Unit sendmail.service not loaded.

Это нормально, это просто означает, что sendmail не был установлен, поэтому нечего было удалять.

Теперь мы можем установить 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 sudo patch

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

General type of mail configuration: <-- Internet Site  
System mail name: <-- server1.example.com

Важно, чтобы вы использовали поддомен в качестве “имени системной почты”, например server1.example.com или server1.yourdomain.com, а не домен, который вы хотите использовать в качестве почтового домена (например, yourdomain.tld) позже.

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

nano /etc/postfix/master.cf

Раскомментируйте разделы отправки и smtps следующим образом - добавьте строку -o smtpd_client_restrictions=permit_sasl_authenticated,reject в оба раздела и оставьте все остальное закомментированным:

[...]
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes  
  -o smtpd_tls_auth_only=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=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       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=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
[...]

ПРИМЕЧАНИЕ: Пробелы перед строками “-o …. “ важны!

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

service postfix restart

Мы хотим, чтобы 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
[...]
# 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  
  
[...]  

Теперь мы устанавливаем пароль root в MariaDB. Выполните:

mysql_secure_installation

Вам будут заданы эти вопросы:

Enter current password for root (enter for none): <-- нажмите enter  
Set root password? [Y/n] <-- y  
New password: <-- Введите новый пароль root для MariaDB  
Re-enter new password: <-- Повторите пароль  
Remove anonymous users? [Y/n] <-- y  
Disallow root login remotely? [Y/n] <-- y  
Reload privilege tables now? [Y/n] <-- y

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

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

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

nano /etc/mysql/debian.cnf

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

# 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

Откройте файл /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 /etc/systemd/system/mysql.service.d/

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

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

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

[Service]  
LimitNOFILE=infinity

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

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

systemctl daemon-reload  
service mariadb restart

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

netstat -tap | grep mysql

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

root@server1:~# netstat -tap | grep mysql  
tcp6       0      0 [::]:mysql              [::]:*                     LISTEN      51836/mysqld  
root@server1:~#

7. Установка Amavisd-new, SpamAssassin и Clamav

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

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

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

service spamassassin stop  
update-rc.d -f spamassassin remove

Чтобы запустить ClamAV, используйте:

freshclam  
service clamav-daemon start

Следующую ошибку можно игнорировать при первом запуске freshclam.

ERROR: /var/log/clamav/freshclam.log is locked by another process  
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

8. Установка Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear

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

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

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

Web server to reconfigure automatically: <-- apache2

Включить PHPMyAdmin в Apache2


Настроить базу данных для phpmyadmin с dbconfig-common? <-- Да

MySQL application password for phpmyadmin: <-- Нажмите enter

![Пароль приложения MySQL](/files/d6d79cfd-1efd-46ca-8155-f42a53d02409.png)

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

a2enmod suexec rewrite ssl actions include cgi alias proxy_fcgi

a2enmod dav_fs dav auth_digest headers


Чтобы убедиться, что сервер не может быть атакован через уязвимость HTTPOXY, я отключу заголовок HTTP_PROXY в apache глобально. Создайте новый файл httpoxy.conf с помощью nano:

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


Вставьте это содержимое в файл:
RequestHeader unset Proxy early

Включите конфигурационный файл, выполнив:

a2enconf httpoxy


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

service apache2 restart


Если вы хотите размещать Ruby-файлы с расширением .rb на своих веб-сайтах, созданных через ISPConfig, вам нужно закомментировать строку application/x-ruby rb в /etc/mime.types:

nano /etc/mime.types

[…] #application/x-ruby rb […]


(Это необходимо только для .rb файлов; Ruby-файлы с расширением .rbx работают из коробки.)

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

service apache2 restart


## 9. Установка Let's Encrypt

ISPConfig 3.2 имеет встроенную поддержку бесплатного центра сертификации SSL Let's Encrypt. Функция Let's Encrypt позволяет вам создавать бесплатные SSL-сертификаты для вашего веб-сайта в ISPConfig.

Теперь мы добавим поддержку Let's Encrypt.

apt-get install certbot


## 10. Установка Mailman

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

apt-get -y install mailman


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

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

Ошибка ' *Job for mailman.service failed because the control process exited with* error *code.* ' может быть проигнорирована на данный момент.

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

newlist mailman


root@server1:~# newlist mailman  
Введите адрес электронной почты человека, управляющего списком: <-- адрес электронной почты администратора, например [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:

service postfix restart


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

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


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

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

Активируйте конфигурацию с помощью:

a2enconf mailman


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

service apache2 restart


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

service mailman start


## 11. Установка PureFTPd и Quota

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

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


Отредактируйте файл /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:

service pure-ftpd-mysql restart


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

nano /etc/fstab

/dev/mapper/server1–vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/mapper/server1–vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0


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

mount -o remount /

quotacheck -avugm
quotaon -avug


Что покажет следующий вывод:

root@server1:/tmp# quotacheck -avugm
quotacheck: Scanning /dev/mapper/server1–vg-root [/] done
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Checked 13602 directories and 96597 files
quotacheck: Old file not found.
quotacheck: Old file not found.
root@server1:/tmp# quotaon -avug
/dev/mapper/server1–vg-root [/]: group quotas turned on
/dev/mapper/server1–vg-root [/]: user quotas turned on


## 12. Установка DNS-сервера BIND

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

apt-get -y install bind9 dnsutils haveged


Включите и запустите демон haveged:

systemctl enable haveged
systemctl start haveged


## 13. Установка Vlogger, Webalizer, AWStats и GoAccess

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

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


Установка последней версии 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 -
sudo apt-get update
sudo apt-get install goaccess


Откройте /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


## 14. Установка Jailkit

Jailkit используется для заключения пользователей оболочки и cronjobs в ISPConfig. Установите jailkit с помощью apt:

apt-get -y install jailkit


## 15. Установка fail2ban и UFW

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

apt-get -y 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 action = iptables-multiport[name=dovecot-pop3imap, port=”pop3,pop3s,imap,imaps”, protocol=tcp] logpath = /var/log/mail.log maxretry = 5

[postfix] enabled = true port = smtp filter = postfix logpath = /var/log/mail.log maxretry = 3


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

service fail2ban restart


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

apt-get install ufw


## 16. Установка Roundcube Webmail

Чтобы установить Roundcube Webmail, выполните:

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce


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

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


Не беспокойтесь, если вы не получите этих вопросов и предупреждение о скрипте ucf, это нормально.

Предупреждение ucf, которое вы получите в оболочке, можно игнорировать, оно не имеет негативного влияния на установку.

Затем отредактируйте файл конфигурации RoundCube apache.

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


и уберите # перед строкой Alias, затем добавьте вторую строку Alias для /webmail и добавьте строку "AddType application/x-httpd-php .php" сразу после строки "":

Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcube […]

AddType application/x-httpd-php .php [...] ``` И перезапустите apache ``` service apache2 restart ``` Затем отредактируйте файл конфигурации RoundCube config.inc.php: ``` nano /etc/roundcube/config.inc.php ``` и измените хост по умолчанию на localhost: ``` $config['default_host'] = 'localhost'; ``` и SMTP-сервер на: ``` $config['smtp_server'] = 'localhost'; ``` и ``` $config['smtp_port']  = 25; ``` Это предотвращает отображение поля ввода имени сервера в форме входа. ## 17. Установка ISPConfig 3.2 Мы будем использовать стабильную сборку ISPConfig 3.2 здесь. ``` cd /tmp wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz tar xfz ispconfig.tar.gz cd ispconfig3*/install/ ``` Следующий шаг - запустить ``` php -q install.php ``` Это запустит установщик ISPConfig 3. Установщик настроит все службы, такие как Postfix, Dovecot и т.д. за вас. ``` # php -q install.php ``` ``` -------------------------------------------------------------------------------- _____ ___________ _____ __ _ ____ |_ _/ ___| ___ \ / __ \ / _(_) /__ \ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | _| |_\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ \___/\____/\_| \____/\___/|_| |_|_| |_| __/ | |___/ -------------------------------------------------------------------------------- ``` ``` >> Начальная конфигурация ``` ``` Операционная система: Ubuntu 20.04.1 LTS (Focal Fossa) ``` ``` Следующие будут несколько вопросов для первичной конфигурации, поэтому будьте внимательны. Значения по умолчанию находятся в [скобках] и могут быть приняты с помощью . Введите "quit" (без кавычек), чтобы остановить установщик. ``` ``` Выберите язык (en,de) [en]: <-- Нажмите Enter ``` ``` Режим установки (standard,expert) [standard]: <-- Нажмите Enter ``` ``` Полное квалифицированное имя хоста (FQDN) сервера, например server1.domain.tld [server1.canomi.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 Настройка Metronome XMPP Server запись нового закрытого ключа в 'localhost.key' ----- Код страны (2 буквы) [AU]: <-- Введите 2-буквенный код страны Название населенного пункта (например, город) []: <-- Введите ваш город Название организации (например, компания) [Internet Widgits Pty Ltd]: <-- Введите название компании или нажмите enter Название организационного подразделения (например, отдел) []: <-- Нажмите Enter Общее имя (например, FQDN сервера или ВАШЕ имя) [server1.canomi.com]: <-- Введите имя хоста сервера, в моем случае: server1.example.com Адрес электронной почты []: <-- Нажмите Enter ``` ``` Настройка брандмауэра Ubuntu Настройка Fail2ban [INFO] служба OpenVZ не обнаружена Настройка виртуального хоста Apps Установка 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 ключа ``` ``` Создать символическую ссылку на сертификаты ISPConfig LE для postfix? (y,n) [y]:  <-- Нажмите Enter ``` ``` Создать символическую ссылку на сертификаты ISPConfig LE для pureftpd? Создание файла dhparam занимает некоторое время. (y,n) [y]:  <-- Нажмите Enter ``` ``` Генерация параметров DH, 2048 битный безопасный простой, генератор 2 Это займет много времени .............................................................+.........................................................................................................................................................................+................... ``` ``` Настройка 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 на Ubuntu 18.04 LTS](/files/24a359d6-6ef5-41f5-934b-3c7d69d55dcf.png) ![Панель управления ISPConfig 3.2](/files/0aadd86c-90dd-42d7-9206-15914f387fbb.png) Система теперь готова к использованию. ## 18. Скачивание образа виртуальной машины этого учебника Этот учебник доступен в виде готового к использованию образа виртуальной машины в формате ovf/ova, который совместим с VMWare и Virtualbox. Образ виртуальной машины использует следующие данные для входа: SSH / Shell Login Имя пользователя: administrator Пароль: howtoforge Этот пользователь имеет права sudo. ISPConfig Login Имя пользователя: admin Пароль: howtoforge MySQL Login Имя пользователя: root Пароль: howtoforge IP виртуальной машины - 192.168.0.100, его можно изменить в файле */etc/netplan/01-netcfg.yaml*. Пожалуйста, измените все вышеперечисленные пароли, чтобы обеспечить безопасность виртуальной машины. ## 19. Ссылки - Ubuntu: http://www.ubuntu.com/ - ISPConfig: http://www.ispconfig.org/
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.