티스토리 뷰

방화벽(Firewall)과 웹 방화벽(WAF, Web Application Firewall)은 이름은 비슷하지만 보호 대상과 동작 계층이 완전히 다릅니다.
실무에서는 둘 다 함께 사용하는 경우가 대부분입니다.
1. 가장 큰 차이 한줄 정리
구분일반 방화벽(Firewall)웹 방화벽(WAF)
| 보호 대상 | 서버/네트워크 | 웹 서비스(HTTP/HTTPS) |
| 동작 계층 | L3/L4 (IP, Port) | L7 (HTTP, HTTPS) |
| 판단 기준 | IP, 포트, 프로토콜 | URL, 파라미터, 쿠키, BODY |
| 주요 목적 | 접근 통제 | 웹 공격 차단 |
| 대표 차단 | 특정 IP 차단 | SQL Injection 차단 |
| 설치 위치 | 네트워크 경계 | 웹 서버 앞단 |
2. 일반 방화벽(Firewall)이란?
일반 방화벽은 네트워크 접근 자체를 통제하는 장비 또는 소프트웨어입니다.
쉽게 말하면:
"누가 어느 포트로 들어오는가?"
를 검사합니다.
예시:
- 22 포트(SSH)는 관리자 IP만 허용
- 80/443 포트만 외부 공개
- 특정 국가 IP 차단
- 내부망 접근 제한
3. 일반 방화벽이 보는 정보
주로 아래 정보를 봅니다.
항목설명
| Source IP | 요청 보낸 IP |
| Destination IP | 목적지 서버 |
| Port | 80, 443, 22 등 |
| Protocol | TCP, UDP |
| Connection State | 연결 상태 |
즉:
192.168.0.10 → 443 포트 접근 허용
같은 수준입니다.
4. 일반 방화벽은 이런 공격을 잘 막음
네트워크 공격
- 포트 스캔
- 비인가 서버 접근
- SSH 브루트포스
- 특정 IP 대역 공격
- DDoS 일부 유형
- 내부망 침입 차단
5. 하지만 일반 방화벽의 한계
일반 방화벽은 HTTP 내용을 이해하지 못합니다.
예:
POST /login
id=admin' OR '1'='1
방화벽 입장에서는:
443 포트 정상 요청
으로 보일 수 있습니다.
즉:
- SQL Injection
- XSS
- 파일 업로드 공격
같은 웹 공격은 탐지하기 어렵습니다.
6. 웹 방화벽(WAF)이란?
WAF는 웹 요청 내용을 분석해서 공격 여부를 판단하는 보안 장비입니다.
즉:
HTTP 요청 내부를 검사함
7. WAF가 검사하는 것
WAF는 아래까지 전부 봅니다.
검사 대상예시
| URL | /admin/delete |
| QueryString | ?id=1 |
| POST BODY | JSON/Form 데이터 |
| Header | User-Agent |
| Cookie | 세션 값 |
| 파일 업로드 | 확장자/악성패턴 |
| HTTP Method | GET/POST/PUT |
8. WAF가 막는 대표 공격
SQL Injection
' OR 1=1 --
탐지 후 차단
XSS
<script>alert(1)</script>
차단
파일 업로드 공격
shell.jsp
차단 가능
관리자 페이지 공격
/admin
비정상 접근 탐지
비정상 API 호출
- 과도한 요청
- BOT 공격
- 크롤링
- 인증 우회 시도
9. 계층(Layer) 차이
OSI 7계층 기준으로 보면:
장비동작 계층
| 일반 방화벽 | L3/L4 |
| WAF | L7 |
일반 방화벽
IP + PORT 기반
WAF
HTTP 내용 기반
10. 실제 요청 흐름 예시
사용자 요청:
POST /login
id=admin
pw=' OR 1=1 --
일반 방화벽
검사:
443 포트 접근인가?
YES → 통과
WAF
검사:
SQL Injection 패턴 존재
→ 차단
11. 실제 서비스 구조
대부분 이렇게 구성됩니다.
인터넷
↓
일반 방화벽
↓
WAF
↓
웹 서버(Apache/Nginx)
↓
WAS
↓
DB
12. WAF가 있다고 방화벽이 필요없는가?
아닙니다.
둘 역할이 다릅니다.
일반 방화벽이 필요한 이유
- 불필요 포트 차단
- 내부망 보호
- 서버 접근 제한
- 네트워크 레벨 공격 차단
WAF가 필요한 이유
- 웹 해킹 방어
- HTTP 공격 탐지
- API 보안
- OWASP Top 10 대응
13. Apache 로그와의 관계
이건 실무에서 매우 중요합니다.
일반 방화벽에서 차단되면
패킷 자체가 서버까지 못 옵니다.
즉:
Apache access.log 없음
가능성이 큼
WAF에서 차단되면
구조에 따라 다름
Reverse Proxy 방식
사용자 → WAF → Apache
WAF가 차단하면:
- Apache까지 요청 안 감
- access.log 안 남을 수 있음
Inline/TAP 방식
일부는 로그가 남을 수도 있음
14. xhr.status = 0 과의 관계
브라우저에서:
xhr.status === 0
은 종종 아래 상황에서 발생합니다.
원인설명
| CORS 차단 | 브라우저 차단 |
| 네트워크 끊김 | TCP 실패 |
| WAF 연결 차단 | 중간에서 RST |
| HTTPS 인증서 오류 | TLS 실패 |
| 서버 응답 없음 | timeout |
특히 WAF가 TCP 연결을 강제로 끊으면:
브라우저:
status = 0
이 자주 발생합니다.
15. 대표 솔루션 예시
일반 방화벽
- Cisco ASA
- Fortigate
- Palo Alto
- iptables
- firewalld
- Windows Firewall
WAF
- Cloudflare WAF
- AWS WAF
- F5 ASM
- Imperva
- ModSecurity
- AhnLab TrusGuard WAF
16. 실무에서 자주 헷갈리는 부분
"443 열려있는데 왜 접속 안됨?"
가능성:
- 방화벽은 허용
- WAF가 HTTP 요청 차단
"Apache 로그가 없는데 사용자 요청했다 함"
가능성:
- 방화벽 차단
- WAF 선차단
- CDN/WAF에서 Drop
"서버는 정상인데 브라우저 status=0"
가능성:
- WAF TCP Reset
- SSL 핸드셰이크 실패
- 중간 보안장비 차단
17. 핵심 요약
항목방화벽웹 방화벽
| 보호 범위 | 네트워크 | 웹 서비스 |
| 분석 수준 | IP/Port | HTTP 내용 |
| 계층 | L3/L4 | L7 |
| 대표 역할 | 접근 제어 | 웹 해킹 차단 |
| SQL Injection 탐지 | 어려움 | 가능 |
| XSS 탐지 | 어려움 | 가능 |
| Apache 로그 영향 | 서버 도달 전 차단 가능 | 구조 따라 로그 없음 가능 |
18. 실무 관점에서 중요한 포인트
웹 서비스 보안은 보통 아래 3단계로 봅니다.
1차: 방화벽
→ 네트워크 차단
2차: WAF
→ 웹 공격 차단
3차: 애플리케이션 보안
→ 서버 코드 검증
즉:
WAF 있다고 서버 검증 생략 불가
입니다.
서버 측에서도:
- 입력값 검증
- PreparedStatement
- 업로드 검증
- 인증/권한체크
는 반드시 해야 합니다.
#방화벽
#웹방화벽
#WAF
#Firewall
#네트워크보안
#정보보안
#사이버보안
#보안솔루션
#웹보안
#서버보안
#인프라보안
#보안공부
#SQLInjection
#XSS
#OWASP
#웹해킹
#해킹방어
#보안엔지니어
#시스템보안
#Apache
#Nginx
#네트워크관리
#클라우드보안
#DevSecOps
#IT인프라
#백엔드개발
#서버관리
#API보안
#웹개발
#보안아키텍처
'SERVER' 카테고리의 다른 글
| 가장 훌륭한 트래픽 분산 방법 (1) | 2026.06.16 |
|---|---|
| L4 스위치 원리 (0) | 2026.06.15 |
| Nginx 역방향 프록시 (0) | 2026.06.14 |
| AWS 웹 서버 구축 가이드 (0) | 2026.05.23 |
| linux vi(vim) 편집기 사용법 정리 (0) | 2026.05.05 |
| linux find, grep 사용법 및 차이점 정리 (0) | 2026.05.04 |
| 리눅스 cd 명령어 사용법 정리 (0) | 2026.05.04 |
| 리눅스 ls 명령어 사용법 정리 (0) | 2026.05.04 |
- Total
- Today
- Yesterday
- 배열
- DB연동
- 상속
- c#
- OpenCV
- MySQL
- Java
- 벡터
- 자료구조
- C
- C++
- 안드로이드
- 리스트
- 데이터베이스
- String
- Android
- 알고리즘
- 문자열
- 자바
- 정보처리기사
- Class
- 문제풀이
- html
- 파일처리
- 블루투스
- 아두이노
- 클래스
- 파이썬
- C언어
- C++ 클래스
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
