Cloud Channels

Заметки о сетях и серверах

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

16 октября 2026

Свежий сервер сразу после выдачи — это открытый SSH с паролем, неизвестный набор пакетов и пустой firewall. Ниже порядок действий, который занимает около часа и закрывает самые частые проблемы. Главное правило: каждый шаг проверять, а не только выполнять.

1. Отдельный пользователь и вход по ключу

Работать под root неудобно и опасно. Заведите пользователя, выдайте ему sudo и положите публичный ключ:

adduser admin
usermod -aG sudo admin
install -d -m 700 -o admin -g admin /home/admin/.ssh
cat key.pub >> /home/admin/.ssh/authorized_keys
chown admin:admin /home/admin/.ssh/authorized_keys
chmod 600 /home/admin/.ssh/authorized_keys

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

2. Закрыть вход по паролю и root

Удобнее всего — отдельным файлом в sshd_config.d: он не конфликтует с обновлениями пакета.

# /etc/ssh/sshd_config.d/00-hardening.conf
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
sudo sshd -t && sudo systemctl reload ssh
sudo sshd -T | grep -E 'passwordauthentication|permitrootlogin'

В sshd действует первое найденное значение параметра, поэтому файл с номером 00 перекрывает строки ниже в основном конфиге. Последняя команда показывает, какие значения применились на самом деле.

3. Firewall

Сначала разрешите SSH, потом включайте firewall — не наоборот:

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

Если SSH работает на нестандартном порту, разрешайте именно его. У многих провайдеров есть ещё и firewall в панели управления — правила нужно держать согласованными в обоих местах.

4. Обновления

sudo apt update && sudo apt full-upgrade
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Автоматические обновления безопасности ставят патчи без вашего участия. Перезагрузку после обновления ядра лучше делать вручную, в удобное время: файл /var/run/reboot-required подскажет, что она нужна.

5. Время

timedatectl
sudo timedatectl set-timezone Europe/Moscow

В выводе должно быть System clock synchronized: yes. Неверное время ломает TLS-сертификаты, журналы и всё, что сверяет метки времени.

6. Swap на маленьком сервере

На VPS с 1 ГБ памяти небольшой swap спасает от внезапного OOM при обновлении пакетов:

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
swapon --show

7. Защита от перебора

sudo apt install fail2ban
sudo fail2ban-client status sshd

Даже при входе только по ключу fail2ban полезен: он снижает шум в журналах и нагрузку от сканеров.

8. Итоговая проверка

После этого сервер готов к установке того, ради чего он заводился.

← Все заметки