- PVSM.RU - https://www.pvsm.ru -

Софт для VDS-сервера, на который стоит обратить внимание новичкам

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 1


Если вы арендовали свой первый VDS-сервер [1] и не знаете, с чего начать, это нормально — поначалу всё может казаться сложным: терминал, настройки, безопасность… Чтобы упростить старт, я собрал список утилит, которые стоит установить в первую очередь. Они помогут настроить сервер под ваши задачи, повысят удобство его использования и защитят от потенциальных угроз.

▍ Fail2Ban

Начнём с Fail2Ban. В первую очередь, данное ПО предназначено для повышения безопасности вашего VDS-сервера. Программа ведёт логирование и автоматически блокирует IP-адреса, с которых производится подозрительная активность (например, в случае брутфорса, когда кто-то пытается получить доступ к вашему серверу путём перебора паролей).

Для установки утилиты выполним следующие команды:

sudo apt update
sudo apt install fail2ban -y

Далее создаем файл с конфигурацией и открываем его:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

В файле необходимо найти [sshd] и прописать следующие правила:

[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
maxretry = 3
findtime = 10m
bantime  = 5m

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 2

  • enabled = true (включает защиту для ssh)
  • port = ssh
  • logpath = /var/log/auth.log (путь до папки с логами авторизации)
  • maxretry = 3 (максимальное количество попыток, после которых происходит блокировка)
  • bantime = 10m (время, на которое блокируется IP. В данном примере это 10 минут)
  • findtime = 5m (промежуток, в котором считаются неудачные попытки входа. Т. е. если в течение 5 минут будет 3 неудачных попытки входа, IP заблокируется)

Сохраняем и закрываем файл, после чего перезапускаем Fail2Ban с помощью команды:

sudo systemctl restart fail2ban

Теперь, когда при попытке подключиться к серверу вводим пароль неправильно 3 раза, IP блокируется, а появляется таймаут.

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 3

▍ UFW

UFW (Uncomplicated Firewall) — это упрощённая оболочка к встроенному файрволу Linux — iptables. Используется он для управления входящими и исходящими подключениями. С помощью данного файрвола можно ограничить доступ к VDS-серверу по IP-адресу или портам, блокировать лишние подключения и открывать доступ только к определённым портам (например, оставить открытым порт 22 для доступа к серверу по SSH и порты 80/433 — для работы сайтов).

Для установки UFW выполним команду:

sudo apt install ufw

В момент первой настройки, чтобы случайно не ограничить себе доступ к серверу, лучше отключить файрвол:

sudo ufw disable

Далее в первую очередь разрешаем доступ к серверу по SSH, чтобы после включения файрвола не обрезать себе доступ к серверу:

sudo ufw allow 22/tcp

В случае, если на сервере размещён сайт, необходимо также разрешить к нему доступ. Для этого добавляем правила:

sudo ufw allow 80/tcp #для HTTP
sudo ufw allow 443/tcp #для HTTPS

Если необходимо ограничить доступ к серверу и позволить подключаться к нему только с определённого IP-адреса, добавляем:

sudo ufw allow from 1.2.3.4 #где 1.2.3.4 это ваш IP

И включаем файрвол командой:

sudo ufw enable

Отлично. Теперь, чтобы проверить, какие правила настроены на сервере, достаточно ввести команду:

sudo ufw status numbered

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 4

▍ htop

Далее рассмотрим htop, продвинутую версию встроенной утилиты для мониторинга ресурсов сервера top. Утилита показывает нагрузку на процессор, оперативную память, загруженность системы, а также даёт возможность управлять процессами (например, убить зависший процесс).

Из ключевых отличий от top стоит отметить более удобный и наглядный интерфейс, возможность взаимодействовать с процессами с помощью мыши, удаление процесса одной кнопкой.

Для установки выполняем команду:

sudo apt install htop

А для запуска команду:

htop

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 5

В самом верху мы видим:

  • Загруженность каждого ядра
  • Mem — загруженность оперативной памяти
  • Swp — использование виртуальной памяти (когда не хватает оперативной)
  • Tasks — количество единовременно запущенных процессов
  • Load average — средняя нагрузка за 1, 5 и 15 минут
  • Uptime — время работы VDS [2] без перезагрузки.

Ниже представлен список самих процессов. Ключевые значения:

  • PID — ID процесса
  • USER — под каким пользователем был запущен процесс
  • RES — количество потребляемой оперативной памяти
  • CPU% / MEM% — нагрузка на процессор и память
  • TIME+ — время работы процесса
  • COMMAND — команда, с помощью которой был запущен процесс.

Чтобы быстро завершить определенный процесс, просто выбираем его и нажимаем F9.
Для выхода из мониторинга достаточно нажать q.

▍ Monit

Monit — ещё одна утилита для мониторинга, но в отличии от htop она следит за состоянием процессов (почтовиков, бд, веб-серверов) и выполняет определенные действия в случае сбоя (например, перезапускает процесс или отправляет уведомление о сбое). Доступ к мониторингу можно получить через веб-интерфейс, что значительно повышает удобство использования

Для установки выполняем команду

sudo apt install monit

Далее настроим доступ к monit через веб интерфейс. Открываем конфигурационный файл:

sudo nano /etc/monit/monitrc

И добавляем в него следующие строки:

set httpd port 2812 and
    use address 0.0.0.0
    allow admin:password

Строка use address 0.0.0.0 разрешает доступ к веб-интерфейсу со всех IP. При необходимости можно указать конкретный IP, и тогда доступ будет только с него.

Строка allow admin:password — это логин и пароль для доступа к веб-интерфейсу. Их можно указать на свое усмотрение.

Сохраняем файл и перезагружаем службу:

sudo systemctl restart monit

Открываем браузер и в адресную строку вводим http://<IP_сервера>:2812 (указывая IP vds [2] сервера). Вводим логин и пароль и попадаем в сам интерфейс, где можно увидеть все процессы, за которыми следит Monit.

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 6

В качестве примера, добавим ещё один процесс (Apache) и принудительно остановим его. Устанавливаем Apache командой:

sudo apt install apache2

Вновь открываем файл конфигурации Monit:

sudo nano /etc/monit/monitrc

И в самый конец добавляем следующее:

check process apache2 with pidfile /var/run/apache2/apache2.pid
    start program = "/etc/init.d/apache2 start"
    stop program = "/etc/init.d/apache2 stop"
    if failed host 127.0.0.1 port 80 protocol http
        then restart

И перезапускаем Monit:

sudo systemctl restart monit

Теперь, когда Monit не сможет подключиться к Apache по 80-му порту, он автоматически перезапустит сервис. Открываем веб-интерфейс и видим, что появилась новая строка.

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 7

Остановим работу Apache, выполнив команду:

sudo systemctl stop apache2

Спустя несколько секунд видим что в веб-интерфейсе поменялся статус с “OK” на “Does not exist”.

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 8

Ждём пару минут и Apache автоматически запустится.

▍ Docker

Ну и напоследок самое вкусное — Docker. Мне кажется, каждый пользователь Linux слышал о нём, а пользуется им каждый второй. Докер позволяет запускать приложения в так называемых контейнерах. Думаю, можно сравнить контейнер с виртуалкой. У него есть своя файловая система и свои процессы, но использует он ядро основной системы. Получается что-то вроде виртуалки внутри виртуалки. Каждый контейнер может содержать свой набор софта, который никак не повлияет на работу другого контейнера. Например, в одном контейнере может быть версия Python 3.10, а в другом Python 3.11, и это никак не скажется на работе контейнеров. Они изолированы друг от друга.

Docker часто используется:

  • Для быстрого переноса и развертывания приложения на новую систему
  • Быстрого создания копий приложений
  • Тестирования (можно создать копию приложения и смело протестировать её, не боясь что это повлияет на работу основной программы или системы в целом)

Для установки Docker выполняем следующие действия.

Устанавливаем необходимые пакеты:

sudo apt install 
    ca-certificates 
    curl 
    gnupg 
    lsb-release

Добавляем официальный GPG-ключ Docker:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | 
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Добавляем репозиторий Docker:

echo 
  "deb [arch=$(dpkg --print-architecture) 
  signed-by=/etc/apt/keyrings/docker.gpg] 
  https://download.docker.com/linux/ubuntu 
  $(lsb_release -cs) stable" | 
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Обновляем список пакетов и затем устанавливаем Docker:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Теперь в качестве примера запустим два контейнера с разными версиями Python:

docker run -dit --name python310 python:3.10 bash
docker run -dit --name python311 python:3.11 bash

Выполнив команду docker ps? можно убедиться, что оба контейнера работают:

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 9

Выполнив команду docker exec python310 python --version, видим, что в контейнере установлен Python 3.10.17.

Делаем то же самое для второго контейнера docker exec python311 python --version и видим версию Python 3.11.12.

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 10

Установка Gitlab с помощью Докера
В качестве ещё одного примера установим на сервер gitlab, используя официальный докер-контейнер с Docker Hub. Контейнер содержит в себе сам Gitlab, а также необходимые для его корректной работы программы (PostgreSQL, Nginx, Unicorn и др.). Для установки выполним команду:

sudo docker run -d --name gitlab -p 8080:80 -p 2222:22 gitlab/gitlab-ce:latest

Где:

gitlab/gitlab-ce — это официальный образ GitLab Community Edition
latest — последняя доступная версия

Теперь при переходе в браузере по адресу http://IP-сервера:8080 и дождавшись окончания настройки, мы увидим интерфейс Gitlab:

Софт для VDS-сервера, на который стоит обратить внимание новичкам - 11

▍ Бэкапы

Прежде чем завершить данную статью, отдельно хотелось бы отметить создание резервной копии сервера. Да, как правило, хостинг-провайдеры [2] самостоятельно делают бэкапы виртуалок, но всегда надёжнее хранить данные для восстановления сервера при себе. Для создания резервной копии подойдет встроенная утилита tar. Для начала создадим папку, где будут храниться бэкапы:

mkdir ~/backups

И с помощью следующей команды создаем сам бэкап:

sudo tar -cvpzf ~/backups/full_backup.tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/mnt --exclude=/media /

Для проверки создания бэкапа можно воспользоваться командой:

ls -l ~/backups/full_backup.tar.gz

При необходимости архив можно выгрузить с сервера с помощью FTP или способов, и когда потребуется, загрузить обратно на сервер и восстановить данные из него. Для восстановления используем команду:

sudo tar -xvpzf ~/backups/full_backup.tar.gz -C /

▍ Заключение

Разумеется, это далеко не полный список полезных утилит, которые стоит установить на сервер. Но, на мой взгляд, с них удобно начать. Если у вас есть свои must-have инструменты для VDS [2] — делитесь ими в комментариях, будет интересно обсудить.

© 2025 ООО «МТ ФИНАНС»

Автор: Wolfurud

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/418488

Ссылки в тексте:

[1] VDS-сервер: https://ruvds.com/ru-rub

[2] VDS: https://www.reg.ru/?rlink=reflink-717

[3] Источник: https://habr.com/ru/companies/ruvds/articles/902596/?utm_source=habrahabr&utm_medium=rss&utm_campaign=902596