← 문제 라이브러리
Network 중급 NETWORK-006 · 20분

서버 방화벽 규칙을 정리한 뒤 로드밸런서가 모든 서버를 DOWN으로 판정

보안 점검에서 '쓰지 않는 포트가 열려 있다'는 지적을 받아 웹 서버들의 방화벽 규칙을 정리했습니다.

검수된 문제무료
시나리오

보안 점검에서 '쓰지 않는 포트가 열려 있다'는 지적을 받아 웹 서버들의 방화벽 규칙을 정리했습니다. 443은 누구나, 관리 포트들은 모니터링 대역에서만 열도록 바꿨습니다. 적용 5분 뒤 사이트 전체가 503으로 떨어졌습니다. 서버에 직접 443으로 접속하면 페이지가 잘 나옵니다. 로드밸런서는 각 서버의 8081 포트 /health 로 상태를 확인합니다. 담당자는 앱이 죽었다며 서버를 하나씩 재시작하고 있습니다. 온라인 주문이 모두 멈춰 매 분 매출 손실이 나고 있습니다.

단서
로드밸런서 상태
pool web-pool:  members 4, up 0
  10.20.1.11:443  DOWN  (health: L4 timeout on 8081)
  10.20.1.12:443  DOWN  (health: L4 timeout on 8081)
# 헬스 체크 출발지: LB self IP 10.20.0.2, 10.20.0.3
서버 방화벽 (새 규칙)
$ sudo iptables -S INPUT
-P INPUT DROP
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -s 10.99.0.0/24 -p tcp -m multiport --dports 22,8081,9100 -j ACCEPT
서버에서 직접
$ curl -s -o /dev/null -w '%{http_code}' https://10.20.1.11/ -k
200
$ curl -s localhost:8081/health
OK

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • 서비스 트래픽과 헬스 체크 트래픽은 출발지·포트가 다르다
  • 로드밸런서가 서버를 빼는 이유(DOWN 사유) 읽기
점검 체크리스트
  1. 로드밸런서의 DOWN 사유와 헬스 체크 포트
  2. 헬스 체크 출발지 IP(LB self IP)
  3. 서버 방화벽에서 그 출발지·포트가 허용되는지