раздел 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): когда оно нужно, как создать бакет и получить ключи.