Спадкові версії Debian та Bash Shellshock


11

Ми запускаємо Debian Etch, Lenny та Squeeze, тому що в цьому магазині жодного разу не проводилися оновлення; у нас понад 150 систем, що працюють під різними версіями Debian. Зважаючи на "ударний удар" цього тижня, я припускаю, що мені потрібно оновити баш. Я не знаю Дебіана, тому мене хвилює.

Чи можу я просто виконати apt-get install bashвсі мої системи Debian і отримати правильний пакет Bash, поки в моєму сховищі вказано запис Squeeze. Якщо ні, то який інший спосіб дії я маю?


7
Ви можете вибірково підтримувати башти до цих систем. це, ймовірно, буде працювати нормально на них. Але ви дійсно, дійсно, повинні оновити. Ви усвідомлюєте, що все, що старше старого, не має оновлень безпеки, правда? І майте на увазі, що ця вразливість безпеки є лише однією з багатьох.
Faheem Mitha

Це навіть проблема? Що в system shellцій системі? (Тобто оболонка, яку ви отримуєте під час запуску systemдзвінка POSIX, що є / bin / sh). Якщо / bin / sh є bash, тоді вам потрібно оновити. Якщо це не так ... Тоді ви, мабуть, добре (але все одно слід оновити баш)
Arafangion

Відповіді:


11

У вас є можливість просто оновити bash. Для цього використовуйте таку apt-getкоманду:

apt-get update

Потім після отримання оновлення запустяться всі доступні оновлення:

apt-get install --only-upgrade bash

Для отримання оновлень про старіші випуски, наприклад, Стисніть, вам, ймовірно, потрібно буде додати репортаж Squeeze-LTS до свого source.list.

Щоб додати це сховище, відредагуйте /etc/apt/sources.listта додайте наступний рядок до кінця файлу.

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

Щоб перевірити певну систему на вразливості (або побачити, чи працює оновлення), ви можете перевірити використовувані вами версії bash і побачити, чи впливає на цю версію (це, мабуть, є) чи в Інтернеті є численні скрипти тестування оболонок .

РЕДАКТ 1

Щоб оновити bashна Ленні чи Етч, подивіться нижче на відповідь Іллі Шершоффа про те, як компілювати bashз джерела та вручну оновити версію тієї версії, bashяку ви використовуєте.

EDIT 2

Ось прикладний sources.listфайл із сервера Squeeze, який я успішно оновив:

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

Новачок, можливо, не знає, що спочатку потрібно запустити оновлення apt-get, щоб отримати найновіший каталог пакунків.
Бренда Дж. Батлер

Мені довелося використовувати: deb ftp.us.debian.org/debian видавити головний вклад для оновлення bash до версії 4.1-3, а потім використовувати виправлені джерела, щоб зробити його не вразливим.

@ BrendaJ.Butler Гарна пропозиція, я також додав цей крок.
111 ---

4

Якщо apt-get installпараметр не працював, вам потрібно буде перекомпілювати баш з джерел. Приклади Ленні та Етч є у відповіді. У мене немає жодної машини для стискання, але можна легко зрозуміти, що робити.

У мережі я знайшов рішення від TaNNkoST :

Перевірте кількість доступних патчів та змініть номер у частині "(seq", якщо є нові.

ДЛЯ ЛЕНІ

#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 я дотримувався тієї ж логіки, але я не yaccвстановив систему, тому мені довелося встановити bisonпакет для цього. Ось що я придумав:

#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 foundдля рішення Ленні, і виправив її за допомогою apt-get install bison.
SharpC

1

Не впевнений, чи хочете ви довіряти цим пакетам, але хтось створив пакунки для woody (3.0), sarge (3.1), etch (4.0) та lenny (5.0). Вони доступні тут:

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

Будьте уважні, не існує сховища для встановлення цих пакетів через apt-get. Вам потрібно використовувати dpkgабо створити власне локальне сховище.


" якщо ви хочете довірити цим пакетам "? Вони підписані ключем GPG розробника Debian. Як і будь-який інший офіційний пакет Debian.
пеппе

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.