Мини-чек-лист
- Обновить систему, включить автопатчи, настроить время.
- Создать админа, настроить ключи SSH, ограничить логин паролем.
- Включить файрвол, защитить sshd rate-limit’ом, поставить fail2ban.
- Создать swap (если ОЗУ ≤ 4–8 ГБ).
- Задать hostname и FQDN, проверить PTR.
Обновления, время, базовые утилиты
sudo apt update && sudo apt -y upgrade
sudo apt install -y vim curl wget ca-certificates gnupg lsb-release \
jq htop net-tools unzip ufw fail2ban unattended-upgrades ntp
sudo dpkg-reconfigure --priority=low unattended-upgrades
sudo timedatectl set-timezone Europe/Berlin
sudo systemctl enable --now ntp
Пользователь и ключи SSH
# создайте админа (замените admin на нужного)sudo adduser admin
sudo usermod -aG sudo admin
# включите вход по ключу и запретите пароли (безопасный вариант)sudo -u admin mkdir -p /home/admin/.ssh
sudo -u admin chmod 700 /home/admin/.ssh
# вставьте ваш публичный ключ вместо примера одной строкой:echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB5X8bWkAqQe7zVn0g7r6Q0z9m1b7XJm1qI8QwXyDemo admin@host' | sudo tee /home/admin/.ssh/authorized_keys
sudo chown -R admin:admin /home/admin/.ssh
sudo chmod 600 /home/admin/.ssh/authorized_keys
# жёсткие настройки sshd drop-insudo bash -c 'cat >/etc/ssh/sshd_config.d/99-hardening.conf <<EOF
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
EOF'
sudo sshd -t && sudo systemctl reload ssh
UFW и базовая защита
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw limit 22/tcp comment 'SSH rate limit'
sudo ufw enable
sudo ufw status verbose
Fail2ban по умолчанию
sudo bash -c 'cat >/etc/fail2ban/jail.d/sshd.local <<EOF
[sshd]
enabled = true
bantime = 1h
findtime = 10m
maxretry = 6
EOF'
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
Swap (пример на 2 ГБ)
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo swapon -a && swapon --show
Hostname и FQDN
echo 'srv01' | sudo tee /etc/hostname
sudo hostnamectl set-hostname srv01
Какие «панели» бывают и когда их ставить
- Хостинг-панели для сайтов и почты
HestiaCP, ISPConfig, aaPanel. Подойдут, если нужно быстро поднять веб-хостинг, базы, почту, FTP, DNS.
- Панели для контейнеров
Portainer (Docker UI), Yacht. Быстрый визуальный контроль стека, деплой по шаблонам.
- Реверс-прокси и SSL
Nginx Proxy Manager — удобная веб-морда к Nginx, автоматические сертификаты.
- Коллаборация и файлы
Nextcloud — «личный Dropbox» с пользователями, шифрованием и приложениями.