Към съдържанието

Настройки за бисквитки

Изберете кои видове бисквитки разрешавате. Можете да промените избора си по всяко време чрез „Настройки за бисквитки“ в долната част на всяка страница. Декларация за поверителност

Необходими

Винаги включени

Нужни са за вход, за запазване на количката и на Вашите избори. Те са винаги включени.

Кои бисквитки?
  • weboke_sessie, weboke_klant, weboke_remember: Вашата сесия и оставането в акаунта
  • weboke_basket: Вашата количка
  • wkBtwIncl: показване на цените с или без ДДС
  • wok_cookies: Вашият избор за бисквитките, 12 месеца

Измерват коя реклама води до посещение или поръчка, за да не плащаме за реклами без резултат.

Кои бисквитки?
  • Google Ads чрез Google Tag Manager (_gcl_au, _gcl_aw), до 90 дни
  • OpenAI Ads, реклами в ChatGPT
  • wok_aff: кой партньор Ви е препратил към нас (партньорска програма), 60 дни

4,6

Държава и език

Всяка държава има собствен сайт, с цените и ДДС на тази държава.

Преглед

Управление на пакети с apt

Модул 4: Софтуер и актуализации · Време за четене: 10 минути

Цел на урока: След този урок ще можете да инсталирате, обновявате и премахвате софтуер с apt, ще виждате откъде идва даден пакет и ще разпознавате кои актуализации са актуализации за сигурност.

Основни понятия: пакет, източник на пакети (repository), sources.list, .sources файл (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, източник за сигурност, dnf

Защо мениджър на пакети?

В Windows изтегляте инсталационна програма от уебсайт. На Linux сървър почти никога не правите това. Софтуерът идва като пакет от източник на пакети (repository): сървър на дистрибуцията с хиляди програми, всички изградени и тествани за Вашата версия на Debian или Ubuntu. Програмата, която изтегля, инсталира и обновява тези пакети, се нарича мениджър на пакети. В Debian и Ubuntu това е apt (с dpkg под него), в AlmaLinux и Rocky Linux е dnf.

Това носи три големи предимства:

  1. Една команда обновява всичко. Уеб сървърът, SSH сървърът, библиотеките и ядрото идват от един и същ източник. Не е нужно да проверявате на уебсайт за всяка програма поотделно дали има нова версия.
  2. Произходът е проверен. Всеки източник на пакети е подписан с ключ. apt отказва пакети, чийто подпис не е верен.
  3. Зависимостите се уреждат автоматично. Ако nginx се нуждае от библиотека, apt я инсталира автоматично и по-късно отново я почиства.

Източниците на пакети: откъде идва софтуерът?

Кои източници използва apt, е записано в /etc/apt/. Дълго време това беше един файл sources.list с редове като:

deb http://deb.debian.org/debian bookworm main

Ubuntu 24.04 и по-новите версии, cloud образите на Debian и все повече нови инсталации използват по-новия формат deb822: отделни файлове с разширение .sources в /etc/apt/sources.list.d/. Стар sources.list може да се преобразува с sudo apt modernize-sources (apt 3, Debian 13). Например в Debian 13:

anna@web1:~$ cat /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Четете го така: suite е версията (trixie е Debian 13; noble е Ubuntu 24.04), component е част от източника (main при Debian; main, universe, restricted и multiverse при Ubuntu), а Signed-By посочва с кой ключ трябва да е подписан източникът. Последното е важно: един ключ принадлежи на един източник, а не на всички източници едновременно. Ако по-късно добавите източник от производител (Docker, Caddy, PostgreSQL), той получава собствен файл с ключ и собствен ред Signed-By (урок 9.2).

Източникът с -security в името е източникът за сигурност. От него идват актуализациите за сигурност, обикновено в същия ден, в който стане известна уязвимост. В Ubuntu този suite се казва noble-security (или името на Вашата версия).

Ако все още използвате стария sources.list, всичко работи нормално. Само не смесвайте един и същ източник в двата формата, защото тогава apt се оплаква от дублирани редове.

update, upgrade и full-upgrade

Разликата между тези три понятия е първият капан за начинаещите.

КомандаКакво прави
apt updateИзтегля списъка с това кои пакети и версии има в източниците. Не инсталира нищо.
apt upgradeОбновява инсталираните пакети до най-новата версия от този списък. Никога не премахва нищо. Актуализация, която би изисквала премахване на друг пакет, се пропуска.
apt full-upgradeСъщото, но може и да премахва пакети или да инсталира нови, ако е необходимо. Нужна е при надграждане на release (урок 4.3) и понякога при ново ядро.

Затова винаги първо update, после upgrade:

anna@web1:~$ sudo apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
...
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
anna@web1:~$ apt list --upgradable
Listing... Done
libssl3t64/trixie-security 3.5.1-1+deb13u1 amd64 [upgradable from: 3.5.1-1]
openssh-server/trixie-security 1:10.0p1-7+deb13u1 amd64 [upgradable from: 1:10.0p1-7]
tzdata/trixie-updates 2026b-0+deb13u1 all [upgradable from: 2026a-0+deb13u1]

(Номерата на версиите по-горе са пример.) След името е посочено от кой suite идва новата версия. Всичко с -security е актуализация за сигурност: тях искате възможно най-бързо. -updates са други стабилни актуализации, например нови данни за часовите зони.

След това:

anna@web1:~$ sudo apt upgrade

apt показва какво ще се промени и иска потвърждение. Прочетете този списък. Ако видите "The following packages will be REMOVED" (следните пакети ще бъдат ПРЕМАХНАТИ), се случва нещо необичайно и първо трябва да разберете защо.

Инсталиране, премахване и почистване

anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx       # програмата се премахва, конфигурацията в /etc остава
anna@web1:~$ sudo apt purge nginx        # премахване на програмата и конфигурацията
anna@web1:~$ sudo apt autoremove         # почистване на ненужните пакети

Разликата между remove и purge е полезна: ако искате да премахнете нещо временно и по-късно да го инсталирате отново със същите настройки, използвайте remove. Ако искате наистина да започнете начисто, използвайте purge.

Търсене и повече информация:

anna@web1:~$ apt search fail2ban
anna@web1:~$ apt show fail2ban
anna@web1:~$ apt-cache policy openssh-server
openssh-server:
  Installed: 1:10.0p1-7
  Candidate: 1:10.0p1-7+deb13u1
  Version table:
     1:10.0p1-7+deb13u1 500
        500 http://deb.debian.org/debian-security trixie-security/main amd64 Packages
 *** 1:10.0p1-7 500
        500 http://deb.debian.org/debian trixie/main amd64 Packages

apt-cache policy е командата, която използвате, когато искате да разберете откъде идва даден пакет и коя версия ще избере apt. *** стои при инсталираната версия, а Candidate е това, което би инсталирало едно надграждане.

Версии на Debian и версията на една програма

Често срещано оплакване: "В Debian има стара версия на nginx." Това е вярно и е направено нарочно. Debian и Ubuntu замразяват версиите при излизането на release и след това добавят само поправки за сигурност и сериозни корекции, без нови функции. Затова пакет със "стар" номер на версията може все пак да съдържа всички скорошни поправки за сигурност: те са пренесени назад (backport) в старата версия. Разпознавате това по наставката, например +deb13u1 или ubuntu0.1.

Затова никога не сравнявайте само номера на версията с уебсайта на производителя, за да прецените дали сте уязвими. Следете известията за сигурност на Вашата дистрибуция: Debian Security Tracker (security-tracker.debian.org) и Ubuntu Security Notices (ubuntu.com/security/notices) посочват за всяка уязвимост дали Вашата версия е поправена.

Няколко правила за спокоен сървър

  • Инсталирайте само това, от което се нуждаете. Всеки пакет е код, който трябва да се обновява, а понякога и услуга, която слуша (урок 5.1).
  • По-добре от дистрибуцията, отколкото от уебсайт. Програма, която компилирате сами или изтегляте като отделен файл, не се обновява от apt upgrade. Тогава Вие сами трябва да следите известията за сигурност.
  • Допълнителен източник само от самия производител, със собствен ключ и Signed-By. Никога не добавяйте ключ "за всичко" и никога източник от непознат уебсайт (урок 4.3).
  • Четете какво пита apt. При надграждане apt може да попита дали искате да замените променен конфигурационен файл с новата версия на производителя. Ако не знаете какво сте променили в него, изберете "keep the local version" (запазване на локалната версия, по подразбиране) и по-късно вижте разликата с diff: новата версия е до него като .dpkg-dist.

В AlmaLinux и Rocky Linux

Там мениджърът на пакети се казва dnf, а пакетите са .rpm. Командите приличат на тези на apt: dnf check-update (списъкът), dnf upgrade (обновяване, update и upgrade наведнъж), dnf install, dnf remove, dnf info. Източниците са в /etc/yum.repos.d/*.repo. Много допълнителен софтуер (например fail2ban) идва от отделния източник EPEL, който първо включвате с dnf install epel-release. Само актуализациите за сигурност можете да покажете с dnf updateinfo list --security.

На практика: екранът на VPS

При WebOké, както и при повечето други доставчици, инсталацията на Вашия VPS вече настройва правилно стандартните източници на дистрибуцията. Обикновено не е нужно да променяте нищо там. Обновете сървъра веднага след първото влизане с apt update и apt upgrade (урок 1.2) и преди големи промени направете snapshot в панела на Вашия доставчик.

Обобщение

  • В Debian и Ubuntu софтуерът идва от подписани източници на пакети; apt изтегля, инсталира, обновява и почиства.
  • apt update само изтегля списъка; apt upgrade обновява, без да премахва; apt full-upgrade може и да премахва.
  • Актуализациите за сигурност идват от suite с -security в името; apt list --upgradable и apt-cache policy показват откъде идва дадена версия.
  • Стар номер на версията с +deb13u1 или ubuntu0.x може да съдържа всички поправки (backport): следете известията за сигурност на Вашата дистрибуция.
  • Допълнителен източник само от самия производител, със собствен ключ в Signed-By.

Тест (quiz)

1. Въвеждате sudo apt upgrade на сървър, на който от седмица не сте правили нищо, и apt съобщава, че всичко е обновено. Но знаете, че вчера е излязла актуализация на OpenSSH. Кое е най-вероятното обяснение?



2. Каква е разликата между apt remove и apt purge?



3. В apt list --upgradable пише openssh-server/noble-security .... Какво показва частта noble-security?



4. На уебсайта на една програма е посочена версия 2.8, докато Debian предлага 2.6 с +deb13u2. Колега казва: "Значи Debian е уязвим за всички пробиви, поправени в 2.7 и 2.8." Кое е вярно?



5. Защо допълнителният източник на пакети трябва да има собствен ключ с Signed-By?



Задача

Задача Z4.1: Кои актуализации са актуализации за сигурност? В примерния файл apt-upgradable.txt е изходът от apt list --upgradable и apt-cache policy на сървър с Debian 13. Отговорете: кои пакети идват от източника за сигурност, кой пакет идва от източник на производител вместо от Debian, коя версия на openssh-server е инсталирана в момента и кой пакет е обикновена стабилна актуализация без причина, свързана със сигурността? Програмата сравнява отговорите Ви с фиксирания ключ. Ако вече имате собствен сървър, изпълнете същите команди и вижте какво ще получите.

Задача Z4.1: Кои актуализации са актуализации за сигурност?

Файл към тази задача: apt-upgradable.txt





Това, което въвеждате, и резултатите от проверката не се съхраняват. Браузърът Ви запомня отговорите и дали сте изпълнили задачата. Ако сте влезли, запазваме само дали задачата е била (почти) правилна в Моите курсове; и там можете да го изтриете.

Още за четене

Моля, изчакайте…

Настройте домейните си

За всеки домейн настройте сървърите за имена, връзката с хостинга и кой ще бъде собственикът.

Домейните Ви се зареждат…