Aeza

Aeza

Блог компании
Aeза это быстрый хостинг Телефон (бесплатно по России): 8 (800) 200-60-13 Телеграм поддержки: https://t.me/aezasupport_bot E-mail: support@aeza.ru Наш сайт: aeza.ru Чат в телеграме: https://t.me/aezachat_ru
На Пикабу
196 рейтинг 61 подписчик 0 подписок 31 пост 9 в горячем
Награды:
Пикабу 17 лет!
3

Как подключиться к Windows VPS по RDP и подготовить сервер к работе

Как подключиться к Windows VPS по RDP и подготовить сервер к работе

Разберём, как подключиться к Windows VPS и подготовить его к работе. Порядок одинаковый, откуда бы вы ни подключались: из Windows, macOS или Linux. До установки приложений нужно проверить сертификат, заменить временный пароль и ограничить RDP. При ошибке в настройках потребуется другой способ входа: консоль в панели провайдера.

Инструкция рассчитана на Windows Server 2025 Desktop Experience вне домена и клиент Windows 11. Команды выполняются на сервере в Windows PowerShell 5.1 x64 от администратора. В домене часть настроек задаётся групповыми политиками.

Какие данные нужны для первого подключения по RDP?

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

Что проверить в письме и панели

В панели провайдера сверьте выданный IP, регион, число vCPU, объём памяти и диска с заказом. Там же проверьте выбранный образ Windows: для этой инструкции нужна установка с графическим интерфейсом Desktop Experience. Если параметры расходятся, выясните причину до переноса данных.

В инструкции провайдера о том, как подключиться к VPS Windows, найдите имя пользователя и порт. Обычно RDP использует 3389, но образ или сетевые настройки могут предусматривать другой вариант. Временный пароль перенесите в менеджер паролей. В заметке о сервере достаточно ссылки на нужную запись.

Следующий шаг сделайте через аварийную консоль в панели: войдите в Windows и убедитесь, что можете открыть настройки системы. Если срок действия временного пароля истёк и RDP не пускает, смените пароль здесь. Консоль должна давать доступ к управлению Windows, иначе исправить ошибочное правило RDP через неё не получится.

Если в панели есть сетевой экран, ограничьте RDP своим внешним IP уже сейчас. Саму панель защитите многофакторной аутентификацией (MFA): через неё доступны консоль и управление VPS. На скриншотах скрывайте пароли, токены и личные данные. Пример IP ниже взят из диапазона для документации. При настройке правил указывайте свой адрес.

Первый сеанс и проверка сертификата

В Windows клиент RDP открывается командой mstsc через Win+R. В нём укажите адрес сервера. Для нестандартного порта используйте запись «адрес:порт». Если нужно разобраться, как подключиться к Windows VPS-серверу с macOS, подойдёт Windows App. В Linux можно использовать Remmina с поддержкой RDP.

Клиент может предупредить о самоподписанном сертификате или несовпадении имени. Прежде чем разрешать подключение, сравните сертификат с тем, который использует сервер. Его отпечаток можно получить через консоль провайдера:

$rdp = Get-CimInstance -Namespace root/cimv2/TerminalServices `

-ClassName Win32_TSGeneralSetting `

-Filter "TerminalName='RDP-tcp'"

$rdp | Select-Object SSLCertificateSHA1Hash,

UserAuthenticationRequired

Значение SSLCertificateSHA1Hash должно совпасть с полем «Отпечаток» в свойствах сертификата на клиенте, пробелы и регистр не важны. Также проверьте срок действия и имя. При необъяснимом расхождении остановитесь и выясните причину через поддержку. Для постоянного доступа по DNS-имени назначьте службе RDP сертификат, которому доверяет клиент и в котором указано это имя.

Если вход недоступен, через консоль проверьте, разрешён ли RDP в sysdm.cpl. После подключения сохраните версию ОС из winver и снимок окна сертификата без секретов, они пригодятся при проверке настроек.

Отдельные учётные записи вместо временного доступа

Теперь создайте свою запись с уникальным паролем. New-LocalUser добавит пользователя, а Add-LocalGroupMember включит его в группу администраторов. Обращение по SID находит группу при любом языке Windows:

$pw = Read-Host 'Пароль opsadmin' -AsSecureString

New-LocalUser -Name 'opsadmin' -Password $pw

$admins = Get-LocalGroup -SID 'S-1-5-32-544'

Add-LocalGroupMember -Group $admins.Name `

-Member "$env:COMPUTERNAME\opsadmin"

Проверьте подключение к Windows VPS по RDP с именем ИМЯ_СЕРВЕРА\opsadmin и вход через консоль. После этого смените временный пароль. Исходную запись отключайте, если она не нужна для восстановления. Для задач без повышенных прав создайте обычного пользователя в lusrmgr.msc. Если ему нужен RDP, добавьте его в группу «Пользователи удалённого рабочего стола».

В secpol.msc откройте политику блокировки. Пример: 10 ошибок, блокировка на 15 минут, сброс счётчика через 15 минут. При низком пороге посторонний сможет постоянно блокировать ваш вход.

Как защитить RDP и не потерять удалённый доступ?

Создайте отдельного администратора, включите NLA и разрешите RDP только с доверенных адресов, сохранив открытой аварийную консоль. Затем проверьте новый сеанс: действующее подключение может продолжать работать после изменения правил и само по себе не подтверждает доступность входа. Если внешний IP меняется, правило придётся обновлять, поэтому держите под рукой доступ к панели.

NLA и правила доступа к RDP

Первичная настройка Windows VPS продолжается в sysdm.cpl: на вкладке удалённого доступа включите требование NLA. Этот механизм проверяет учётные данные до создания полного сеанса. Повторите команду проверки сертификата: у свойства UserAuthenticationRequired должно быть значение 1.

Сетевой доступ настраивается в wf.msc. Для активного профиля брандмауэр должен быть включён, а входящие подключения по умолчанию заблокированы. Создайте входящее разрешение для TCP на порт RDP, обычно 3389. В области действия укажите свой внешний IP, например 203.0.113.25. Для UDP задайте такое же ограничение либо отключите его разрешающее правило, если этот транспорт не нужен. Правила должны действовать в активном профиле сети.

Остальные правила тоже нужно просмотреть: старое разрешение «с любых адресов» оставит RDP открытым. Учитывайте IPv6 и правила с диапазоном портов. Общий запрет на порт RDP заблокирует и нужный вход, поскольку явный запрет имеет приоритет. Список действующих правил доступен в разделе «Наблюдение».

Оставив консоль открытой, проверьте новый вход с разрешённого адреса и отказ с другого. Если порт открыт всему интернету, любой может пробовать войти. Смена его номера этого риска не устраняет.

Обновления, время и региональные настройки

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

После перезапуска откройте новый RDP-сеанс и проверьте, сохранились ли NLA, профиль сети и ограничения доступа. Полный номер сборки из winver и номера установленных обновлений (KB) из журнала Windows Update запишите в заметку о сервере. По ним позже можно будет установить, какие исправления уже были применены и после какого обновления появилась проблема.

Безопасность RDP на VPS зависит и от обновлений самой Windows, поскольку ограничения по IP не исправляют уязвимости службы. При ошибке установки сохраните её код и выясните причину. Затем снова запустите проверку обновлений, чтобы убедиться, что система не ждёт ещё одной установки или перезагрузки.

Для проверки времени используйте w32tm /query /status и Get-TimeZone. Первая команда показывает состояние синхронизации, вторая выводит часовой пояс. Неверное системное время мешает проверке сертификатов и сопоставлению событий. Для журналов разных машин удобно выбрать UTC. Региональный формат дат и чисел настройте с учётом приложений, он может влиять на чтение дат и чисел из CSV.

Что видно в журнале входов

Первый вход в Windows Server удобен для настройки аудита. В secpol.msc откройте расширенную политику аудита: включите аудит входа в систему и управления учётными записями пользователей, выбрав «Успех» и «Отказ». Затем войдите повторно и найдите событие в журнале Security через eventvwr.msc.

Событие 4624 с типом 10 означает успешный удалённый интерактивный вход. 4625 фиксирует отказ: при NLA встречается тип 3. Он бывает и у других сетевых входов, поэтому нужны также имя пользователя, время, источник и код ошибки. 4740 сообщает о блокировке учётной записи.

Для уведомления в системе мониторинга можно взять начальный порог: 10 отказов за 5 минут для одной пары «IP и пользователь». Успешный вход после такой серии стоит проверить отдельно. Затем порог уточняют по обычной активности сервера, чтобы не получать лишние уведомления.

Брандмауэр и NLA не добавляют второй фактор. MFA можно подключить через RD Gateway, но для этого потребуется отдельно настроить шлюз и службу аутентификации. Клиенты должны входить только через шлюз. Прямое подключение к RDP обходит такую проверку.

Какие настройки Windows изменить сразу после входа?

1.  Заменить временный пароль и разделить рабочую и административную учётные записи.

2.  Включить NLA и ограничить доступ к RDP доверенными адресами.

3.  Установить обновления, проверить время и включить аудит входов.

Производительность сервера и качество сеанса

Если удалённый рабочий стол VPS реагирует с задержкой, причина может быть как в нагрузке на Windows, так и в соединении. На перерисовку окон влияют задержка сети, потери пакетов и обработка изображения на клиенте. Чтобы оценить сам сервер, нужно посмотреть, что происходит внутри системы.

В resmon видны загрузка CPU, доступная память и процессы с дисковой активностью. Для сравнения запусков в perfmon запишите показатели с шагом в секунду за 2–5 минут одной и той же нагрузки. Подойдут % Processor Time, Available MBytes и Avg. Disk sec/Read либо Avg. Disk sec/Write. Названия счётчиков зависят от языка ОС. Дисковые задержки указаны в секундах, для миллисекунд умножьте их на 1000.

Чтобы оценить скорость обработки данных, запускайте тест скриптом без графического интерфейса. Дождитесь завершения обновлений, отметьте объём данных и фоновые задачи. Сохранённый ряд измерений покажет, была ли задержка постоянной или возникла коротким всплеском.

Сеть проверяйте передачей известного объёма данных до выбранного узла, отдельно фиксируя время и ошибки. Результат зависит от всего маршрута. Если приложение работает быстро, а сеанс тормозит, уменьшите разрешение и визуальные эффекты RDP. Отключите ненужное перенаправление дисков и принтеров, а буфер обмена оставьте только там, где он нужен для работы.

Снимок, резервная копия и проверка консоли

Перед установкой приложений снова проверьте Windows Update. В английском интерфейсе нужная кнопка называется Check for updates. Когда обновления завершены, можно сохранить исходное состояние. Снапшот (снимок) VPS удобен для отката неудачной установки, но его состав и согласованность данных зависят от платформы провайдера. Не считайте любой снимок работающей машины корректной копией базы данных.

Резервная копия должна пережить потерю самого VPS и иметь историю версий. Храните её отдельно от сервера и проверьте восстановление нужных файлов. Снимок на том же хранилище не покрывает его отказ. Убедитесь, что восстановленные файлы открываются и содержат нужные данные.

Проверку аварийного доступа проведите до размещения рабочих данных. Сначала войдите через консоль и найдите своё правило RDP. Других разрешений для этого подключения быть не должно. Затем временно отключите правило и убедитесь, что новый RDP-сеанс не открывается. Через консоль включите его обратно и повторите вход.

На случай потери пароля нужен отдельный порядок действий. Запишите, где хранятся данные резервного администратора, а при его отсутствии уточните процедуру сброса у провайдера. Консоль обходит сетевые ограничения RDP, но для входа в Windows по-прежнему нужен пароль. Ответственный за сервер должен иметь доступ и к панели, и к резервным учётным данным.

Когда понятно, как подключиться к Windows VPS, остаётся проверить вход после перезагрузки и восстановление через консоль. Вы должны входить под своей учётной записью, а с постороннего адреса подключение должно отклоняться. Через консоль вы сможете исправить правило RDP, даже если оно закрыло вход по сети. Если одна из проверок не пройдена, сначала устраните причину, а затем переносите данные.

Результат подготовки сохраните вместе с датой, именем администратора, параметрами VPS и версией образа. Добавьте снимки сертификата и NLA, правила с адресами и профилями, номера обновлений, события проверочного входа и результат восстановления доступа. Если проблема появится после следующего изменения, по этим записям будет проще найти отличия и понять, какую настройку нужно вернуть.

Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2RanymW91kw
Показать полностью 1
6

Тюнинг сетевого стека Linux через sysctl

Тюнинг сетевого стека Linux через sysctl

Тюнинг сетевого стека Linux через sysctl помогает, когда передача упирается в регулируемый им лимит. Ниже – ориентиры для TCP на VPS: что проверять в бенчмарке сетевых sysctl Linux и какие параметры дают эффект.

Какие сетевые sysctl дают измеримый прирост?

Эффект дают параметры, которые снимают подтверждённое ограничение: например, предел TCP-буфера или очереди новых соединений. Прирост нужно проверить на той же нагрузке вместе с задержками и ошибками. Если скорость ограничивает процессор, приложение или канал провайдера, увеличение сетевых лимитов само по себе эту проблему не решит.

Сначала симптом

Бенчмарк сетевых sysctl Linux должен воспроизводить проблему: медленную передачу файла или отказы при наплыве клиентов. Исходный прогон показывает скорость, число ошибок и повторных передач TCP, загрузку ядер. Для запросов приложения нужны медиана и p99 – граница времени ответа для 99% запросов.

Где задерживается пакет

В VPS с virtio-net пакет проходит через сокет, стек гостя, виртуальный адаптер и сеть хоста. Команда ss -tim показывает состояние TCP и память сокета, nstat – сетевые счётчики, tc -s qdisc – статистику очередей отправки. Sysctl для пропускной способности действует лишь на своём участке: sysctl гостя не меняет настройки хоста.

Когда нужны буферы

Настройка TCP-буферов Linux имеет смысл, если их лимит мешает передаче. Ориентир bandwidth-delay product – скорость канала, умноженная на RTT, время пути туда и обратно. При 1 Гбит/с и 50 мс это 6,25 МБ данных в пути, а не готовый размер буфера.

Максимумы tcp_rmem и tcp_wmem нужно сопоставить с ss -tim и настройками приложения. Если автоматическая настройка буферов не достигает предела, его увеличение не поможет.

Какие популярные значения являются карго-культом?

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

Очередь новых соединений

Для тюнинга somaxconn и backlog важны оба ограничения: net.core.somaxconn и значение listen() приложения. Они ограничивают очередь установленных соединений, ожидающих accept(). Рост ListenOverflows и ListenDrops в nstat – повод проверить её. Число полуоткрытых соединений ограничивает tcp_max_syn_backlog.

Что проверить у BBR

Бенчмарк BBR в Linux требует одинаковых RTT, потерь и скорости канала. Алгоритм соединения виден в ss -ti. Настройки очереди отправки (qdisc) при сравнении должны совпадать. Кроме скорости, важны задержки и доля канала, оставшаяся другим потокам. Смена алгоритма не гарантирует выигрыша.

По одному изменению

Netem задаёт задержку и потери на отдельном стенде. Для TCP его размещают на входе принимающего узла. Повторный исходный прогон помогает отличить эффект настройки от колебаний сети. Без устойчивой разницы результат нейтральный, а ухудшение задержек или ошибок – причина отката.

Как провести корректный тест до и после изменений?

1. Сохранить версию ядра, значения sysctl, нагрузку и исходные метрики.

2.  Изменить один параметр и повторить прогоны при тех же условиях.

3.  Вернуть прежнее значение, сравнить скорость, ошибки, p99 latency и нужный счётчик.

Если предел находится на хосте

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

Как закрепить результат

Значения нужно читать и менять в network namespace – сетевом окружении нужного процесса. Пробное применение на одном сервере должно дать повторяемое улучшение до записи в /etc/sysctl.d/. Для отката нужно вернуть прежнее значение через sysctl -w и убрать постоянную настройку из файла.

Тюнинг сетевого стека Linux через sysctl стоит ограничить изменениями с подтверждённым эффектом и проверенным откатом.

Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2RanykcF7Qw
Показать полностью 1
6

Измерение лага репликации PostgreSQL под нагрузкой

Измерение лага репликации PostgreSQL под нагрузкой

Измерение лага репликации PostgreSQL под нагрузкой помогает найти этап, где копится WAL. Разберём физическую репликацию PostgreSQL 18.

Какая метрика лага отражает задержку, видимую пользователю?

На асинхронной реплике replay_lag приближённо показывает задержку появления последних изменений. Отсчёт идёт от сохранения WAL на основном сервере до получения подтверждения его применения на реплике. Для проверки конкретной транзакции отслеживают появление её контрольной записи на реплике в новом снимке данных.


sent, write, flush и replay как разные виды отставания

Для бенчмарка лага репликации PostgreSQL нужны четыре позиции WAL: sent – отправлено, write – записано в ОС, flush – сохранено на диск, replay – применено. Основной сервер показывает их в pg_stat_replication, получая последние три от реплики. pg_wal_lsn_diff считает разрывы в байтах: текущий LSN–sent, sent–write, write–flush, flush–replay.


Топология, слоты и режим подтверждения транзакций

На лаг в pg_stat_replication влияют режим репликации и частота отчётов. Поэтому до теста фиксируют версии, число реплик, synchronous_standby_names, synchronous_commit и слоты. Удержание WAL слотами ограничивает max_slot_wal_keep_size. Лимит проверяется при checkpoint.

Одна временная шкала primary и standby

Опрос обоих серверов пишет LSN и разрывы в CSV с шагом 1 с и метками UTC. Часы узлов синхронизируют. pg_last_xact_replay_timestamp() даёт время commit/abort последней применённой транзакции с основного сервера. При простое её возраст растёт даже у догнавшей реплики, lag может стать NULL.


Как создать и измерить лаг репликации под нагрузкой?

На тестовом стенде постепенно увеличивают нагрузку записи через pgbench и регулярно снимают позиции WAL с обоих серверов. Разрывы между этапами показывают, где растёт очередь, а метрики сети, CPU и дисков помогают найти причину. Если мощности хватает, нагрузка может вообще не вызвать заметного отставания.

Рост WAL, постоянная нагрузка и прекращение записи

В CSV отмечают фазы pgbench. Для расчёта скорости WAL прирост текущего LSN делят на интервал между замерами. Лаг LSN PostgreSQL выражают в байтах. Чтобы измерить время catch-up, после остановки записи фиксируют конечный LSN и ждут, пока реплика его применит.

Когда sent–write растёт из-за сети или receiver

За этим разрывом могут стоять сеть, запись WAL или задержка отчёта реплики. Причину ищут по пропускной способности, потерям и работе walreceiver. p99 лага streaming replication считают отдельно по фазам, указав единицы и шаг опроса.


Где именно копится очередь

Оба разрыва живут на реплике, но упираются в разное: первый в диск, второй в применение WAL.

Как разделить сетевое, дисковое и replay-узкие места?

1.  sent–write проверяют вместе с сетью и приёмником WAL: сам разрыв не доказывает сетевую проблему.

2.  write–flush сопоставляют с задержками fsync и очередью диска реплики.

3.  Для flush–replay проверяют CPU, I/O и конфликты запросов, учитывая отставание flush.

При synchronous replication synchronous_commit задаёт условие завершения COMMIT: remote_apply требует применения WAL на выбранных синхронных репликах.


Почему standby может задерживать применение WAL

Задержка replay WAL под нагрузкой возможна и при стабильном WAL generation rate: конфликт с запросом задерживает применение WAL. Увеличение max_standby_streaming_delay продлевает ожидание. Отмены запросов видны в pg_stat_database_conflicts. hot_standby_feedback уменьшает конфликты очистки ценой накопления старых версий строк на основном сервере.

Пороги, привязанные к байтам и времени восстановления

Порог потери данных задают по RPO, а отставание данных и время catch-up ограничивают отдельно. Сохранённый на диск реплики WAL применяется и после отказа основного сервера. Причину уточняют по network RTT, CPU и I/O обоих узлов.

Измерение лага репликации PostgreSQL под нагрузкой даёт основу для оповещений по этапам: важны размер очереди и скорость её роста. Оповещение по одному порогу lag в секундах такой картины не даёт.

Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2RanyktXdb1
Показать полностью 1
5

Время восстановления как ключевая метрика бэкапа

Время восстановления как ключевая метрика бэкапа

Время восстановления как ключевая метрика бэкапа показывает, сколько на самом деле продлится простой. Поэтому измерение времени восстановления планируют так же, как расписание копий. Результат зависит от сценария, объёма данных и доступных ресурсов. Тест на маленькой копии не подтверждает срок для рабочей базы.

Почему время восстановления важнее времени создания бэкапа?

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

Сценарий аварии и нужное состояние данных

Удалённая таблица и потерянная площадка требуют разных действий. В первом случае можно развернуть копию отдельно и вернуть нужные записи, проверив связанные данные. Во втором придётся заново собрать окружение: базу, приложение, сеть и доступы. Отказ VM при исправных дисках отличается от повреждения самой базы. После компрометации учётной записи нужно ещё убедиться, что сохранились доверенная копия и независимый доступ к ней.

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

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

Границы таймера и цели RTO и RPO

RTO означает предельно допустимое время простоя. Это цель для сервиса, с которой сравнивают фактическую длительность восстановления. RTO резервной копии сам по себе ничего не значит: один и тот же архив развернётся за разное время на разных дисках и при разной подготовке команды. RPO задаёт, за какой период допустимо потерять данные. Эти цели согласуют с требованиями бизнеса.

В полном прогоне отсчёт начинается с имитации сбоя и заканчивается после проверки сервиса. В это время входят обнаружение, решение о восстановлении, получение доступа и подготовка среды. Если прогон начинается сразу с объявления аварии, задержку обнаружения учитывают отдельно, иначе результат окажется короче реального простоя.

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

Изолированная среда с реалистичными условиями

Тестовая среда должна быть сопоставима с той, которая останется после аварии. В описании стенда нужны CPU, RAM, диски, полоса сети и версии ПО. Для копии указывают размер архива и развёрнутых данных, сжатие, шифрование и место хранения.

Тест восстановления RTO и RPO должен включать получение ключей, если при сбое их придётся запрашивать. В процедуру входят выдача доступа, поиск секретов и лицензий, настройка DNS. При потере площадки доступ к этим ресурсам должен сохраниться за её пределами. Время обработки заявок тоже попадает в журнал.

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

Как часто проводить учебное восстановление?

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

От доставки копии до применения журналов

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

Для каждого этапа сохраняют начало и конец в UTC, объём данных, статус, ошибки и повторы. Часы серверов синхронизируют. Длительности автоматических шагов лучше считать монотонным таймером, который не скачет при коррекции времени. Для ручного ожидания нужны обе отметки: отправка заявки и получение доступа. Для каждого прогона журнал и логи команд хранят отдельно, без паролей и токенов.

В PostgreSQL восстановление к моменту времени требует физической базовой копии и непрерывной цепочки WAL от начала копирования до выбранной точки. Для логического дампа нужна отдельная процедура загрузки. Если копия инкрементальная, учитывают получение и сборку всей необходимой цепочки. Работа сторонних сервисов тоже входит в общий срок.

Как проверить данные и готовность приложения

Проверка начинается с файлов. Для полной физической копии PostgreSQL 18, сохранённой pg_basebackup как каталог с backup_manifest и нужным WAL, подходит команда:

pg_verifybackup --exit-on-error /srv/restore/base \

> verify.log 2>&1

Здесь /srv/restore/base – каталог копии до запуска базы. При ошибке причину ищут в verify.log. Утилита той же основной версии сверяет файлы с манифестом и проверяет необходимый для копии WAL. Успех не гарантирует ни наличие всех последующих журналов до точки PITR, ни исправность приложения. Это ограничение pg_verifybackup.

После запуска нужны проверки согласованности средствами СУБД и контрольные запросы по известным данным. Для магазина это наличие выбранных заказов, их состав и итоговые суммы. Бенчмарк point-in-time recovery показывает, дошло ли восстановление до выбранной точки: при ошибочной записи нужные транзакции должны сохраниться, а ошибочная – отсутствовать. Достигнутую точку сверяют с журналом восстановления и независимым учётом операций, а её отставание от момента сбоя сравнивают с RPO. Время создания копии этой проверки не заменяет. После завершения восстановления проверяют вход, чтение и запись через приложение.

На что уходит время восстановления

Метрики проверки бэкапа сводят на одну временную шкалу: все этапы восстановления с началом и концом каждого. Она показывает активную работу, автоматические паузы и ожидание людей. Параллельные этапы не складывают: общий срок задаёт самая долгая цепочка зависимых действий, необходимых для готовности сервиса. Её сокращают в первую очередь.

Какие этапы нужно включать в измеряемый RTO?

1. От сбоя до начала работ: обнаружение, решение, получение доступа и подготовка среды.

2. Возврат данных: доставка, расшифровка, проверки, развёртывание и применение журналов.

3. Возврат сервиса: запуск зависимостей, переключение доступа и проверка пользовательских операций.

Сетевую задержку отделяют от ожидания диска, расшифровки на CPU и последовательного применения журналов. Для грубой оценки: 200 ГиБ при постоянных 100 МиБ/с идут около 34 минут. Это расчёт только доставки, без ожиданий и последующих работ. Остальные этапы могут занять больше времени, чем сама передача. Улучшение подтверждает новый полный прогон с теми же условиями и проверками.

Инструкция, которая работает без подсказок

Runbook – инструкция, по которой дежурный восстанавливает сервис. Для каждого шага в ней нужны команда, ожидаемый результат и действие при ошибке. Повторный запуск должен либо продолжить работу, либо безопасно остановиться. Если скрипт заново создаёт диск, он должен отличить свой тестовый ресурс от чужого. Шаги, которые перезаписывают данные или переключают трафик, помечают в инструкции отдельно, а перед запуском требуют подтвердить адрес или имя ресурса.

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

Отдельными прогонами разбирают недоступный ключ, повреждённую копию и отказ основного хранилища. Каждый из них подтверждает запасной путь или остановку с понятной причиной. При отказе хранилища важна и скорость передачи с запасного источника: throughput запасного пути обычно ниже, чем у основного. Если данные получить не удалось, сценарий считается непройденным.

Решения после теста и ответственные за них

По каждой причине превышения срока команда назначает ответственного, выбирает исправление и дату повторного теста. Долгое ожидание доступа требует пересмотра процедуры выдачи, а перегруженный диск – проверки другой конфигурации. Когда скорость упирается в сеть, помогает более широкий канал. Долгое применение WAL лечится более свежей базовой копией. Задержку на сборке среды снимает заранее подготовленная резервная инфраструктура.

Такая подготовка сокращает время ценой постоянных расходов. Если staging используют как площадку восстановления, нужно заранее проверить запас ресурсов и порядок освобождения. Пропуск validation, то есть проверки результата, ускорением не считается: без неё неизвестно, можно ли вернуть пользователей.

В истории сохраняют все попытки с датой, исполнителем, версиями, объёмом данных и отклонениями от инструкции. Сравнивают одинаковые сценарии при сопоставимых ресурсах и состоянии кеша. Для нескольких прогонов показывают каждую длительность и причину разброса. Процентили имеют смысл, когда сопоставимых прогонов набралось достаточно много: p99 по трём попыткам ничего не говорит о редких задержках.

Время восстановления как ключевая метрика бэкапа полезно, когда за числом стоит проверенный результат. Копия, из которой ни разу не восстанавливали, остаётся предположением: до первого удачного прогона неизвестно ни время, ни полнота данных, ни работоспособность сервиса. Полный журнал этапов, точка данных и проверки сервиса показывают, удалось ли уложиться в RTO и RPO. Найденная задержка должна привести к изменению инструкции, ресурсов или архитектуры. После смены формата копии или окружения прежний результат нужно подтвердить повторным восстановлением.

Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2Ranyo7WDd5
Показать полностью 1

Настройка VPS Ubuntu и Debian: порты, пакеты, окружение

Настройка VPS Ubuntu и Debian: порты, пакеты, окружение

Настройка VPS Ubuntu и Debian проверяется простой перезагрузкой. Сайт открылся на новом сервере, а после перезагрузки перестал отвечать, ведь веб-сервер не был добавлен в автозапуск. Проверка после каждого шага настройки помогает обнаружить такую ошибку до того, как сервер понадобится в работе.

Статья рассчитана на новый VPS с Ubuntu 24.04 LTS или Debian 13. На нём будет работать веб-сервер Nginx. Нужен чистый образ без панели управления, Docker и своих сетевых правил.

Какие пакеты установить в первую очередь на Ubuntu или Debian VPS?

Для первоначальной настройки хватит SSH-сервера, sudo для работы администратора, ca-certificates для проверки сертификатов и curl для проверки веб-сервиса. Сетевой экран UFW пригодится, если правила доступа ещё не настроены другим инструментом. Состав образа у провайдеров различается, поэтому часть этих пакетов может уже стоять.

Как выбрать образ под свою задачу

До заказа VPS стоит проверить в документации приложения, какие выпуски ОС и архитектуры оно поддерживает. Готовые программы для amd64 и arm64 различаются, поэтому нужен вариант под процессор вашего сервера.

Ubuntu 24.04 LTS получает стандартные обновления безопасности до мая 2029 года. Условия для отдельных пакетов зависят от раздела репозитория. У Debian 13 полная поддержка заявлена до августа 2028 года. Затем часть пакетов и архитектур продолжит получать исправления безопасности до июня 2030 года. Сроки опубликованы на страницах Ubuntu и Debian. В апреле 2026 года вышла Ubuntu 26.04 LTS со стандартной поддержкой до мая 2031, и если собираетесь выбирать её, для нового сервера стоит проверить, поддерживает ли её ваше приложение. Пример ниже собран на 24.04, потому что под неё чаще готовы сторонние репозитории.

Как установить Ubuntu на VPS, решает панель провайдера, так как новый сервер создаётся из готового образа. Переустановка может удалить данные работающего сервера, поэтому мы берём пустой VPS. После первого входа две команды покажут ОС и архитектуру:

cat /etc/os-release
dpkg --print-architecture

Название образа, версия ОС, архитектура и дата создания пригодятся при восстановлении.

Доступ по SSH и права администратора

Настройка VPS сервера на Ubuntu начинается с доступа: без рабочего SSH остальные шаги проверить нечем. SSH даёт доступ к командной строке сервера. Имя пользователя и адрес выдаёт провайдер. В примерах ниже USER и SERVER_IP нужно заменить своими значениями. Команда для подключения выполняется на вашем компьютере, а остальные команды – на VPS, если не указано иное:

ssh USER@SERVER_IP

Если SSH использует нестандартный порт, к команде нужен параметр -p с его номером. При первом входе клиент покажет отпечаток ключа сервера. Его нужно сверить через панель провайдера или аварийную консоль. Если отпечатка в панели нет, консольная команда ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub покажет отпечаток ключа Ed25519. В клиенте для сравнения должен быть выбран тот же тип ключа.

Для установки пакетов обычному пользователю нужны права администратора. Команда sudo -l покажет разрешённые действия. На новом VPS у администратора обычно есть разрешение ALL на запуск любых команд. Если провайдер выдал только root, отдельного администратора можно создать с помощью этих команд:

apt update
apt install sudo
adduser admin
usermod -aG sudo admin

Если SSH-ключей ещё нет, создайте пару на своём компьютере: ssh-keygen -t ed25519. Закрытый ключ остаётся у вас. Открытый ключ из файла с расширением .pub нужно добавить в ~/.ssh/authorized_keys выбранного пользователя на VPS. Знак ~ означает его домашний каталог. При доступном входе по паролю утилита ssh-copy-id USER@SERVER_IP перенесёт ключ с компьютера автоматически. Если её нет, ключ можно добавить вручную через консоль. У каталога ~/.ssh должны быть права 700, у файла – 600, владельцем должен быть выбранный пользователь.

Для проверки входа по ключу откройте на компьютере новый терминал:

ssh -S none -o PreferredAuthentications=publickey USER@SERVER_IP

Эта команда создаёт отдельное соединение и проверяет именно ключ. Если при входе спросят парольную фразу, это фраза от самого ключа, а не пароль пользователя на сервере. После входа sudo -l должен показать прежние права. Старый сеанс пока оставьте открытым, а аварийная консоль поможет исправить ошибку, если SSH станет недоступен.

Откуда система получает пакеты

APT устанавливает программы из репозиториев – источников пакетов для выбранной ОС. Их адреса обычно уже есть в образе. Файл с настройками в Ubuntu 24.04 можно прочитать так:

cat /etc/apt/sources.list.d/ubuntu.sources

В Debian 13 часто используется файл debian.sources:

cat /etc/apt/sources.list.d/debian.sources

Если файла нет, команда ls /etc/apt/sources.list.d/ покажет другие имена. Образ провайдера также может хранить источники в старом формате /etc/apt/sources.list.

В записях Ubuntu 24.04 ожидается кодовое имя noble, у Debian 13 – trixie. Суффикс -security обозначает обновления безопасности. Замена кодового имени подключит пакеты другого релиза и может нарушить работу системы при обновлении.

После проверки источников обновление выполняется одинаково в обеих системах:

sudo apt update
sudo apt upgrade

Первая обновляет сведения о пакетах, вторая устанавливает доступные обновления. После успешного apt update команда apt-cache policy покажет источники и их приоритеты. Если APT сообщает об ошибке подписи или недоступном источнике, сначала нужно устранить её. Проверку подписей отключать нельзя, без неё APT не проверит подлинность пакетов.

Для примера хватит штатных репозиториев. Адрес стороннего источника и его ключ берите только из документации того, кто его выпускает, и только в разделе для вашей ОС. PPA собирают под конкретный выпуск Ubuntu: на Debian такие пакеты могут не встать или потянуть за собой чужие зависимости, хотя APT в обеих системах одинаковый.

Какие программы нужны для начала

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

sudo apt install ca-certificates curl ufw
dpkg-query -W ca-certificates curl ufw

Пакет ca-certificates содержит доверенные корневые сертификаты, они нужны программам для проверки HTTPS-соединений. curl поможет отправить запрос к сайту из терминала. UFW управляет сетевыми правилами, его настройкой займёмся до установки Nginx, поскольку пакет веб-сервера может сразу запустить службу.

Вторая команда выводит версии пакетов. Её результат пригодится для сравнения после обновления.

Утилиты вроде htop для просмотра процессов можно добавить позже. Здесь нужна команда ss, а если её нет, поможет sudo apt install iproute2.

Какие порты открыть

Чтобы сервис был доступен извне, программа должна принимать соединения на нужном порту, а сетевой экран – пропускать их. Разрешение в UFW само по себе ничего не запускает. Команда sudo ss -lntp показывает программы, которые ждут TCP-соединений, и адреса, на которых они доступны.

Адрес 127.0.0.1 означает доступ только внутри VPS, 0.0.0.0 – все локальные IPv4-адреса, [::] – все локальные IPv6-адреса. У SSH нужно проверить номер порта. Ниже используется стандартный 22, если у вас другой, замените его до выполнения команд.

Как открыть порт и не выставить лишние сервисы наружу?

Понять, как открыть порт на VPS сервере Ubuntu, помогает разделение на два слоя: программа должна принимать соединения, а сетевой экран – пропускать их. Поэтому в экране оставляют разрешения только для используемых портов, а остальные входящие запрещают по умолчанию. Исключение – отдельный сетевой экран провайдера, там доступ нужно разрешить ещё раз.

Перед включением правил разрешите текущий порт SSH и подготовьте аварийную консоль. В примере UFW будет единственным инструментом управления правилами внутри VPS. На сервер с уже настроенными nftables, Docker или панелью управления этот набор команд без проверки переносить нельзя. Порядок для чистой машины:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status verbose

Порт 80 предназначен для тестовой страницы по HTTP. Статус UFW должен быть active, а в списке разрешений – порты SSH и HTTP. При включённом IPv6 нужны и соответствующие правила с пометкой v6. Настройка VPS Debian на этом шаге не отличается: UFW ставится из тех же репозиториев, и команды совпадают. Подробнее о правилах – в руководстве UFW.

Теперь повторите проверочный вход с параметром -S none. Старый сеанс продолжит работать, даже если правило закрыло порт, поэтому проверять нужно новым подключением. Сайт проверим после запуска Nginx.

Время, язык и файлы приложения

Если часы сервера спешат или отстают, программы могут отвергать действующие сертификаты. При разных часовых поясах на серверах труднее сопоставлять события в журналах. Время и синхронизацию покажет timedatectl status, имя машины – hostnamectl status.

Единый часовой пояс UTC задаётся командой sudo timedatectl set-timezone UTC. Она меняет часовой пояс, не настраивая синхронизацию. Если синхронизации нет, нужно проверить службу времени образа: например, systemd-timesyncd или chrony.

Локаль задаёт язык сообщений, формат дат и чисел. Команда locale покажет её настройки, locale -a – доступные варианты. Рабочую C.UTF-8 можно оставить.

Команда export меняет окружение только текущей оболочки, а системная служба под управлением systemd стартует со своим набором переменных. Задают его директивами Environment и EnvironmentFile в юните службы. Пароли и токены в командную строку не вписывают, так как строка запуска видна в выводе ps любому пользователю системы и оседает в истории оболочки. Секреты выносят в отдельный файл, который читает приложение или сам юнит через EnvironmentFile, с правами 600 и владельцем – учётной записью приложения.

Какие шаги настройки отличаются в Ubuntu и Debian?

1. Источники пакетов: у релизов разные кодовые имена и адреса репозиториев; чужие записи APT переносить нельзя.

2.  Версии программ: нужный пакет или способ его настройки может отличаться, поэтому инструкция должна соответствовать выбранному выпуску.

3.  Состав образа: начальная учётная запись, наличие sudo, служба времени и сетевые настройки зависят также от провайдера.

Запуск Nginx и проверка перезагрузки

Пакет Nginx содержит готовую службу. Системный менеджер systemd запустит её сейчас и при следующей загрузке VPS:

sudo apt install nginx
dpkg-query -W nginx
sudo nginx -t
sudo systemctl enable --now nginx

Команда nginx -t проверяет конфигурацию. При ошибке запускать следующие команды рано: в сообщении обычно указаны файл и строка, требующие внимания. Ключ --now запускает службу сразу, enable включает её автозапуск.

В стандартной конфигурации пакета файлы сайта лежат в /var/www/html. Этот путь указан в параметре root файла /etc/nginx/sites-enabled/default. Перед созданием страницы его стоит сверить. При другом каталоге сайта путь в командах ниже нужно заменить. Мы добавим отдельный файл с коротким текстом:

printf 'vps-ok\n' | sudo tee /var/www/html/health.txt
sudo chown root:root /var/www/html/health.txt
sudo chmod 644 /var/www/html/health.txt
curl --fail --show-error http://127.0.0.1/health.txt

для статической страницы, рабочим процессам Nginx не требуется право менять её. Ожидаемый ответ на запрос – vps-ok.

Теперь можно перезапустить Nginx и посмотреть, вернулся ли он к работе:

sudo systemctl restart nginx
systemctl status nginx --no-pager
sudo journalctl -u nginx -n 30 --no-pager

Статус active (running) подтверждает, что служба работает. Журнал помогает найти ошибки запуска. Ошибки обработки запросов ищите в /var/log/nginx/error.log. После перезапуска нужен тот же запрос curl. Затем команда sudo reboot перезагрузит VPS и разорвёт SSH-сеанс. После загрузки должны снова работать вход по SSH и запрос к странице, ожидаемый статус Nginx – active (running).

Обновления и короткая проверка сайта

Если локальный запрос вернул vps-ok, Nginx отдаёт файл. Проверка с вашего компьютера покажет, доступен ли он через интернет. В команде нужен внешний IPv4-адрес сервера:

curl --fail --show-error --max-time 10 http://SERVER_IP/health.txt

Ожидается тот же текст vps-ok. Если снаружи ответа нет, стоит проверить адрес, порт в ss, правила UFW и сетевой экран провайдера, если он есть. Для доступа по IPv6 нужна отдельная проверка, так как запрос по IPv4 его не проверяет.

Эта тестовая страница работает по HTTP без шифрования. Перед публикацией сайта с авторизацией или личными данными нужны домен, сертификат и настройка HTTPS. После этого нужен доступ к порту 443 и запрос по имени сайта с проверкой сертификата.

Обновления лучше назначать на время, когда допустим короткий перезапуск. До обновления сохраняйте /etc/nginx и файлы сайта вне VPS. В копию стоит включить настройки UFW, список репозиториев и версии из dpkg-query -W. Секретные файлы в такой копии тоже требуют защиты. Базу данных, если она есть, копируют её собственными средствами резервного копирования.

После обновления повторяется уже знакомая проверка: nginx -t, состояние службы, новое соединение по SSH и запрос к странице с компьютера. Время запуска автоматических обновлений покажет systemctl list-timers --all. Настройки установленного unattended-upgrades находятся в /etc/apt/apt.conf.d/. История операций APT хранится в /var/log/apt/history.log. Пришедшие обновления ядра могут потребовать перезагрузки, это стоит учитывать на сервере с работающими приложениями.

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

Пробное восстановление на отдельном VPS покажет, хватает ли сохранённых файлов и записей. После перезагрузки должны работать SSH и страница сайта, а правила сетевого экрана – совпадать с исходными. Успешный результат подтвердит, что настройку можно повторить.

Хорошая настройка VPS Ubuntu – та, которую можно повторить на чистом образе и проверить тем же smoke test после обновления. Если после переустановки из того же образа сервер отвечает на SSH, тестовая страница отдаёт условный vps-ok, а правила сетевого экрана совпадают с записанными, окружение воспроизводимо. Всё, что нельзя повторить по своей же инструкции, при следующем сбое придётся собирать заново и по памяти.

Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2RanympsH15
Показать полностью 1

Выбор локации игрового сервера по пингу

Выбор локации игрового сервера по пингу

На выбор локации игрового сервера по пингу влияют не расстояния, а сети будущих игроков. Близкий город может проиграть, если пакеты идут к нему через перегруженный стык операторов. Для сравнения нужны несколько сетей, разные часы и пробная игровая сессия, так как служебные запросы ping могут проходить иначе, чем игровой трафик. Замеры проводите не из своей сети, а руками игроков: несколько человек из каждого города и от каждого оператора запускают один и тот же тест, а вы сводите результаты.

Какие тесты задержки провести до выбора локации?

До выбора локации нужны серии ping и трассировки из сетей игроков, затем пробная сессия на игровом сервере. Вместе они помогают оценить задержку, её колебания и потери в разные часы. Ответы на служебные запросы могут отличаться от поведения игрового трафика, поэтому одного ping недостаточно.

Для каких игроков выбираем сервер

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

Проверка задержки локации игрового сервера опирается на несколько добровольцев от каждой группы. Их результаты можно хранить под кодами G1-P1 и G1-P2, указав город, оператора и способ подключения. По Wi-Fi игрок меряет то подключение, которым и пользуется. Если результат у него заметно хуже, чем у остальных в группе, отдельный тест по кабелю покажет, дело в домашней сети или в маршруте.

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

Какие серверы сравнивать

Локация должна остаться единственным отличием между кандидатами. У тестовых VM должны совпадать процессорные ресурсы, сетевые ограничения, версия игры и настройки firewall. У перегруженной машины задержки могут быть связаны с ресурсами. Список кандидатов включает доменное имя, фактический IP, игровой порт и срок доступа к стенду.

Провайдеры часто публикуют тестовый IP, по которому можно пинговать площадку до аренды. Этого хватает, чтобы отсеять явно далёкие регионы, но не чтобы выбрать между близкими: у поддержки стоит уточнить, относится ли адрес к нужной площадке и проходит ли через ту же защиту от атак, что будущая VM. Окончательные замеры идут уже на арендованной машине.

Показатели ping, jitter и packet loss отвечают на разные вопросы: как быстро приходит ответ, насколько ровно он приходит и сколько ответов не приходит вовсе. Низкое среднее спокойно уживается с рывками и пропажами. Маршруты IPv4 и IPv6 могут расходиться, поэтому при поддержке обоих протоколов их проверяют отдельно.

Как собрать сопоставимые замеры

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

Скрипт рассчитан на Linux с Bash, утилитой ping из пакета iputils и MTR. Код сохраните в test-region.sh. IP в команде запуска – адрес тестовой VM. Результаты и версии утилит попадут в отдельную папку с временем UTC.

Если mtr откажется открывать сокеты, запустите скрипт через sudo, так как на части сборок ему нужны права root.

Выбор локации игрового сервера по пингу

#!/usr/bin/env bash
# Запуск: bash test-region.sh IP
export LC_ALL=C
ip="${1:?Укажите IPv4-адрес тестовой VM}"
out=$(mktemp -d "probe-$(date -u +%Y%m%dT%H%M%SZ)-XXXX")
printf '%s\n' "$ip" > "$out/target.txt"
ping -V > "$out/versions.txt" 2>&1
mtr --version >> "$out/versions.txt" 2>&1
ping -4 -n -D -c 300 -i 1 "$ip" > "$out/ping.txt" 2>&1
mtr -4 -n -r -w -c 60 "$ip" > "$out/mtr.txt" 2>&1

Ping отправит 300 запросов с интервалом в секунду, затем MTR соберёт отчёт о маршруте. Весь запуск займёт больше пяти минут. Порядок кандидатов между сериями стоит менять, чтобы один регион не проверялся всегда раньше остальных. Параметры команд доступны в документации ping и руководстве MTR.

Насколько jitter и потери важнее среднего ping?

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

Что означают цифры в отчёте

RTT – время от отправки запроса до получения ответа. Медиана, или p50, делит полученные значения пополам. Показатель p95 отмечает задержку, которую не превышают примерно 95% полученных ответов. Так видны медленные ответы, скрытые за средним. Число запросов и ответов нужно для оценки выборки.

Для единообразия p95 можно считать так: расположить RTT по возрастанию и взять значение на позиции 0,95 × N с округлением вверх, где N означает число ответов. Для уверенных выводов по p99 короткой серии мало. График RTT по времени покажет, собрались ли всплески в один эпизод.

Словом jitter называют разные меры колебания задержки. Здесь это средняя абсолютная разница RTT между соседними запросами, у которых обоих есть ответ. Такой счёт не совпадает ни с mdev из вывода ping, ни с вариацией односторонней задержки по RFC 3393. Сравнивать числа из разных источников нельзя.

Доля запросов без ответа равна (tx − rx) / tx × 100%, где tx и rx означают число запросов и уникальных ответов. Пропуск не превращается ни в нулевой RTT, ни в задержку, равную таймауту. Через looking glass хостинга можно проверить связь со стороны провайдера, но замеры у игроков остаются необходимыми.

Как разобраться в неожиданном маршруте

Если один регион заметно проигрывает, traceroute до игрового сервера поможет увидеть отвечающие промежуточные узлы. MTR повторяет такие пробы и собирает статистику. Отчёты из нескольких сетей за проблемный период покажут, касается ли ухудшение одного оператора или нескольких.

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

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

Проверка в самой игре

После сетевых проб нужна игровая сессия на каждом кандидате. У серверов должны совпадать версия игры, модификации, карта и настройки. Участникам лучше повторить похожие действия при одинаковом числе игроков. В отчёт пойдут задержка из клиента, разрывы соединения и доступные показатели потерь. У отдельных игр встроенный ping включает особенности обработки и сглаживания, поэтому он не обязан совпадать с ICMP RTT.

Нагрузка VM требует отдельного наблюдения. Например, в Minecraft MSPT означает миллисекунды на такт, а FPS относится к частоте кадров клиента. Медленные такты или падение FPS способны испортить игру при нормальной сети, поэтому эти показатели должны храниться отдельно от RTT.

Защита от DDoS может менять путь трафика. Часть провайдеров заворачивает его в центр очистки – выделенную площадку, где пакеты фильтруются и только потом идут к серверу. Другие фильтруют прямо на пограничных узлах, и тогда заметного крюка не появляется. Возможность теста нужно согласовать с провайдером, без самостоятельной организации атак. После известного включения или изменения фильтрации полезно повторить игровую сессию и сетевые пробы.

Почему ближайший на карте регион может оказаться медленнее?

1. Обмен трафиком между операторами, или peering, может идти через удалённую точку.

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

3.  Фильтрация трафика может менять маршрут до сервера и увеличивать задержку.

Как выбрать по результатам

В таблице отдельная строка на каждое сочетание группы, кандидата и времени теста: удачный дневной запуск не должен скрыть плохой вечерний. Колонок четыре – p50, p95, колебания RTT и потери.

В сводном CSV поле group связывает строку с городом и оператором, trace хранит имя файла трассировки, game содержит итог пробной сессии.

player,group,region,utc,tx,rx,p50,p95,jitter,loss,trace,game

Поле player хранит условный код участника. Задержки заданы в мс, loss в процентах. Одна строка соответствует одной серии. Общий p95 нельзя получить усреднением p95 участников.

Кандидаты с нарушениями обязательных требований значимой группы выбывают из сравнения. Остальные получают оценки показателей по заранее заданной шкале, например от 0 до 5, где 5 означает лучший результат. Веса определяются до расчёта, ниже приведён пример для адаптации к своей игре.

Выбор локации игрового сервера по пингу

Оценка каждого показателя умножается на его вес, а сумма даёт балл группы. Баллы групп учитываются пропорционально их доле в аудитории. При близких баллах решает стабильность маршрута: routing path, который меняет транзитного оператора от серии к серии, рискованнее ровного пути даже при равном p95. Учитывается и доступность измерительных endpoints, поскольку регион, который нечем перепроверить после запуска, теряет в надёжности сравнения. Если общего подходящего региона нет, стоит оценить несколько серверов для разных групп.

Когда повторять тесты

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

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

У отчёта должны быть автор, даты и часовой пояс, тестовые адреса, конфигурация VM, версии утилит и игры. Сводный CSV без сырых данных не перепроверить, поэтому рядом сохраняют ряды RTT, трассировки и заметки об игре. Перед публикацией из журналов удаляют домашние IP и другие личные данные. Рядом с выводом укажите дату замеров. Маршрутизация меняется, и вывод стареет вместе с ней.

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

Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2RanynGWvZy
Показать полностью 3
5

VPS-сервер: что это, как работает и кому нужен

VPS-сервер: что это, как работает и кому нужен

VPS-сервер даёт отдельную ОС и административный доступ без аренды целого физического узла. Такой формат подходит сервисам с постоянным адресом и предсказуемой нагрузкой. При выборе такого сервера важны технология виртуализации, ограничения CPU, памяти, диска и сети, а также то, где проходит граница ответственности. У двух тарифов с одинаковым описанием эти условия могут конкретно отличаться.

Что такое VPS простыми словами?

VPS это виртуальная машина с гостевой ОС, которую физический хост запускает через гипервизор. Пользователь получает административный доступ, IP-адрес, виртуальные диски и заданные лимиты ресурсов, а провайдер обслуживает физический хост и слой виртуализации. Реальная изоляция и гарантии зависят от технологии виртуализации, модели распределения и условий тарифа.

Что входит в услугу и что остаётся вашей задачей

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

Тариф VPS обычно включает vCPU, RAM, диск, IP-адрес, лимит трафика либо скорость порта. Панель провайдера управляет питанием виртуальной машины, переустановкой образа и консолью. Она не заменит вашу работу внутри ОС: веб-сервер, база данных, обновления, учётные записи и резервные копии остаются задачей администратора, если договор не обещает иное.

Административный доступ даёт свободу выбора ПО, но вместе с ней и всю ответственность за то, что внутри: ошибка в условном sshd_config, открытая база данных или удалённый файл находятся внутри гостевой системы, поэтому просто наличие гипервизора их не исправит. Перед заказом нужно проверить, кто устанавливает обновления, реагирует на инциденты и восстанавливает данные.

Как гипервизор создаёт несколько серверов на одном хосте

На Linux-хосте модуль KVM использует аппаратные расширения CPU и открывает пользовательскому пространству API для работы с виртуальными машинами. Каждая VM обычно работает как отдельный процесс QEMU. Он выполняет код гостя через KVM и предоставляет модель устройств. Слой управления, обычно libvirt, задаёт vCPU, память, диски, сетевые интерфейсы и правила запуска. Созданный таким способом VPS сервер видит виртуальное оборудование и загружает собственную ОС как отдельную машину.

Схема этих слоёв такая:

CPU, RAM, NVMe и NIC физического хоста → ядро Linux с KVM → процесс QEMU и virtio-устройства → гостевая ОС → приложение

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

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

Что означают vCPU, RAM, NVMe, IOPS и полоса сети

Число vCPU показывает, сколько виртуальных процессоров видит гостевая ОС. Частоту, поколение CPU, квоту процессорного времени и степень конкуренции на хосте нужно выяснять отдельно. Для постоянной вычислительной нагрузки важны длительная производительность и задержка планирования. В Linux показатель %steal показывает время, когда гостевая vCPU была готова к работе, но гипервизор не дал ей процессор. Причину замедления одна эта метрика не покажет.

Объём RAM задаёт доступную гостю память. Поведение при её нехватке зависит от гарантий тарифа, ballooning, политики оверкоммита и swap на хосте. Частая выгрузка страниц увеличивает задержки, поэтому базе данных полезнее гарантированный объём с запасом под рабочий набор, чем большое номинальное число без условий.

NVMe обозначает протокол доступа к накопителю. Производительность определяют лимиты IOPS и throughput, размер блока, глубина очереди, доля чтения и записи. На результат также влияют кэширование и конкуренция. Лимит в 3000 IOPS при блоке 4 КиБ даёт примерно 11,7 МиБ/с случайного потока. Реальная цифра будет ниже из-за файловой системы и очередей, а последовательное чтение ограничит уже лимит throughput.

У сети есть несколько границ: скорость порта, трафик, пакеты в секунду, исходящий лимит и маршрут до пользователей. В тарифах Cloud VPS обычно есть API, почасовое создание ресурсов и сетевые сервисы. Но сможете ли вы быстро добавить ресурсы в пик и есть ли под это физический резерв – зависит от договора, а не от названия тарифа.

Чем VPS отличается от виртуального хостинга и выделенного сервера?

VPS даёт собственную ОС, административный доступ и лимиты ресурсов, тогда как виртуальный хостинг делит готовое окружение без полного контроля. Выделенный сервер предоставляет весь физический узел одному клиенту. Managed-тарифы и гарантии CPU, памяти или диска у разных поставщиков могут заметно различаться.

Unmanaged, managed и панели: кто за что отвечает

В unmanaged-тарифе провайдер обычно обслуживает физический хост, гипервизор, питание и внешнюю сеть, а пользователь управляет гостевой ОС: создаёт учётные записи, устанавливает пакеты, закрывает порты, следит за журналами и обновляет приложения. Точные границы ответственности задаёт договор, особенно для DDoS-защиты, резервных копий и аварийного доступа.

В managed-тарифе часть операций берёт на себя поставщик, но точный состав услуги всё ещё определяет договор. Базовый вариант может включать только первичную установку, а расширенный добавляет мониторинг, обновления, реакцию на алерты и восстановление. До заказа стоит проверить часы работы поддержки, допустимый стек, число обращений, способ эскалации и перечень действий при сбое.

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

Проще всего свести всё это в одну таблицу и посмотреть, где не окажется владельца. В строках – ОС, firewall, приложения, мониторинг, копии и восстановление, в столбцах – кто отвечает, за какой срок реагирует и каким пунктом договора это закреплено. Ярлык managed становится проверяемым только после того, как такая таблица заполнена целиком.

Для чего используют VPS и где он не подходит

Небольшие сайты, API, боты, системы мониторинга, Git-раннеры и тестовые среды часто помещаются на одной виртуальной машине. Им нужен постоянный IP-адрес, контроль пакетов и возможность запускать фоновые процессы. При умеренном рабочем наборе такой VPS сервер проще в эксплуатации, чем выделенный узел, а тариф можно сменить после измерений.

У тяжёлой базы данных постоянная загрузка vCPU, большой объём RAM и интенсивная запись, поэтому конкуренция за общие ресурсы бьёт по ней сильнее всего. Обучение и инференс упираются в ускоритель, а обычный тариф VPS его не включает. Сервису с резкими пиками может больше подойти облачная группа экземпляров.

В таблице собраны типовые варианты. Числа здесь – отправная точка для теста, проверять их всё равно нужно на своей нагрузке.

VPS-сервер: что это, как работает и кому нужен

Проверять всё равно придётся прогоном, так как приложение с 2 vCPU и 4 ГиБ RAM может работать устойчиво при одном профиле запросов и упираться в память при другом. Решение обычно принимают по рабочему набору, p95/p99 задержки, очередям диска и запасу до лимитов.

Как подобрать тариф без переплаты за лишние ядра

Выбор начинается с измерений текущей системы. Для CPU нужны загрузка по ядрам, длительность насыщения и задержка запросов, для памяти – рабочий набор, page faults и swap. Диск оценивают по IOPS, throughput и p95/p99 latency, сеть по средней и пиковой скорости, PPS и исходящему трафику. Если исходной системы нет, начните с минимального тарифа и прогоните воспроизводимый тест. Если упрётесь в лимит, увеличьте только тот ресурс, который его создал, и повторите замер.

Например, тариф может включать 2 vCPU, 4 ГиБ RAM, 60 ГиБ диска, 3000 IOPS и порт 100 Мбит/с. Без модели CPU, квоты, типа диска, лимита throughput и правил трафика этих цифр недостаточно для оценки. VPS или VDS сервер в названии тарифа тоже ничего не говорит о способе виртуализации, поэтому смотреть нужно договор и технические параметры.

Базовый профиль после запуска составляют по данным за обычный рабочий период. В него входят загрузка CPU, %steal, свободная память, swap, дисковая задержка, ошибки файловой системы, сетевые потери и прикладные p95/p99. Переход на более крупный тариф логичен, если ресурс регулярно приближается к лимиту, а одновременно растут задержки или число ошибок. Обычный короткий пик не требует постоянной оплаты лишних ресурсов.

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

Для каких задач подходит VPS?

  1. Сайты, API и небольшие базы с измеримым и относительно стабильным профилем нагрузки.

  2. Боты, мониторинг, Git-раннеры и тестовые среды, которым нужен постоянный сетевой узел.

  3. Сервисы с собственной ОС и административным доступом, если их лимиты подтверждены тестом.

Что настроить сразу и чего провайдер не сделает за вас

При первом подключении SSH-отпечаток желательно сверить через доверенный канал. Затем нужно создать отдельную учётную запись, добавить публичный ключ и проверить новый вход. Парольную авторизацию и прямой вход root лучше отключить, но только при наличии рабочего ключа и резервного доступа через консоль.

Firewall открывает лишь необходимые входящие порты, пакеты ОС и приложений обновляются по выбранному графику, а сервисы работают с минимальными привилегиями. Стоит иметь в виду, что VPS изолирует машину, а не код внутри неё. Уязвимый плагин, утёкший токен или ошибочное правило доступа остаются вашей зоной ответственности.

Резервная копия должна пережить потерю виртуальной машины и учётной записи управления, поэтому данные хранят отдельно, шифруют и периодически восстанавливают в чистое окружение. Успешный статус задания подтверждает создание копии, а тест восстановления показывает её пригодность.

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

VPS, VDS, облако и dedicated: как выбрать модель

VPS и VDS на рынке часто используются как близкие маркетинговые названия, поэтому сами буквы не указывают на то, выделены ли ядра, разрешён ли оверкоммит и какие лимиты действуют для диска. Если нужен виртуальный сервер VPS с предсказуемой производительностью, проверять следует модель CPU, квоты, гарантии памяти, IOPS, полосу сети и SLA, а не то, что написано в карточке тарифа.

Публичное облако полезно, когда инфраструктуру нужно создавать через API, распределять по зонам и связывать с балансировщиками или управляемыми сервисами. Расчёт стоимости у такой модели сложнее, а зависимость от платформы выше. Один экземпляр без резервирования остаётся точкой отказа.

Dedicated-сервер резервирует весь физический узел для одного клиента и подходит для длительной высокой загрузки, крупной локальной базы или специальных накопителей. Вместе с ресурсами владелец получает более медленное масштабирование и дополнительные задачи по отказоустойчивости. Виртуальный хостинг снимает большую часть администрирования, но не даёт ни собственного ядра, ни полного контроля сети.

Если ресурсы стабильно упираются в лимит, следующий шаг – более крупный тариф или переход на dedicated. При непредсказуемых пиках и работе в нескольких зонах выигрывает облако. Когда заниматься администрированием ОС некогда или незачем, задачу закрывает managed-платформа. Выбор определяют требования к контролю, скорости восстановления и цене простоя.

VPS-сервер будет оправдан, когда проекту нужны постоянный сетевой узел, собственная ОС и контроль конфигурации, а отдельный физический хост пока избыточен. Перед оплатой параметры тарифа нужно сверить с границей ответственности и планом восстановления. Если тест подтверждает, что нагрузка укладывается в лимиты, а по данным мониторинга остаётся запас ресурсов, виртуальная машина решает задачу без лишней инфраструктуры.

Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2RanymCFSjV
Показать полностью 1
9

Чек-лист харденинга SSH: как настроить вход и проверить результат

Чек-лист харденинга SSH помогает убрать лишние способы входа на VPS. Харденингом называют настройку защиты сервера. Безопасная настройка sshd_config сводится к тому, чтобы оставить один проверенный способ входа и уметь вернуть доступ, если что-то пойдёт не так.

Примеры рассчитаны на Ubuntu 24.04 LTS с OpenSSH из репозитория ОС. Параметры для другой ОС и требования аудита лучше заранее уточнить.

Какие параметры sshd_config важнее всего для аудита?

Основные параметры: PermitRootLogin для входа под root, PasswordAuthentication и KbdInteractiveAuthentication для способов проверки пользователя, AllowUsers или AllowGroups для ограничения круга пользователей. При многофакторной аутентификации важен AuthenticationMethods, который задаёт обязательные способы подтверждения входа. Результат настройки проверяют реальными попытками разрешённого и запрещённого входа.

Что именно нужно защитить

Безопасная настройка sshd_config начинается со списка тех, кому нужен SSH: владельца VPS, коллег, программы резервного копирования.

Пароль могут подобрать, ключ могут украсть, а доступ бывшего сотрудника иногда остаётся действующим месяцами. Вход только по ключам исключает подбор пароля. Украденный ключ нужно отозвать, а лишние учётные записи закрыть. Второй фактор, например одноразовый код, снижает риск входа с украденным ключом. Отдельная угроза – потеря журналов: если записи о входах хранятся только на самом сервере, злоумышленник с правами root может их изменить, и восстановить картину будет нечем.

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

Какие настройки сервер действительно использует

В чек-лист аудита SSH внесите версии ОС и OpenSSH, исходные настройки. Их покажут команды на сервере:

cat /etc/os-release
sudo /usr/sbin/sshd -V
sudo /usr/sbin/sshd -T

В Ubuntu файл /etc/ssh/sshd_config подключает через Include файлы из /etc/ssh/sshd_config.d/. Обычно действует первое прочитанное значение, а порядок чтения определяется именами файлов. Поэтому правка в конце основного файла может не сработать. Подробности есть в документации Ubuntu.

Блоки Match задают исключения для пользователей и адресов. Параметр -C учитывает их для конкретного подключения:

sudo /usr/sbin/sshd -T \
-C user=admin,addr=198.51.100.10,host=client.example
sudo ss -ltnp

Подставьте своего пользователя, IP и имя клиента. Если Match содержит условия на адрес и порт сервера, укажите их через laddr и lport. Вывод -T показывает то, что записано в файлах на диске. Уже открытые сеансы продолжают работать по прежним настройкам, поэтому проверять изменения нужно новым подключением. Слушающие порты покажет команда ss, а её вывод стоит сверить с правилами межсетевого экрана на VPS и в панели провайдера.

Кому принадлежат учётные записи и ключи

Составьте список всех учётных записей, которые могут войти и выполнять команды. Отдельно отметьте тех, кто может выполнять команды от имени администратора через sudo. В authorized_keys хранятся разрешённые открытые ключи. У каждого должен быть известен владелец, потому что подпись рядом с ключом ещё не подтверждает его личность. Отключение входа по паролю SSH лучше делать только после того, как этот список собран.

Личные аккаунты помогают различать администраторов в журнале. Программе резервного копирования выделите отдельный ключ. Параметр command= в authorized_keys ограничивает его заданной командой, а restrict отключает дополнительные возможности, включая туннели. После настройки по справке OpenSSH убедитесь, что копирование работает.

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

Как отключить вход по паролю и не потерять доступ?

Сначала войдите по ключу под отдельным пользователем с sudo в новом SSH-сеансе и оставьте старое подключение открытым. До применения изменений проверьте конфигурацию, доступ через консоль провайдера и порядок отката. После применения повторите вход. Если используется многофакторная аутентификация, проверьте также работу второго фактора.

Какие способы входа оставить

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

# Вход только по ключу; без второго фактора через PAM
PubkeyAuthentication yes
AuthenticationMethods publickey
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
AllowUsers admin

В AllowUsers включите всех нужных пользователей и служебные аккаунты. Если удобнее управлять группой, вместо списка имён можно использовать AllowGroups. MFA и allowlist для SSH работают вместе: список ограничивает круг пользователей, второй фактор защищает от украденного ключа.

Параметр PermitRootLogin со значением no запрещает прямой вход под root. Значение prohibit-password сохраняет вход root по ключу.

Для ключа и одноразового кода через PAM, систему аутентификации Linux, нужны другие значения. Прежние значения замените следующими, а UsePAM добавьте, если его ещё нет:

UsePAM yes
KbdInteractiveAuthentication yes
AuthenticationMethods publickey,keyboard-interactive:pam

Такая многофакторная аутентификация (MFA) работает лишь с заранее настроенным PAM-модулем. Сам keyboard-interactive может запрашивать обычный пароль. Поэтому одного PasswordAuthentication no недостаточно для запрета всех способов парольного входа.Как применить изменения и вернуться назад

До правок проверьте вход по ключу в новом соединении. На своём компьютере выполните команду со своим логином и адресом VPS:

ssh -o ControlPath=none -o PreferredAuthentications=publickey \
admin@SERVER

Команда создаёт новое соединение и допускает только вход по ключу. Для MFA через PAM укажите в PreferredAuthentications publickey,keyboard-interactive. В новом сеансе проверьте sudo. Старый оставьте открытым.

В этом примере меняется только новый файл /etc/ssh/sshd_config.d/00-local-access.conf. Это имя и имя с окончанием .disabled должны быть свободны. Сохраните вывод -T до правок. После них убедитесь, что нужные значения действуют для каждого условия Match.

Сначала выясните, как запущен SSH. Команда systemctl is-enabled ssh.socket покажет, включена ли активация через сокет. В Ubuntu она включена по умолчанию с версии 22.10. sshd не работает постоянно, а поднимается на каждое входящее соединение и читает конфигурацию заново, поэтому reload не нужен, достаточно открыть новый сеанс. Если сокет отключён и работает постоянная служба, изменения применяет reload:

systemctl is-enabled ssh.socket
sudo /usr/sbin/sshd -t && sudo systemctl reload ssh.service

Проверка -t при успехе ничего не печатает. При ошибке команда после && не выполнится. Запрет root login и остальные ограничения проверяют попытками входа: повторите вход по ключу, проверку sudo и попытки запрещённого входа.

Для отката в старом сеансе или консоли переименуйте файл, после этого он не попадает под маску *.conf.

sudo mv /etc/ssh/sshd_config.d/00-local-access.conf \
/etc/ssh/sshd_config.d/00-local-access.conf.disabled
sudo /usr/sbin/sshd -t

Этот откат относится только к новому файлу. PAM, межсетевой экран и порт меняйте отдельно, с собственными командами возврата. Старый сеанс закройте лишь после всех проверок.

Что делать с туннелями и алгоритмами

Безопасность SSH на VPS зависит и от возможностей после входа. Например, SSH-туннель передаёт трафик другой программы через зашифрованное соединение.

AllowTcpForwarding управляет TCP-туннелями. X11Forwarding разрешает вывод окон серверных программ на компьютер пользователя. AllowAgentForwarding даёт доступ через сервер к агенту с ключами на компьютере пользователя. Ненужные возможности стоит отключить. При этом пользователь с командной оболочкой может обойти запрет туннелей собственной программой пересылки трафика.

В поддерживаемой версии OpenSSH начните с настроек по умолчанию. Перед изменением списка шифров нужна проверка клиентов. Обновления лучше устанавливать регулярно.

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

Достаточно ли Fail2ban и нестандартного порта?

Нет, этих мер мало.

1.  На другом порту обычно меньше автоматических попыток входа, но сканирование всё равно его найдёт.

2.  Блокировка адресов за неудачные входы сдерживает перебор, однако украденный рабочий ключ пройдёт проверку с первой попытки.

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

Как ограничить сеть и сохранить события входа

Межсетевой экран может принимать SSH только с адресов администраторов. Проверьте вход из разрешённой и посторонней сети, включая IPv6, если он используется.

Fail2ban временно блокирует адреса после серии неудачных входов. После установки убедитесь, что он читает журнал SSH и применяет блокировки. Тестовые попытки входа тоже могут привести к блокировке вашего IP.

Журнал должен содержать успешные входы, отказы и административные действия через sudo. Недавние записи в Ubuntu можно посмотреть так:

sudo journalctl -u ssh.service --since "30 minutes ago"
sudo journalctl SYSLOG_IDENTIFIER=sudo --since "30 minutes ago"

Злоумышленник с правами root может изменить локальный журнал. Копия на отдельном сервере поможет восстановить события. Убедитесь, что записи действительно туда попадают, время на обеих машинах синхронизировано по NTP, а журналы хранятся столько, сколько требует ваш аудит. Администраторам VPS не нужны права удаления этой копии.

Как подтвердить результат проверки

Отчёт содержит версии ОС и OpenSSH, список подключённых файлов, перечень пользователей и ключей, настройки до и после правок. К сравнению файлов до и после правок (diff) добавьте причины изменений. Приватные ключи и секреты второго фактора в отчёт входить не должны. Собранные файлы и результаты тестов и есть audit evidence, которое запросит аудитор.

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

  • Администратор из AllowUsers с верным ключом: вход и работа sudo

  • Тот же пользователь только с паролем: отказ во входе

  • Root с верным ключом: отказ во входе

  • Пользователь вне AllowUsers с верным ключом: отказ во входе

  • Подключение из запрещённой сети при настроенном межсетевом экране: блокировка межсетевым экраном

  • Возврат прежней конфигурации: новый вход по прежним правилам

Для проверки парольного входа выполните на своём компьютере:

ssh -o ControlPath=none -o PubkeyAuthentication=no \
-o PreferredAuthentications=password,keyboard-interactive \
admin@SERVER

Этот тест отключает ключи. Пользователя вне AllowUsers проверяйте с верным ключом, иначе причина отказа останется неясной. При MFA нужны попытки с верным, неверным и пропущенным кодом.

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

Хороший результат выглядит просто: разрешённый пользователь входит, запрещённые сценарии получают отказ, а откат проверен заранее и не зависит от того, работает ли SSH. Чек-лист харденинга SSH храните вместе с инструкцией восстановления доступа. У каждого исключения должны быть причина, владелец и дата пересмотра. Так следующий администратор сможет отличить рабочую необходимость от забытой временной настройки.

Pеклама. ООО «Аеза Групп», ИНН: 7813654490. erid:2Ranyo42g59
Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества