раздел 04

Базовая настройка сервера

Что это

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

Зачем

Без этих шагов сервер уязвим (открытые порты, старые пакеты) и недоступен по красивому адресу с https. Базовая настройка - гигиена, которую делают на любом новом сервере.

Как: обновления

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

apt update && apt upgrade -y

Это подтягивает свежие версии и закрывает известные дыры безопасности.

Firewall

Firewall пропускает только нужные порты и закрывает остальное. На Ubuntu обычно используют ufw:

ufw allow OpenSSH
ufw allow 80
ufw allow 443
ufw enable
  • OpenSSH (порт 22) - чтобы вы могли заходить.
  • 80 (http) и 443 (https) - чтобы пользователи открывали сайт.

Привязка домена

Чтобы сайт открывался по example.com, а не по IP, в настройках вашего домена (у регистратора или DNS-провайдера) добавьте A-запись, которая указывает на публичный IP сервера:

тип: A    имя: @    значение: <IP вашего сервера>

Через некоторое время (от минут до часов) домен начнёт вести на сервер.

nginx + SSL

nginx - веб-сервер, который принимает запросы из интернета и направляет их вашему приложению (например, на внутренний порт, где крутится Node.js или Python). Ставится так:

apt install nginx -y

SSL (https) - шифрование соединения. Бесплатный сертификат выдаёт Let's Encrypt, обычно через утилиту certbot. В общих чертах: ставите certbot, указываете домен, он сам получает и продлевает сертификат, а nginx переключает сайт на https.

Детальная настройка nginx и certbot зависит от стека и выходит за рамки этого вводного гайда, но логика всегда такая: домен - на IP, nginx принимает 80/443, certbot выдаёт https.

Пример

Создали сервер, выполнили apt update && apt upgrade -y, настроили ufw, добавили A-запись example.com на IP сервера, поставили nginx, получили сертификат через certbot. Теперь сайт открывается по https://example.com.

Антипаттерны

  • Выкладывать прод без обновлений и firewall. Открытый сервер быстро находят боты.
  • Забыть про https. Сайт без SSL браузеры помечают как небезопасный, часть функций не работает.
  • Открыть в firewall лишние порты «на всякий случай». Чем меньше открыто, тем безопаснее.

Что дальше

Разберём объектное хранилище Selectel (S3): когда оно нужно, как создать бакет и получить ключи.