Debian: ключи, SSH, root, sudoers, firewall, apt и upgrade 12→13 (Trixie)
1) Ключи и debian ssh: безопасный вход по ключам
Сгенерируйте ключ у себя на ноутбуке и загрузите на сервер:
# На своей машинеssh-keygen -t ed25519 -a 100 -f ~/.ssh/debian_ed25519 -C "admin@host"
ssh-copy-id -i ~/.ssh/debian_ed25519.pub admin@SERVER_IP
# Либо вручную:cat ~/.ssh/debian_ed25519.pub | ssh admin@SERVER_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
Жёсткие настройки SSH (drop-in вместо правки основного файла):
sudo bash -c 'cat >/etc/ssh/sshd_config.d/99-hardening.conf <<EOF
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin prohibit-password
AllowUsers admin
LoginGraceTime 20
MaxAuthTries 4
EOF'
sudo sshd -t && sudo systemctl reload ssh
PermitRootLogin prohibit-password разрешает root только по ключу, но блокирует пароли. Держите вторую SSH-сессию открытой, когда меняете доступ.
2) debian root: когда нужен root и как им пользоваться
Разовая эскалация: sudo -i
Задать/сменить пароль root (если нужен для консоли): sudo passwd root
Запретить вход root по паролю (см. SSH-дроп-ин выше).
3) debian sudoers: дать пользователю права администратора
Добавьте пользователя в группу sudo и (опционально) включите NOPASSWD для служебных задач.
sudo adduser admin
sudo usermod -aG sudo admin
# Точечные правила через visudo (рекомендуется)sudo visudo -f /etc/sudoers.d/admin
# В редакторе:admin ALL=(ALL:ALL) ALL
# или без запроса пароля для админ-скриптов:admin ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl, /usr/bin/journalctl
4) debian iptables и современный firewall: nftables по-умолчанию
C Debian 10+ iptables по умолчанию работает через бэкенд nf_tables (слой iptables-nft). Рекомендуемый путь — nftables: он проще, един для IPv4/IPv6 и производительнее.
Быстрый старт с nftables (рекомендуется)
sudo apt update && sudo apt install -y nftables
sudo tee /etc/nftables.conf >/dev/null <<'NFT'
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0;
ct state established,related accept
iif lo accept
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
tcp dport {22} accept # SSH
tcp dport {80,443} accept
counter drop
}
}
NFT
sudo systemctl enable --now nftables
sudo nft list ruleset
Открыть порт (пример для 8080):
sudo nft add rule inet filter input tcp dport 8080 accept
Если строго нужен debian iptables (совместимость)
sudo apt install -y iptables
sudo iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -I INPUT -i lo -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -P INPUT DROP
# Сохранить правила (Debian)sudo apt install -y iptables-persistent
sudo netfilter-persistent save
Для простых сценариев можно использовать UFW: sudo apt install -y ufw && sudo ufw allow 22 && sudo ufw allow 80,443 && sudo ufw enable. Но под сложные политики и high-load лучше nftables.
5) debian открыть порт: шорткаты
nftables: sudo nft add rule inet filter input tcp dport 25 accept
iptables: sudo iptables -I INPUT -p tcp --dport 25 -j ACCEPT && sudo netfilter-persistent save
Проверка:
ss -ltnp | grep ':25\|:8080\|:443'
sudo nft list ruleset | sed -n '1,120p'
6) debian 13 apt и регулярные обновления (debian 13 update)
Подходит и для Debian 12/13:
sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove --purge -y
APT-источники для Debian 13 (Trixie)
Сейчас стабильный релиз — Debian 13 “trixie”.
Security-обновления идут из trixie-security.
Вариант 1: классический sources.list
sudo tee /etc/apt/sources.list >/dev/null <<'LIST'
deb http://deb.debian.org/debian trixie main contrib non-free-firmware
deb http://deb.debian.org/debian trixie-updates main contrib non-free-firmware
deb http://security.debian.org/ trixie-security main contrib non-free-firmware
LIST
sudo apt update
Вариант 2: deb822-формат (рекомендуется с Trixie, один файл .sources)  
sudo mkdir -p /etc/apt/sources.list.d
sudo tee /etc/apt/sources.list.d/debian.sources >/dev/null <<'SRC'
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free-firmware
Types: deb
URIs: http://security.debian.org/
Suites: trixie-security
Components: main contrib non-free-firmware
SRC
sudo apt update
7) upgrade debian 12 to 13 / debian 12 обновить до 13
Перед апгрейдом:
# Бэкап списка пакетов и версий:dpkg --get-selections > ~/packages.list
apt-mark showhold
# Свежие обновления 12 (bookworm):sudo apt update && sudo apt full-upgrade -y
Отключите сторонние репозитории (/etc/apt/sources.list.d/*.list), удалите pin-фиксации, убедитесь, что есть свободное место.
Обновляем репозитории Bookworm → Trixie
# Заменить bookworm → trixie во всех .list:sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/*.list 2>/dev/null || true
# Или сразу перейти на deb822-файл (рекомендуется релиз-нотами):
# см. раздел выше и /etc/apt/sources.list.d/debian.sources
Обновление:
sudo apt update
sudo apt full-upgrade -y
sudo apt --fix-broken install -y
sudo apt autoremove --purge -y
sudo reboot
По релиз-заметкам апгрейд до Trixie требует обновления ядра, поэтому перезагрузка обязательна после завершения. Релиз-ноты также советуют перейти на deb822-формат источников и “очистить” старые записи Bookworm.
Проверка:
lsb_release -a
cat /etc/debian_version
uname -r
8) Быстрые шпаргалки
Поменять порт SSH:
echo -e "Port 2222\n" | sudo tee /etc/ssh/sshd_config.d/10-port.conf
sudo ufw allow 2222/tcp
sudo sshd -t && sudo systemctl reload ssh
- Запретить логин паролем (глобально): см. SSH-дроп-ин в начале.
Открыть порт «разово»:
nftables: sudo nft add rule inet filter input tcp dport 2525 accept
iptables: sudo iptables -I INPUT -p tcp --dport 2525 -j ACCEPT && sudo netfilter-persistent save
Посмотреть, что слушает:
ss -ltnup | sed -n '1,80p'
Нужны аудит доступа по ключам, аккуратное переключение на Debian 13, настройка nftables/iptables, миграция на deb822 APT, или «срочно нужно debian открыть порт и не уронить прод»? В HSTQ оперативно делаем доступ по ключам, настраиваем debian ssh, оформляем debian sudoers, приводим firewall в порядок, готовим резервные планы перед апгрейдом, а потом сопровождаем до стабильной 13-й.
Мы рассмотрели основные проблемы и задачи которые стоят, после установки сервера с ОС Debian
- Настроили ключи и debian ssh (только по ключам, root по ключу).
- Разобрались с debian sudoers и безопасной эскалацией.
- Включили firewall через nftables (и дали эквиваленты на debian iptables) + быстрые рецепты «debian открыть порт».
- Уточнили регулярные debian 13 apt-обновления и показали upgrade Debian 12 to 13 по релиз-нотам (включая security-репозиторий trixie-security).