(UNIX) 프로덕션 서버를 정상적으로 인수하는 팁 프로덕션 서버에서 자격 증명을 복제하는 LDAP

수개월의 방치, 전자 우편 화염 및 관리 전투에서 현재의 sysadmin이 해고되어 “서버 자격 증명”을 전달했습니다. 이러한 자격 증명은 루트 암호로 구성되며 절차, 설명서, 팁, 아무것도 없습니다.

내 질문은 : 그가 boobytrap을 남겨두고 있다고 가정하면 가능한 한 적은 가동 중지 시간으로 서버를 우아하게 인수하는 방법은 무엇입니까?

세부 사항은 다음과 같습니다.

  • 지하실의 서버 팜에 위치한 하나의 프로덕션 서버; 우분투 서버 9.x, 아마도 grsec 패치 (마지막으로 관리자에게 물었다는 소문)
  • 모든 내부 문서, 파일 저장소, 위키 등을 포함하는 하나의 내부 서버. 다시 말하지만, 몇 년 된 우분투 서버.

두 서버가 모두 패치되어 최신 상태라고 가정하면, 정당한 이유가없는 한 (즉, 상위 관리 부서에 설명 할 수있는 경우가 아니라면) 해킹하려고하지 않습니다.

프로덕션 서버에는 호스팅되는 몇 개의 웹 사이트 (표준 apache-php-mysql), LDAP 서버, ZIMBRA 전자 메일 제품군 / 서버가 있으며 몇 개의 vmware 워크 스테이션이 실행 중인지 알 수 있습니다. 거기에서 무슨 일이 일어나고 있는지 전혀 모른다. 아마도 하나는 LDAP 마스터 일 것입니다.

내부 서버에는 내부 wiki / cms, 프로덕션 서버에서 자격 증명을 복제하는 LDAP 슬레이브, 몇 개의 vmware 워크 스테이션 및 실행중인 백업이 있습니다.

서버 팜의 관리자에게 가서 서버를 가리키고 ‘ sudo서버를 종료하십시오’ 라고 말하고 단일 사용자 모드로 로그인하여 사용하십시오. 내부 서버와 동일합니다. 그래도 다운 타임, 관리 상실, 오래된 시스템 관리자가 저에게 ‘발? 당신은 내 일과 다른 성가신 일을 할 수 없으며, 가장 중요한 것은 잠재적으로 몇주의 무급 시간을 잃어야 할 것입니다.

스펙트럼의 다른 쪽 끝에서 서버에 루트 및 인치로 로그인하여 무슨 일이 일어나고 있는지 이해할 수 있습니다. 놀라움을 유발할 수있는 모든 위험이 남아 있습니다.

나는 중간에 해결책을 찾고 있습니다. 무슨 일이 일어나고 있는지, 어떻게되는지 이해하면서 가장 중요한 것은 뒤에있는 부비 트랩을 트리거하지 않도록하십시오 .

당신의 제안은 무엇입니까?

지금까지 내부 서버로 ‘연습’, 네트워크 연결 끊기, 라이브 CD로 재부팅, 루트 파일 시스템을 USB 드라이브에 덤프 및 연결이 끊어진 분리 된 가상 머신에로드하여 이전의 sysadmin 방법을 이해했습니다. 생각 (일명 ‘적을 알아라’). 프로덕션 서버와 동일한 기능을 수행 할 수 있지만 전체 덤프는 누군가에게 통지합니다. 아마도 루트로 로그인하고 crontab을 확인하고 .profile에서 실행 된 명령이 있는지 확인하고 마지막 로그를 덤프하는 등의 작업을 수행 할 수 있습니다.

그게 내가 여기있는 이유입니다. 아무리 작은 힌트라도 대단히 감사하겠습니다.

시간도 문제입니다. 몇 시간 또는 몇 주 내에 트리거가 발생할 수 있습니다. 나쁜 할리우드 영화 중 하나 인 것 같지 않습니까?



답변

다른 사람들이 말했듯이 느슨한 느슨한 상황처럼 보입니다.

(끝에서 시작)

  • 완전히 새로운 배포

물론 서버를 중단하고 설치 관리자가 마술처럼 할 수는 없습니다.

일반 프로세스

  • 백업 서버 예산 확보 (데이터 스토리지에서와 같이 백업)
  • 데이터의 스냅 샷을 생성하기 전에 그 존재를 배치 아무것도
  • 경영진이 승인 한 것입니다!
  • 요구 사항 목록을 수집하십시오 (VMWare 인스턴스를 사용하는 위키 필요, …).
    • 관리 에서
    • 사용자로부터
  • 경영진이 승인 한 것입니다!
  • 목록에없는 서비스를 일주일 동안 종료하십시오 (한 번에 하나의 서비스 -외부 서비스를 종료하려고하지만 동일한 호스트의 응용 프로그램에서 여전히 사용될 수 있다고 의심되는 경우 iptables가 친구가 될 수 있습니다)
    • 반응이 없습니까? -> 최종 백업, 서버에서 제거
    • 반응? -> 서비스 사용자와 대화
    • 경영진이 서명 한 새로운 요구 사항 Geet을 수집하십시오 !
  • 한 달 동안 비공개 서비스를 모두 다운하고 반응이 없습니까? -> rm -rf $service(말소리가 들리지만 서비스를 해체하는 것입니다)
  • 예비 서버 예산을 확보하십시오
  • 한 번에 하나의 서비스를 스페어로 마이그레이션
  • 경영진에 의해 서명을 받으십시오!
  • 마이그레이션 된 서버 종료 (전원 끄기)
  • 더 많은 사람들이 당신에게 비명을 지르는 것을 발견하십시오-> 예, 당신은 남은 음식을 발견했습니다.
  • 새로운 요구 사항을 모으다
  • 다시 시작하고 서비스를 마이그레이션
  • 한 달 동안 사람이 오지 않을 때까지 마지막 4 단계를 반복하십시오.
  • 서버를 재배치하십시오 (그리고 경영진에 의해 사인 오프되도록하십시오!)
  • 전체 과정을 헹구고 반복하십시오.
    • 재배치 된 서버는 새로운 예비입니다

무엇을 얻었습니까?

  • 모든 서비스의 인벤토리 (귀하와 관리)
  • 문서화 (관리를 위해 무엇인가를 적어 놓아야하는 이유는 무엇입니까?

그렇게 했으므로 전혀 재미가 없습니다 🙁

경영진서명 한 이유는 무엇 입니까?

  • 문제를 가시화
  • 해고되지 않도록하십시오
  • 위험을 설명 할 기회
    • 그들이 당신을 원하지 않는다면 괜찮지 만, 결국 투자 가치가 있는지 판단하기에 충분한 정보를 얻은 후에 결정을 내립니다.

아, 그리고 시작하기 전에 전체 계획을 제시하십시오 . 최악의 상황과 최상의 경우에 어떤 일이 일어날 지 예상하십시오.

그것은 것입니다 당신이 문서가없는 경우에 상관없이 재배치의 많은 시간을 요했다. 백도어를 생각할 필요가 없습니다. IMHO 문서를 가지고 있지 않은 경우 롤링 마이그레이션은 회사에 가치를 제공 할 제정신 상태에 도달하는 유일한 방법입니다.


답변

이전 관리자가 문제가 있다고 생각할만한 이유가 있습니까? 아니면 많은 영화를 보십니까?

나는 간절히 요구하지 않고, 당신이 어떤 종류의 위협이 있다고 생각하는지 그리고 그것이 얼마나 가능한지 생각하려고 노력하고 있습니다. 어떤 종류의 심각한 파괴적 문제가 실제로 존재할 가능성이 매우 높다고 생각 한다면, 성공적인 네트워크 침입 인 것처럼 취급하는 것이 좋습니다 .

어쨌든, 상사는이 문제를 처리하는 동안 다운 타임 중단을 원하지 않습니다. 시스템에 결함이있는 경우 계획된 다운 타임과 계획되지 않은 다운 타임에 대한 태도는 무엇입니까 (실제 결함 또는 불량 관리자) 및 자신의 태도가 현실적이라면 여기에 실제로 문제가 생길 확률에 대한 귀하의 평가.

무엇을 하든지 다음을 고려하십시오.

지금 바로 시스템 이미지를 촬영하십시오 . 다른 일을하기 전에 실제로, 둘을 가져 가서 한쪽을 치우고 시스템에서 어떤 일이 발생하는지 알 때까지 다시 만지지 마십시오. 시스템을 인수했을 때의 시스템 기록입니다.

“두 번째”이미지 세트를 일부 가상 머신으로 복원하고이를 사용하여 상황을 조사하십시오. 특정 날짜 이후에 트리거되는 것이 걱정되는 경우 가상 머신에서 날짜를 1 년 정도 앞으로 설정하십시오.


답변

우선, 만약 당신이 이것에 여분의 시간을 투자한다면 실제로 그에 대한 대가받는 것이 좋습니다. 당신은 당신의 말로 판단 할 때, 당신이 지불하지 않은 초과 근무를 사실로 받아 들인 것 같습니다-그것은 내 의견으로는 그런 식으로해서는 안되며, 특히 다른 사람의 잘못 때문에 그러한 핀치에 빠지면 안됩니다 (관리, 이전 sysadmin 또는 둘 다의 조합 일 수 있습니다.

서버를 종료하고 단일 사용자 모드 (init = / bin / sh 또는 grub에서 1)로 부팅하여 루트 로그인시 실행되는 명령을 확인하십시오. 여기서 가동 중지 시간이 필요합니다. 데이터를 유지할 수있게하려면 가동 중지 시간 외에 일부 가동 중지 시간이 있다는 것을 경영진에게 분명히하십시오.

그런 다음 모든 cronjob을 합법적으로 보더라도 살펴보십시오. 다운 타임을 의미하더라도 가능한 한 빨리 전체 백업을 수행하십시오. 원하는 경우 전체 백업을 실행중인 VM으로 전환 할 수 있습니다.

그런 다음 새로운 서버 나 유능한 VM을 사용할 수 있다면 실제로 서비스를 새롭고 깨끗한 환경으로 하나씩 마이그레이션 할 것입니다. 감지 된 다운 타임을 최소화하기 위해 여러 단계로이를 수행 할 수 있습니다. 기본 시스템에 대한 자신감을 회복하면서 서비스에 대한 심도있는 지식을 많이 얻을 수 있습니다.

그 동안 도구를 chkrootkit 로 사용하여 루트킷을 확인할 수 있습니다 . 서버에서 nessus 를 실행 하여 이전 관리자가 사용할 수있는 보안 허점을 찾으십시오.

편집 : 나는 당신의 질문의 “우아한”부분과 내가 할 수있는 문제를 다루지 않았다고 생각합니다. 첫 번째 단계 (로그인 트랩을 확인하기 위해 단일 사용자 모드로 이동)는 아마도 건너 뛸 수 있습니다. 이전 sysadmin은 루트 암호를 제공하고 로그인을 설정하여 rm -rf /모든 파일을 직접 삭제하는 것과 거의 동일합니다. 아마 그 일에 아무 의미가 없습니다. 백업 부분에 따라 : rsync대부분의 초기 백업을 온라인으로 수행하고 가동 중지 시간을 최소화 할 수 있도록 기반 솔루션을 사용해보십시오 .


답변

해당 서버에서 실행되는 앱을 배우는 데 시간을 투자 할 것입니다. 언제 무엇을 알고 있는지 새 서버를 설치할 수 있습니다. 백도어라고 생각되는 경우 단일 모드로 부팅하거나 서버와 외부 네트워크 사이에 방화벽을 설치하는 것이 좋습니다.


답변

보안에 대한 편집증을 얻고 있습니다. 편집증을 가질 필요가 없습니다. (부코 트랩에 대해 이야기하십시오.) 설치된 소프트웨어 목록을 살펴보십시오. 실행중인 서비스 (netstat, ps 등)를 확인하고 cron 작업을 참조하십시오. 계정을 삭제하지 않고 이전 sys admin 사용자 계정을 비활성화합니다 (쉘을 nologin으로 지정하여 쉽게 수행). 로그 파일을 참조하십시오. 나는이 단계들과 당신이 서버의 사용을 추측 할 수있는 회사의 필요에 대한 당신의 지식으로부터 생각합니다, 나는 당신이 어떤 큰 구도없이 그것들을 유지할 수 있어야한다고 생각합니다.