212. 방화벽 (Firewall)

⚠️ 이 문서는 신뢰할 수 없는 외부(인터넷)망과 신뢰하는 내부망의 경계에 서서, 사전에 정의된 보안 규칙(Rule Set)에 따라 트래픽의 출발지/목적지 IP와 포트 번호를 검사하여 통과시킬지 버릴지를 결정하는 **네트워크 보안의 제1 관문인 '방화벽'**을 다룹니다.

핵심 인사이트 (3줄 요약)

  1. 본질: 데이터 패킷의 헤더(Header)에 적힌 발송지 주소, 도착지 주소, 그리고 어떤 문(Port)으로 들어갈 것인지에 대한 정보만 보고 출입국 심사를 하는 1차원적인 패킷 필터링(Packet Filtering) 장비다.
  2. 가치: "우리 회사의 웹 서버(포트 80)로 들어오는 트래픽은 모두 허용하지만, DB 서버(포트 3306)로 직접 들어오려는 외부 트래픽은 무조건 차단한다"와 같은 통제구역을 설정하여 무차별적인 해킹 접근을 99% 걷어낸다.
  3. 기술 체계: 초기에는 단순 헤더만 검사하는 1세대 패킷 필터링에서 시작해, 연결 상태(Session)를 기억하는 2세대 상태 기반 감시(Stateful Inspection)를 거쳐, 최근에는 애플리케이션(L7)의 내용물과 사용자까지 식별하는 차세대 방화벽(NGFW)으로 진화했다.

Ⅰ. 방화벽의 기본 원리: 접근 제어 목록 (ACL)

방화벽의 뇌는 아주 단순한 'Yes or No' 규칙표(ACL)다.

  1. 패킷 필터링 (L3/L4 계층):
    • 방화벽은 택배 상자(패킷)를 뜯어보지 않는다. 겉면에 붙은 송장(OSI 3계층 IP, 4계층 Port/Protocol)만 검사한다.
    • 예: "발신지 IP 상관없음(Any) -> 목적지 192.168.1.10(웹서버), 포트 80/443 (허용: Allow)"
  2. Default Deny (기본 거부 원칙):
    • 방화벽 룰의 가장 마지막 줄에는 반드시 **"위에 적힌 규칙표에 없는 모든 통신은 무조건 버린다(Drop/Deny)"**라는 룰이 있다.
  3. 네트워크 주소 변환 (NAT):
    • 방화벽은 밖에서 우리 집 컴퓨터의 진짜 사설 IP(192.x.x.x)를 알 수 없도록, 방화벽을 통과할 때 패킷의 주소를 공인 IP로 바꿔치기(NAT) 해주는 역할도 겸하여 내부 구조를 숨긴다.

📢 섹션 요약 비유: 아파트 입구의 경비 아저씨(방화벽)가 출입자 명부(ACL)를 들고, 택배 아저씨(IP)가 101동(목적지)의 현관문(Port)으로 들어가는 것은 허락하지만, 창문(허가 안 된 Port)으로 몰래 들어가려는 사람이나 명부에 없는 사람은 무조건 쫓아내는(Default Deny) 첫 번째 방어선입니다.


Ⅱ. 세대별 방화벽의 진화 (Stateful vs NGFW)

해커들이 진화하면서 방화벽도 눈치가 빨라졌다.

  1. 상태 기반 감시 (Stateful Inspection) - 2세대:
    • 초창기 방화벽은 나가는 문, 들어오는 문을 각각 다 열어줘야 했다. 해커가 '들어오는 문'이 열린 것을 악용했다.
    • 2세대부터는 '상태 추적 테이블(Session Table)'을 메모리에 저장한다. 내부 PC가 밖으로 네이버에 요청(TCP SYN)을 보낸 기록이 있으면, 네이버가 돌아오는 응답 패킷(SYN-ACK)은 룰이 없어도 "아, 아까 나갔던 애가 대답을 가져온 거구나"라고 융통성 있게 문을 열어준다.
  2. 차세대 방화벽 (NGFW: Next-Gen Firewall) - 3세대:
    • 해커들이 80번(웹 포트)은 무조건 열려있다는 것을 알고, 웹 통신을 가장한 악성코드나 카카오톡 트래픽을 80번 포트에 태워 보내기 시작했다 (단순 포트 검사의 맹점).
    • NGFW는 택배 상자(Payload, L7)를 직접 뜯어보고 "포트는 80번인데 내용물은 스카이프(Skype)나 게임 파일이네? 차단!"이라며 애플리케이션 종류와 사용자 계정까지 식별하여 통제한다. 침입방지시스템(IPS) 기능을 흡수한 형태다.

📢 섹션 요약 비유: 과거 경비 아저씨는 나갈 때와 들어올 때 매번 명부를 검사했지만(1세대), 지금은 얼굴을 기억했다가 배달 나갔다 오는 중국집 배달부는 프리패스로 들여보내 주며(Stateful), 차세대 경비원은 상자 속 내용물을 X레이로 찍어 폭탄(웹 포트로 숨어든 해킹)까지 찾아내는(NGFW) 만능 통제관이 되었습니다.


Ⅲ. DMZ 아키텍처와 방화벽의 한계

방화벽 하나로는 모든 것을 막을 수 없다.

  1. DMZ (Demilitarized Zone, 비무장지대):
    • 외부 인터넷과 진짜 중요 데이터(DB)가 있는 내부망 사이에 완충 지대를 둔다.
    • 외부 방화벽은 인터넷에서 DMZ(웹 서버가 있는 곳)로 들어오는 것만 막고, 내부 방화벽은 DMZ가 해킹당했을 때 해커가 2차로 DB망에 들어오지 못하게 내부에서 한 번 더 막는 '이중 방화벽' 구조를 필수적으로 설계한다.
  2. 방화벽의 맹점과 보완 (WAF):
    • 합법적인 웹 트래픽(정상 포트 80번, 정상 IP)으로 위장하여 웹사이트 게시판에 SQL 인젝션 공격 코드를 입력하는 것은 방화벽이 막지 못한다. 문이 열려있기 때문이다.
    • 이 약점을 메우기 위해 방화벽 뒤에는 웹 해킹 패턴만 전문적으로 방어하는 **웹 방화벽(WAF)**이나 **침입탐지시스템(IDS/IPS)**이 반드시 겹겹이(심층 방어) 서 있어야 한다.

📢 섹션 요약 비유: 궁궐 외곽에 성벽(방화벽)을 치고, 안에 마당(DMZ)을 두고, 왕의 침소 앞에 다시 이중 성벽(내부 방화벽)을 치는 구조입니다. 성벽은 대군을 막아주지만 합법적인 사신으로 위장한 독살범(웹 해킹)을 막지는 못하기 때문에 성 안에 독을 감별하는 은수저(웹 방화벽)가 꼭 필요한 이치입니다.