Пятница, Май 15, 2026

Безопасность сервера. Глава 1: Linux.

Безопасность сервера. Глава 1 Linux

Безопасность сервера. Глава 1: Linux.

Привет! Сегодня поговорим про безопасность сервера. В особенности линукс сервера.

Тут будет разобрана основа без которой нельзя продолжить обеспечивать безопасность.

Начнем с проста, при покупке вашего сервера вам устанавливают в большинстве случаев полностью пустую систему. Которая может подвергаться проверкой вредоносных ботов:

[!] Попытки кражи конфигов:
      1) 187.17.228.218 -> /admin/config.php
      2) 39.97.232.107 -> /backup/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

В первом случае бот из Бразилии(как минимум ip от туда) попытался пропарсить мой сайт и нашел конфиг, но не смог прочитать из-за правильных настроек прав, в итоге бот получил ошибку 404 Not Found.

Во втором случае бот хотел сделать Reverse shell при помощи файла eval-stdin.php, но из-за той же причины не смог получить к нему доступ, но лучше его удалить совсем если на сервере не происходит активной разработки!

Как минимум эта ситуация должна вас напрячь, а в время когда почти каждый пользуется VPN, покупает или создает свой, данная тема актуально как ни когда.

1. Новый пользователь

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

Дальнейшие действия будут производится на ubuntu 22.04.

apt update && apt upgrade -y // Обновление и установка всех пакетов
useradd -m -s /bin/bash user // user - ваше имя пользователя
							 -m - создания локальной директории /home/user/
							 -s - выбор стандартного shell`а
passwd user				    // Ввод пароля для нового пользователя
usermod -aG sudo user		// Добавления пользователя в группу sudo для использования одноименной команды

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

2. Создания ключей (сертификатов)

Использование SSH-ключей намного безопаснее, чем использование обычного пароля. Ключ состоит из двух частей: приватной (хранится у вас) и публичной (загружается на сервер).

Шаг 1: Генерация ключей

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

ssh-keygen -t ed25519 -C "your_email@example.com"

Примечание: ed25519 — современный и быстрый алгоритм. Если нужен старый формат, используйте -t rsa -b 4096.

Enter file in which to save the key: Нажмите Enter (сохранит в C:UsersИмя.sshid_ed25519).

Enter passphrase: Можно нажать Enter (без пароля) или ввести пароль для дополнительной защиты самого ключа.

В итоге у вас:

  • id_ed25519Приватный ключ (НИКОМУ НЕ ОТДАВАЙТЕ).
  • id_ed25519.pubПубличный ключ (его мы загрузим на VDS).

Для загрузки ключа на сервер требуется:

  1. Создать папку в корне user`a с названием ".ssh"
  2. В файл "authorized_keys" записать Ваш публичный ключ.

Готово, вы установили сертификаты на сервер. Теперь можете заходить на сервер без пароля.

Раз Вы можете заходить без пароля, нужно устранить уязвимость под названием BruteForce то есть подбор пароля.

3. Настройка ssh

ОСТОРОЖНО если вы после прохождения данного этапа потеряете Ваш приватный ключ. То утеряете доступ к серверу.

Заходим в конфиг ssh:

sudo nano /etc/ssh/sshd_config

И изменяем параметры на эти:

Port номер_порта 					// Меняем порт на нестандартный, для защиты от глупых ботов
PermitRootLogin no 					// Отключает аккаунт root
ChallengeResponseAuthentication  no   // Отключает альтернативные способы входа (кроме сертификатов) 
PasswordAuthentication no 			 // Отключает вход по паролю
UsePAM no						    // Отключения входа при помощи Pluggable Authentication Modules
# Убедитесь, что эта опция установлена в 'no' если PasswordAuthentication no

Не забываем перезапустить службу SSH: sudo systemctl restart sshd

Прописываем exit, затем подключаемся к серверу с нового порта: ssh имя_пользователя@ip_сервера -p номер_порта.

4. FireWall

Наша защита портов, тут главное не накосячить и не закрыть порт который вы ввели раннее.

Основные команды:

sudo ufw status  						    // Показывает статус, включенно или нет
sudo ufw enable  						    // Включение
sudo ufw disable 						    // Выключение
sudo ufw allow номер_порта/протоков - пример: // Открытие порта
sudo ufw allow 22/tcp
sudo ufw dissalow номер_порта/протокол		 // Закрытие порта

По стандарту все порты закрыты, поэтому смысла специально закрывать все порты руками не требуется.

5. Вывод

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

Спасибо за чтение!.

RSS | ATOM


Добавить комментарий

Заполните форму ниже, чтобы добавить свои комментарии


Подсказки BBCode

 

Подписаться на фид