방화벽(Firewall)란?

네트워크 경계 등에 두고, 미리 정한 규칙에 따라 허가한 통신만 통과시키고 그 밖의 통신을 차단하는 구조(기기나 소프트웨어). 출발지와 목적지의 IP 주소, 포트 번호, 프로토콜, 통신 방향 등으로 판정한다. 사내 네트워크를 인터넷으로부터의 부정한 접속에서 지키는 것이 주된 역할이다.

일본어 명칭: ファイアウォール

방화벽(Firewall)은(는) 사이버 공격과 방어의 실무, 클라우드와 컨테이너의 기초, 네트워크 기초 등 4개 분야의 연습 문제 6개에 나와요.

분야: 정보 보안 기초

패킷 필터링과 스테이트풀 인스펙션

가장 기본적인 패킷 필터링은 패킷의 헤더를 위에서부터 차례로 늘어놓은 규칙과 대조하여, 처음 해당한 규칙에 따라 통과시킬지 버릴지를 정합니다. 어디에도 해당하지 않는 통신은 버리는 것(기본 거부)이 원칙입니다. 스테이트풀 인스펙션은 통신 상태(어느 쪽에서 시작한 연결인지)를 기억해 두고, 내부에서 시작한 연결에 대한 돌아오는 통신은 자동으로 통과시키며, 외부에서 갑자기 온 통신은 버립니다. 나아가 통신 내용으로 애플리케이션을 식별하거나 침입 방지 기능을 통합한 제품은 차세대 방화벽이라고 부릅니다.

배치 위치와 DMZ

방화벽은 인터넷과 사내 네트워크의 경계에 두는 것이 기본입니다. 웹 서버나 메일 서버처럼 외부에서 접속되어야 하는 서버는 사내와는 별도의 DMZ(비무장 지대)라는 구역에 두고, 인터넷에서 DMZ로는 필요한 포트만 허가하며, 인터넷에서 사내로는 허가하지 않고, DMZ에서 사내로의 통신도 제한합니다. 이렇게 하면 공개 서버가 탈취되어도 사내로 피해가 번지기 어려워집니다. 경계 장비와는 별도로 PC나 서버 1대마다 동작하는 호스트형 방화벽도 있습니다.

방화벽만으로는 막을 수 없는 것

웹사이트를 위해 443번 포트를 열어 두면 그 통신에 섞인 SQL 인젝션이나 크로스 사이트 스크립팅은 통과해 버리므로, 통신 내용을 조사하는 WAF가 필요합니다. 메일 첨부 파일이나 피싱으로 사내 단말이 감염된 경우나, 올바른 인증 정보로 VPN을 통해 들어온 경우도 방화벽은 막을 수 없습니다. 그래서 침입 탐지 시스템(IDS/IPS), 단말을 감시하는 EDR, 통신할 때마다 확인하는 제로 트러스트 사고방식 등을 조합해 지킵니다.

도전해 보기: 방화벽(Firewall) 관련 문제

방화벽(패킷 필터링형)의 기본적인 기능으로 올바른 것은?

  1. A통신 내용을 암호화하여 도중 경로에서의 도청을 막는다
  2. B출발지나 목적지의 IP 주소, 포트 번호 등을 바탕으로 한 규칙에 따라 허용한 통신만 통과시키고 그 밖의 통신은 차단한다
  3. C도착한 패킷을 여러 서버에 분배하여 처리 부하를 분산한다
정답과 해설 보기

정답: B. 출발지나 목적지의 IP 주소, 포트 번호 등을 바탕으로 한 규칙에 따라 허용한 통신만 통과시키고 그 밖의 통신은 차단한다

방화벽은 사내 네트워크와 인터넷의 경계 등에 두고, 미리 정한 규칙으로 통신을 허용하거나 거부합니다. 예를 들어 '외부에서는 공개 웹 서버의 443번 포트로 가는 통신만 허용하고, 그 밖의 외부로부터의 연결은 거부한다'와 같이 설정합니다. 현재 대부분의 방화벽은 통신 상태를 기록하는 스테이트풀 인스펙션을 수행하여, 내부에서 시작한 통신의 돌아오는 패킷을 자동으로 통과시킵니다. 암호화는 하지 않으므로 통신을 보호하려면 TLS나 VPN과 조합합니다. 또한 허용한 포트를 통과하는 공격(웹 애플리케이션의 취약점을 노리는 것 등)은 막을 수 없으므로 WAF 등 별도의 대책도 사용합니다.

거점 간 VPN 터널을 통해 먼 곳의 웹 서버와 통신하고 있다. TCP 연결은 확립되고 작은 페이지는 표시되지만, 큰 파일의 다운로드만 도중에 멈춰 버린다. 터널 안의 MTU는 1400바이트이며, 서버는 1500바이트의 패킷을 분할 금지(DF 비트를 1)로 하여 보내고 있다. 또한 서버 앞단의 방화벽은 ICMP를 모두 버리는 설정으로 되어 있다. 원인으로 가장 적절한 것은?

  1. ADNS 이름 해석이 실패하고 있기 때문
  2. BTCP의 수신 윈도가 너무 작아서 한 번에 보낼 수 있는 데이터의 양이 부족하기 때문
  3. C너무 큰 패킷을 버린 라우터가 보내는, 분할이 필요함을 알리는 ICMP 메시지가 서버에 도달하지 않아, 서버가 패킷을 작게 할 수 없기 때문
정답과 해설 보기

정답: C. 너무 큰 패킷을 버린 라우터가 보내는, 분할이 필요함을 알리는 ICMP 메시지가 서버에 도달하지 않아, 서버가 패킷을 작게 할 수 없기 때문

경로 MTU 탐색에서는 출발지가 DF 비트를 1로 하여 패킷을 보내고, 도중의 MTU보다 큰 패킷을 버린 라우터가 ICMP 메시지(IPv4에서는 분할 필요(Fragmentation Needed), IPv6에서는 Packet Too Big)로 통과할 수 있는 크기를 알립니다. 이 메시지가 방화벽에서 버려지면 서버는 큰 패킷을 계속 보내고 그것이 매번 버려지므로, 큰 데이터의 전송만 멈춥니다(경로 MTU 블랙홀). 연결 확립이나 작은 응답은 패킷이 1400바이트보다 작으므로 문제없이 도달합니다. 대책은 이 ICMP 메시지를 버리지 않도록 하는 것이나, 터널 입구의 라우터에서 TCP의 MSS를 작게 바꿔 쓰는 것입니다. IPv4와 TCP의 헤더를 각각 20바이트라고 하면, MTU가 1400바이트일 때 MSS는 1400 − 20 − 20 = 1360바이트로 합니다.

자주 묻는 질문

방화벽과 WAF의 차이는 무엇인가요?

방화벽은 주로 IP 주소나 포트 번호 등으로 어떤 통신을 통과시킬지 정합니다. WAF(웹 애플리케이션 방화벽)는 허가한 웹 통신의 내용(HTTP 요청)을 조사하여 SQL 인젝션 등의 공격을 찾아내 막습니다. 지키는 계층이 다르므로 둘을 조합해 씁니다.

방화벽이 있으면 백신 소프트웨어는 필요 없나요?

필요합니다. 방화벽은 허가한 통신을 통과시키므로 웹 열람이나 메일로 도착한 악성코드는 막을 수 없습니다. 단말의 악성코드 대책이나 EDR, 소프트웨어 업데이트와 조합해야 합니다.

해설 속 방화벽(Firewall)

방화벽(Firewall)이(가) 나오는 문제 (6)

  1. 포트 80에서 대기하는 웹 서버의 이미지 nginx로부터 위의 명령으로 컨테이너를 시작했다. 호스트의 IP 주소는 192.0.2.10이고 방화벽 등의 제한은 없다고 하자. 같은 네트워크에 있는 다른 PC의 브라우저에서 이 웹 서버에 접속하는 URL로 올바른 것은?
  2. 방화벽(패킷 필터링형)의 기본적인 기능으로 올바른 것은?
  3. 거점 간 VPN 터널을 통해 먼 곳의 웹 서버와 통신하고 있다. TCP 연결은 확립되고 작은 페이지는 표시되지만, 큰 파일의 다운로드만 도중에 멈춰 버린다. 터널 안의 MTU는 1400바이트이며, 서버는 1500바이트의 패킷을 분할 금지(DF 비트를 1)로 하여 보내고 있다. 또한 서버 앞단의 방화벽은 ICMP를 모두 버리는 설정으로 되어 있다. 원인으로 가장 적절한 것은?
  4. 직원 PC 한 대가 공격자에게 탈취되더라도, 거기서 사내의 다른 PC나 서버로 침해가 퍼지는 '측면 이동'을 어렵게 하는 대책으로 가장 적절한 것은?
  5. 보안 감시 체제에서 사용되는 SIEM, SOAR, SOC의 역할의 조합으로 올바른 것은?
  6. WAF(웹 애플리케이션 방화벽)에 대한 설명으로 올바른 것은?

이 용어가 포함된 비교

관련 용어

IP 주소(IP Address) URL 패킷(Packet) VPN(가상 사설망) WAF(웹 애플리케이션 방화벽) 컨테이너(Container) TLS TCP(전송 제어 프로토콜) MTU(최대 전송 단위) ICMP

용어집으로 돌아가기