강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

root가 Root로 변경되었을 때

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.gif root가 Root로 변경되었을 때

 

제목 : root가 Root로 변경되었을 때
             (리눅스 서버 트러블 슈팅 제3편)

 

1. 증상발견

 

이번 건 또한 모 업체의 의뢰를 받고서 서버를 복구하기 위하여 갔었던 일입니다.

 

우선 서버는 외관상으로 볼때에는 정상적으로 운용이 되고 있었습니다.

 

단지 /etc/passwd파일에 있어야할 root(모두 소문자)가 Root(R만 대문자)로 변경이 되어 있으며 root소유의 파일들이 모두 Root소유로 되어 있었습니다.

 

그리고 또한 root로 로그인이 전혀 되지않았습니다.

 

순간적으로 확신할 수 있었던 것은 해킹이라는 것을 직감할 수 있었습니다.

 

 

 

 

 

2. 문제분석

 

root로 로그인하는 방법은 Root로 바로 접속하거나 일반관리자 계정(예 : manager)으로 접속하여 su를 사용하여 root권한을 획득하는 두가지 방법이 있지만 당연히 원격에서는 root로 바로 접속이 되지는 않았습니다.

 

그래서 일반관리자 계정인 manager로 접속을 하여 "su -"를 사용하여 관리자로 접속해 보았습니다.

 

하지만 너무나 당연히 root로 접속은 되지않았습니다.

 

그렇다면 이번에는 "su - Root"로 접속을 해보았습니다.  이 또한 접속이 되지않았습니다.

 

그렇다면 무엇인 문제일까를 생각해 보았습니다.

 

이 문제를 해결하는 방법을 골똘히 생각해 보았습니다.

 

필자의 생각에 당연히 single모드로 재부팅하여 /etc/passwd 파일에 있는 Root를 root로 수정한 후에 root의 패스워드를 다시 설정하면 해결이 될 것이라고 생각할 수 있었습니다.

 

그래서 의뢰업체의 허락을 득한 후에 시스템을 재부팅하려고 "Crtl+Alt+Del"키를 입력하였습니다.

 

아니나 다를까 역시 안되더군요.

 

Root계정, 정확하게는 UID, GID각 각각 0와 0인 계정을 획득할 수 없었으므로 시스템의 완전장악이 불가능하였습니다.

 

그래서 Reset키를 이용하여 시스템을 강제 재부팅하였습니다.

 

single모드로 들어가기 위하여 LILO:가 나올때에 "linux single"이라고 입력을 하고서 한참을 기다렸습니다.

 

그랬더니 이게 왠일입니까?

 

부팅과정중 파일시스템 마운트단계에서 멈추어 버리는 것입니다. 즉 single모드로 부팅을 할 경우에라도 / 파일시스템은 마운트를 하게됩니다. 이때 root라는 계정이 있어야만 / 파티션으로 마운트가 가능한게 아니겠습니까?

 

시스템에 현재 root라는 ID를 가진 계정이 없으므로 /파일시스템 마운트 단계에서 부팅이 멈추어 버리는 것이였습니다.

, 이 과정에서 시간은 흘러가고 서비스는 멈춘상태이므로 마음이 조급해 질 수 있었습니다.

 

하지만 이럴때일수록 조급하게 생각하고 함부로 조치했다가는 돌이킬 수 없는 실수를 하게 됩니다.

 

필자는 차근차근 현재 이 상태에서 시스템 복구를 위하여 할 수 있는 경우의 수를 생각해 보았습니다.

 

 

3. 문제해결

 

 

현재 이 상태에서 시스템을 정상화 시키는 방법은 다음과 같은 몇가지가 있을 수 있었습니다.

 

첫번째 방법으로는 현재 하드디스크를 빼내고 새로운 하드디스크로 동일한 리눅스 버전으로 시스템을 재설치 하는 것입니다.  그리고 난 후에 기존의 하드디스크를 추가로 장착하여 임시폴더에 마운트 시킨 후에 필요한 파일들을 복사해 오는 방법이였습니다.

 

이 방법은 시스템을 완전히 재설치하는 것이며 시간이 꽤 걸린다는 단점이 있습니다.

 

하지만 이 방법의 가장 좋은 점은 가장 안전한 방법이라는 것입니다.

 

두번째로 생각할 수 있는 해결 방법은 다른 서버에 기존의 하드디스크를 추가로 장착하여 재부팅 한 후에 마운트를 하여 마운트된 하드디스크의 /etc/passwd파일의 Root를 root로 변경한 후에 다시 하드디스크를 빼내어서 기존의 서버의 원위치에 꼽은 후에 시스템을 재부팅하는 것입니다.

 

여러가지를 생각해 시스템이 부팅이 안되는 상태에서 할 수 있는 방법은 위의 두가지 방법이 있었습니다.

 

이 상황을 의뢰업체의 관리자에게 설명한 후에 필자는 다음과 같은 작업방법과 스케줄을 제시한 후에 필자는 다음과 같은 방법으로 이 문제를 해결 하였습니다.

 

먼저 두번째 방법처럼 기존의 하드디스크를 빼내어서 다른 시스템에 추가 장착한 후에 그 시스템을 재부팅하여 추가 장착한 하드디스크를 마운트하고 마운트된 하드디스크의 /etc/passwd파일의 Root를 root로 수정한 후에 수정된 하드디스크를 다시 빼내어서 원서버의 원위치에 장착한 후에 시스템을 다시부팅해 보았습니다.

 

그랬더니 시스템이 root소유로 마운트를 정상적으로 한 후에 정상부팅이 되는 것이였습니다.

 

이후 아무런 문제없이 시스템은 정상적으로 운용할 수 있었습니다.

 

그리고 Root소유로 되어 있던  파일들이 모두 root소유로 변경이 되어 있었습니다.

 

 

 

4. 사후조치

 

이후 시스템의 각종 로그파일과 점검툴들을 이용하여 불법침입흔적을 조사하는 작업을 하였으며 시스템에 또다른 이상이 있는가를 확인하는 작업을 하였습니다.

 

그리고 침입흔적들을 분석한 결과 몇가지 의심스러운 IP를 대상으로 확인하는 작업을 하였습니다.

 

이 서버는 100% 해킹에 의해서 시스템이 망가진 경우이였으므로 위와 같이 응급부팅을 시킨 후에는 반드시 시스템을 새로 설치하는 작업을 거쳐야만 안심할 수가 있습니다.

 

이후의 과정들은 리눅스를 새로설치하고 기존의 데이터들을 안전하게 옮기는 작업이므로 굳이 설명하지 않아도 잘 알고 계시리라 생각합니다.

 

감사합니다.

 

이로써 3편을 마무리합니다.

 

그럼……….~~~헐렁~~~

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,789 개
  • 현재 접속자 :  235 명