Установка ISPConfig3 на VPS от reg.ru

Сегодня рассмотрим вариант установки панели управления хостингом от регистратора Reg.RU

Для подключения к консоли нам потребуется программа Putty

Список вводимых команд в консоль можно скачать здесь

Так как весь процесс я записал на видео и забыл сделать скриншоты с каждого этапа, пришлось вырезать их из видео. Поэтому за качество простите.
И так, перед нами страница с логинами и паролями от VPS по которым можно заходить хоть через консоль ssh хоть через KVM. Данного сервера само собой уже нет =) я сделал видео и сразу удалил его по причине не нужности для меня.

Давай те разобьём работу по этапам:


Цель: Сделать хостинг на базе Ubuntu Server, морда должна работать на Apache без nginx, иметь базу данных mysql, уметь работать по FTP и отсылать письма ну и про DNS не забыть, всякие антивирусы и антиспамы не ставим по причине отсутствия оперативки

Этапы:


1) Ставим текстовый редактор nano
2) Для своего удобства я меняю пароль для пользователя root на более короткий
3) т.к. это VPS и система урезана, добавляем стандартный список репозиториев ("серверов обновлений")
4) Обновляем список apt-get update что бы система знала что внесены изменения за тем делаем апгрейд тех пакетов которые нуждаются в обновлении и перезагружаем сервер.
5) Меняем оболочку с Sh в Dash
6) Ставим пакеты ("программы") для обновления времени NTP
7) Ставим Postfix, Dovecot, MariaDB, rkhunter, binutils и настраиваем
8) Устанавливаем еще кучу пакетов и настраиваем их
9) Ставим саму панель
10) Радуемся результату

 

Краткий процесс заказа услуги на reg.ru

Переходим по этой ссылке, регистрируемся и далее следуем скриншотам приведённым ниже

После регистрации идём на главную страницу

Переходим в раздел "Хостинг и серверы"

Выбираем в подменю "Серверы VPS (VDS)"

 

 

Для того что бы Apache и другие службы чувствовали себя более менее прилично, выбираем оптимальный вариант на 1024 мб (1 gb) оперативной памяти

 

 

Заполняем все поля

 

 

Если нужны дополнительные параметры то выбираем их

 

 

Заполняем профиль для регистрации

 

 

Сверяемся с заказываемой услугой

 

 

Указываем способ оплаты, здесь каждый выбирает тот который ему более удобен

 

 

 

Смотрим на успешную оплату

 

Переходим в раздел "Мои хостинг и услуги"

 

 

 

Жмакаем на наш выделенный сервер и ждём когда активируется. 

 

 

После того как услуга активировалась, система установилась, на нужна информация об IP адресе и паролях

 

 

Листаем в самый низ страницы и нажимаем на "Информация о включенных сервисах и паролях доступа"

 

 

Этап 1 - Ставим текстовый редактор nano

 

Скачиваем и устанавливаем на своём компе программу Putty (ssh клиент если у вас Windows). Вводим IP адрес нашего сервера порт 22 обзываем сессию ispconfig3 жмакаем на кнопку save для того что бы быстро подключаться к серверу. Теперь нажимаем на open. 

 

Данной надписи бояться не нужно, она появляется всего один раз при первом подключении с данного компьютера. Соглашаемся и нажимаем на Да

 

 

Вводим логин и пароль который нам предоставил reg.ru. Данные можно копировать и вставлять. ВНИМАНИЕ!!!! не должно быть никаких пробелов!!! Выделили текст, нажали ctrl+c перешли в экран putty и нажали правую кнопку мышки, скопированный текст вставился

 

После того как ввели логин и пароль, мы видим консоль похожую на cmd в windows. Теперь нам нужно поставить текстовый редактор nano. 

Вводим команду:

apt-get install nano -y

Этап 2 меняем пароль root

Лично для себя я меняю пароль на более короткий. Вы можете этого не делать

passwd

вводим новый пароль 2 раза

 

Этап 3 - Добавляем стандартный список репозиториев

Т.к. текстовый редактор мы уже поставили то идём редактировать список репозиториев. Вводим следующую команду:

nano /etc/apt/sources.list

Далее комментируем все строки при помощи символа # и вставляем из файла или от сюда следующий текст

# deb cdrom:[Ubuntu-Server 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420)]/ xenial main restricted

#deb cdrom:[Ubuntu-Server 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420)]/ xenial main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ xenial main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu/ xenial universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial universe
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu/ xenial multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner

deb http://security.ubuntu.com/ubuntu xenial-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

Нажимаем Ctrl+O для сохранения и Ctrl-X для выхода из редактора

 

Этап 4 - Обновляем системные пакеты и список репозиториев

apt-get update

Для обновления списка репозиториев и

apt-get upgrade

Для обновления установленных пакетов. Везде со всем соглашаемся

После обновления пишем reboot и нажимаем Enter сервер уходит в перезагрузку

Этап 5 - Меняем оболочку с Sh в Dash

Подключаемся к серверу и вводим команду

dpkg-reconfigure dash

На запрос

Use dash as the default system shell (/bin/sh)? <-- No

отвечаем No

Теперь отключим лишние пакеты т.к. оперативка ограничена

service apparmor stop
update-rc.d -f apparmor remove 
apt-get remove apparmor apparmor-utils

Этап 6 - обновление времени NTP

Для того что бы сервер обновлял время и соответствовал мировому времени, ставим 2 пакета

apt-get -y install ntp ntpdate

 

Этап 7 - Установка и настройка Postfix, Dovecot, MariaDB, rkhunter, binutils

Раз мы ставим Postfix - то нужно удалить стандартный sandmail что бы не было конфликтов

service sendmail stop; update-rc.d -f sendmail remove

Теперь ставим пакеты

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 -y

В процессе установки вы увидите запросы, отвечать на них нужно так

General type of mail configuration: <-- Internet Site
System mail name: <-- mail.kornienkov.ru

System mail name - обзываем именем сервера

Теперь нужно настроить postfix, а конкретней, нужно разкомментировать несколько строк и привести к виду показанному ниже

nano /etc/postfix/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=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

Не забываем про ctrl+o и ctrl+c

Перезагружаем службу

service postfix restart

 

Теперь идём в Mysql или она же теперь MariaDB

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ищем строку bind-address и комментируем её

#bind-address           = 127.0.0.1

Не забываем про ctrl+o и ctrl+c

Теперь проводим секюрити установку

mysql_secure_installation
Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

Делаем рестарт 

service mysql restart

 

Этап 8 - Устанавливаем еще кучу пакетов и настраиваем

apt-get install 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 -y
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 -y

luarocks install lpc

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

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

apt-get 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 php-auth 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 -y

При установке Вы увидите запросы пакет, на них нужно отвечать так

Web server to reconfigure automatically: <-- apache2 
Configure database for phpmyadmin with dbconfig-common? <-- Yes
MySQL application password for phpmyadmin: <-- Press enter

Теперь вводим пару команд

a2enmod suexec rewrite ssl actions include cgi
a2enmod dav_fs dav auth_digest headers

и лезем настраивать Apache

nano /etc/apache2/conf-available/httpoxy.conf


    RequestHeader unset Proxy early


a2enconf httpoxy

Перезапускаем Apache

service apache2 restart

Теперь идём в мим типы и отключаем руби

nano /etc/mime.types

закоментировать

#application/x-ruby                             rb

Рестартуем

service apache2 restart

Далее ставим опкеш для апача и fastcgi

apt-get install php7.0-opcache php-apcu libapache2-mod-fastcgi php7.0-fpm -y

a2enmod actions fastcgi alias 

service apache2 restart

Теперь ставим Letsenscrypt

apt-get -y install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
add-apt-repository "deb http://dl.hhvm.com/ubuntu xenial main"
apt-get update
apt-get -y install hhvm

apt install software-properties-common
add-apt-repository ppa:certbot/certbot
apt update
apt -y remove letsencrypt
apt -y install python-certbot-apache

Ставим mailman

apt-get install mailman

Languages to support: <-- en (English) 
Missing site list <-- Ok

Создаём новый лист

newlist mailman

Enter the email of the person running the list: <-- admin email address, e.g. [email protected] 
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 

 

Теперь правим альясы

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

service postfix restart
ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf
service apache2 restart
service mailman start

Ставим ftp и квоты. Квоты у нас работать не будут по причине малого объёма места на диске

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool -y

Перенастраиваем FTP

nano /etc/default/pure-ftpd-common

Ищем 2 параметра и приводим к следующему виду

STANDALONE_OR_INETD=standalone
VIRTUALCHROOT=true

Генерируем сертификаты

echo 1 > /etc/pure-ftpd/conf/TLS
mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Тупо заполняем всё что просят

Выставляем права и рестартуем сервис

chmod 600 /etc/ssl/private/pure-ftpd.pem
service pure-ftpd-mysql restart

Ставим DNS логеры анализаторы и другие плюшки

apt-get install bind9 dnsutils haveged vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl -y

Редактируем крон для статистики

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

 

Ставим пакеты

apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils -y

Ставим Jailkit

cd /tmp 
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
./debian/rules binary
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*

Ставим бан и настраиваем его

apt-get install fail2ban -y

nano /etc/fail2ban/jail.local

apt-get install fail2ban -y

nano /etc/fail2ban/jail.local

[pureftpd]
enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

[postfix-sasl]
enabled  = true
port     = smtp
filter   = postfix-sasl
logpath  = /var/log/mail.log
maxretry = 3

nano /etc/fail2ban/filter.d/pureftpd.conf

[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =

nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf

[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex =

echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf

service fail2ban restart

 

Ставим файевол

apt-get install ufw -y

Ставим морду для почты

apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce -y

При установке запросит пару параметров, делаем так:

Configure database for roundcube with dbconfig-common? <-- Yes
MySQL application password for roundcube: <-- Press enter

Теперь настраиваем морду

nano /etc/apache2/conf-enabled/roundcube.conf

Добавляем 

AddType application/x-httpd-php .php


nano /etc/roundcube/config.inc.php

$config['default_host'] = 'localhost';

Рестартуем Apache

service apache2 restart

 

Этап 9 - Установка ISPConfig 3

Здесь всё легко, в начале качаем её, распаковываем, ставим и отвечаем на вопросы которые она задаёт

cd /tmp 
wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/
php -q install.php
Select language (en,de) [en]: <-- Hit Enter

Installation mode (standard,expert) [standard]: <-- Hit Enter

Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.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: 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
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) [server1.canomi.com]: <-- Enter the server hostname, in my case: server1.example.com
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: server1.example.com
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

 

Этап 10 - Радуемся

Всё, идём по адресу сервака в порт 8080 https://IP-Address:8080/

 

 

 

О статье

Автор: Владимир Корниенков

Дата публикации: Среда, октября 3, 2018