Linux как обновить bash

Как мне обновить bash в версиях EOL Ubuntu?

т.е. я могу найти достаточно близко пакет в ближайшем дистрибутиве? Или это сложно, и компиляция из исходного кода лучше? Или я могу получить его из Debian?

(Этот вопрос касается, по крайней мере, Ubuntu 11.10 и 12.10; держу пари, что другие бьют по этому вопросу, поэтому, если совет отличается в зависимости от того, какой именно Ubuntu с истекшим сроком действия, это может помочь сказать, как!)

P.S. «Обновление» не будет принято в качестве ответа 😉 Я знаю это, но иногда удаление /обновление /замена сервера требует времени, и я бы хотел сначала исправить патч bash.

4 ответа

Краткий ответ для количественного анализа (Ubuntu 12.10): загрузите и установите пакет bash из точного хранилища.

Пошаговое руководство

Для количественного (Ubuntu 12.10) я искал пакеты bash из ближайших выпусков. Я скачал пакеты для быстрого и точного.

Прежде чем начать, я сделал резервную копию моего существующего пакета bash, поэтому я надеюсь, что смогу восстановить свою систему, если новая установка не удалась. (Требуется пакет dpkg-repack.)

Хотя, вероятно, мне следовало просто скопировать исполняемый файл /bin/bash в /root/bash.vulnerable , так как это будет легче восстановить в чрезвычайной ситуации.

рвения

Сначала я попробовал пакет raring

Но это было проверено как по-прежнему уязвимым !

Точные

Тогда я попробовал пакет из точного

Это было проверено как безопасная с использованием сценария bashcheck .

Но мне бы очень хотелось, чтобы я установил релиз LTS. Я все еще планирую сделать обновление, когда у меня есть время .

Сборка bash из исходного кода довольно проста, вам нужна жизнеспособная среда разработки C (gcc, binutils и т. д.) и библиотека termcap и заголовки (по умолчанию, но вы можете использовать вместо этого curses ).

Вы должны как минимум иметь резервную копию вашего текущего двоичного кода bash до его завершения, и в идеале полное резервное копирование или восстановление диска. В зависимости от вашей ОС bash может быть важной частью ваших загрузочных скриптов! Новые версии иногда содержат несовместимые изменения в поведении.

Одна и та же последовательность шагов должна работать для всех версий bash-2.05b до bash-4.3, просто замените «4.3» в зависимости от ситуации, чтобы при необходимости можно было использовать одну и ту же версию. Если вы не используете довольно старинную версию bash-2.05b, которая уязвима, но официальный патч недоступен, AFAICT Исправление также перенесено на 2.05b.

Вам следует дважды проверить на официальный сайт текущего патча. уровень, на случай, если вы нажмете на несвежее зеркало.

  1. Используйте локальное зеркало для исправлений, ftpmirror.gnu.org возвращает перенаправление на него, но это не работает с -r возможность скачать весь каталог
  2. (для шляп из фольги) gpg не устанавливает полезный код ошибки и не очень громко жалуется, если проверка не удалась найдите строку «ПЛОХО» в (обильном) выводе
  3. В настоящее время существует 2527 30 патчей для bash-4.3, 25-30 по адресу CVE-2014-6271 и последующих связанных с этим проблем. Возможно, еще есть исправления для решения этой проблемы! Вы можете получать patch предупреждения, например «Игнорирование потенциально опасного файла». name ../bash-4.3/patchlevel.h «, эти должны быть безвредными, проверьте, что patchlevel.h содержит строка #define PATCHLEVEL . с ожидаемым уровнем исправления.
  4. параметры configure изменяют значение по умолчанию /usr/local/ , это означает, что make install должна перезаписать ваш текущий bash
  5. —without-bash-malloc выбирает libloc malloc, а не более быструю (немного более расточительную) внутреннюю реализацию. Это может повлиять на вас, если вы используете загружаемые модули bash, так как это может привести к несовместимости, но не многие люди используют эту функцию. Пакет для этого, вероятно, называется bash-builtins .
  6. make test займет некоторое время. Для выполнения make install вы должны быть пользователем root (компиляция программного обеспечения от имени root часто считается плохой практикой)
  7. Ubuntu, будучи производным от Debian, вероятно, использует те же дополнительные исправления, что и Debian, см. здесь для пример. Эти патчи могут содержать функции, которые вы используете. Если вы примените исправление к исходному дереву bash, см. Файл debian/README .
  8. Еще одна медвежья ловушка, у вас также может быть бинарный файл static-bash, который также следует перестроить. Для этого перезапустите с шага « ./configure . », добавив —enable-static-link
Читайте также:  Линукс как посмотреть все приложения

См. также bash сборка в Linux с нуля . Список OSS-SEC является хорошим местом для поиска исправлений и текущий статус.

Возможно, вы захотите оценить, насколько важно исправить эту ошибку на вашем сервере. Ubuntu не использует bash в качестве /bin/sh , поэтому беспокойство вызывают только векторы атак, для которых bash вызывается явно. Проверить:

  • CGI-скрипты, выполняемые bash (начиная с #!/bin/bash , а не #!/bin/sh )
  • клиентские сценарии DCHP, выполняемые bash
  • Ограниченные учетные записи с bash в качестве оболочки или для выполнения сценариев bash
  • В более общем случае любая ситуация, когда скрипт bash (не sh) выполняется с переменной среды, содержимое которой может быть предоставлено злоумышленником (обратите внимание, что скрипты выполняются с помощью sudo не уязвимы благодаря собственной фильтрации sudo)

Следующая команда находит сценарии bash в текущем каталоге и его подкаталогах:

Если какой-либо из этих сценариев выполняется из вектора атаки, вам необходимо обновить bash или изменить эти сценарии, чтобы они выполнялись под dash или ksh. Проверьте также учетные записи с ограниченным доступом, для которых оболочкой входа является bash, и для сценариев, которые явно вызывают bash ( bash -c ‘…’ , bash /path/to/script ,…).

Если вы не можете найти двоичный файл для обновления bash в своей системе, вы можете загрузить исходный код, примените исправьте для своей версии и перекомпилируйте (установите пакет build-essential , а также зависимости для сборки bash — autoconf autotools-dev quilt bison libncurses5-dev texinfo debhelper texi2html locales gettext sharutils time xz-utils dpkg-dev начиная с Ubuntu 12.04).

Даже если вы не найдете какой-либо уязвимый сценарий, обновление — это хорошая идея. Вы не должны запускать систему, для которой обновления безопасности недоступны . Эта уязвимость находится в bash, что может повлиять или не повлиять на вас, но следующая уязвимость может быть в критическом компоненте вашей системы.

Источник

Централизованная система обновления пакетов в Ubuntu

Что делать, если аналоги платные или не адаптированы под наши условия? Конечно, писать самому.

Условие:

50 удаленных клиентских станций, работающих на Ubuntu Desktop (10.04-12.10).

Задача:
Варианты решения:
  • Landscape – Отлично, но платно.
  • Spacewalk – Только RHEL и ему подобные.
  • Собственная разработка – этот вариант как раз для нас.
Читайте также:  Переименовать блютуз устройство windows

Поскольку мои знания ограничиваются одним языком программирования – bash, реализация будет выполнена именно на нем.
Что нам потребуется:

  • ssh-server на клиентских станциях.
  • Общий пользователь для администрирования.
  • Linux сервер (программа expect должна быть установлена).
  • Сетевая шара (я использовал nfs).

Как будет работать:
ssh adm@IP -> сбор нужной информации -> запись в лог на сервер -> exit.

Как выглядит на практике:

При запуске программы отображается информация о пользователях и доступных пакетах для обновления. Имеется возможность ручного управления через меню. P.s реальные имена и IP заменены в целях анонимности. Далее показан пример выполнения первого пункта:

Краткая информация о системе, список пакетов доступных для обновления.
Примеры лог файлов, которые создает программа можно скачать тут

Реализация:
/root/uuman – корневая папка программы.
../uuman/log – папка с лог файлами (она же сетевая шара).
../../log/.menu_log – скрытая папка с краткой информацией о удаленной машине.

Как пользоваться:
Если Вы использовали свои пути, поправьте следующие переменные в uuman.sh:

Скрипт setup установит необходимые пакеты для работы программы на клиентских станциях. Чтобы использовать скрипт, в файле uuman.sh закомментируйте строку:
И раскомментируйте:

Автоматический режим:
$WORKD/uuman.sh check — чек клиентских станций из файла ip.txt на доступность обновлений.
$WORKD/uuman.sh update — обновление клиентских станций, доступных из файла ip.txt.

Мы получаем клиент-серверную систему позволяющую в автоматическом или ручном режиме получать, хранить и обрабатывать информацию об актуальности установленных программ, пакетов безопасности и при необходимости производить обновление на клиентских станциях под управлением Ubuntu Linux.

UPD:
Авторизация теперь по ssh-key.
Генерируем ключ

С помощью файла setup, размещаем его на клиентских станциях.

Источник

Bash shellshock: обновляем bash в Debian, включая старые версии

Сложно переоценить масштабы распространения уязвимости Bash Shellshock, ведь она присутствует во всех версиях Bash, начиная с версии 1.14, выпущенной в 1994 году. На фоне масштабов распространения Shellshock, недавно обнаруженная уязвимость OpenSSL Heartbleed просто меркнет, ведь она затрагивала версии openssl, выпущенные только за последние два года.

Казалось бы, чтобы получить доступ к bash, нужно иметь shell на соответствующем сервере, поэтому какая разница уязвим ваш сервер или нет, ведь shell от него есть только у вас? Увы, все гораздо хуже. Если у вас на сервере запускаются CGI/FastCGI скрипты, а это может быть и даже php, ведь он запускается в режиме FastCGI с помощью скрипта-wrapper’а, написанного на . bash. Поэтому если на вашем сервере установлен bash с уязвимостью Shellshock, злоумышленник может выполнять произвольные команды на вашем сервере просто указывая их в полях http-заголовков, например в поле User-Agent .

Если мы уже в достаточной степени убедили вас проверить вашу систему и обновить ее по необходимости, давайте приступим к активным действиям.

1. Проверим наличие уязвимости

Для проверки вашего bash на предмет уязвимости достаточно зайти в консоль сервера и выполнить вот такую команду:

Если в результате выполнения этой команды вы увидите две строки и одна из них будет со словом ‘vulnerable’, ваш bash уязвим.

2. Выясняем версию debian

Чтобы выяснить, какая версия debian установлена на вашем сервере, нужно выполнить команду

Если в результате вы видите цифру, начинающуюся с 7 или со слова wheezy, вам повезло и debian у вас самый свежий, поэтому обновить его весьма просто (см.следующий раздел). Если же debian у вас версии 6 или 5, отчаиваться все равно не стоит и мы чуть ниже покажем что вы можете сделать в вашем случае.

Читайте также:  При установке windows не требует ключа

3. Обновляем Debian версии 7 (Wheezy)

Все просто. Выполняем в консоли от имени пользователя root команды:

В выводе последней команды нас интересуют строки Installed: и Candidate: («Установлен» и «Кандидат» в случае русской локали в консоли). Скорее всего вы увидите что-то вроде:

Если вдруг версия Candidate тоже равна 4.2+dfsg-0.1 , значит вам необходимо в файл /etc/apt/sources.list добавить строку:

И снова выполнить apt-get update

Наконец, обновляем bash:

После этого необходимо открыть новую консоль, либо выйти из текущей консоли и зайти в нее снова, и снова повторить тест из первого раздела этой статьи.

4. Обновляем более старые версии Debian (Lenny, Squeeze)

Мы предлагаем весьма простой вариант обновления bash для вашего случая: установить пакет bash-static из Debian Wheezy. На многих сайтах вы прочитаете советы по сборке bash из исходных текстов, либо установки обновления bash из squeeze-lts, но нам кажется, что наш вариант наиболее простой.

Для начала необходимо выяснить установлена у вас 32х битная система или 64х битная. Это можно сделать, выполнив команду:

Если в результате ее выполнения вы увидите строку » /bin/ls: ELF 32-bit . «, значит система 32 битная. Если строка будет » /bin/ls: ELF 64-bit . «, соответственно, система у вас 64 битная.

Теперь скачаем требуемый пакет. Для 32 битной версии debian выполним:

Для 64 битной версии выполним:

Далее, независимо от версии debian:

Готово, bash обновлен. После этого необходимо открыть новую консоль, либо выйти из текущей консоли и зайти в нее снова, и снова повторить тест из первого раздела этой статьи.

Источник

How to Update Bash In Linux Operating System

In this tutorial we are going to learn how to update bash in Linux Operating System. We will look how to update bash (GNU Bourne Again shell) in both Redhat Based Linux distributions and Debian Based Linux Distributions.

Find Current Bash Version

You will need to check the bash version before and after updating the bash. We can check the version with bash —version command.

This will print the bash version on Linux terminal.

Update Bash on CentOS/Redhat/Fedora Linux

In Redhat based Linux Distributions, We update bash using the yum update command.

First, you can check whether bash updates are available or not, using the yum check-update command.

yum check-update bash

If bash updates are available, Then update bash with yum command.

yum update bash

The yum command works for Redhat Based Linux Distribution which includes (Red Hat Enterprise Linux, CentOS, Scientific Linux and Oracle Linux ).

For Fedora Linux, You will need to use dnf command instead of the yum command.

dnf update bash

Update Bash in Ubuntu / Debian / Linux Mint

For Debian Based Linux Distributions, use apt-get install command to upgrade bash.

apt-get install —only-upgrade bash

Debian based Linux distribution includes Debian Linux, Ubuntu, Linux Mint, etc.

Summary

In this tutorial we learned how to perform bash update in Linux Operating System.

  • For Redhat Based Distributions, we used yum update command to upgrade bash.
  • For Debian Based Linux Distribution we used apt-get install —only-upgrade bash to update Bourne Again shell.

Источник

Оцените статью