Jaunty의 Ubuntu 9.04를 실행하는 원격 관리 시스템 (2 개의 시간대)이 있습니다. 여러 가지 이유로, 나는 지금까지 배포 업그레이드를 시도하는 것에 대해 정말로 불안해하기 때문에 더 최신 버전으로 업그레이드 할 수 없습니다. 분명히 더 이상 지원되지 않으며 공식 패치가 없습니다. 쉘 쇼크 취약점을 제거하기 위해 코드를 패치하고 bash를 다시 컴파일하는 방법에 대한 지침이 있습니까?
Jaunty의 Ubuntu 9.04를 실행하는 원격 관리 시스템 (2 개의 시간대)이 있습니다. 여러 가지 이유로, 나는 지금까지 배포 업그레이드를 시도하는 것에 대해 정말로 불안해하기 때문에 더 최신 버전으로 업그레이드 할 수 없습니다. 분명히 더 이상 지원되지 않으며 공식 패치가 없습니다. 쉘 쇼크 취약점을 제거하기 위해 코드를 패치하고 bash를 다시 컴파일하는 방법에 대한 지침이 있습니까?
답변:
AskUbuntu 에서 해커 뉴스에서 훔친 사람 으로부터 이것을 훔쳤습니다. 나를 위해 두 개의 오래된 서버에서 일했습니다.
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
여전히 취약하다는 것을 알았 습니다 .
./configure --prefix=/ && make
실행 벌금의가 make install
요구하는 것sudo
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 저장소를 다시 변경하십시오.
명령은
sudo apt-get update && sudo apt-get install --only-upgrade bash
간단한 옵션 중 하나는 bash를 사용하지 않는 것입니다. 확인 dash
설치되어 있고 그 /bin/sh
에 심볼릭 링크 dash
, 없습니다 bash
. (이것은 데비안의 일부 버전에서는 기본값이지만 우분투에 대해서는 잘 모르겠습니다.) 강제 명령을 사용하여 ssh 액세스에 대한 사용자 계정이있는 경우 로그인 쉘도 변경해야합니다. bash를 사용하여 명시 적으로 스크립트를 확인해야 할 수도 있습니다. 대한 grepping하는 것은 #!/bin/bash
그들을 찾아야한다.