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

Идеальный сервер - Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD и ISPConfig 3)

Этот учебник показывает шаги по установке сервера Ubuntu 15.10 (Wiley Werewolf) с Nginx, PHP, MariaDB, Postfix, pure-ftpd, BIND, Dovecot и ISPConfig 3. ISPConfig 3 - это панель управления веб-хостингом, которая позволяет настраивать установленные службы через веб-браузер. Эта настройка предоставляет полный хостинг-сервер с веб, электронной почтой (включая фильтр спама и антивирус), базой данных, FTP и DNS-сервисами.

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

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

Шаги в этом учебнике должны выполняться от имени пользователя root, поэтому я не буду добавлять “sudo” перед командами. Либо войдите как пользователь root на ваш сервер перед тем, как продолжить, либо выполните:

sudo su

чтобы стать root, когда вы вошли как другой пользователь в оболочке.

Команды для редактирования файлов будут использовать редактор “nano”, вы можете заменить его на редактор по вашему выбору. Nano - это простой в использовании текстовый редактор для оболочки. Если вы хотите использовать nano и еще не установили его, выполните:

apt-get install nano

2. Обновите вашу установку Linux

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

nano /etc/apt/sources.list
#  
# deb cdrom:[Ubuntu-Server 15.10 _Wily Werewolf_ - Release amd64 (20151021)]/ wily main restricted  
#deb cdrom:[Ubuntu-Server 15.10 _Wily Werewolf_ - Release amd64 (20151021)]/ wily main restricted  
# См. http://help.ubuntu.com/community/UpgradeNotes для того, как обновиться до  
# более новых версий дистрибутива.  
deb http://de.archive.ubuntu.com/ubuntu/ wily main restricted  
deb-src http://de.archive.ubuntu.com/ubuntu/ wily main restricted  
  
## Основные обновления исправлений ошибок, произведенные после окончательного выпуска  
## дистрибутива.  
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates main restricted  
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates main restricted  
  
## Обратите внимание. программное обеспечение из этого репозитория полностью не поддерживается  
## командой Ubuntu. Также, пожалуйста, обратите внимание, что программное обеспечение в universe не получит  
## никакого обзора или обновлений от команды безопасности Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ wily universe  
deb-src http://de.archive.ubuntu.com/ubuntu/ wily universe  
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates universe  
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates universe  
  
## Обратите внимание. программное обеспечение из этого репозитория полностью не поддерживается  
## командой Ubuntu и может не находиться под свободной лицензией. Пожалуйста, убедитесь, что  
## у вас есть права на использование программного обеспечения. Также, пожалуйста, обратите внимание, что программное обеспечение в  
## multiverse не получит никакого обзора или обновлений от команды безопасности Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ wily multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ wily multiverse  
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates multiverse  
  
## Обратите внимание. программное обеспечение из этого репозитория могло быть протестировано не так  
## тщательно, как то, что содержится в основном релизе, хотя оно включает  
## более новые версии некоторых приложений, которые могут предоставить полезные функции.  
## Также, пожалуйста, обратите внимание, что программное обеспечение в backports не получит никакого обзора  
## или обновлений от команды безопасности Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse  
  
deb http://security.ubuntu.com/ubuntu wily-security main restricted  
deb-src http://security.ubuntu.com/ubuntu wily-security main restricted  
deb http://security.ubuntu.com/ubuntu wily-security universe  
deb-src http://security.ubuntu.com/ubuntu wily-security universe  
deb http://security.ubuntu.com/ubuntu wily-security multiverse  
deb-src http://security.ubuntu.com/ubuntu wily-security multiverse  
  
## Уберите комментарий с следующих двух строк, чтобы добавить программное обеспечение из репозитория  
## 'партнер' Canonical.  
## Это программное обеспечение не является частью Ubuntu, но предлагается Canonical и  
## соответствующими поставщиками как услуга для пользователей Ubuntu.  
# deb http://archive.canonical.com/ubuntu wily partner  
# deb-src http://archive.canonical.com/ubuntu wily 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), которое должно обеспечивать расширенную безопасность. Оно не устанавливается по умолчанию, начиная с 13.10. Мы проверим, установлено ли оно. На мой взгляд, вам это не нужно для настройки безопасной системы, и оно обычно вызывает больше проблем, чем преимуществ (подумайте об этом после того, как вы провели неделю, устраняя неполадки, потому что какая-то служба не работала так, как ожидалось, и затем вы обнаруживаете, что все было в порядке, только 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, 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

MariaDB - это форк сервера баз данных MySQL, разработанный оригинальным разработчиком MySQL Монти Уидениусом. Согласно тестам, найденным в Интернете, MariaDB быстрее, чем MySQL, и его разработка идет более активно, поэтому большинство дистрибутивов Linux заменили MySQL на MariaDB в качестве стандартного “похожего на MySQL” сервера баз данных. В случае, если вы предпочитаете MySQL вместо MariaDB, замените “mariadb-client mariadb-server” в приведенной выше команде на “mysql-client mysql-server”.

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

Общий тип конфигурации почты: <-- Интернет-сайт  
Системное имя почты: <-- 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

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

MariaDB

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

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

service mysql restart

Имя службы systemd для MariaDB и MySQL - “mysql”, поэтому команда перезапуска одинаковая для обоих серверов баз данных.

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

mysql_secure_installation

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

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

Затем выполните эту команду, чтобы отключить плагин UNIX auth для пользователя root:

echo "update user set plugin='' where User='root';flush privileges;" | mysql --defaults-file=/etc/mysql/debian.cnf mysql

Чтобы разрешить аутентификацию на основе пароля из PHPMyAdmin.

MySQL

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

Затем мы перезапускаем MySQL:

service mysql restart

Имя службы systemd для MariaDB и MySQL - “mysql”, поэтому команда перезапуска одинаковая для обоих серверов баз данных.

Для MySQL и MariaDB:

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

netstat -tap | grep mysql

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

root@server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN      8032/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-new, который загружает библиотеку фильтра SpamAssassin внутренне, поэтому мы можем остановить SpamAssassin, чтобы освободить оперативную память:

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

Чтобы обновить подписи антивируса ClamAV и запустить службу Clamd. Процесс обновления может занять некоторое время, не прерывайте его.

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

Get new posts in your inbox

No spam. Unsubscribe anytime.