네트워크에서 방화벽(Firewall)이란? 사용 목적, 활용 등 쉬운 설명
스마트폰에서는 방화벽 앱이나 기능을 사용하는 경우는 드물지만 윈도우, 맥, 리눅스 유저들 중에선 자체적인 방화벽 기능을 사용하거나 더 강력한 기능을 제공하는 서드파티 방화벽 소프트웨어를 사용하는 경우가 있습니다. 방화벽이란 무엇이고 방화벽 프로그램을 왜 사용하는지에 대해서 가볍게 알아보도록 할게요.
이 방화벽 글 또한 전문가가 아닌 제가 저보다 더 초보인 분들에게 쉽게 설명드리는 내용이므로 고급 유저들에게는 필요없는 내용일 수 있습니다.
방화벽이란?

한자로 防火壁, 영문명 Firewall만 봐도 불을 막아주는 벽을 뜻하는 것을 알 수 있어요. 건물에서 불이 났을때 분리된 구획별로 차단벽이 내려와서 불이 번지는 것을 막아주는 방화벽을 네트워크에서 침입, 위협 등을 막아주는 방어 체계에 이름을 그대로 사용했습니다.
네트워크 방화벽은 하드웨어(시스코, 팔로알토, 포티넷 등)도있고 소프트웨어도 있습니다. 우리가 고가의 하드웨어까지 사용할 사람들은 아니기 때문에 이 글에서는 소프트웨어 방화벽을 이야기 합니다.
방화벽 주요 기능
방화벽은 크게 보면 ‘차단(외부 접근, 내부에서의 유출)’, ‘컨트롤’ 두 개의 목적으로 가장 많이 사용됩니다.
외부 차단
예를 들면, 제가 NAS 설치 후 가장 먼저 설정했던 방화벽 기능 중 하나가 ‘해외 IP 접근 차단’ 입니다. 특히 중국, 러시아 등 해킹 시도가 끊임없이 일어나는 국가의 IP 주소는 접근 자체를 모두 차단해버렸어요. 그러면 무작위로 아이디와 비번을 물량으로 때려부어서 맞추려고하는 Brute Force 같은 공격을 시도조차 못하게 만들 수 있어요. DoS, DDoS 차단도 마찬가지죠.
접근 제어
인터넷에 연결되어있지 않으면 우리가 할 수 있는 일은 매우 제한적이게 됩니다. 그렇기에 외부 접속을 무조건 차단할 수는 없어요. 이럴땐 특정 조건의 접속만 허용하고 나머지는 차단하는 ‘제어’가 필요합니다. 지하철은 표를 구매한 사람만 통과되고, 회사에는 사원증이 있어야 출입이 가능한 것과 비슷합니다.
방화벽은 더 세밀한 설정도 가능해요. 특정 권한을 가진 사람만 특정 폴더에 접근시킨다던지, 특정 IP 주소만 접근을 허용한다던지 다양한 조건을 걸어서 접근을 제어할 수 있어요.
이런경우 VPN이 사용되기도 합니다. 고정 IP 서비스를 사용해 등록된 IP 주소만 로그인이 되도록 하거나, 저는 NAS나 특정 서버에 DDNS 설정을 해둔뒤에 그 주소로 접속해 방화벽 너머 서버로 접속해요.
모니터링
방화벽은 정수기 필터처럼 내부와 외부 사이에 존재하기 때문에 중간에서 모든 네트워킹을 기록하고 모니터링 할 수 있습니다. 이는 분석에도 쓰기고, 회사와 같은 조직에서는 농땡이 방지 혹은 보안 목적으로 네트워크를 사용하는 사람(직원)들이 조직에서 제한하는 사이트나 서비스에 접근하지 못하도록 제어하기도 합니다.
국가 차원에서는 검열에 사용할 수 있겠죠. 그래서 중국 정부의 검열 시스템을 만리방화벽(Great Firewall)이라고 부르기도 합니다.
방화벽 사용에 알아두면 좋은 용어
일반적인 네트워크 용어지만 방화벽 사용할 때 자주 보이는 단어들을 몇 개 미리 알려드릴게요. 눈에 익혀두면 좋습니다.
- 인바운드: 외부에서 컴퓨터로 들어오는 네트워크 연결
- 아웃바운드: 컴퓨터에서 외부 네트워크로 나가는 연결
- 패킷(Packet): 네트워크를 통해 주고 받는 데이터의 기본 단위
- 포트(Port): xxx.xxx.xxx.xxx:[포트숫자] 이렇게 보통 이루어져 있어요. 같은 IP 주소 내에서도 따로 사용되는 소프트웨어, 서비스 등을 구분하고 통신하기 위해 쓰입니다.
- TCP(Transmission Control Protocol) / UDP(User Datagram Protocol): 통신 프로토콜입니다. 간단한 특징적 차이는 신뢰성과 속도 라고 말할 수 있는데, 자세하게 알고싶은 분은 위키를 참고해보셔도 좋습니다. TCP / UDP
- NAT(Network Address Translation): 번역하면 ‘네트워크 주소 변환‘ 입니다. 우리가 인터넷 할 때 통신사로부터 할당받고 사용하는 IP 주소는 ‘공인 IP’예요. 내부적으로 사용하는 IP는 ‘사설 IP’라고 부릅니다. 현재 사용되는 xxx.xxx.xxx.xxx IP 주소는 한정되어있다 보니 집에서 컴퓨터에 연결된 기기나 공유기에 물린 기기들은 192.168.0.1 이런 사설(Private) IP를 쓰게되는데 이걸 인터넷에 연결되도록 공인(Public) IP로 변환해주는 기술입니다.
- DPI(Deep Packet Inspection): 패킷 내부 데이터까지 검사해 제어합니다.
- IDS(Intrusion Detection System): 네트워크에서 비정상적인 활동을 감지해요.
- IPS(Intrusion Prevention System): IDS 기능 + 자동 차단 기능
일반적인 개념만 적어놓은 것이고 각자 검색해보시면 더 복잡하고 광범위한 내용을 포함하고 있지만 우리와 같이 평범한 유저들은 대략적인 개념만 알고 나중에 필요할때 더 알아보면 됩니다.
Firewall(방화벽) 프로그램
스마트폰에서는 거의 사용할 일이 없어서 데스크탑 소프트웨어 위주로 말씀드려요.
윈도우
Windows Defender 방화벽
윈도우 방화벽은 기본적으로 내장되어있습니다. 기본적인 기능이지만 아마도 많은 분들의 용도는 충족시키리라 생각됩니다. 윈도우에서 설명하는 윈도우 내장 방화벽 기본 동작은 아래의 두 가지 입니다.
- 규칙을 요청하거나 일치하지 않는 한 들어오는 모든 트래픽 차단
- 규칙과 일치하지 않는 한 나가는 모든 트래픽 허용
보통 처음에 인바운드, 아웃바운드 규칙 설정을 해보는 것으로 시작하는 것 같아요. 그리고 윈도우 보안을 위해 원격 데스크톱 포트(3389) 차단을 했었던 기억도 나네요. 혹은 특정 프로그램을 외부 통신으로부터 단절시키고 싶을때 Sandbox와 비슷한 목적으로 쓰기도 합니다. (소프트웨어 단속 피하려고 사용하시는 분들도 봤..)
그 외에 여러 방화벽 프로그램이 있는데 요즘은 보편적으로 잘 사용하지 않는 것 같아요. 윈도우 내장 방화벽으로도 충분하거나, 고급 방화벽 기능이 필요하신 분들은 아예 차세대 방화벽을 별도로 구축해서 사용하기도해요. 아래는 그냥 참고만 하세요.
- Tinywall: 무료, 오픈소스, 초경량 소프트웨어 입니다. 아래의 기능 목록을 보면 오히려 방화벽 사용 목적을 좀 더 쉽게 이해할 수 있을 것도 같아요.
- 여러 가지 쉽고 간편한 프로그램 화이트리스트 등록 방법 제공
- 자동 학습 모드 지원
- 방화벽 변조 방지 기능
- 설정을 비밀번호로 잠금 가능
- Windows 스토어 및 UWP(Universal Windows Platform) 지원
- WSL 및 WSL 2 지원
- 네트워크 공유에서 실행되는 프로세스의 화이트리스트 등록 지원
- 표준, 아웃바운드 전용, 전체 차단 등 다양한 빠른 모드 제공
- 임시/시간 제한 방화벽 규칙 지원
- 통합 포트 및 도메인 차단 목록 제공
- Hosts 파일 보호 기능
- 부팅 시점 필터링 지원
- 네트워크 스니핑(패킷 감청) 앱 필터링
- 포트 스캔 방지 기능 제공
- LAN 내 통신을 항상 허용하는 옵션 제공
- 애플리케이션의 통신을 LAN으로 제한하는 옵션 제공
- 안전한 소프트웨어 및 악성 소프트웨어(위장 프로그램) 식별 기능
- 전체 IPv6 지원
- 현재 활성 및 차단된 연결 목록 확인 가능
- 현재 열린 포트 목록 확인 가능
- 원격 데이터 수집 없음, 텔레메트리 없음
- 100% 무료, 깨끗한 소프트웨어 (요금 없음, 광고 없음, 유료 업그레이드 없음)
- Comodo Firewall: 오래전에 좀 유명했었는데 요즘은 사용하는 사람을 거의 못봤어요.
- Norton, McAfee, Bitdefender 등 안티바이러스 회사에서도 보통 방화벽 소프트웨어를 제공하기도 합니다.
- 제가 최근에 사용해봤던 것은 Portmaster 입니다.
macOS
저는 맥북에서 Snitch를 사용하고 있습니다. 가볍게 쓰고 있어요. 각 앱들이 어떤 통신을 하는지 재미로 보고 뭔가 마음에 들지 않는 트래픽은 차단해놓기도 합니다.
이와 비슷한 앱으로는 무료, 오픈소스로 제작된 LuLu가 있습니다.
고급 방화벽
저는 자작 공유기를 세팅하면서 차세대 방화벽(NGFW, Next-Generation Firewall) 소프트웨어로 Opnsense를 선택했습니다. Untangle, PFsense 등 다양한 소프트웨어가 있습니다. 단점은 첫 진입 장벽이 높다는 것이예요. 저도 호기심으로 시작했지만 지금은 기본적인 세팅만 해놓고 Deep 하게 사용하진 않습니다. 처음 사용할때 머리카락 좀 빠졌습니다.
이 부분은 저와 같이 호기심이 많아서 접근하는 사람 혹은 고급 사용자분들이 관심가질 영역이니 이정도만 설명하겠습니다.
결론
방화벽에 대한 기본적인 설명을 하려다 조금 길어졌는데, 방화벽의 핵심 목적은 ‘보안’ 입니다. 내 컴퓨터와 서버를 더 안전하게 보호하기 위한 목적이죠. 알아두면 좋은데 몰라도 사는데 지장은 없습니다.