Записки админа: Debian Печать

  • debian, nftables, sudoers
  • 0

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). 


Помог ли вам данный ответ?

Связанные статьи

Как использовать свои подсети /24 на серверах Hetzner. Использование на Windows Server   Hetzner выдаёт только один белый IP. Хочется RDP на несколько ВМ, собственный почтовый пул или... Какие есть боты/сервисы, которые стоит добавить в исключения? Практический гайд для защиты сайта и бизнеса В современных условиях кибербезопасности настройка блокировок и фильтров — обязательная мера для... Какие есть боты/сервисы, которые стоит добавить в исключения? Практический гайд для защиты сайта и бизнеса В современных условиях кибербезопасности настройка блокировок и фильтров — обязательная мера для... Что делать, если сертификаты Let’s Encrypt не обновляются? Простое решение за 5 минут Сертификаты от Let’s Encrypt стали стандартом для бесплатной автоматической защиты сайтов по... Какие сервисы и решения реально помогают? Топ-10 инструментов Почему взламывают сайты и что самое опасное? Современный сайт на WordPress, Битрикс, Joomla,...
« Назад

Powered by WHMCompleteSolution


База знаний