Automatiniai Ubuntu saugumo atnaujinimai — vadovas
Paleiskite serveryje viena komanda (pirmiausia patikrinkite skripto turinį žemiau):
curl -sSL https://cp.lv/scripts/avtomaticheskie-obnovleniya-ubuntu.sh | sudo bash…arba su wget:
wget -qO- https://cp.lv/scripts/avtomaticheskie-obnovleniya-ubuntu.sh | sudo bashSkripto turinys avtomaticheskie-obnovleniya-ubuntu.sh:
#!/usr/bin/env bash
# Set up unattended-upgrades: install, enable, automatic reboot
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
# 1. Install the package
sudo apt-get update -y
sudo apt-get install -y unattended-upgrades
# 2. Enable the daily check and install (20auto-upgrades file)
sudo tee /etc/apt/apt.conf.d/20auto-upgrades > /dev/null << 'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
EOF
# 3. Security patches only, reboot automatically at 04:00
sudo tee /etc/apt/apt.conf.d/51custom-unattended > /dev/null << 'EOF'
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
EOF
# 4. Verify the configuration with a dry run
sudo systemctl enable --now unattended-upgrades
sudo unattended-upgrades --dry-run --debug || true
echo "Done: automatic security updates are enabled."
Automatiniai saugumo atnaujinimai Ubuntu sistemoje nustatomi paketu unattended-upgrades: jis kasdien tikrina ir įdiegia saugumo pataisas be jūsų dalyvavimo. Taip spragos uždaromos anksčiau, nei jomis spėja pasinaudoti. Aptarsime nustatymą žingsnis po žingsnio.
1 žingsnis. Įdiekite paketą
Daugumoje Ubuntu atvaizdų jis jau yra, bet įdiegti nepakenks:
sudo apt update
sudo apt install unattended-upgrades -y
2 žingsnis. Įjunkite automatinius atnaujinimus
Paleiskite interaktyvų nustatymą:
sudo dpkg-reconfigure --priority=low unattended-upgrades
Pasirodžiusiame lange pasirinkite Yes. Bus sukurtas failas /etc/apt/apt.conf.d/20auto-upgrades su tokiu turiniu:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Vienetai reiškia „vykdyti kasdien“.
Tą patį failą galima sukurti iš karto viena komanda, be interaktyvaus dialogo — nukopijuokite ir įklijuokite į konsolę (heredoc įrašys visą failą):
sudo tee /etc/apt/apt.conf.d/20auto-upgrades > /dev/null << 'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
EOF
3 žingsnis. Nustatykite, ką atnaujinti
Atidarykite pagrindinę konfigūraciją:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Pagal numatymą įjungti tik saugumo atnaujinimai — serveriui tai optimalu. Įsitikinkite, kad bloke Allowed-Origins aktyvi eilutė su -security:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
4 žingsnis. Nustatykite automatinį perkrovimą
Kai kurie atnaujinimai (pavyzdžiui, branduolio) pritaikomi tik po perkrovimo. Kad serveris persikrautų automatiškai patogiu metu, tame pačiame faile nuimkite komentaro ženklą ir nurodykite parametrus:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Perkrovimas įvyks 4 valandą ryto tik tuo atveju, jei jis tikrai reikalingas. Jei serverio negalima perkrauti automatiškai — palikite false ir perkraukite rankiniu būdu.
5 žingsnis. Nustatykite pranešimus el. paštu (neprivaloma)
Kad gautumėte laiškus apie pritaikytus atnaujinimus, nurodykite adresą:
Unattended-Upgrade::Mail "[email protected]";
Unattended-Upgrade::MailReport "on-change";
Laiškams siųsti reikės sukonfigūruoto MTA (pavyzdžiui, postfix arba ssmtp).
6 žingsnis. Patikrinkite veikimą
Paleiskite bandomąjį vykdymą be realaus diegimo:
sudo unattended-upgrades --dry-run --debug
Peržiūrėti jau pritaikytų atnaujinimų žurnalą:
cat /var/log/unattended-upgrades/unattended-upgrades.log
Patikrinti, ar reikalingas perkrovimas:
ls /var/run/reboot-required
Jei failas yra — branduolys arba bibliotekos atnaujinti, reikia perkrauti.
Ką verta ir ko neverta atnaujinti automatiškai
| Atnaujinimų tipas | Automatiškai | Komentaras |
|---|---|---|
| Saugumas | Taip | Rekomenduojama visada |
| Įprasti paketai | Atsargiai | Galimi elgsenos pokyčiai |
| OS versijos keitimas | Ne | Tik rankiniu būdu su patikra |
Dažni klausimai
Ar automatiniai atnaujinimai nesugadins serverio? Saugumo atnaujinimai perkelia tik pataisymus, nekeisdami pagrindinio funkcionalumo, todėl rizika minimali. Pilni versijų atnaujinimai (release upgrade) automatiškai nediegiami.
Ar verta įjungti automatinį perkrovimą?
Jei trumpa prastova naktį priimtina — taip, kitaip branduolys liks neatnaujintas. Jei perkrovimas nepageidautinas, palikite false ir planuokite jį rankiniu būdu pagal reboot-required žymą.
Kaip laikinai išjungti automatinius atnaujinimus?
Faile 20auto-upgrades nustatykite APT::Periodic::Unattended-Upgrade "0"; arba pašalinkite paketą unattended-upgrades.
Ar automatiniai atnaujinimai pakeičia rankinę kontrolę? Jie uždaro saugumo pataisas, bet serverio būklę vis tiek reikia stebėti: tikrinti žurnalus, laisvą vietą ir perkrovimo poreikį.
Apibendrinimas
unattended-upgrades — paprastas būdas laikyti serverį apsaugotą be kasdienio rankinio apt upgrade. Įjunkite saugumo atnaujinimus, jei įmanoma, nustatykite automatinį perkrovimą ir periodiškai tikrinkite žurnalus.
Norite serverio savo projektui? Rinkitės Linux VPS, užsisakykite VPS nuomą arba Serverių administravimą, jei priežiūrą patogiau patikėti specialistams.