< Назад в терминал

Первоначальная настройка Ubuntu 22.04

> Опубликовано: 2026.06.06 // Категория: Sysadmin

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

1. Актуализация системы

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

sudo apt update && sudo apt upgrade -y

2. Установка базового софта и свежего Nginx

Ставим необходимый набор утилит администратора (nano, tmux, htop, sudo, git, wget, aria2). Сразу за ними ставим последнюю Mainline-версию Nginx напрямую из официального репозитория, чтобы избежать устаревших пакетов Ubuntu.

Импортируем официальный GPG-ключ Nginx:

curl https://nginx.org | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Подключаем стабильный HTTPS-репозиторий (ветка Mainline):

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org jammy nginx" | sudo tee /etc/apt/sources.list.d/nginx.list

Задаем высокий приоритет для пакетов из официального репозитория:

cat << EOF | sudo tee /etc/apt/preferences.d/99nginx
Package: *
Pin: origin nginx.org
Pin-Priority: 900
EOF

Синхронизируем пакеты и устанавливаем всё одной командой:

sudo apt update && sudo apt install nano tmux htop sudo git wget aria2 nginx -y

3. Создание непривилегированного пользователя

Работать под root-аккаунтом небезопасно. Создаем нового пользователя (замените cyberpunk на свой никнейм) и даем ему доступ к вызову sudo:

sudo adduser cyberpunk
sudo usermod -aG sudo cyberpunk

4. Настройка SSH по ключам и блокировка root

Переносим публичный SSH-ключ с локального компьютера на сервер в хранилище нового пользователя. Выполните на локальном ПК:

ssh-copy-id -i ~/.ssh/id_rsa.pub cyberpunk@your_server_ip

Теперь возвращаемся на сервер, открываем конфигурацию SSH-демона:

sudo nano /etc/ssh/sshd_config

Внутри файла находим и выставляем следующие жесткие параметры:

PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin prohibit-password

Применяем изменения: sudo systemctl restart ssh. Внимание: не закрывайте текущую сессию, пока не проверите вход по ключу в новом окне терминала!

5. Развертывание Fail2Ban

Устанавливаем демон для защиты от ботов, перебирающих пароли и порты:

sudo apt install fail2ban -y

Создаем конфигурацию защиты SSH: sudo nano /etc/fail2ban/jail.local и добавляем базовые правила:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h

Запускаем и включаем автозагрузку: sudo systemctl enable fail2ban --now. Теперь сервер готов к работе.