Серверы и VDS

Как не запороть сервер в первый же день: топ ошибок новичка

Эдгар Косулин 5 мин чтения

Серия «Свой сервер с нуля» · часть 5 из 13

Содержание

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

Хорошая новость: если знать про эти грабли заранее, обойти их - дело пары минут. Ниже список ошибок, на которых обжигаются практически все новички, и что делать вместо них. Сразу важная мысль, которая многих отрезвляет: ваш сервер атакуют с первой же минуты. Не потому что вы кому-то интересны лично, а потому что боты круглосуточно сканируют весь интернет подряд и стучатся в каждый найденный адрес. «Я слишком мелкий, меня не тронут» - это первая и самая опасная иллюзия.

1. Жить под root и всё делать от его имени

Самая частая привычка новичка: зайти суперпользователем и так и работать. Проблема в том, что root всемогущ: он выполнит любую вашу команду без вопросов, без «вы уверены?» и без права на ошибку. Одна опечатка в разрушительной команде, и откатывать нечего. А если кто-то получит доступ к root, он получит вообще всё.

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

2. Оставить вход по паролю и пустить root по SSH

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

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

3. Заблокировать самому себе доступ файрволом

Классика, на которой спотыкались тысячи людей. Вы решаете включить файрвол (ufw, iptables, неважно), вводите команду активации, и тут же теряете подключение. Потому что файрвол по умолчанию закрыл всё, включая порт SSH, через который вы сейчас и сидите. Зайти обратно вы больше не можете.

Что делать: сначала явно разрешите SSH-порт (обычно 22), и только потом включайте файрвол. Порядок здесь критичен: сначала открыть себе дверь, затем запирать остальные.

4. Менять важное, не оставив пути назад

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

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

5. Копировать команды из интернета не глядя

Нашли на форуме готовую команду, вставили с sudo, нажали Enter и не очень понимаете, что именно произошло. Так теряют сервера. Одна строчка вроде rm -rf способна стереть половину системы, а конструкция curl ... | bash скачивает и тут же запускает чужой скрипт с полными правами: вы доверяете незнакомцу ключи от всего.

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

6. Не сделать снапшот перед экспериментами

Новичок настраивает всё подряд на «живом» сервере, что-то ломает и обнаруживает, что откатиться некуда. Остаётся переустанавливать систему с нуля и начинать заново.

Что делать: почти у всех провайдеров есть снапшоты, мгновенные снимки состояния сервера. Сделайте снимок перед большими изменениями. Это занимает минуту, а спасает целый день. Сломали что-то, откатились на снапшот, как будто ничего и не было.

7. Не обновить систему в первый же день

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

Что делать: первым делом обновите систему: apt update && apt upgrade или аналог для вашего дистрибутива. Это самое простое и самое недооценённое действие первого дня.

8. Выставить наружу лишнее

С энтузиазмом подняли базу данных, кэш или панель управления и оставили их открытыми в интернет, нередко вообще без пароля. Открытую базу или Redis без защиты сканеры находят за считаные часы и используют против вас: крадут данные, ставят майнер, превращают сервер в часть ботнета.

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

Чек-лист первого часа

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

  1. Сделать снапшот, точку, в которую всегда можно вернуться.
  2. Обновить систему (apt update && apt upgrade или аналог).
  3. Завести обычного пользователя и дать ему sudo.
  4. Настроить SSH-ключи, отключить вход по паролю и логин под root.
  5. Включить файрвол, не забыв заранее разрешить SSH-порт.
  6. Проверить новым подключением, что вы всё ещё заходите, и только потом закрыть старую сессию.

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

Серия

Свой сервер с нуля

  1. 1. «VDS, VPS, хостинг, облако: что это?» Разбираем терминологию без занудства
  2. 2. Nginx vs Apache: холивар, который пора закрыть (или нет)
  3. 3. Зачем вообще арендовать сервер, если есть условный хостинг за 100 рублей
  4. 4. SSH для тех, кто боится чёрного экрана
  5. 5. Как не запороть сервер в первый же день: топ ошибок новичка
  6. 6. SSH-ключи за 10 минут: настраиваем вход без пароля
  7. 7. Поднимаем свой сайт на VPS за вечер: честный пошаговый путь
  8. 8. Ставим WordPress на свой VPS: PHP, база и финальная сборка
  9. 9. Свой почтовый сервер: героизм или мазохизм?
  10. 10. Docker на VPS: когда это спасение, а когда стрельба из пушки по воробьям
  11. 11. Настраиваем домен и SSL так, чтобы браузер перестал ругаться
  12. 12. Бэкапы, которые реально спасут, а не лежат мёртвым грузом
  13. 13. Как прописать PTR для почтового сервера: почему в DNS домена её нет и кто её меняет

Безопасность

Поделиться: Telegram ВКонтакте

Новые статьи и разборы — в канале Siteko: Telegram MAX

Подписчикам: +30 дней к пробному хостингу, клиентам: +150 ₽ на баланс

Пошаговые инструкции по нашим услугам — в базе знаний

Ещё по теме

Ищете папку сайта в файловом менеджере и не находите. Как по DNS понять, на каком сервере сайт, найти его папку на VDS и почему нужного файла может не быть.

«Сервер в бою», часть 16

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

«Сервер в бою», часть 15

Серверы и VDS 8 мин чтения

Переезд на другой VPS без даунтайма: чек-лист миграции

Поводов переехать у VPS-владельца за жизнь накапливается достаточно: у соседнего провайдера вдвое дешевле и втрое быстрее диски; старый тариф стал тесен; провайдер начал чудить; или (помните шестую статью?) вы выбрали «путь Б»: вместо release-upgrade на живую поднять свежую систему рядом. Повод есть...

«Сервер в бою», часть 14