Debian kaynak paketini nasıl güvenli bir şekilde indirebilir ve doğrulayabilirim?


13

Debian'ın belirli (kaynak veya ikili) paketlerine ihtiyacım var.

Paketi apt-get kullanarak indirebilir miyim?

Debian deposunu sources.list'ime nasıl ekleyebilirim ki yalnızca by case bazında kullanılır? Tüm Debian deposunu kullanarak sistemimi bozmadan?

Debian deposunun paketin Debian arşivi tarafından imzalandığından emin olması için gpg anahtarını nasıl alabilirim?

(Lütfen bana sistemin bozulabileceğini söyleme. Bunun farkındayım ve daha az umursamadım çünkü bir VM anlık görüntüsünü kolayca geri yükleyebilirim.)


Çözümün bir kısmı, /usr/share/keyrings/debian-archive-keyring.gpg dosyasını içeren debian-archive-keyring paketi olabilir.
James Mitch

Çözümün başka bir kısmı Apt- Pinning
James Mitch

Bu cevabım size yardımcı oluyor mu? askubuntu.com/questions/263705/…
andol

Yanıtlar:


14

Bireysel olarak cevaplayacağım birkaç soru var:

Bireysel ikili paket nasıl indirilir (yüklenmez)?

apt-get yalnızca paketi indirme seçeneği vardır:

-d  Download only - do NOT install or unpack archives

İndirilen paketi içinde bulabilirsiniz /var/cache/apt/archives/. Bu durumda apt'ye yeni bir kaynak listesi yapılandırması eklemeniz gerekecektir.

Bireysel kaynak paketi nasıl indirilir?

apt-get source <package>

veya .dsc dosyasının yerini biliyorsanız:

dget http://http.debian.net/debian/pool/main/k/knot/knot_1.2.0~rc3-1.dsc

Her iki yaklaşım da dosyalardaki imzayı doğrular

Sources.list'i nasıl sabitleyebilirim, yani kurulumumu nasıl karıştırmam?

APT Pinning için temel açıklama sayfasına zaten işaret ettiniz ve sadece ihtiyacınız olan şeyleri başarmak için güzel örneklere sahip olan apt_preferences man sayfasını okumak istediğinizi ekliyorum . Özellikle ÖRNEKLER'deki 'Kararlılığı İzleme' bölümüne bakın, çünkü ihtiyaçlarınıza çok yakın bir şey açıklar:

Birden fazla kaynak ve APT Sabitleme ile oynarken faydalı bir komut vardır:

# apt-cache policy knot
knot:
  Installed: 1.1.3-1~bpo60+1
  Candidate: 1.2.0~rc3-1~bpo60+1
  Version table:
     1.2.0~rc3-1~bpo60+1 0
        500 http://deb.knot-dns.cz/debian/ squeeze/main amd64 Packages
 *** 1.1.3-1~bpo60+1 0
        100 /var/lib/dpkg/status
     1.0.5-1~bpo60+1 0
        500 http://ppa.sury.org/debian/ squeeze/main amd64 Packages

Bu, kurulu sürümün 1.1.3-1 ~ bpo60 + 1 olduğunu ve adayın 1.2.0 ~ rc3-1 ~ bpo60 + 1 olduğunu gösterir apt-get upgrade. Ayrıca başka bir depodan daha eski bazı versiyonlar var.

Debian arşiv anahtarı nasıl indirilir?

Debian arşiv anahtarı ftp-master'da yayınlanır . Anahtarı gpg anahtarlığınıza aktarmanız gerekir:

$ gpg --import archive-key-6.0.asc 
gpg: key 473041FA: public key "Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   9  signed:  31  trust: 0-, 0q, 0n, 0m, 0f, 9u
gpg: depth: 1  valid:  31  signed:  38  trust: 25-, 0q, 0n, 1m, 5f, 0u
gpg: depth: 2  valid:  21  signed:  31  trust: 19-, 0q, 0n, 0m, 2f, 0u
gpg: depth: 3  valid:   3  signed:  12  trust: 2-, 0q, 0n, 0m, 1f, 0u
gpg: depth: 4  valid:   1  signed:   8  trust: 1-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2013-09-22

Sonra imzalarını kontrol etmeniz gerekecek:

$ gpg --list-sig 473041FA
pub   4096R/473041FA 2010-08-27 [expires: 2018-03-05]
uid                  Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
sig 3        473041FA 2010-08-27  Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
sig          7E7B8AC9 2010-08-27  Joerg Jaspert <joerg@debian.org>
sig     P    B12525C4 2010-08-27  [User ID not found]
sig          D0EC0723 2010-08-27  [User ID not found]
sig          8AEA8FEE 2010-08-27  [User ID not found]
sig          A3AE44A4 2010-08-28  [User ID not found]
sig          00D8CD16 2010-08-28  Alexander Reichle-Schmehl <alexander@reichle.schmehl.info>
sig          CD15A883 2010-08-28  [User ID not found]
sig          672C8B12 2010-08-28  [User ID not found]
sig 2        C4CF8EC3 2010-08-28  [User ID not found]
sig 2        D628A5CA 2010-08-28  [User ID not found]

Ve Debian geliştiricilerine tek tek GPG anahtarlarını manuel olarak izleyerek veya PGP Anahtar İstatistikleri projesinde kontrol ederek izleyin . Ve PGP / GPG anahtarınızdan Debian anahtar arşivine bir zincir yoksa, bir noktada inanç sıçraması yapmanız gerekecektir.

Tek tek paketleri elle indirme ve doğrulama

Bu nedenle diğer yaklaşım daha karmaşıktır, çünkü deb paketleri ayrı ayrı imzalanmaz, sadece Releasedosya imzalanır. Böylece , tek tek paketle birlikte imza Releaseve Packagesdosyaları indirip doğrulamanız gerekecektir .

Daha net olacak bir örnek ekleyeceğim.

İçin Debian paketini indirmek istiyorum düşünün Knot DNS gelen resmi PPA var Ubuntu için amd64'tür mimarisi hakkında kesin.

Dizinleri tıklamanız ve şu dosyaları bulmanız gerekir:

wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/Release
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/Release.gpg
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/main/binary-amd64/Packages
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/pool/main/k/knot/knot_1.2.0~rc3-1~precise+1_amd64.deb

Bir sonraki adım, Releasedosyadaki imzayı doğrulamak olacaktır :

$ gpg --verify Release.gpg Release
gpg: Signature made Fri 01 Mar 2013 07:14:38 PM CET using RSA key ID F9C59A45
gpg: Good signature from "Launchpad Datové schránky"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 5246 3488 670E 69A0 9200  7C24 F233 1238 F9C5 9A45

Tabii ki anahtarı başka yollarla doğrulamanız gerekir (Debian / Ubuntu sürdürücü anahtarı gibi, fırlatma rampasından kontrol vb.)

ReleaseDosyadaki doğru imzayı doğruladıktan sonra bir sonraki adıma geçebilirsiniz - Paketler dosyasını doğrulama.

sha256sum Packages
c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad  Packages
$ grep c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad Release
 c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad             3379 main/binary-amd64/Packages

Gördüğünüz gibi imza imzalı Releasedosyada bulunabilir, bu nedenle PackagesSHA-256 parmak izini hesaplayıp karşılaştırarak dosyanın bütünlüğünü doğruladık .

Son adım benzer. Tek tek paketin parmak izini hesaplamanız ve karşılaştırmanız gerekir:

$ sha1sum knot_1.2.0~rc3-1~precise+1_amd64.deb 
8b34078e9bfef7aa818b2f926a28838b0ede9f43  knot_1.2.0~rc3-1~precise+1_amd64.deb
$ grep -A 13 "Package: knot$" Packages | grep "^SHA1: "
SHA1: 8b34078e9bfef7aa818b2f926a28838b0ede9f43

Bu noktada paketi imzalanan Releasedosyaya güvenli bir şekilde zincirledik . Dolayısıyla, Releasedosyadaki imzayı düşünüyorsanız , paketin sağlam bir şekilde indirildiğinden emin olabilirsiniz.

Debian Wiki'deki Güvenli APT makalesinde daha fazla bilgi bulabilirsiniz .


gpgKomutun neden root ayrıcalıklarına ihtiyaç duymaması gerektiğini açıklar mısınız? İdari bir araç olması gerekiyordu.
Sopalajo de Arrierez

1
@SopalajodeArrierez Bu bir yönetimsel araç değildir; GnuPG hakkında daha fazla bilgiyi buradan edinebilirsiniz: gnupg.org
oerdnj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.