Devin.KR

SSH와 계층별 접속 진단

실습망의 주소·이름·포트·인증·방화벽을 분리해 점검합니다.

진도 0%

레슨

  1. 주소와 경로

    VM의 loopback·실습망 IP·라우팅·리스닝 주소를 구성도에 추가합니다.

  2. DNS와 TCP 포트

    이름 해석·TCP 연결·HTTP 상태를 순서대로 확인해 실패 지점을 구분합니다.

  3. SSH 키와 인증

    실습 VM에 공개키를 등록하고 키 권한·사용자·포트 오류를 로그와 연결합니다.

  4. 서비스와 방화벽 분리

    VM 콘솔을 확보한 뒤 실습망 출발지만 허용하는 방화벽 규칙을 적용하고 접속 결과를 비교합니다.

SSH와 계층별 접속 진단 미션

이전 모듈 m04-systemd-service의 산출물을 가져와 실습망의 주소·이름·포트·인증·방화벽을 분리해 점검합니다.

요구사항

  • 이전 서비스의 리스닝 주소를 실습망 주소로 바꾸고 실습망에서만 HTTP·SSH를 허용합니다.
  • evidence/connectivity.md에 DNS→경로→포트→서비스→인증 확인 순서와 콘솔 복구 절차를 기록합니다.
  • m04 solution 전체를 previous/에 보존하고 기존 Store·HTTP·계정·데이터를 유지합니다. server(host) 기본값은 loopback이며 service.env에 BIND_ADDRESS만 추가합니다.
  • 별도 nftables 테이블은 새 22·18080 연결만 실습망에서 허용하며 콘솔 복구와 20초 자연 종료를 유지합니다.
  • 두 실습 클라이언트에서 collect-client.py로 원문·관측 시각·경로 src를 수집하고 evidence에 보관합니다.

완료 기준

  • 허용된 실습 클라이언트의 HTTP·SSH 성공과 허용하지 않은 실습 출발지의 차단을 각각 검사합니다.
  • 이름 오류·리스너 없음·방화벽 차단·키 오류를 서로 다른 원인으로 보고하는지 검사합니다.
  • check.sh는 기존 Python 회귀·실제 설치 환경·active·리스너·허용 HTTP 데이터·SSH 계정·잘못된 키 인증 실패·차단 클라이언트 timeout·drop 카운터를 확인합니다. Linux VM 검증은 external입니다.
  • 이름 오류와 리스너 없음 재현 및 복구 후 loopback 응답은 connectivity.md의 원문 기록을 사람이 검토합니다. timeout 단독으로 방화벽 원인 확정하지 않습니다.
bash check.sh
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 관측 결과와 판단 근거가 연결되어 있습니다.
  • 실습 VM 범위와 필요한 권한을 명시하고 재현 순서를 기록합니다.