본문 바로가기

IT/기타 유용한 지식

glibc 보안성 업데이트 권고

자세한 내용은 이미 많이들 알고 있을테죠 버퍼 오버 플로우로 타인이 권한을 획득할 수 있는데 다행히 패치된 버전이 이미 나와있어서 우리는 간단히 업데이트 명령만 사용하면 됩니다. 여기서는 업그레이드 방법 몇가지를 소개해 드립니다


확인


test "$(rpm -q --changelog $(rpm -q glibc) | grep -c CVE-2015-0235)" = $(rpm -q glibc | wc -l) && echo ok || echo 'not ok' 

not ok

위 명령어로 glibc가 제대로 설치되었는지 확인가능. 물론 rpm -qa |grep glibc로 업그레이드 된 버전을 확인할 수도 있다. 버전이 업그레이도 되면 아래에 ok로 표시된다.


변경 1


yum update glibc 


yum은 rpm의 의존성을 해결해줄 수 있는 아주 훌륭한 솔루션이다. 더군다나 glibc의 경우 리눅스 시스템의 상당히 많은 부분에 연계되어 있어서 rpm이나 소스파일로 강제로 설치했다간 OS설치를 다시해야 할 수도 있는 최악의 상황이 올 수도 있다. 

현재 사용중인 서버에 어느 누구도 그러한 모험을 하고 싶지는 않을 것이기 때문에 조심 또 조심해야하는것이 glibc이다 

하지만 yum update 명령 하나면 그러한 걱정은 전혀 할필요 없다(yum의 단점은, 원하는 버전을 골라서 설치하기 어렵다는점과 버전 업데이트가 조금 늦다는 점이다. 물론 레포지터리를 변경해주면 이것도 해결되지만..)


변경 2

yum install yum-downloadonly

mkdir -p /src/glibc_149

yum install glibc -y --downloadonly --downloaddir=/src/glibc_149

usb마운트 후 usb로 복사하여 다른 서버에 마운트하여 복사해 넣음

cp /mnt/usb/glibc_149

rpm -Uvh *.rpm


순서대로 명령어를 입력하면 된다. downloadonly라는 yum플러그인을 다운받는다. 이건 설치나 업데이트를 안하고 rpm파일만 받는 플러그인이다. rpm파일들은 지정한 /src/glibc_149 디렉토리 아래에 저장된다. 다음은 경로에 이동해서 모든 rpm들을 한번에 업데이트 하는 명령을 사용하여 glibc를 업그레이드한다.

이 방법은 업그레이드하려는 서버가 외부와 통신이 되지 않을 때 사용할 수 있는 방법이다. 

1. 외부와 통신이 되는 컴퓨터에서 rpm들을 다운로드 받는다. 

2. 다운받은 rpm들을 usb로 복사한다

3. usb를 외부와 통신이 되지 않는 서버에 연결해 마운트한다.                                                                               -> 장애포인트=마운트가 안되거나, usb인식 불가, usb 잠금등

4. usb에서 서버로 rpm파일들을 복사한다(usb에서 바로 설치는 오류가 발생할 수 있다)                                                   -> 장애포인트(usb읽기전용으로 복사불가

5. 복사한 다렉토리로 이동 후 rpm -Uvh *.rpm 명령 실행


위 방법을 권고하지는 않는다. 장애포인트가 많고 테스트가 불충분하기 때문이다. 하지만 외부와 통신이 불가능해서 yum을 사용할 수 없는경우 생각해볼 수 있는 방법이다.


참고: 레포지터리를 cd로 수정해서 cd를 넣고 glibc를 업그레이드할 수 있지만 cd에 들어있는 배포판의 rpm버전이 패치가 된 버전인지 알 수가 없기때문에 확인이 필요하다