Eski Debian sürümleri ve Bash Shellshock


11

Debian Etch, Lenny ve Squeeze kullanıyoruz, çünkü bu dükkanda yükseltmeler hiç yapılmadı; çeşitli Debian versiyonlarını çalıştıran 150'den fazla sistemimiz var. Bu haftanın "kabuk şoku" ışığında, bash yükseltmem gerektiğini varsayıyorum. Debian'ı tanımıyorum, bu yüzden endişeliyim.

apt-get install bashDepom bir Squeeze girişine işaret ederken yalnızca tüm Debian sistemlerim üzerinde çalışabilir ve doğru Bash paketini alabilir miyim . Değilse, başka hangi hareketlerim var?


7
bash'ı bu sistemlere seçici olarak geri verebilirsiniz. o olacak muhtemelen üzerlerinde Tamam çalıştırın. Ama gerçekten, gerçekten, yükseltmelisin. Oldstable'dan daha eski bir şeyin güvenlik güncellemeleri olmadığını biliyorsunuz ve bu güvenlik açığının çoğundan sadece biri olduğunu unutmayın.
Faheem Mitha

Hatta bir sorun mu var? system shellBu sistemde ne var ? (Yani, system/ bin / sh olan POSIX çağrısını çalıştırdığınızda elde ettiğiniz kabuk . / Bin / sh bash ise, güncellemeniz gerekir. Değilse ... O zaman muhtemelen iyisin (ama yine de bash kendisini güncellemelisin)
Arafangion

Yanıtlar:


11

Sadece bash'ı yükseltme seçeneğiniz var. Bunu yapmak için aşağıdaki apt-getkomutu kullanın:

apt-get update

Güncelleme getirildikten sonra, mevcut tüm güncellemeler çalıştırılır:

apt-get install --only-upgrade bash

Eski sürümlerle ilgili güncellemeleri almak için, örneğin Squeeze, muhtemelen Squeeze-LTS deposunu kaynaklarınıza eklemeniz gerekecektir.

Bu havuzu /etc/apt/sources.listeklemek için, aşağıdaki satırı düzenleyin ve dosyanın sonuna ekleyin.

deb http://ftp.us.debian.org/debian squeeze-lts main non-free contrib

Belirli bir sistemi güvenlik açıklarına karşı denetlemek (veya yükseltmenin işe yarayıp yaramadığını görmek için) kullandığınız bash sürümlerini denetleyebilir ve sürümün etkilenip etkilenmediğini (büyük olasılıkla) ya da web'de çok sayıda kabuk testi komut dosyası olup olmadığını görebilirsiniz.

DÜZENLEME 1

bashLenny veya Etch'e yükseltmek için, Ilya Sheershoff'un bashkaynaktan nasıl derleneceği ve sürümünüzün kullandığı sürümün manuel olarak nasıl yükseltileceği ile ilgili aşağıdaki cevaba göz atın bash.

DÜZENLEME 2

İşte sources.listbaşarıyla yükseltilmiş bir Squeeze sunucusundan bir örnek dosya:

deb http://ftp.us.debian.org/debian/ squeeze main
deb-src http://ftp.us.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ squeeze-updates main
deb-src http://ftp.us.debian.org/debian/ squeeze-updates main

# Other - Adding the lsb source for security updates
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

Bir acemi, en son paket kataloğunu almak için önce apt-get güncellemesini çalıştırmaları gerektiğini bilmiyor olabilir.
Brenda J. Butler

Kullanmak zorunda kaldım: deb ftp.us.debian.org/debian squeeze main, bash'ı 4.1-3 sürümüne yükseltmeye katkıda bulunuyor ve daha sonra savunmasız olmamak için yamalı kaynakları kullanıyor.

@ BrendaJ.Butler İyi öneri, ben de bu adımı ekledim.
111 -

4

Eğer apt-get installseçenek işe yaramadı, sen kaynaklardan bash yeniden derlemek gerekir. Lenny ve Etch örnekleri cevapta. Squeeze makinem yok, ama ne yapacağımı kolayca bulabilirim.

İnternette bulduğum TaNNkoST çözümü :

Mevcut yama sayısını kontrol edin ve yenileri varsa "(seq" bölümündeki numarayı değiştirin.

LENNY İÇİN

#first find out the version you have so you know what to get for the patches and source files
dpkg-query -l|grep bash
ii bash 4.1-3 The GNU Bourne Again SHell

#do this in the /usr/src dir
cd /usr/src
wget http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz
tar zxvf bash-4.1.tar.gz
cd bash-4.1

# fetch all patches, including latest ones that patches CVE-2014-6271
for i in $(seq -f "%03g" 0 14); do
wget -nv http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-$i
patch -p0 < bash41-$i
done

# check if yacc is installed. if not - install yacc
apt-get install bison

# configure,compile and install bash (this will install bash into /usr/local/bin/bash)
./configure && make
make install

# make a symlink from /bin/bash to the new binary
mv /bin/bash /bin/bash.old
ln -s /usr/local/bin/bash /bin/bash

# check that you're not vulnerable anymore wiith the output of the following
# it should not output vulnerable word anymore
env x='() { :;}; echo vulnerable' bash -c echo

#you can  Delete the old one thats a problem
rm /bin/bash.old

ETCH İÇİN Aynı mantığı izledim, ancak yaccsisteme yüklenmedim, bunun için bisonpaket yüklemem gerekti . İşte ben geldim:

#first find out the version you have so you know what to get for the patches and source files
dpkg-query -l|grep bash
ii bash 3.2-4 The GNU Bourne Again SHell

#do this in the /usr/src dir
cd /usr/src
wget http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz
tar zxvf bash-3.2.tar.gz
cd bash-3.2

# fetch all patches, including latest ones that patches CVE-2014-6271
for i in $(seq -f "%03g" 0 54); do
wget -nv http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-$i
patch -p0 < bash32-$i
done

# check if yacc is installed. if not - install yacc
apt-get install bison

# configure,compile and install bash (this will install bash into /usr/local/bin/bash)
./configure && make
make install

# at this point my system is not vulnerable already, test your system
env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"

# if this is not the case for your system - try the following

# make a symlink from /bin/bash to the new binary
mv /bin/bash /bin/bash.old
ln -s /usr/local/bin/bash /bin/bash

# check that you're not vulnerable anymore wiith the output of the following
# it should not output vulnerable word anymore
env x='() { :;}; echo vulnerable' bash -c echo

#you can Delete the old one thats a problem
rm /bin/bash.old

1
make: yacc: Command not foundLenny çözümü için hatayı aldım ve kullanarak düzelttim apt-get install bison.
SharpC

1

Bu paketlere güvenmek isteyip istemediğinizden emin değilsiniz, ancak biri odunsu (3.0), sarge (3.1), etch (4.0) ve lenny (5.0) için paketler oluşturdu. Burada mevcutlar:

http://blog.bofh.it/debian/id_451

Dikkatli olun, bu paketleri yüklemek için depo yoktur apt-get. dpkgKendi yerel havuzunuzu kullanmanız veya oluşturmanız gerekir.


" bu paketlere güvenmek istiyorsan ?" Debian Geliştiricisinin GPG anahtarı ile imzalanmışlardır. Tıpkı diğer benzeri resmi Debian paketi.
peppe

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.