Сегодня рассмотрим вариант установки панели управления хостингом от регистратора 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. listadmin@example.com
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/