Назад

Создаем безопасный и быстрый веб-сервер на Webinoly

Webinoly — простыми словами, это веб-сервер на основе Nginx + MariaDB (MySQL) + PHP, для Linux систем. Очень простая удобная связка, с управлением через консоль.

В сущности, зачем ставить этот стек, нет смысла рассказывать. Все написано в первой строчке, что, зачем и почему 🙂

Ставить стек лучше на чистый сервер, я выбрал для себя Ubuntu server 20.

Часть 1. Подготавливаем сервер

Подключаемся к сервере через SSH, я рекомендую MobaXterm.

С самого начала мы обезопасим сервер от ботов и закроем возможные дыры в безопасности.

sudo apt install fail2ban -y && sudo apt install ufw -y && sudo apt install nano -y && sudo apt update && sudo apt upgrade -y
sudo touch /etc/fail2ban/jail.local && sudo nano /etc/fail2ban/jail.local

Откроется редактор, вставим в него код:

[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
findtime = 600
maxretry = 3
bantime = 43200

Нажимаем ctlr + x, далее Y и enter, чтобы сохранить.

Внимание! Эта часть может быть сложной, поэтому если хотите, можете этот шаг до настройки файрволла.

Далее, скачиваем утилиту PuTTYgen и генерируем в ней публичный и приватный ключи. Оба ключа сохраняем.

Приватный ключ нам потребуется для входа на сервер, публичный вставляем в настройки SSH на сервере, как указано ниже.

Добавляем наш ключ на сервер:

sudo mkdir ~/.ssh
cat >> .ssh/authorized_keys << EOF

Нажимаем Enter

/* вставляем сгенерированный публичный ключ и {Enter}*/

Нажимаем Enter

EOF

Нажимаем Enter.

Меняем порт на котором работает SSH и отключаем авторизацию по паролю:

sudo nano /etc/ssh/sshd_config

Откроется редактор, изменим значения и убираем #, как ниже:

PasswordAuthentication no

Выходим CTRL + X, Y + Enter.

Настраиваем файрволл

sudo ufw allow 80 && sudo ufw allow 443 && sudo ufw allow 22 && sudo ufw limit 22/tcp & sudo ufw enable

В конце мы подтверждаем игриком y + enter, запуск фаервола.

Вместо стандартного порта SSH 22, можно выбрать любой другой порт. В примере ниже, мы поменяем его на 9999.

sudo ufw allow 9999 && sudo ufw limit 9999/tcp && sudo ufw deny 22
sudo nano /etc/ssh/sshd_config

Убираем # и меняем значение #Port 22

Port 9999

Выходим CTRL + X, Y + Enter

После перезагрузки, не забываем прописать новый порт, в настройках SSH-клиента.

Часть 2. Установка Webinoly

Установка очень простая:

wget -qO weby qrok.es/wy && sudo bash weby

Меняем стандартный порт консоли администрирования, на котором в частности находится phpMyAdmin, webinoly 22222 на какой-либо другой, открываем входящие и закрываем исходящие соединения.

В примере мы используем стандартный порт webinoly 22222.

sudo webinoly -tools-port=22222 && sudo ufw allow in 22222/tcp && sudo ufw allow out 22222/tcp

В webinoly наш сервер по http закрыт от посторонних и чтобы преодолеть эту защиту, потребуется логин и пароль. Создадим их.

sudo httpauth -add=[user,password] (user и password - ваши логин и пароль)

Включим защиту для консоли cms wordpress, этой же связкой логина и пароля.

sudo httpauth -wp-admin=on

Часть 3. Установка CMS Wordpress

Wordpress установить очень просто. Условимся, что ранее мы уже прописали адрес сервера, кстати я рекомендую держать домена на Beget, тариф парковка — бесплатный! И сам хостинг отличный, лучший я бы сказал. Работал с ним до того, как стал сам себе хостингом 🙂

Так вот, прописали адрес сервера у регистратора домена или парковщика, далее, можно установить cms.

sudo site domen.ru -wp

Дальше он все сделаем сам. Установка со своими параметрами происходит так:

sudo site domen.ru -wp=custom

Включаем SSL и кэширование.

sudo site domen.ru -ssl=on && sudo site domen.ru -cache=on

Переходим по адресу domen.ru и продолжаем настройку cms wordpress. Вводить данные которые были на этапе установке, не потребуется.

Переходим в консоль cms по адресу domen.ru/wp-admin и включаем кэширование Redis.

Активируем кэширование fastcgi через плагин Nginx Helper, ставим галочку Enable Purge и Save all changes. Далее, нужно поменять тип очистки Purge Method, на Delete local server cache files и Save all changes. К слову, все это пишет сам webinoly в процессе его настройки, так что читайте внимательно консоль.

Напоследок сделаем полную очистку и апдейт нашего сервера.

sudo apt update && sudo apt upgrade -y && sudo webinoly -update && sudo apt autoclean -y && sudo apt clean && sudo apt autoremove && sudo webinoly -clear-cache=all && sudo reboot

Все, на этом мы закончили простейшую установка веб-сервера на стеке LEMP Webinoly. Если есть вопросы — пишите в комментариях.

Dmitrii
Dmitrii
https://itstar.space
IT Project Manager, организатор IT-конференций в РФ, владелец 11 кошек и чихуа-хуа. Из которых половину спасли с женой из Турции, остальных спасли в РФ. В прошлом изобретатель с 16 лет, руководитель многочисленных лабораторий, проф. фотограф и еще хорошо готовлю. Короче очень клевый чувак, пацифист и любитель животных. Единственное, не веган :(
Подписаться
Уведомить о
guest
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
DD
DD
2 лет назад

Дмитрий спасибо 🙂