Automatyczne aktualizacje bezpieczeństwa
Jak skonfigurować unattended-upgrades na Debianie i Ubuntu oraz dnf-automatic na AlmaLinux, żeby poprawki instalowały się same, a usługa nie padała w nocy.
Zaktualizowano 23 sierpnia 2026
Większość włamań następuje przez luki, które załatano miesiące temu. Ręczne aktualizacje się odkłada, automatyczne nie. Rozsądna konfiguracja instaluje tylko aktualizacje bezpieczeństwa, a resztę zostawia w spokoju.
Debian i Ubuntu
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades
Plik /etc/apt/apt.conf.d/50unattended-upgrades:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Package-Blacklist {
"postgresql-.*";
"docker-ce";
};
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "you@example.com";
Harmonogram znajduje się w /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Próbny przebieg, bez wprowadzania zmian:
unattended-upgrade --dry-run --debug
systemctl status unattended-upgrades
cat /var/log/unattended-upgrades/unattended-upgrades.log
AlmaLinux i CentOS Stream
dnf install -y dnf-automatic
W /etc/dnf/automatic.conf:
[commands]
upgrade_type = security
apply_updates = yes
reboot = never
systemctl enable --now dnf-automatic.timer
systemctl list-timers | grep dnf
Co wykluczyć
Dodaj do listy wykluczeń wszystko, co się psuje, gdy jego wersja zmieni się nieoczekiwanie: serwer bazy danych, Docker, sam silnik aplikacji. Aktualizuj je ręcznie w spokojnym momencie — zobacz aktualizacje systemu i pakietów.
Aktualizacje bezpieczeństwa jądra też się instalują, ale działają dopiero po restarcie:
test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs
Restart: tylko decyzja człowieka
Pokusa, żeby ustawić Automatic-Reboot "true", jest duża, ale automatyczny nocny restart oznacza, że usługa wstaje bez niczyjego nadzoru. Jeśli coś się nie podniesie, dowiesz się o tym rano od użytkowników.
Rozsądny kompromis: aktualizacje instalują się same, a ty restartujesz ręcznie raz w miesiącu, patrząc na konsolę w panelu /hosting/vds/m/<id>. Przy okazji sprawdź, czy usługi startują samodzielnie:
systemctl is-enabled nginx postgresql
systemctl list-units --state=failed
Częste błędy
| Błąd | Skutek | Poprawka |
|---|---|---|
| Włączone aktualizacje dla wszystkich repozytoriów, nie tylko bezpieczeństwa | Pojawiają się zmiany funkcji | Zostaw tylko źródło -security |
| Baza danych nie jest na liście wykluczeń | Zmiana wersji głównej psuje dane | Dodaj ją do Package-Blacklist |
| Automatyczny restart w nocy | Usługa się nie podniosła i nikt tego nie zauważył | Automatic-Reboot "false" |
| Skonfigurowane i zapomniane | Jądro się aktualizuje, ale aktualizacja nie zostaje zastosowana | Sprawdzaj reboot-required raz w miesiącu |
| Pobrane pakiety zapełniły dysk | Skończy się miejsce | Zostaw włączone automatyczne czyszczenie pamięci podręcznej |
Automatyczne aktualizacje to ubezpieczenie, a nie zastępstwo uwagi. Raz w miesiącu otwórz maszynę, spójrz na dziennik aktualizacji, listę usług, które się nie uruchomiły, i czy potrzebny jest restart. Piętnaście minut miesięcznie pokrywa większość scenariuszy z artykułu o oznakach włamania.