00. Начало
Будем использовать hostname hosting.drach.pro с IP-адресом 185.46.86.3
в качестве примера. Естественно, каждый читатель должен будет использовать свои параметры. Кроме того, мною все действия проделаны на минимальной версии Debian, которая была установлена на выделенный сервер или на виртуальный сервер.
01. Позаботимся об SSH (по желанию)
Для своего собственного удобства я обязательно устанавливаю OpenSSH:
apt-get -y install openssh-server ssh
Это особенно ценно потому, что в будущем можно будет использовать великолепный клиент putty для подключения к нашему серверу из-под Windows.
02. Текстовый редактор
Большинство пользователей привыкло к nano. Но монстры Linux прочно сидят на vi. Я предпочитаю mcedit. Давайте не будем спорить и установим все редакторы сразу, только оговоримся, что что vi ведёт себя странно именно под Debian, поэтому сделаем шаг в сторону vim-nox:
apt-get -y install nano mc vim-nox
Конечно, можно установить только и один требуемый пакет в данном пункте.
03. Hostname
Имя сервера должно быть третьего уровня, например "hosting.drach.pro". Лучше не использовать доменное имя "example.com", так как в будущем возникнут проблемы с настройкой почтовика. С самого начала проверьте, что имя указано правильно (чтобы избежать в будущем огромной головной боли!) в файле настроек /etc/hosts and change. Формат каждой строчки "IP Address - табуляция - полное-имя - табуляция - часть-поддомена". В моём случае, для hosting.drach.pro, надо получить что-то подобное:
mcedit /etc/hosts
127.0.0.1 localhost.localdomain localhost 185.46.86.3 hosting.drach.pro hosting # The following lines are for IPv6 ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Теперь редактируем /etc/hostname:
mcedit /etc/hostname
Должно остаться только имя поддомена, то есть в нашем случае:
hosting
Перезагружаемся:
reboot
А после перезагрузки обязательно проверим, какое имя у нашей системы:
hostname
hostname -f
Должно получиться что-то вроде:
# hostname
hosting
# hostname -f
hosting.drach.pro
04. Полное обновление Debian
Убедимся, что файл /etc/apt/sources.list содержит репозитории stretch/updates (чтобы всегда получать актуальные обновления безопасности), а также разрешим contrib и non-free.
mcedit /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.us.debian.org/debian/ stretch main contrib non-free
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free
Выполним:
apt-get update
А для обновления запустим:
apt-get upgrade -y
Система должна обновиться, не задавая лишних вопросов.
05. Изменим Shell
/bin/sh это символьная ссылка на /bin/dash, но нам нужно /bin/bash, а не /bin/dash. Выполним:
dpkg-reconfigure dash
Use dash as the default system shell (/bin/sh)? <- no
Если этого не сделать, установка ISPConfig закончится провалом.
06. Синхронизация времени
Постараемся поддерживать точное время на нашей системе, используя службу NTP (network time protocol). Выполним:
apt-get install ntp
Этого достаточно, чтобы точное время синхронизировалось по Интернету.
07. Установка пакетов Postfix, Dovecot, MariaDB, rkhunter и Binutils
Достаточно одной команды, чтобы установить Postfix, Dovecot, MariaDB, 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" не привела к положительным результатам. А после нескольких неудачных попыток установить MySQL, я смирился с MariaDB.
Потребуется ответить на вопросы:
General type of mail configuration: <-- Internet Site
System mail name: <-- hosting.drach.pro
С точки зрения безопасности крайне рекомендуется запустить специальную утилиту для MariaDB / MySQL:
mysql_secure_installation
Отвечаем последовательно на вопросы:
Change root password? [Y/n] <-- y
New password: <-- вводим новый пароль
Re-enter new password: <-- повторяем пароль
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database? [Y/n] <-- y
Reload privilege tables? [Y/n] <-- y
Откроем TLS/SSL для Postfix:
mcedit /etc/postfix/master.cf
Надо раскомментировать секции submission и smtps добавить несколько строк. Внимательно смотрим на пример:
[...] 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
Наша СУБД должна слушать на всех интерфейсах, а не только на localhost, поэтому редактируем /etc/mysql/mariadb.conf.d/50-server.cnf и комментируем bind-address = 127.0.0.1, также добавляем sql-mode="NO_ENGINE_SUBSTITUTION":
mcedit /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
sql-mode="NO_ENGINE_SUBSTITUTION"
[...]
Метод авторизации по паролю для MariaDB выставляем в режим "native", тогда в будущем мы сможем использовать phpMyAdmin из-под root:
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root
Редактируем /etc/mysql/debian.cnf и устанавливаем пароль для MariaDB дважды!
mcedit /etc/mysql/debian.cnf
Пароль для root в моём примере - "secret".
[client]
host = localhost
user = root
password = secret
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = secret
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Для предотвращения появления ошибки 'Error in accept: Too many open files' поднимем лимиты MariaDB.
mcedit /etc/security/limits.conf
Надо добавить две строки.
mysql soft nofile 65535
mysql hard nofile 65535
08. Тонкая настройка MariaDB
Создаём директорию /etc/systemd/system/mysql.service.d/ из командной строки:
mkdir -p /etc/systemd/system/mysql.service.d/
Добавляем в
mcedit /etc/systemd/system/mysql.service.d/limits.conf
несколько строк:
[Service]
LimitNOFILE=infinity
Сохраняем файл. Перезагружаем systemd и MariaDB:
systemctl daemon-reload
service mysql restart
Проверяем работу в сети:
netstat -tap | grep mysql
Видим что-то типа:
# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 17776/mysqld
09. Установка Amavisd-new, SpamAssassin, ClamAV
Выполним одну команду:
apt-get install -y 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 libdbd-mysql-perl postgrey
Панель ISPConfig 3 использует amavisd, который самостоятельно подгружает библиотеку фильтров SpamAssassin, поэтому мы можем остановить работу SpamAssassin и освободить немного ОЗУ:
service spamassassin stop
systemctl disable spamassassin
10. Установка Metronome XMPP Server (по желанию)
Metronome XMPP Server позволяет получить сервер чата с протоколом XMPP. Данный пункт является необязательным. Следует выполнять его только в том случае, если необходим сервер чата. Ни одна из функций ISPConfig не является зависимой от него.
Добавим репозиторий Prosody для Debian.
echo "deb http://packages.prosody.im/debian stretch 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-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
Metronome установлен в /opt/metronome.
11. Установка веб-окружения
Установим Apache2, PHP 7, phpMyAdmin, FCGI, suExec, Pear и mcrypt:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap phpmyadmin php7.0-cli php7.0-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php7.0-mcrypt mcrypt imagemagick libruby libapache2-mod-python php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring memcached libapache2-mod-passenger php7.0-soap
Потребуется ответить на вопросы:
Web server to reconfigure automatically: <- apache2
Configure database for phpmyadmin with dbconfig-common? <- yes
Enter the phpmyadmin application password? <- Just press enter
Enter the password of the administrative user? <- yourrootmysqlpassword
Необходимо выполнить следующую команду, чтобы сделать доступными модули Apache: suexec, rewrite, ssl, actions (плюс dav, dav_fs и auth_digest если нам захочется использовать WebDAV, например для Яндекс.Диска):
a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers
Чтобы удостовериться, что сервер не будет взломан через уязвимость HTTPROXY, запретим заголовок HTTP_PROXY в apache.
mcedit /etc/apache2/conf-available/httpoxy.conf
Вставим следующее:
<IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule>
Подключим модуль:
a2enconf httpoxy
service apache2 restart
11.1. HHVM (HipHop Virtual Machine)
Пакетов HHVM для Debian 9 пока нет. Придётся обойтись без этого режима PHP.
11.2. SuPHP
SuPHP больше не поддерживается под Debian 9, функции SuPHP устарели и будут удалены из ISPConfig. Придётся использовать доступные PHP-FPM или PHP-FCGI вместе с suexec вместо SuPHP.
12. Let's Encrypt
ISPConfig 3 поддерживает бесплатные сертификаты SSL от Let's encrypt. Функция Let's Encrypt позволяет создавать SSL certificates для сайта прямо из панели ISPConfig.
Добавим поддержку Let's encrypt.
apt-get -y install certbot
Больше ничего не потребуется! Сертификат SSL для сайта создаётся панелькой ISPConfig когда Вы добавляете сайт.
13. PHP-FPM
Менеджер процессов PHP-FPM позволяет резко ускорить обработки скриптов даже под Apache, но потребуется модуль mod_proxy_fcgi, который будет установлен по умолчанию (потребуется его разрешить).
apt-get -y install php7.0-fpm
Разрешаем модуль и перезапускаем Apache:
a2enmod actions proxy_fcgi alias
service apache2 restart
14. PHP Opcode Cache (на Ваше усмотрение)
Opcache это бесплатный кэшер для интерпретатора PHP. APCu это модуль совместимости APC для Opcache который испльзуется системами кэширования популярных CMS. Рекомендуется установить эти расширения для ускорения обработки РНР.
apt-get -y install php7.0-opcache php-apcu
Рестарт Apache:
service apache2 restart
15. Mailman
ISPConfig позволяет управлять (в том числе создавать/изменять/удалять) списки рассылки Mailman. Установим Mailman:
apt-get install mailman
Потребуется установить хотя бы один язык:
Languages to support: <-- en (English)
Missing site list <-- Ok
Перед запуском Mailman потребуется создать первый список рассылки с именем mailman:
newlist mailman
# newlist mailman
Enter the email of the person running the list: <-- admin email address, e.g. [email address]
Initial mailman password: <-- admin password for the mailman list
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## 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"
Hit enter to notify mailman owner... <-- ENTER
#
Открываем /etc/aliases ...
mcedit /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
перезапуск Postfix:
service postfix restart
Наконец, необходимо сделать доступной конфигурацию Mailman-Apache:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf
Так определяется псевдоним /cgi-bin/mailman/ для виртуальных хостов (vhosts) сервера Apache, значит будет доступен админский интерфейс Mailman по адресу http://hosting.drach.pro/cgi-bin/mailman/admin/, а интерфейс для пользователя http://hosting.drach.pro/cgi-bin/mailman/listinfo/.
Архив располагается по адресу http://hosting.drach.pro/pipermail.
Перезапуск Apache:
service apache2 restart
Запуск службы Mailman:
service mailman start
16. PureFTPd и Quota
PureFTPd и quota устанавливаются командой :
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
Редактируем файл настроек:
mcedit /etc/default/pure-ftpd-common
Наша задача - проверить, что режим установлен в standalone и VIRTUALCHROOT=true:
[...] STANDALONE_OR_INETD=standalone [...] VIRTUALCHROOT=true [...]
Now we configure PureFTPd to allow FTP and TLS sessions. FTP is a very insecure protocol because all passwords and all data are transferred in clear text. By using TLS, the whole communication can be encrypted, thus making FTP much more secure.
If you want to allow FTP and TLS sessions, run
echo 1 > /etc/pure-ftpd/conf/TLS
In order to use TLS, we must create an SSL certificate. I create it in /etc/ssl/private/, therefore I create that directory first:
mkdir -p /etc/ssl/private/
Afterwards, we can generate the SSL certificate as follows:
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. "hosting.drach.pro").
Email Address []: <-- Enter your Email Address.
Change the permissions of the SSL certificate:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Then restart PureFTPd:
service pure-ftpd-mysql restart
Edit /etc/fstab. Mine looks like this (I added ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 to the partition with the mount point /):
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=f539c5cb-624f-4c27-a149-1446a251a453 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap was on /dev/sda5 during installation
UUID=8d3194e7-edb5-4492-937d-d066b4994baf none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
To enable quota, run these commands:
mount -o remount /
quotacheck -avugm
quotaon -avug
17. BIND DNS Server
BIND can be installed as follows:
apt-get install bind9 dnsutils
If your server is a virtual machine, then it is highly recommended to install the haveged daemon to get a higher entropy for DNSSEC signing. You can install haveged on nonvirtual servers as well, it should not hurt.
apt-get install haveged
An explanation on that topic.
18. Webalizer and AWStats
Webalizer and AWStats can be installed as follows:
apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl
Open /etc/cron.d/awstats afterwards...
nano /etc/cron.d/awstats
... and comment out everything in that file:
#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
19. Install Jailkit
Jailkit is needed only if you want to chroot SSH users. It can be installed as follows (important: Jailkit must be installed before ISPConfig - it cannot be installed afterwards!):
apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
echo 5 > debian/compat
./debian/rules binary
You can now install the Jailkit .deb package as follows:
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*
20. fail2ban and UFW Firewall
This is optional but recommended, because the ISPConfig monitor tries to show the log:
apt-get install fail2ban
To make fail2ban monitor PureFTPd and Dovecot, create the file /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.local
And add the following configuration to it.
[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-sasl
logpath = /var/log/mail.log
maxretry = 3
Перезапуск fail2ban:
service fail2ban restart
To install the UFW firewall, run this apt command:
apt-get install ufw
21. 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
Password of the databases administrative user: <-- enter the MySQL root password here.
Отредактируем файл /etc/roundcube/config.inc.php:
nano /etc/roundcube/config.inc.php
Set the default_host and smtp_server to localhost.
$config['default_host'] = 'localhost';
$config['smtp_server'] = 'localhost';
Then edit the Apache roundcube configuration file /etc/apache2/conf-enabled/roundcube.conf:
mcedit /etc/apache2/conf-enabled/roundcube.conf
And add an alias line for the apache /webmail alias, you can add the line right at the beginning of the file. NOTE: Do not use /mail as alias or the ispconfig email module will stop working!
Alias /webmail /var/lib/roundcube
Then reload Apache:
service apache2 reload
Now you can access RoundCube as follows:
_http://185.46.86.3/webmail
_http://www.example.com/webmail
_http://hosting.drach.pro:8080/webmail (after you have installed ISPConfig, see the next chapter)
22. Download ISPConfig 3
22.1 Download the stable release (recommended)
To install ISPConfig 3 from the latest released version, do this:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
22.2 Download a beta version of the next 3.1 release (recommended for test setups only!)
If you like to try out the pre-release of an upcoming 3.1 version, download it with this command:
cd /tmp
wget -O ISPConfig-3.1-dev.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ISPConfig-3.1-dev.tar.gz
cd ispconfig3-stable-3.1*
cd install
23 Install ISPConfig
The next step is to run the ISPConfig installer.
php -q install.php
This will start the ISPConfig 3 installer. The installer will configure all services like Postfix, Dovecot, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary.
# php -q install.php
>> Initial configuration
Operating System: Debian 9.0 (Stretch)
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 Enter
Installation mode (standard,expert) [standard]: <-- Hit Enter
Full qualified hostname (FQDN) of the server, eg hosting.domain.tld [hosting.canomi.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: hosting.drach.pro
Email Address []: <-- Hit Enter
Configuring Mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Jailkit
Configuring Pureftpd
Configuring Apache
Configuring vlogger
Configuring Metronome XMPP Server
writing new private key to 'localhost.key'
-----
Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
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) [hosting.canomi.com]: <-- Enter the server hostname, in my case: hosting.drach.pro
Email Address []: <-- Hit Enter
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: hosting.drach.pro
Email Address []: <-- Hit Enter
Please 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.
The installer automatically configures all underlying services, so no manual configuration is needed.
Afterwards you can access ISPConfig 3 under http(s)://hosting.drach.pro:8080/ or http(s)://185.46.86.3:8080/ ( http or https depends on what you chose during installation). Log in with the username admin and the password admin (you should change the default password after your first login):
The system is now ready to be used.
24 Additional Notes
22.1 OpenVZ
If the Debian server that you've just set up in this tutorial is an OpenVZ container (virtual machine), you should do this on the host system (assuming that the ID of the OpenVZ container is 101 - replace it with the correct VPSID on your system):
VPSID=101
for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
do
vzctl set $VPSID --capability ${CAP}:on --save
done
22.2 Резюме
Готово. У нас получилось.
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux