web-dev-qa-db-ja.com

アップグレードできない古いUbuntuシステムのShellshock脆弱性にパッチを適用するにはどうすればよいですか?

私は、Ubuntu 9.04、Jauntyを実行する、リモートで(2タイムゾーン離れて)管理するシステムを持っています。さまざまな理由から、主に遠くからディストリビューションをアップグレードしようとするのが本当に嫌なので、新しいバージョンにアップグレードすることはできません。明らかにそれはもはやサポートされておらず、公式のパッチはありません。 Shellshockの脆弱性を取り除くために、コードにパッチを当ててbashを再コンパイルする方法に関する説明はありますか?

22
Claus

これを AskUbunt から盗み、ハッカーニュースから盗みました。私のために2つの古いサーバーで働いた

mkdir src
cd src
wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
#download all patches
for i in $(seq -f "%03g" 1 28); do wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i; done
tar zxvf bash-4.3.tar.gz 
cd bash-4.3
#apply all patches
for i in $(seq -f "%03g" 1 28);do patch -p0 < ../bash43-$i; done
#build and install
./configure --prefix=/ && make && make install
cd .. 
cd ..
rm -r src

更新:--prefix=/をconfigureコマンドに追加しないと、/usr/local/bin/bashが最新の状態になり、/bin/bashは依然として脆弱であることに気づきました。

29
unkilbeeg

Sources.listを最新のものに更新し、apt-getを使用してbashのみをアップグレードするソリューションもあります。それは本当に迅速で、 私は記事を書いた それについてです。基本的には次のとおりです。

最新のUbuntu 'trusty' apt-getリポジトリにアップグレードします(使用する場合はold-repositories.ubuntu.comのURLも変更する必要がある場合があります。リンクされた記事を確認してください)。

Sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list

Bashをアップグレード/修正を適用:

Sudo apt-get update
Sudo apt-get install --only-upgrade bash

そして、おそらくapt-getリポジトリを元に戻します。

2
Erik Duindam