웹 서버 배포 및 재해 복구

이 프로젝트에서 귀하는 DevOps 엔지니어 역할을 맡아 웹 서비스 환경을 배포, 보안 설정 및 유지 관리하게 됩니다. 소프트웨어 설치, 서비스 구성, SSH 강화, 로그 포렌식 및 재해 복구 실습을 진행합니다.

DevOps EngineerLinuxDevOps

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

웹 서버 운영은 페이지 제공 이상입니다. 수신 포트를 제어하고, 관리 접근을 보호하고, 트래픽을 조사하고, 중요 데이터를 복구할 수 있음을 입증해야 합니다. 이 챌린지형 프로젝트는 최종 상태를 검증하는 네 가지 Linux 상황에서 이러한 책임을 연결합니다.

사용자 지정 포트에 Nginx를 구성하고, SSH 공개 키를 설치하고, 수신 소켓을 감사하고, 접근 로그에서 가장 활발한 클라이언트를 찾고, 압축 아카이브로 파괴적 복원 시험을 수행합니다. 요구 사항과 힌트는 제공되지만 명령과 검증 흐름은 직접 선택합니다.

학습 내용

  • Nginx를 설치하고 기본 수신 포트를 8080으로 변경해 지정 페이지를 배포하고 서비스 재시작하기
  • RSA SSH 키 쌍을 생성하고 공개 키를 승인하며 SSH 경로에 700과 600 권한 적용하기
  • 수신 중인 TCP 소켓을 숫자로 나열하고 SSH 포트 22가 노출되는지 확인하기
  • 출발지 IP별 요청을 세고 최다 요청자를 추출하는 셸 텍스트 처리 파이프라인 만들기
  • /var/www/html과 /var/log/nginx를 gzip tar로 함께 보관하고 내용 확인하기
  • 웹 루트 손실을 시뮬레이션하고 /에서 아카이브를 풀어 중요 페이지 복구 확인하기

추천 대상

단계별 명령 없이 웹 서비스, SSH, 로그 처리, 백업 기술을 적용할 준비가 된 Linux 및 DevOps 학습자에게 적합합니다.

선수 지식: 패키지·서비스 관리, 텍스트 편집, 셸 파이프라인, SSH 파일, 권한, 소켓 점검, tar에 익숙해야 하는 평가형 프로젝트입니다.

학습 환경: sudo, APT, Nginx, OpenSSH 도구, Zsh, 표준 GNU/Linux 유틸리티와 준비된 웹·로그 데이터가 있는 브라우저 기반 Ubuntu 호스트이며 클라우드나 원격 서버는 필요하지 않습니다.

자주 묻는 질문

SSH 챌린지는 비밀번호 인증을 완전히 비활성화하나요?

아니요. /home/labex/.ssh/id_rsa를 생성하고 공개 키를 authorized_keys에 추가해 권한을 수정합니다. sshd_config 변경, 비밀번호 비활성화, 원격 로그인 시험은 하지 않습니다.

예상하지 못한 네트워크 포트를 닫나요?

아니요. ss 또는 netstat로 수신 TCP 포트를 숫자로 나열하고 포트 22를 확인할 뿐 방화벽이나 서비스를 변경하지 않습니다.

가장 활발한 클라이언트는 어떻게 찾나요?

/var/log/nginx/access.log 첫 필드의 IP를 그룹화·집계·정렬하고 최상위 203.0.113.42만 /home/labex/attacker_ip.txt에 저장합니다.

복구 시험에서 실제로 무엇을 삭제하고 복원하나요?

아카이브에는 웹 루트와 Nginx 로그가 포함되지만 손실 시뮬레이션은 /var/www/html만 삭제합니다. 루트에서 압축을 풀고 Critical Web Content가 든 index.html의 복구를 확인합니다.

강사

labby
Labby
Labby is the LabEx teacher.