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

Идеальный сервер — Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)


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

1 Предварительное примечание

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

Что нового в этой версии учебника?

  • Поддержка новых функций ISPConfig 3.1.
  • Поддержка SSL-сертификатов Lets Encrypt.
  • Поддержка HHVM (виртуальная машина HipHop) для запуска скриптов PHP.
  • Поддержка XMPP (метроном).
  • Поддержка серого списка электронной почты в Postgrey.
  • UFW в качестве брандмауэра заменяет Bastille.
  • Веб-почта RoundCube вместо Squirrelmail.

2 Установите SSH-сервер (необязательно)

Если вы не устанавливали сервер OpenSSH во время установки системы, вы можете сделать это сейчас:

apt-get install ssh openssh-server

С этого момента вы можете использовать SSH-клиент, такой как PuTTY, подключаться со своей рабочей станции к серверу Debian Jessie и выполнять оставшиеся шаги из этого руководства.

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.1.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

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

reboot

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

hostname
hostname -f

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

:/tmp# hostname -f
server1.example.com

5 Обновите установку Debian

Сначала убедитесь, что ваш /etc/apt/sources.list содержит репозиторий jessie/updates (это гарантирует, что вы всегда будете получать новейшие обновления безопасности), а также включены репозитории contrib и non-free (некоторые пакеты, такие как libapache2- mod-fastcgi отсутствуют в основном репозитории).

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official amd64 NETINST Binary-1 20150425-12:50]/ jessie main

deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/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 (nсетевой time protocol) через Интернет. Просто запустите

apt-get install ntp

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

8. Установите Postfix, Dovecot, MySQL, rkhunter и Binutils.

Мы можем установить Postfix, Dovecot, 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 dovecot-lmtpd sudo

Если вы предпочитаете MySQL, а не MariaDB, замените пакеты «mariadb-client mariadb-server» в приведенной выше команде на «mysql-client mysql-server».

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

Общий тип конфигурации почты: <-- Интернет-сайт
Системное имя почты: <-- server1.example.com
Новый пароль для \root\ пользователя MariaDB: <-- yourrootsqlpassword
Повторите пароль для пользователя MariaDB \root\: <-- yourrootsqlpassword

Чтобы обезопасить установку MariaDB/MySQL и отключить тестовую базу данных, выполните следующую команду:

mysql_secure_installation

Нам не нужно менять корневой пароль MySQL, так как мы просто устанавливаем новый во время установки. Ответьте на вопросы следующим образом:

Change the root password? [Y/n] <-- n
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 выглядел точно так же, как приведенный ниже.

[...]
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:

service postfix restart

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

nano /etc/mysql/my.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
[...]

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

service mysql restart

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

netstat -tap | grep mysql

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

:/# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16806/mysqld

9 Установите 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 postgrey

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

service spamassassin stop
systemctl disable spamassassin

9.1 Установите сервер Metronome XMPP (необязательно)

На этом шаге устанавливается сервер Metronome XMPP, который предоставляет сервер чата, совместимый с протоколом XMPP. Этот шаг необязателен, если вам не нужен чат-сервер, то этот шаг можно пропустить. Никакие другие функции ISPConfig не зависят от этого программного обеспечения.

Добавьте репозиторий пакетов Prosody в Debian.

echo "deb http://packages.prosody.im/debian jessie main" > /etc/apt/sources.list.d/metronome.list
wget http://prosody.im/files/prosody-debian-packages.key -O - | sudo apt-key add -

Обновите список пакетов:

apt-get update

и установите пакеты с помощью apt.

apt-get install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks
luarocks install lpc

Добавьте пользователя оболочки для Metronome.

adduser --no-create-home --disabled-login --gecos 'Metronome' metronome

Загрузите Metronome в каталог /opt и скомпилируйте его.

cd /opt; git clone https://github.com/maranda/metronome.git metronome
cd ./metronome; ./configure --ostype=debian --prefix=/usr
make
make install

Метроном теперь установлен в /opt/metronome.