Серверы · 6 min read · Sep 25, 2025

Идеальный сервер - Ubuntu 15.04 (Vivid Vervet) с Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot и ISPConfig 3

Этот учебник показывает установку веб-хостинг-сервера Ubuntu 15.04 (Vivid Vervet) с Apache2, Postfix, Dovecot, Bind и PureFTPD для подготовки его к установке ISPConfig 3. Полученная система будет предоставлять веб-сервер, почтовый сервер, сервер рассылок, DNS и FTP-сервер.

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

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

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

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

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

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

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

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

nano /etc/apt/sources.list
#  
# deb cdrom:[Ubuntu-Server 15.04 _Vivid Vervet_ - Release amd64 (20150422)]/ vivid main restricted  
#deb cdrom:[Ubuntu-Server 15.04 _Vivid Vervet_ - Release amd64 (20150422)]/ vivid main restricted  
# См. http://help.ubuntu.com/community/UpgradeNotes, чтобы узнать, как обновиться до  
# более новых версий дистрибутива.  
deb http://de.archive.ubuntu.com/ubuntu/ vivid main restricted  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid main restricted  
  
## Основные обновления исправлений ошибок, выпущенные после окончательного релиза  
## дистрибутива.  
deb http://de.archive.ubuntu.com/ubuntu/ vivid-updates main restricted  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-updates main restricted  
  
## Обратите внимание, что программное обеспечение из этого репозитория полностью  
## НЕ ПОДДЕРЖИВАЕТСЯ командой Ubuntu. Также обратите внимание, что программное обеспечение в universe  
## НЕ ПОЛУЧИТ никаких  
## обзоров или обновлений от команды безопасности Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ vivid universe  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid universe  
deb http://de.archive.ubuntu.com/ubuntu/ vivid-updates universe  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-updates universe  
  
## Обратите внимание, что программное обеспечение из этого репозитория полностью  
## НЕ ПОДДЕРЖИВАЕТСЯ командой Ubuntu и может не находиться под свободной лицензией. Пожалуйста, убедитесь, что  
## у вас есть права на использование программного обеспечения. Также обратите внимание, что программное обеспечение в  
## multiverse НЕ ПОЛУЧИТ никаких обзоров  
## или обновлений от команды безопасности Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ vivid multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid multiverse  
deb http://de.archive.ubuntu.com/ubuntu/ vivid-updates multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-updates multiverse  
  
## Обратите внимание, что программное обеспечение из этого репозитория могло не быть протестировано так  
## тщательно, как то, что содержится в основном релизе, хотя оно включает  
## более новые версии некоторых приложений, которые могут предоставить полезные функции.  
## Также обратите внимание, что программное обеспечение в backports НЕ ПОЛУЧИТ никаких обзоров  
## или обновлений от команды безопасности Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ vivid-backports main restricted universe multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-backports main restricted universe multiverse  
  
deb http://security.ubuntu.com/ubuntu vivid-security main restricted  
deb-src http://security.ubuntu.com/ubuntu vivid-security main restricted  
deb http://security.ubuntu.com/ubuntu vivid-security universe  
deb-src http://security.ubuntu.com/ubuntu vivid-security universe  
deb http://security.ubuntu.com/ubuntu vivid-security multiverse  
deb-src http://security.ubuntu.com/ubuntu vivid-security multiverse  
  
## Уберите комментарий с следующих двух строк, чтобы добавить программное обеспечение из репозитория  
## 'партнер' Canonical.  
## Это программное обеспечение не является частью Ubuntu, но предлагается Canonical и  
## соответствующими поставщиками как услуга для пользователей Ubuntu.  
# deb http://archive.canonical.com/ubuntu vivid partner  
# deb-src http://archive.canonical.com/ubuntu vivid partner

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

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 install ntp ntpdate

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

6. Установите Postfix, Dovecot, MariaDB, phpMyAdmin, 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 install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo

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

Создать самоподписанный SSL сертификат? <-- да  
Имя хоста: <-- server1.example.com  
Общий тип конфигурации почты: <-- Интернет-сайт  
Системное имя почты: <-- server1.example.com

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

nano /etc/postfix/master.cf

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

[...]  
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=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=permit_sasl_authenticated,reject  
#  -o milter_macro_daemon_name=ORIGINATING  
[...]  

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

service postfix restart

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

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

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

mysql_secure_installation

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

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

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

service mysql restart

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

netstat -tap | grep mysql

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

root@server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN      24603/mysqld      
root@server1:~#  

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

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

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo 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

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

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

Отредактируйте файл конфигурации clamd:

nano /etc/clamav/clamd.conf

и измените строку:

AllowSupplementaryGroups false

на:

AllowSupplementaryGroups true 

И сохраните файл. Чтобы запустить clamav, используйте

freshclam  
service clamav-daemon start
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.