웹 운영·보안 설정·장애 분석
공개 파일·로그·보안 헤더와 HTTP 장애 단서를 정리합니다.
1. 운영 보안의 기본 원칙
웹 서버는 정적 파일·프록시·TLS·요청 로그를, WAS는 인증·인가·업무 처리·DB 연동을 맡을 수 있다. 역할은 구분되지만 물리적으로 반드시 다른 서버인 것은 아니다.
서비스 전용 저권한 계정을 사용하고 다음을 통제한다.
- 콘텐츠 읽기와 업로드 쓰기 권한 분리
- 설정·인증서 개인키·비밀정보의 수정·조회 제한
- 관리자 기능에 강한 인증·인가와 관리망 등 접근 제한
- 미사용 기능·샘플·기본 계정 제거, 보안 패치 적용
- 필요한 HTTP 메서드만 허용하고 요청 크기·빈도 제한
관리 URL 이름을 바꾸거나 버튼을 숨기는 것으로 접근제어를 대신하지 않는다. PUT·DELETE 등도 필요한 API에는 정상적인 기능이므로 이름만으로 무조건 금지할 대상은 아니다.
2. 공개 디렉터리와 업로드 분리
Document Root(Web Root)는 웹에서 직접 제공하는 파일 영역이다. 설정·백업·덤프·로그·비밀값을 이 안에 두지 않는다. 불필요한 디렉터리 목록 공개를 끄고 업로드 파일은 웹 루트 밖이나 별도 저장소에 둔다.
robots.txt는 검색 로봇에게 크롤링 규칙을 알리는 파일이며 인증·인가 장치가 아니다. 규칙을 무시하는 요청을 차단하지 못하고 파일 자체도 공개된다.
업로드 검증과 다운로드 권한 검사는 파일 업로드·경로·명령 처리 보안에서 다룬다.
3. HTTPS와 보안 응답 헤더
브라우저 --HTTPS--> 리버스 프록시 --HTTP 또는 HTTPS--> WAS
외부 구간만 암호화했을 수 있으므로 TLS 종료 위치와 내부 구간의 보호 필요성을 확인한다. 인증서의 도메인·유효기간·신뢰 사슬, 지원되는 안전한 프로토콜, 혼합 콘텐츠를 점검한다.
| 헤더·정책 | 목적 |
|---|---|
| HSTS | 정책을 받은 브라우저가 이후 HTTPS를 사용하도록 강제 |
| Content-Security-Policy | 스크립트 등 자원의 출처·실행 정책 제한 |
| X-Content-Type-Options: nosniff | 선언한 MIME과 다르게 추측해 처리하는 위험 완화 |
| CSP frame-ancestors / X-Frame-Options | 다른 페이지에 프레임으로 삽입되는 범위 제한 |
| Referrer-Policy | 참조 주소가 다음 요청에 전달되는 범위 제한 |
HSTS와 HTTP 리다이렉션은 같지 않다. CSP가 있어도 안전한 출력 처리와 인가는 필요하다. 각 헤더의 세부 설정 문법보다 보호 목적을 구분한다.
4. 로그와 안전한 오류 처리
| 로그 | 확인하는 정보 |
|---|---|
| Access Log | 요청 시각·경로·메서드·상태·처리시간 |
| Error Log | 웹 서버·프록시·TLS·상위 서버 연결 실패 |
| Application Log | 인증·인가·업무 처리·DB 연동의 맥락 |
사용자에게는 일반화된 오류와 요청 식별자를 제공하고, 내부에서는 같은 식별자로 진단 정보를 연결한다. SQL 원문·스택 추적·서버 절대 경로를 사용자에게 노출하지 않는다. 로그에도 비밀번호·세션 ID·API 키를 그대로 남기지 않으며 접근권한과 변조 방지가 필요하다.
5. 장애를 단계별로 나눈다
| 현상·상태 | 확인할 위치 |
|---|---|
| 이름 해석·TCP·TLS 연결 실패 | DNS·네트워크·인증서, HTTP 응답 자체가 없을 수 있음 |
| 401 | 인증정보 누락·무효 |
| 403 | 인가·ACL·파일 권한·보안 정책 |
| 404 | 자원·배포 경로·라우팅 |
| 429 | 요청 빈도 제한 |
| 500 | 서버 처리 중 예외·설정·DB 오류 등 |
| 502 | 게이트웨이가 상위 서버의 유효한 응답을 받지 못함 |
| 503 | 일시 과부하·점검 등으로 서비스 처리 불가 |
| 504 | 게이트웨이가 상위 서버 응답을 제때 받지 못함 |
상태 코드는 조사 방향의 단서이며 단일 원인을 확정하지 않는다. 예를 들어 504에 타임아웃만 늘리면 느린 DB나 연결 자원 고갈이 남을 수 있다. 요청 경로와 같은 시각의 웹·응용·DB 로그를 함께 확인한다.
6. 가용성과 WAF의 한계
동시 요청·업로드 크기·처리시간·DB 연결·임시파일 사용량에 적절한 제한을 둔다. 지나치게 작은 제한도 정상 요청을 거부할 수 있으므로 정상 사용 범위를 고려한다.
WAF는 HTTP 요청·응답의 일부 공격 패턴을 검사하는 방어 계층이다. 검사 지점에서 내용이 복호화되어 있어야 하며 업무 인가 오류를 모두 이해하거나 코드를 자동 수정하지는 않는다. 안전한 코드, 최소 권한, 패치, 로그 검토와 함께 사용한다.
개념 확인 문제
문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.
01robots.txt에 관리자 경로를 적으면 접근이 차단되는가?
아니다. 검색 로봇에 대한 크롤링 규칙이며 인증·인가를 강제하지 않는다. 서버 측 권한과 관리 경로 접근 통제가 필요하다.
02504가 발생했을 때 타임아웃만 늘리면 근본 해결인가?
아니다. 게이트웨이가 상위 서버의 응답을 제때 받지 못했다는 단서다. WAS·DB·외부 API 처리시간과 연결·자원 상태를 함께 확인해야 한다.