Идеальный сервер — Debian 10 (Buster) с Apache, BIND, Dovecot, PureFTPD и ISPConfig 3.2
На этой странице
- 1 Предварительное примечание
- 2. Установите сервер SSH (необязательно)
- 3. Установите текстовый редактор оболочки (необязательно)
- 4 Настройте имя хоста
- 5 Обновите установку Debian
- 6. Изменить оболочку по умолчанию
- 7 Синхронизация системных часов
- 8. Установите Postfix, Dovecot, MariaDB, rkhunter и Binutils.
- 9 Установите Amavisd-new, SpamAssassin и ClamAV
- 10 Установите веб-сервер Apache и PHP
- 11 Установите Lets Encrypt
- 12. Установите Mailman
- 13 Установите PureFTPd и Quota
- 14 Установите DNS-сервер BIND
- 15. Установите Webalizer, AWStats и GoAccess.
- 16. Установка джейлкита
- 17. Установите fail2ban и брандмауэр UFW.
- 18. Установите инструмент администрирования базы данных PHPMyAdmin.
- 19. Установите RoundCube Webmail (необязательно)
- 20 Загрузите ISPConfig 3
- 20 Загрузите стабильную версию ISPConfig (рекомендуется)
- 21.1 ISPConfig 3 Руководство
В этом руководстве показано, как подготовить сервер Debian 10 (с Apache2, BIND, Dovecot) для установки ISPConfig 3.2 и как установить ISPConfig. Панель управления веб-хостингом ISPConfig 3 позволяет настроить следующие службы через веб-браузер: веб-сервер Apache или nginx, почтовый сервер Postfix, сервер Courier или Dovecot IMAP/POP3, сервер имен MySQL, BIND или MyDNS, PureFTPd, SpamAssassin, ClamAV, и многое другое. Эта установка охватывает Apache (вместо nginx), BIND и Dovecot.
1 Предварительное примечание
В этом руководстве я буду использовать имя хоста server1.example.com с IP-адресом 192.168.0.100 и шлюзом 192.168.0.1. Эти настройки могут отличаться для вас, поэтому вам придется заменить их там, где это необходимо. Прежде чем продолжить, вам необходимо иметь минимальную установку Debian 10. Это может быть минимальный образ Debian от вашего хостинг-провайдера, или вы можете использовать руководство по минимальному серверу Debian для настройки базовой системы.
Все приведенные ниже команды выполняются от имени пользователя root. Либо войдите в систему как пользователь root напрямую, либо войдите в систему как обычный пользователь, а затем используйте команду
su -
чтобы стать пользователем root на вашем сервере, прежде чем продолжить. ВАЖНО: Вы должны использовать su, и не только su, иначе ваша переменная PATH будет неправильно установлена Debian.
2 Установите SSH-сервер (необязательно)
Если вы не установили сервер OpenSSH во время установки системы, вы можете сделать это сейчас:
apt-get install ssh openssh-server
С этого момента вы можете использовать SSH-клиент, такой как PuTTY, подключаться со своей рабочей станции к серверу Debian 9 и выполнять оставшиеся шаги из этого руководства.
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.0.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
Наконец, перезагрузите сервер, чтобы изменения вступили в силу:
systemctl reboot
Войдите снова и проверьте правильность имени хоста с помощью следующих команд:
hostname
hostname -fВывод должен быть таким:
:/tmp# hostname -f
server1.example.com5 Обновите установку Debian
Во-первых, убедитесь, что ваш /etc/apt/sources.list содержит репозиторий buster/updates (это гарантирует, что вы всегда будете получать новейшие обновления безопасности), а репозитории contrib и non-free включены, так как некоторые необходимые пакеты недоступны. в основном репозитории.
nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/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 (сетевой протокол времени) через Интернет. Просто запустите
apt-get -y install ntp
и ваше системное время всегда будет синхронизировано.
8. Установите Postfix, Dovecot, MariaDB, rkhunter и Binutils.
Мы можем установить 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 dovecot-lmtpd sudo curl
Вам будут заданы следующие вопросы:
Общий тип конфигурации почты: <-- Интернет-сайт
Системное имя почты: <-- server1.example.comЧтобы защитить установку MariaDB и отключить тестовую базу данных, выполните следующую команду:
mysql_secure_installation
Ответьте на вопросы следующим образом:
Change the root password? [Y/n] <-- y
New password: <-- Enter a new MariaDB root password
Re-enter new password: <-- Repeat the MariaDB root password
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 выглядел точно так же, как приведенный ниже. ВАЖНО: Удалите # перед строками, которые начинаются с smtps и submit, а не только из строк -o после этих строк!
[...] 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:
systemctl restart postfix
Мы хотим, чтобы MySQL прослушивал все интерфейсы, а не только локальный. Поэтому мы редактируем /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
[...]Установите метод аутентификации по паролю в MariaDB на собственный, чтобы мы могли использовать PHPMyAdmin позже для подключения от имени пользователя root:
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root
Отредактируйте файл /etc/mysql/debian.cnf и дважды установите пароль root для MYSQL/MariaDB в строках, начинающихся со слова password.
nano /etc/mysql/debian.cnf
Пароль root MySQL, который необходимо добавить, показан красным цветом. В этом примере пароль \howtoforge\.
# 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Чтобы предотвратить ошибку Ошибка при приеме: слишком много открытых файлов, теперь мы установим более высокие ограничения на количество открытых файлов для MariaDB.
Откройте файл /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 -p /etc/systemd/system/mysql.service.d/
и добавьте новый файл внутрь:
nano /etc/systemd/system/mysql.service.d/limits.conf
вставьте в этот файл следующие строки:
[Service]
LimitNOFILE=infinityСохраните файл и закройте редактор nano.
Затем перезагружаем systemd и перезапускаем MariaDB:
systemctl daemon-reload
systemctl restart mariadbТеперь проверьте, включена ли сеть. Бег
netstat -tap | grep mysql
Вывод должен выглядеть так:
:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld9 Установите Amavisd-new, SpamAssassin и ClamAV
Для установки amavisd-new, SpamAssassin и ClamAV запускаем
apt-get install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip 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 libdbd-mysql-perl postgrey
Настройка ISPConfig 3 использует amavisd, который загружает библиотеку фильтров SpamAssassin внутри, поэтому мы можем остановить SpamAssassin, чтобы освободить часть оперативной памяти:
systemctl stop spamassassin
systemctl disable spamassassin10 Установите веб-сервер Apache и PHP
Apache2, PHP, FCGI, suExec, Pear и mcrypt можно установить следующим образом:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu libapache2-reload-perl
Затем выполните следующую команду, чтобы включить модули Apache suexec, rewrite, ssl, action и include (плюс dav, dav_fs и auth_digest, если вы хотите использовать WebDAV):
a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi alias
Чтобы гарантировать, что сервер не может быть атакован через уязвимость HTTPOXY, мы глобально отключим заголовок HTTP_PROXY в apache, добавив файл конфигурации /etc/apache2/conf-available/httpoxy.conf.
Примечание. Уязвимость называется httpoxy (без r), поэтому файл, в который мы добавляем конфигурацию, чтобы предотвратить ее, называется httpoxy.conf, а не httpproxy.conf, поэтому в имени файла отсутствует буква r.
nano /etc/apache2/conf-available/httpoxy.conf
Вставьте в файл следующее содержимое:
<IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule>
И включите модуль, выполнив:
a2enconf httpoxy
systemctl restart apache211 Установите Lets Encrypt
ISPConfig теперь использует acme.sh в качестве клиента Lets Encrypt. Установите acme.sh с помощью следующей команды:
curl https://get.acme.sh | sh -s
12 Установить почтальона
ISPConfig позволяет вам управлять (создавать/изменять/удалять) списками рассылки Mailman. Если вы хотите использовать эту функцию, установите Mailman следующим образом:
apt-get install mailman
Выберите хотя бы один язык, например:
Languages to support: <-- en (English)
Missing site list <-- OkПрежде чем мы сможем запустить Mailman, необходимо создать первый список рассылки с именем mailman:
newlist mailman
:~#
После этого откройте /etc/aliases...
nano /etc/aliases
... и добавьте следующие строки:
[...] ## mailman mailing list 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
и перезапустите Постфикс:
systemctl restart postfix
Наконец, мы должны включить конфигурацию Mailman Apache:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf
Это определяет псевдоним /cgi-bin/mailman/ для всех виртуальных хостов Apache, что означает, что вы можете получить доступ к интерфейсу администратора Mailman для списка на http://server1.example.com/cgi-bin/mailman/admin/, и веб-страницу для пользователей списка рассылки можно найти по адресу http://server1.example.com/cgi-bin/mailman/listinfo/.
По адресу http://server1.example.com/pipermail вы можете найти архивы списков рассылки.
После этого перезапустите Apache:
systemctl restart apache2
Затем запустите демон Mailman:
systemctl restart mailman
13 Установите PureFTPd и Quota
PureFTPd и quota можно установить с помощью следующей команды:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
Создайте файл dhparam для pure-ftpd:
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048
Отредактируйте файл /etc/default/pure-ftpd-common...
nano /etc/default/pure-ftpd-common
... и убедитесь, что режим запуска установлен на автономный и установите 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]: <-- Enter your Country Name (e.g., "DE").
State or Province Name (full name) [Some-State]: <-- Enter your State or Province Name.
Locality Name (eg, city) []: <-- Enter your City.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []: <-- Enter your Organizational Unit Name (e.g. "IT Department").
Common Name (eg, YOUR name) []: <-- Enter the Fully Qualified Domain Name of the system (e.g. "server1.example.com").
Email Address []: <-- Enter your Email Address.Измените разрешения SSL-сертификата:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Затем перезапустите PureFTPd:
systemctl restart pure-ftpd-mysql
Отредактируйте /etc/fstab. Мой выглядит так (я добавил ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 в раздел с точкой монтирования /):
nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap was on /dev/sda5 during installation
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0Чтобы включить квоту, выполните следующие команды:
mount -o remount /
quotacheck -avugm
quotaon -avug14 Установите DNS-сервер BIND
BIND можно установить следующим образом:
apt-get install bind9 dnsutils
Если ваш сервер является виртуальной машиной, настоятельно рекомендуется установить демон hasged, чтобы получить более высокую энтропию для подписи DNSSEC. Вы можете установить hasged и на невиртуальные серверы, это не повредит.
apt-get install haveged
Объяснение по этой теме можно найти здесь.
15 Установите Webalizer, AWStats и GoAccess
Webalizer и AWStats можно установить следующим образом:
apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl
После этого откройте /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 # Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh
Установка последней версии 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 -
apt-get update
apt-get install goaccess16 Установить джейлкит
Jailkit нужен, только если вы хотите chroot пользователей SSH. Его можно установить следующим образом:
apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20
echo 5 > debian/compat
./debian/rules binaryТеперь вы можете установить пакет Jailkit .deb следующим образом:
cd ..
dpkg -i jailkit_2.20-1_*.deb
rm -rf jailkit-2.20*17 Установите fail2ban и UFW Firewall
Это необязательно, но рекомендуется, поскольку монитор ISPConfig пытается отобразить журнал:
apt-get 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
logpath = /var/log/mail.log
maxretry = 5
[postfix-sasl]
enabled = true
port = smtp
filter = postfix[mode=auth]
logpath = /var/log/mail.log
maxretry = 3После этого перезапустите fail2ban:
systemctl restart fail2ban
Чтобы установить брандмауэр UFW, выполните следующую команду:
apt-get install ufw
18 Установите инструмент администрирования базы данных PHPMyAdmin
Начиная с Debian 10, PHPMyAdmin больше не доступен в виде пакета .deb. Поэтому мы установим его из исходников.
Создайте папки для PHPMyadmin:
mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin
touch /etc/phpmyadmin/htpasswd.setupПерейдите в каталог /tmp и загрузите исходники PHPMyAdmin:
cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gzРаспакуйте загруженный файл архива и переместите файлы в папку /usr/share/phpmyadmin и очистите каталог /tmp.
tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/
rm phpMyAdmin-4.9.0.1-all-languages.tar.gz
rm -rf phpMyAdmin-4.9.0.1-all-languagesСоздайте новый файл конфигурации для PHPMyAdmin на основе предоставленного примера файла:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Откройте файл конфигурации с помощью редактора nano:
nano /usr/share/phpmyadmin/config.inc.php
Установите безопасный пароль (секрет Blowfish), который должен состоять из 32 символов:
$cfg['blowfish_secret'] = 'bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Не используйте мой пример секрета иглобрюха, установите свой собственный!
Затем добавьте строку для установки каталога, который PHPMyAdmin будет использовать для хранения временных файлов:
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Затем мы создаем файл конфигурации Apache для PHPMyAdmin, открыв новый файл в редакторе nano:
nano /etc/apache2/conf-available/phpmyadmin.conf
Вставьте следующую конфигурацию в файл и сохраните ее.
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
</Directory>Активируйте конфигурацию и перезапустите Apache.
a2enconf phpmyadmin
systemctl restart apache2На следующем шаге мы настроим хранилище конфигурации phpMyadmin (базу данных).
Войдите в MariaDB как пользователь root:
mysql -u root -p
В оболочке MariaDB создайте новую базу данных для PHPMyAdmin:
MariaDB [(none)]> CREATE DATABASE phpmyadmin;
Затем создайте нового пользователя:
MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'mypassword';
Замените слово mypassword безопасным паролем по вашему выбору в командах выше и ниже, используйте один и тот же пароль оба раза. Затем предоставьте пользователю доступ к этой базе данных и перезагрузите разрешения базы данных.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Наконец, загрузите таблицы SQL в базу данных:
mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql
Введите корневой пароль MariaDB по запросу.
Все, что нам нужно сделать сейчас, это установить данные пользователя phpmyadmin в файле конфигурации. Снова откройте файл в редакторе nano:
nano /usr/share/phpmyadmin/config.inc.php
Прокрутите вниз, пока не увидите строки ниже, и отредактируйте их:
/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'mypassword';
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';Я отметил строки красным, которые я редактировал. Замените mypassword паролем, который вы выбрали для пользователя phpmyadmin. Обратите внимание, что/перед строками также был удален!
19. Установите веб-почту RoundCube (необязательно)
В этой главе мы установим клиент веб-почты RoundCube. Во-первых, мы должны создать базу данных для Roundcube вручную, так как в настоящее время в установщике RoundCube Debian есть проблема, из-за которой не удается создать базу данных автоматически. Запустите эту команду, чтобы создать базу данных:
echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnf
Затем установите RoundCube с помощью этой команды:
apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins
Установщик задаст следующие вопросы:
Configure database for roundcube with dbconfig.common? <-- yes
MySQL application password for roundcube: <-- press enterЗатем отредактируйте файл RoundCube /etc/roundcube/config.inc.php и настройте несколько параметров:
nano /etc/roundcube/config.inc.php
Установите default_host на localhost и smtp_server.
$config['default_host'] = 'localhost';
$config['smtp_server'] = 'localhost';
$config['smtp_port'] = 25;Затем отредактируйте файл конфигурации Apache RoundCube /etc/apache2/conf-enabled/roundcube.conf:
nano /etc/apache2/conf-enabled/roundcube.conf
И добавьте строку псевдонима для псевдонима apache/webmail и одну для /roundcube, вы можете добавить строку прямо в начало файла. ПРИМЕЧАНИЕ. Не используйте /mail в качестве псевдонима, иначе модуль электронной почты ispconfig перестанет работать!
Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcubeЗатем перезагрузите Apache:
systemctl reload apache2
Теперь вы можете получить доступ к RoundCube следующим образом:
Существует несколько плагинов для интеграции RoundCube Webmail с ISPConfig, посмотрите здесь инструкции по установке плагина ISPConfig RoundCube.
20 Скачать ISPConfig 3
20 Загрузите стабильную версию ISPConfig (рекомендуется)
Чтобы установить ISPConfig 3 из последней выпущенной версии, сделайте следующее:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/21 Установить ISPConfig
Следующим шагом будет запуск установщика ISPConfig.
php -q install.php
Это запустит установщик ISPConfig 3. Установщик настроит для вас все службы, такие как Postfix, Dovecot и т. д. Ручная настройка, необходимая для ISPConfig 2 (идеальные руководства по настройке), не требуется.
# php -q install.php
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> Initial configurationOperating System: Debian 10.0 (Buster) or compatible
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with <ENTER>.
Tap in "quit" (without the quotes) to stop the installer.
Select language (en,de) [en]: <-- Hit EnterInstallation mode (standard,expert) [standard]: <-- Hit Enter
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <-- Hit Enter
MySQL server hostname [localhost]: <-- Hit Enter
MySQL server port [3306]: <-- Hit Enter
MySQL root username [root]: <-- Hit Enter
MySQL root password []: <-- Enter your MySQL root password
MySQL database to create [dbispconfig]: <-- Hit Enter
MySQL charset [utf8]: <-- Hit Enter
Configuring Postgrey
Configuring Postfix
Generating a 4096 bit RSA private key
.......................................................................++
........................................................................................................................................++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
State or Province Name (full name) [Some-State]: <-- Enter the name of the state
Locality Name (eg, city) []: <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case: server1.example.com
Email Address []: <-- Hit Enter
Configuring Mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Jailkit
Configuring Pureftpd
Configuring Apache
Configuring vlogger
[INFO] service Metronome XMPP Server not detected
Configuring Ubuntu Firewall
Configuring Fail2ban
[INFO] service OpenVZ not detected
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]:Admin password [admin]:
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- Hit Enter
Generating RSA private key, 4096 bit long modulus
.......................++
................................................................................................................................++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
State or Province Name (full name) [Some-State]: <-- Enter the name of the state
Locality Name (eg, city) []: <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case: server1.example.com
Email Address []: <-- Hit EnterPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- Hit Enter
An optional company name []: <-- Hit Enter
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.Программа установки автоматически настраивает все базовые службы, поэтому ручная настройка не требуется.
После этого вы можете получить доступ к ISPConfig 3 по адресу http(s)://server1.example.com:8080/ или http(s)://192.168.0.100:8080/ (http или https зависит от того, что вы выбрали во время установки). Войдите в систему с именем пользователя admin и паролем admin (вы должны изменить пароль по умолчанию после первого входа):
Теперь система готова к использованию.
21.1 ISPConfig 3 Руководство
Чтобы узнать, как использовать ISPConfig 3, я настоятельно рекомендую скачать Руководство по ISPConfig 3.
На более чем 300 страницах он охватывает концепцию ISPConfig (администрирование, торговые посредники, клиенты), объясняет, как установить и обновлять ISPConfig 3, включает справку по всем формам и полям форм в ISPConfig вместе с примерами допустимых входных данных и предоставляет учебные пособия. для наиболее распространенных задач в ISPConfig 3. В нем также рассказывается, как сделать ваш сервер более безопасным, и в конце есть раздел по устранению неполадок.
22 Образ виртуальной машины Загрузка этого руководства
Это руководство доступно в виде готового к использованию образа виртуальной машины в формате ovf/ova, который совместим с VMWare и Virtualbox. Образ виртуальной машины использует следующие данные для входа:
Вход по SSH/оболочке
Имя пользователя:admin
Пароль:howtoforgeИмя пользователя: root
Пароль: howtoforgeВход в ISPConfig
Имя пользователя: admin
Пароль: adminВход в MySQL
Имя пользователя: root
Пароль: howtoforgeIP виртуальной машины 192.168.0.100, его можно изменить в файле /etc/network/interfaces. Пожалуйста, измените все указанные выше пароли, чтобы защитить виртуальную машину.
23 ссылки
- Debian: http://www.debian.org/
- ISPConfig: http://www.ispconfig.org/