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