[IT강의실] 네트워크를 지키는 최후의 보루 - 방화벽
[용어로 보는 IT 2015 개정판] 방화벽(防火壁)은 일반적으로 화재 발생 시 불이 더 이상 번지지 않도록 불연재(불에 타지 않는 재료)로 만든 벽(또는 시설물)을 의미한다. 컴퓨터 네트워크 분야에서는 해커나 크래커의 불법 침입을 차단하여 정보 유출, 시스템 파괴 등의 보안 문제를 사전에 방지하는 소프트웨어, 혹은 그 소프트웨어가 탑재된 하드웨어로 통용된다. 네트워크 방화벽은 일반적으로 네트워크 구조의 최상단에 위치하며 인터넷과 같은 외부망으로부터 들어오는 접근 시도를 1차로 제어·통제(허용/거부)함으로써 내부 네트워크를 보호하는 역할을 한다.
방화벽의 발전
방화벽은 인터넷이 태동되기 시작한 1980년대부터 본격적으로 도입됐으며, 초기에는 네트워크 장비 중 하나인 라우터(router)가 방화벽 역할을 전담했다. 이후 외부 공격 형태가 다양하고 치밀해 짐에 따라 방화벽 기술도 그에 맞춰 진화했다. 80년대 말경에 등장한 1세대 방화벽은 외부로부터 들어오는 패킷(packet, 네트워크 내 데이터 이동 최소 단위)의 형태를 분석하여, 사전에 설정해 둔 보안 정책(rule)에 허용되는 패킷 만을 통과시키는 역할을 한다. 하지만 이러한 패킷 분석형 방화벽은 네트워크 내 모든 패킷을 대상으로 검사 작업을 수행해야 하니과부하로 인한 처리 지연 현상 등을 비롯해 여러 가지 문제점이 있었다. 이에 따라 네트워크 연결 상태를 분석함으로써 보다 정교하고 효과적인 보안 정책을 적용할 수 있는 상태 분석형(stateful inspection) 방화벽이 등장했다. 이를 2세대 방화벽으로 보는 것이 보편적이며 2000년대 초까지 활발하게 사용됐다. 이후 인터넷 시대가 대중화되면서 웹 브라우저를 통한 다양한 네트워크 서비스가 제공됨에 따라 외부로부터의 침입 또는 공격방법도 다양해졌다. 이에 패킷 내용뿐 아니라 특정 애플리케이션(웹 브라우저, FTP 클라이언트 프로그램 등)을 통한 네트워크 접근을 제어하기 위한 애플리케이션(application layer) 방화벽이 2세대 방화벽을 이어 각광을 받기 시작했다.
방화벽의 종류
하드웨어 형태의 네트워크 방화벽.
앞서 언급한 대로, 네트워크 방화벽은 보안 정책을 제공하는 소프트웨어 혹은 하드웨어를 말한다. 소프트웨어라면 PC나 서버 등에 설치되는 (마이크로소프트 윈도우, 리눅스/유닉스용) 프로그램의 일종으로 취급되며, 하드웨어의 경우 일반적인 PC용 CPU나 네트워크 처리 전용 NPU(Network Processing Unit)가 장착된 네트워크 장비의 형태로 공급된다. NPU는 일반 CPU보다 방화벽 관련 처리 속도가 빠르며, 보안 설정에 있어 유연한 기능을 제공한다. 방화벽의 처리 성능에 따라 CPU나 NPU를 한 개 이상 장착할 수 있다.
위와 같은 형태적 구분 외에 방화벽은 용도 및 기능에 따라서도 몇 가지로 구분된다. 우선 1세대 방화벽과 같은 패킷 분석(필터)형 방화벽이 있다. 네트워크를 타고 흐르는 패킷 단위로 이를 분석, 제어하기 때문에 보안 규칙 범위가 좁은 대신 처리 속도는 빠르다는장점이 있다. 이와 달리 프락시(proxy) 방화벽은 방화벽에연결된 상태를 기준으로 자세하게 분석할 수 있어 패킷 분석형 방화벽에 보다 안전한 관리가 가능하다(물론 처리 속도는 그에 비해 느리다).
한편 NAT(Network Address Translation, 네트워크 주소 변환) 방화벽은 흔히 사용하는 인터넷 유무선 공유기에 내장된 보안 기능으로, 네트워크를 내부(가상)와 외부(공개)로 나눔으로써 외부로부터의 접근을 원천적으로 차단하는 방식이다. 최근에는 공인 IP 주소(IPv4 주소 체계)의 고갈에 대한 방편으로 하나의 공인 IP 주소를 여러 대의 PC가 공유하는 데 적극 활용되고 있다.
이 밖에 웜이나 트로이목마 바이러스 등과 같은 프로그램형 공격 시도를 차단하는 애플리케이션(Layer 7) 방화벽도 존재한다. 이는 네트워크 전반에 걸쳐 보안 요소를 검사하는 최상위급 방화벽으로, IP 주소나 MAC 주소를 비롯해 통신 프로토콜(ftp, http, tcp/udp 등), 통신 서비스/프로그램(dns, ftp, telnet 등)까지 모두 제어할 수 있다. 다만 그만큼 하드웨어 성능이 뒷받침되어야 하며 그에 따라 가격도 대단히 비싼 편이다.
방화벽의 작동 원리
네트워크 방화벽은 기본적으로 네트워크를 통해 들어오는 패킷에 대해 사전에 관리자가 설정해 놓은 보안 규칙(ACL, Access Control List, 접근 제어 목록)에 따라 허용 또는 차단하는 기능을 수행한다. 일반적으로 내부 네트워크와 외부 네트워크(인터넷) 중간에 위치하여 이러한 패킷 제어 기능을 수행한다. 방화벽은 필요에 따라 여러 개를 배치하여 보안성을 강화할 수 있다.
방화벽의 작동 원리
접근 제어 목록의 보안 규칙을 통해 유입 차단 및 허용
인터넷(외부 네트워크)으로부터 방화벽으로 들어오는 모든 접근 시도는 방화벽 내부에 사전 설정된 보안 규칙인 접근 제어 목록에 따라 내부 통과 여부가 결정된다. 기본적으로 방화벽은 모든 접근을 거부(deny)한 후 허용할 접근만 단계적으로 허용(allow/permit)하는 방식을 따른다. 예를 들어, 네트워크를 통해 데이터가 이동하는 통로를 ‘포트(port)’라 하는데, 방화벽은 기본적으로 약 65,000여 개의 통신 포트 모두를 차단한 후 접근을 허용하는 특정 포트만을 열어 두게 된다. 즉 홈페이지 운영을 위한 웹 서비스(http)를 제공한다면 80 포트를, FTP 서비스(ftp)를 제공한다면 20/21 포트 등을 접근 허용해야 한다. 통신 포트뿐 아니라 외부로부터 접근하는 IP 주소나 특정 프로그램에 따라 접근/거부 여부를 결정할 수 있다. 이러한 보안 규칙 설정이 모두 접근 제어 목록에 포함되어 일괄 적용된다.
방화벽의 접근 제어 목록은 대개 관리자가 구성, 설정하기 편하도록 직관적인 형태로 출력되며, 보안 규칙 적용 즉시 결과를 확인할 수 있도록 제공된다. 다만 접근 제어 목록 및 방화벽 설정에는 보안과 관련된 상당한 지식과 경험이 필요하므로 보안 전문가를 통해 정확하고 체계적으로 이루어져야 한다.
생활 속의 방화벽 설정
Windows 7 방화벽 설정의 예 – 기본 설정
Windows 8방화벽 설정의 예 – 고급 설정
일반적으로 사용되는 마이크로소프트 윈도우 운영체계에도 간단한 소프트웨어 형태의 방화벽이 포함돼 있다. 윈도우 XP(서비스팩 2 이후)부터 기본 내장된 ‘Windows 방화벽’은 제대로 활용하면 개인용 보안 소프트웨어로 부족함 없는 보안성을 제공한다. 윈도우 7이 출시되면서 Windows 방화벽은 한층 개량되었는데, 홈 또는 개인 네트워크, 공용 네트워크 등으로 나뉘어 전문가는 물론 초보자로 어렵지 않게 보안 규칙을 적용하여 자신의 PC로 들어오는 외부 유입을 제한할 수 있다. 윈도우 8의 방화벽 설정도 윈도우 7과 크게 다르지 않다.
이에 따라 특정 프로그램(통신용, 게임용 등)을 설치하면 인터넷 연결에 앞서 방화벽 설정 해제 여부를 묻곤 하는데, 해당 프로그램이 보안 상으로 확실히 안전하다고 판단되지 않는 경우 방화벽 설정을 해제하지 않는 것이 바람직하다. 아울러 주기적으로 Windows 방화벽 설정 상태를 확인하여 불필요하거나 출처 불명의 프로그램의 유입이 허용되어 있지 않도록 해야 한다. 또한 어느 때부터 네트워크 연결이 필요한 프로그램이 작동하지 않는다면 Windows 방화벽 설정부터 확인한 후 해당 네트워크 조직의 관리자에게 문의하는 것이 순서이다.
글 / IT동아 이문규(munch@itdonga.com)
※ 본 기사는 네이버캐스트(http://navercast.naver.com/)의 '용어로 보는 IT' 코너에도 함께 연재됩니다.