以前の Debian バージョンと Bash Shellshock

以前の Debian バージョンと Bash Shellshock

私たちはDebian Etch、Lenny、Squeezeを実行しています。なぜなら、ストアは一度もアップグレードされたことがないからです。私たちはさまざまなDebianバージョンを実行する150以上のシステムを持っています。今週の「シェルショック」を考えると、bashをアップグレードする必要があるようです。 Debianを知らないので心配です。

apt-get install bash私のリポジトリがSqueezeエントリを指している場合、すべてのDebianシステムでこれを実行して正しいBashパッケージを入手できますか?そうでない場合、どのような他の措置を講じるべきですか?

答え1

bashのみをアップグレードすることを選択できます。これを行うには、次のapt-getコマンドを使用します。

apt-get update

次に、更新が利用可能なすべての更新をインポートした後に実行します。

apt-get install --only-upgrade bash

以前のバージョン(Squeezeなど)のアップデートを受け取るには、Squeeze-LTSリポジトリをsource.listに追加する必要があります。

このリポジトリを追加するには、/etc/apt/sources.list次の行を編集してファイルの末尾に追加します。

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

特定のシステムが脆弱であることを確認する(またはアップグレードが機能しているかどうかを確認するには)、使用しているbashのバージョンを確認して、システムが影響を受けている(おそらく影響を受けている)ことを確認してください。複数のシェルテストスクリプトオンラインで見つけることができます。

編集1

LennyまたはEtchをアップグレードするには、ソースでbashコンパイルし、バージョンで使用されているバージョンを手動でアップグレードする方法について、以下のIlya Sheershoffの答えを確認してくださいbashbash

編集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

答え2

このapt-get installオプションが機能しない場合は、ソースからbashを再コンパイルする必要があります。答えにはLennyとEtchの例があります。押出機はありませんが、何をすべきかを簡単に把握できます。

これ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

エッチング用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

答え3

このパッケージを信頼したいかどうかはわかりませんが、誰かがWoody(3.0)、sarge(3.1)、etch(4.0)、lenny(5.0)用のパッケージを構築しました。ここで見つけることができます:

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

このパッケージをインストールするためのリポジトリがないことに注意してくださいapt-getdpkg独自のローカルストレージを使用または作成する必要があります。

答え4

さまざまなオペレーティングシステムでBashを更新するには、汎用スクリプトを使用できます。シェルショック

関連情報