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ış.debdosyalarını kullanarak).-p /var/cache/apt/archives: Önbelleğe alınmış.debdosyaları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:
-
Değişiklikler İçin Hızlı Tarama:
bash sudo debsums -cBu, 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. -
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. -
Özetleri Olmayan Paketleri Tanımlama:
bash debsums -lBu,debsums‘un doğrulayamadığı paketleri işaretler. Bunları ayrı olarak araştırmanız gerekecektir. -
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. -
Kapsamlı Bütünlük Tarama:
bash sudo debsums -cagp /var/cache/apt/archivesBu 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:
-
Değişmiş dosyaları bulun:
bash sudo debsums -c -
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 -
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.