O que é uma maneira recomendada de corrigir o bug do Bash do Shellshock em um servidor Ubuntu não suportado?

6

Eu mantenho um servidor Ubuntu 12.10 (Quantal Quetzal) fora de suporte (não me pergunte por que, por favor), e precisamos corrigir o Shellshock Erro de segurança do Bash. Como as atualizações não estão mais disponíveis, qual é a maneira recomendada de corrigir o Bash?

Eu encontrei esta resposta (ela recomenda recuperar pacotes do Debian e não instalar pacotes binários , mas instale pacotes da origem ). Isso parece certo para mim, mas o que é algum outro conselho?

    
por smonff 25.09.2014 / 15:39

6 respostas

13

Este artigo foi útil e funcionou para as poucas instâncias do Ubuntu 12.10 (Quantal) que ainda tenho que suportar.

Corrigir o Bash Exploit em versões novas e antigas do Ubuntu

Em Resumo, os passos são:

  1. Obtenha o codinome de sua versão atual (por exemplo, quantal) e armazene-o em uma variável:

    lsb_release -a
    DISTRIB_CODENAME=quantal
    
  2. Altere a origem para fidedigna em /etc/apt/sources.list . Por exemplo,

    sudo sed -i "s/$DISTRIB_CODENAME/trusty/g" /etc/apt/sources.list
    
  3. Atualize e atualize o bash

    sudo apt-get update
    
    sudo apt-get install --only-upgrade bash
    
  4. Verifique se a versão mais recente não passou no teste a seguir (ou seja, você não deve ver "preso")

    env X="() { :;} ; echo busted" 'which bash' -c "echo completed"
    
  5. Reverta o /etc/apt/sources.list para usar o codinome atual. Por exemplo,

    sudo sed -i "s/trusty/$DISTRIB_CODENAME/g" /etc/apt/sources.list
    
por 26.09.2014 / 23:25
8
O

link tem algumas boas ferramentas para atualizar manualmente o bash.

curl https://shellshocker.net/fixbash | sh

Você também pode testar se seu sistema está vulnerável:

curl https://shellshocker.net/shellshock_test.sh | bash

Execute por sua conta e risco. Aqui está o script que é executado se o link acima expirar ou você não quiser confiar nele:

cd ~/
mkdir bash-shellshocker
cd bash-shellshocker
echo "Downloading Bash..."
wget https://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
echo "Downloading Bash patches..."
i=0
rtn=0
while [ $rtn -eq 0 ]; do
  i='expr $i + 1'
  wget https://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$(printf '%03g' $i)
  rtn=$?
done
i='expr $i - 1'
echo "Extracting bash from tar.gz..."
tar zxvf bash-4.3.tar.gz 
cd bash-4.3
echo "Applying Patches..."
for j in $(seq -f "%03g" 1 $i);do patch -p0 < ../bash43-$j; done

echo "Ready to install. Configuring..."
./configure --prefix=/
echo "Running make"
make
if [[ "$USER" == "root" ]]
then
  echo "Running make install"
  make install
  cp /bin/bash /usr/local/bin/bash
else
  echo "Running make install  (You may need to type your sudo password here)"
  sudo make install
  sudo cp /bin/bash /usr/local/bin/bash 
fi

link é onde o script pode ser encontrado

boa sorte

    
por 25.09.2014 / 21:19
5

Como você deve instalar esse tipo de atualização de segurança apenas de um provedor reconhecido, a solução de compilação de fontes é a única que você tem.

    
por 25.09.2014 / 16:00
3

A resposta do lumpygator me ajudou, mas acho que é muito complicado. Se você quiser instalar apenas um pacote de uma versão mais recente do ubuntu, não há necessidade de editar sources.list , você pode simplesmente baixar o pacote diretamente e instalá-lo. Então, no caso do bug bash do shellshock, acesse o link , clique em "* security.ubuntu.com / ubuntu "link, isto irá baixar o arquivo bash_4.3-7ubuntu1.5_amd64.deb . Alternativamente, você pode executar o comando:

wget http://security.ubuntu.com/ubuntu/pool/main/b/bash/bash_4.3-7ubuntu1.5_amd64.deb

Depois de adquirir o novo pacote, você pode instalá-lo diretamente com:

dpkg -i bash_4.3-7ubuntu1.5_amd64.deb

Isso funcionou para mim no Saucy (13.10).

(Substitua amd64 por i386 se você tiver um sistema de 32 bits).

    
por 29.09.2014 / 00:03
2

Sim, o script fornecido pelo shellshocker.net está funcionando.

Mas para o Ubuntu 11.04 (Natty Narwhal), 11.10 (Ocelot Onírico), 12.04 LTS (Pangolin Preciso), 12.10 (Quantet Quetzal), 13.04 (Raring Ringtail) e 13.10 (Saucy Salamander) pelo menos, a versão do O pacote Bash é 4.2, portanto, o script precisa de algumas alterações:

cd ~/
mkdir bash
cd bash
wget https://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz
for i in $(seq -f "%03g" 0 49); do wget https://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-$i; done
tar zxvf bash-4.2.tar.gz 
cd bash-4.2
for i in $(seq -f "%03g" 0 49); do patch -p0 < ../bash42-$i; done
./configure && make
sudo make install

E você precisa instalar o Bison para que o comando "make" funcione:

sudo apt-get install bison
    
por 27.09.2014 / 15:16
0

Existe outra abordagem que você poderia considerar.

No seu servidor Quantum desatualizado você está realmente usando o bash?

Se você não precisar de bash, se ainda não tiver substituído / bin / sh link para / bin / bash com um link para / bin / dash, instale traço e use-o como uma substituição do shell Bourne.

Isso ilustra por que é uma boa idéia para portabilidade não usar "bashisms" em shell scripts para que o shell mais simples, menos overhead e mais seguro possa ser usado.

    
por 27.09.2014 / 16:27