Серверы · 4 min read · Nov 02, 2025
Идеальный сервер - Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)
Этот учебник показывает, как подготовить сервер Debian Jessie (с Apache2, BIND, Dovecot) для установки ISPConfig 3 и как установить ISPConfig 3. Веб-хостинг панель управления ISPConfig 3 позволяет вам настраивать следующие службы через веб-браузер: веб-сервер Apache или nginx, почтовый сервер Postfix, IMAP/POP3 сервер Courier или Dovecot, MySQL, BIND или MyDNS сервер имен, PureFTPd, SpamAssassin, ClamAV и многое другое. Эта настройка охватывает Apache (вместо nginx), BIND (вместо MyDNS) и Dovecot (вместо Courier).
1 Предварительная заметка
В этом учебнике я буду использовать имя хоста server1.example.com с IP-адресом 192.168.1.100 и шлюзом 192.168.1.1. Эти настройки могут отличаться у вас, поэтому вам нужно заменить их, где это необходимо. Прежде чем продолжить, вам необходимо иметь минимальную установку Debian 8. Это может быть минимальный образ Debian от вашего хостинг-провайдера или вы можете использовать Учебник по минимальному серверу Debian для настройки базовой системы.
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/hosts127.0.0.1 localhost.localdomain localhost
192.168.1.100 server1.example.com server1
# Следующие строки желательны для хостов, поддерживающих IPv6
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allroutersЗатем отредактируйте файл /etc/hostname:
nano /etc/hostnameОн должен содержать только часть поддомена, в нашем случае:
server1Наконец, перезагрузите сервер, чтобы применить изменения:
rebootВойдите снова и проверьте, правильно ли теперь имя хоста с помощью этих команд:
hostname
hostname -fВывод должен выглядеть так:
root@server1:/tmp# hostname
server1
root@server1:/tmp# hostname -f
server1.example.com5 Обновите вашу установку 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_ - Официальный 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Использовать dash в качестве оболочки по умолчанию системы (/bin/sh)? <- нет
Если вы этого не сделаете, установка ISPConfig завершится неудачей.
7 Синхронизируйте системные часы
Хорошей идеей является синхронизация системных часов с сервером NTP ( n etwork t ime p rotocol) через Интернет. Просто выполните
apt-get install ntp ntpdateи ваше системное время всегда будет синхронизировано.
8 Установите Postfix, Dovecot, MySQL, phpMyAdmin, 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
Новый пароль для пользователя MariaDB “root”: <– yourrootsqlpassword
Повторите пароль для пользователя MariaDB “root”: <– yourrootsqlpassword
Затем откройте порты 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[...]
# Вместо skip-networking по умолчанию теперь слушает только на
# localhost, что более совместимо и не менее безопасно.
#bind-address = 127.0.0.1
[...]Затем мы перезапускаем MySQL:
service mysql restartТеперь проверьте, что сеть включена. Выполните
netstat -tap | grep mysqlВывод должен выглядеть так:
root@server1:/tmp# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 27371/mysqld9 Установите 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
systemctl disable spamassassinGet new posts in your inbox
No spam. Unsubscribe anytime.