DevOps & Platform Eng

Debian Dosya Bütünlüğü: Paket Kontrolleri İçin Debsums

Yüklediniz, ama hala *doğru* durumda mı? Sonsuz `diff` komutlarını unutun; `debsums`, Debian paket dosyalarınızın yoldan çıkıp çıkmadığını anlamanın basit bir cevabını veriyor.

{# Always render the hero — falls back to the theme OG image when article.image_url is empty (e.g. after the audit's repair_hero_images cleared a blocked Unsplash hot-link). Without this fallback, evergreens with cleared image_url render no hero at all → the JSON-LD ImageObject loses its visual counterpart and LCP attrs go missing. #}
Bir terminalde debsums komutunun ve çıktısının göründüğü bir ekran görüntüsü.

Key Takeaways

  • `debsums`, Debian paket dosyalarını depolanan MD5 özetleriyle karşılaştırarak yerel değişiklikleri veya bozulmaları tespit etmeye yardımcı olur.
  • Dosya bütünlüğüne odaklanarak, bilinen güvenlik açıklarını değil, `debsecan` gibi güvenlik açığı tarayıcılarını tamamlar.
  • Varsayılan olarak `/etc`'deki yapılandırma dosyaları hariç tutulur, ancak `-a` bayrağı ile dahil edilebilir.
  • Araç, özetleri eksik paketleri (`-l`) belirleyebilir ve daha geniş kontroller için önbelleğe alınmış `.deb` dosyalarını indirme ve kullanma yöntemleri sunar.
  • Pratik bir iş akışı, ilk taramaları, yapılandırma dosyalarını kontrol etmeyi, eksik özetleri belirlemeyi ve kapsamlı bir bütünlük taraması yapmayı içerir.

Dosyalar değişir.

Bu, zamanın veya en azından sistem yöneticiliğinin başlangıcından beri bilinen bir hikaye. Debian veya Ubuntu makinenize bir paket yüklediğinizde, bir süre her şey yolunda gider. Sonra, belki de bir betik fazla agresif davranır, biri karıştırılmaması gereken bir yapılandırma dosyasını kurcalar veya beklenmedik bir kapanmanın ardından diskiniz huysuzlanır. Birdenbire, kafanız karışır: Bu şey hala beklediğim durumda mı? Bir şey, herhangi bir şey, karıştırıldı mı?

debsums bu soruyu yanıtlıyor.

Bakın, hepimiz bu durumdayız. “Garip” davranan bir sisteme bakıp duruyoruz. Logları grep‘leyerek, dizinleri diff‘leyerek saatler harcayabilir, karanlıkta çırpınıp durabilirsiniz. Ya da tam da bu tür dijital dedektiflik işleri için tasarlanmış bir araç kullanabilirsiniz. Debian tabanlı sistemler için bu araç debsums.

Çok gösterişli değil. Manşetlere çıkmaz. Ama bir paketin yüklediği dosyaların diskte gerçekten değişip değişmediğini bilmeniz gerektiğinde, işte bu aracın yanındasınız. Dürüst olalım, teknoloji “havası”nın büyük resminde, bu kadar temelde pratik bir şeyi bulmak bir kazanımdır.

Güvenlik Açığı Taramalarının Ötesinde

Şimdi, bunu kapsayıcı bir güvenlik süper kahramanı sanmadan önce, frene basalım. debsecan aracını yazan kişiler bilinen güvenlik açıklarını - güvenlik ekiplerini terleten CVE’leri - bulmakla meşgul. debsums tamamen farklı bir oyun oynuyor. Bir paketin güvenlik açığı olup olmadığını sormuyor. O paketin orada bulundurduğu dosyaların hala orijinal dosyalar olup olmadığını soruyor.

Şöyle düşünün: debsecan sizin kimliğinizi kontrol ederek izleme listesinde olup olmadığınızı kontrol eden polis. debsums ise bavulunuzu manifestoyla karşılaştıran güvenlik görevlisi. İki farklı iş, ikisi de önemli, ama şüphelileri sorgulamak için bagaj tarayıcısını göndermezsiniz.

debsums, sisteminizdeki dosyaları MD5 özetleriyle karşılaştırarak sihrini yapar. Bu özetler, her paket için /var/lib/dpkg/info/*.md5sums içinde düzenli bir şekilde saklanır. Disk üzerindeki bir dosyanın hesaplanan özeti, .md5sums dosyasında kayıtlı olanla eşleşmezse, debsums bir uyarı verir.

Neleri tespit edebilir?

  • Yerel olarak değiştirilmiş paket dosyaları (klasik suçlu).
  • Tamamen kaybolmuş dosyalar.
  • Oluşabilecek veri bozulmasının veya “bit çürümesinin” bazı türleri.

Ancak, man sayfası hızlıca belirttiği gibi - ve buna dikkat etmelisiniz - bu tam kapsamlı bir güvenlik denetimi değildir. Öncelikle yerel olarak kurcalanmış veya donanım sorunlarıyla zarar görmüş dosyaları bulmak içindir. Beklentileri belirlemek için bu ayrım çok önemlidir.

Başlangıç: Kolay (Çoğunlukla)

Debian veya Ubuntu kullanıyorsanız, debsums‘u edinmek birkaç standart komut kadar basittir:

sudo apt-get update
sudo apt-get install debsums

Sadece orada olduğundan emin olmak için hızlı bir:

debsums --version

onaylayacaktır.

Sadece etrafı yoklarken, küçük başlayın. Eğer belirli bir paket, örneğin bash, size sorun çıkarıyorsa, şunu çalıştırın:

debsums bash

Her şey yolundaysa, muhtemelen sessizlik duyarsınız. Sistem yöneticiliği dünyasında bu iyi bir sessizliktir.

Daha hızlı bir sorun giderme için, özellikle sadece sorunları görmek istediğinizde, --silent bayrağı dostunuzdur:

debsums --silent bash

Bu, değişmemiş dosyalar için tüm çıktıyı bastırır ve sadece hataları bırakır. Kullanışlı.

Şimdi, tüm ana makinenizde hızlı bir tarama için - bir sağlık kontrolü sırasında başvuracağım türden bir komut - işte bu sizin biletiniz:

sudo debsums -c

-c bayrağı --changed anlamına gelir ve --silent‘ı ima eder. Yani, sadece gerçekten değiştirilmiş dosyaları raporlar. Bu komut hiçbir şey döndürmezse, genellikle rahat bir nefes alabilirsiniz.

Yapılandırma Dosyaları: Dikkatli Kullanın

İşte debsums‘un biraz incelendiği ve dürüst olmak gerekirse, akıllı olduğu bir nokta:

Varsayılan olarak, debsums /etc‘de bulunan yapılandırma dosyalarını aktif olarak yok sayar. Neden? Çünkü bu dosyaların değişmesi beklenir. Bir uygulamayı kurduğunuzda, genellikle yapılandırmasını ayarlamanız istenir. Bu özel değişikliklerin varsayılanlarla üzerine yazılması felaket olurdu.

Eğer yapılandırma dosyalarını da kontrolünüze dahil etmek isterseniz - belki de istenmeyen değişikliklerden endişe ediyorsunuzdur - -a bayrağını ( --all için) kullanabilirsiniz:

sudo debsums -ca

Ve eğer sadece yapılandırma dosyalarını kontrol etmek istiyorsanız, bu da mümkün:

sudo debsums -ce

Bu seçenekleri ihtiyaca göre kullanın. Değişmiş bir yapılandırma dosyası her zaman kötü bir şey değildir; bazen sadece normal, sorumlu sistem yönetimidir.

Özetler Kaybolduğunda

Her paket bu kullanışlı .md5sums dosyasıyla gelmez. debsums, -l bayrağını kullanarak bu bilgiden yoksun olan paketleri söyleyebilir:

debsums -l

Bu, bu paketlerin doğası gereği güvensiz veya bozuk olduğu anlamına gelmez. Sadece debsums, yerel özetlerle dosyalarını doğrulayamaz çünkü başlangıçta hiç özet yoktur. Bunları duruma göre ele almanız gerekecektir, belki paket deposuna güvenerek veya daha derin manuel kontroller yaparak.

Özet Önbelleğini Yeniden Oluşturma

Eğer debsums‘un daha fazla veriye sahip olmasını isterseniz, özellikle özetleri eksik olan paketler için? Debian man sayfası harika bir numara sunar: paket arşivlerini APT önbelleğinize indirin.

Önce, özetleri eksik paketlerin listesini alın:

debsums -l

Ardından, ilgili .deb dosyalarını indirmek için bu listeyi kullanın:

sudo apt-get --reinstall -d install $(debsums -l)

Bu, /var/cache/apt/archives dizininizi doldurur. Şimdi, debsums daha önce mevcut olmayan özetleri oluşturmak için bu önbelleğe alınmış arşivleri kullanabilir. Ardından -g (oluştur) ve -p (yol) bayraklarını kullanarak daha kapsamlı bir kontrol yapabilirsiniz:

sudo debsums -cagp /var/cache/apt/archives

Bu bayrakların anlamları şunlardır:

  • -c: Değişen dosyaları göster.
  • -a: Yapılandırma dosyalarını dahil et.
  • -g: Eksik özetleri olan paketler için özet oluştur (önbelleğe alınmış .deb dosyalarını kullanarak).
  • -p /var/cache/apt/archives: Önbelleğe alınmış .deb dosyalarının bulunduğu dizini belirtir.

Bu komut dizisi, bir Debian ana makinesinde çalıştırabileceğiniz en güçlü bütünlük kontrollerinden biridir. Sadece hızlı değişiklikleri aramanın ötesine geçen tam sistem taramasıdır.

Sistem Kontrolleri İçin Pratik Bir İş Akışı

Eğer sorun çıkaran bir Debian sunucusunu kontrol etmekle görevlendirilirsem, muhtemelen şu sırayla ilerlerim:

  1. Değişiklikler İçin Hızlı Tarama: bash sudo debsums -c Bu, kurulumdan bu yana değiştirilmiş dosyalar hakkında anında bir görünüm sağlar. Bu sizin ilk savunma hattınızdır.

  2. Yapılandırma Dosyalarını Dahil Etme: bash sudo debsums -ca İlk tarama bir şey göstermezse, ancak hala şüpheleniyorsanız, kapsamı yapılandırma dosyalarını içerecek şekilde genişletin. Unutmayın, bunlar genellikle kasıtlı olarak değiştirilir, ancak neyin değiştiğini bilmek iyidir.

  3. Özetleri Olmayan Paketleri Tanımlama: bash debsums -l Bu, debsums‘un doğrulayamadığı paketleri işaretler. Bunları ayrı olarak araştırmanız gerekecektir.

  4. Eksik Paket Arşivlerini İndirme: bash sudo apt-get --reinstall -d install $(debsums -l) Gerekli dosyaları alarak daha derinlemesine bir kontrol için hazırlanın.

  5. Kapsamlı Bütünlük Tarama: bash sudo debsums -cagp /var/cache/apt/archives Bu büyük finaldir. Sisteminizin bütünlüğünün en net resmini elde etmek için mevcut tüm bilgiyi kullanan kapsamlı bir kontroldür.

Bu yapılandırılmış yaklaşım, rastgele /usr altındaki dosyaları diff‘leyip doğru sorunu bulmayı ummaktan çok daha net bir sinyal sağlar. Metodiktir.

Değişikliklerden Kurtarma

Yani, debsums -c değiştirilmiş bir dosyayı, örneğin /usr/bin/example-tool‘u çıkardı. Şimdi ne olacak? Hangi pakete ait olduğunu bilmeniz gerekiyor. dpkg -S komutu burada dostunuzdur:

dpkg -S /usr/bin/example-tool

Bu size example-package: /usr/bin/example-tool gibi bir şey söyleyecektir ve sorumlu paketi açıkça tanımlayacaktır.

Paket adını aldıktan sonra, yeniden yükleme ile devam edebilirsiniz. debsums man sayfası bunun için bir iş akışı özetler, ancak adım adım kırmak size daha fazla kontrol verir:

  1. Değişmiş dosyaları bulun: bash sudo debsums -c

  2. Tüm değişmiş dosyaların ait olduğu paketleri alın ve bunları tekilleştirin: bash dpkg -S $(sudo debsums -c) | cut -d: -f1 | sort -u

  3. Bu paketleri yeniden yükleyin: bash sudo apt-get install --reinstall $(dpkg -S $(sudo debsums -c) | cut -d: -f1 | sort -u)

Son komutta dikkatli olun. Paket tarafından yönetilen dosyaları orijinal hallerine döndürmek için son derece kullanışlıdır. Ancak, her değişmiş dosyanın körü körüne üzerine yazılması gerektiği anlamına gelen sihirli bir değnek değildir. Eğer o dosya kasıtlı olarak değiştirildiyse ve bu değişiklik hala gerekiyorsa, tam bir yeniden yükleme sisteminizi bozabilir. Her zaman neden bir dosyanın değiştiğini, körü körüne geri yüklemeden önce anlayın.

Bu, mutlak, ulaşılamaz güvenlik hakkında değil. Bu, pratik, doğrulanabilir bütünlük hakkındadır. Ve bunun için debsums, Debian yöneticisinin araç setinde vazgeçilmez bir araçtır. Tahminleri ortadan kaldırır.


🧬 İlgili İçgörüler

Written by
DevTools Feed Editorial Team

Curated insights, explainers, and analysis from the editorial team.

Worth sharing?

Get the best Developer Tools stories of the week in your inbox — no noise, no spam.

Originally reported by dev.to