brunch

You can make anything
by writing

C.S.Lewis

by 흐르는 강물처럼 Jan 12. 2021

방화벽-1 (방화벽의 역할)

방화벽이란 무엇인가요?

네트워크 보안 분야에 종사하면서 알게 된 다양한 네트워크 보안장비에 대한 내용을 되도록 알기 쉽게 풀어서 연재를 시작하려고 합니다. 게시하는 글들은 작년부터 월간지에 연재하던 글을 바탕으로 블로그 형식에 맞게 수정하고 내용을 보강하여 주제에 맞게 나누어 올리도록 하겠습니다.



첫 번째 글에서는 네트워크 보안에서 가장 필수적이며, 대표적인 장비인 방화벽(Firewall)을 주제로 소개하겠습니다. ICT 분야에 종사하지 않는 분이라도 방화벽이라는 용어는 한 번쯤은 들어 보셨을 것입니다. 그만큼 정보시스템을 운영하는 환경에서는 거의 필수적으로 사용되는 장비로써 서버와 서버 간 혹은 서버와 단말 간 통신을 제어하고, 보안을 강화하기 위한 목적으로 사용되고 있는 장비입니다.



방화벽은 정보보안 분야에서 사용되기 전에 실생활에서 먼저 사용되기 시작하였습니다. 용어를 풀어쓰면 한자어로 막을 "방", 불 "화" 즉 "불을 막는 벽"을 의미합니다. 아래 <그림 1>과 같이 건물과 건물 사이에 불에 타지 않는 불연재로 돌을 이용하여 벽을 쌓은 것을 볼 수 있습니다. 옛날에는 대부분 나무로 건물을 세워서 화재에 무척 취약했습니다. 



한 집에서 불이 나면 마을 전체가 잿더미가 되는 경우가 많았었죠. 이를 막기 위해 건물과 건물 사이에 돌로 방화벽을 세워 불이 나더라도 옆 건물로 불이 번지는 것을 막아 피해를 최소화하는 용도로 사용했었습니다.



< 그림 1 > 전통적인 방화벽



정보시스템에서의 방화벽도 전통적인 방화벽과 사용 목적은 동일합니다. 단지 불을 막는 용도가 아니라 외부에서의 침입을 차단하는 목적으로 변경되었을 뿐입니다. 즉 불을 침입 혹은 공격으로 대치하면 동일한 역할을 한다고 볼 수 있습니다. 아래 <그림 2>는 일반적으로 정보시스템 방화벽을 표현할 때 사용하는 그림입니다. 



왼쪽 그림과 같이 바깥쪽에서 난 불이 내부로 번지는 것을 막는 벽돌벽으로 표현되거나, 2번째 그림과 같이 지구본에서 출발하는 다양한 접속 시도를 화살표로 표현해서 녹색은 정상적인 접속 시도로 내부 시스템에 접속된 것을 표현하고, 빨간색 화살표는 허가되지 않은 접속 시도로 방화벽에서 해당 접속을 차단한 것을 표현한 것입니다. 



지구본은 인터넷을 통합 접속을 의미하는 것으로 전 세계에서 인터넷 연결이 된다면 어디 서든지 접속이 가능한 것을 표현한 것이며, 마지막 그림은 일반적인 방화벽 장비의 사진입니다.



< 그림 2 > 정보시스템 방화벽



그럼 다음으로 방화벽이 어떻게 구성되고 동작하는지 알아보도록 하겠습니다. 방화벽의 용도가 외부에서 내부로 접속을 시도할 때 내부 시스템으로 접속을 허용하거나 차단하는 용도로 사용되기 때문에 언제나 외부와 연결된 위치에 설치되는데, 일반적으로 외부에서 들어오는 인터넷 회선과 내부 시스템 접속되는 사이에 설치됩니다. 통상 그 위치를 게이트웨이(Gateway) 구간이라고 표현하는데, 말 그대로 외부에서 들어오는 대문까지 연결된 길을 의미합니다.



회사에서 인터넷을 사용하기 위해서는 KT, SKT, LGT라는 인터넷 회선 제공업체(ISP: Internet Service Provider)에서 제공하는 회선을 통해 서비스를 받습니다. 라우터(Router)라는 통신장비를 전산실에 설치하고, 여기에 ISP 사업자의 광케이블을 연결해서 인터넷 접속이 가능하게 서비스하고 있습니다. 즉, 방화벽은 라우터에서 내부 네트워크로 연결되는 사이에 설치되는 것입니다. 



아래 <그림 3>과 같이 인터넷 회선(Untrust zone)을 받아서 연결하고 내부 구역(Trust zone)과 완충구역(DMZ zone)으로 구분하여 각 구역을 연결시킵니다. 



방화벽은 연결되어 있는 네트워크의 위치 및 성격에 따라 각 구역의 이름을 부여하는데 보통 Untrust, Trust, DMZ 등을 할당합니다. Untrust는 영어로 신뢰하지 않는 구간 즉 외부와 연결된 네트워크 구간을 의미하며, Trust는 신뢰구간 즉 사용자 내부 네트워크 구간을 의미합니다. 그럼 DMZ는 어떤 구간을 의미하는 것일까요?



<그림 3> 방화벽 구역 구성 예



DMZ라는 용어는 우리나라 사람들에게는 무척 친숙한 단어입니다. 2000년대 초반 외산 방화벽 업체에서 작성한 기술문서에서는 DMZ를 설명하기 위해 아래 <그림 4>와 같이 우리나라의 비무장지대를 예로 들어 설명한 자료가 있었습니다. 북한과 남한을 구분하는 경계선에서 각각 2Km 범위에 완충지대를 두어 우발적인 군사충돌을 방지하기 위한 용도로 사용된 공간입니다.



<그림 4> DMZ (자료 출처: 위키피디아)



방화벽의 DMZ 구역은 남북이 아니라 외부(Untrust)와 내부(Trust)를 구분하고 그 중간지점을 지정한 구간입니다. 이런 공간이 필요한 이유는 내부에서도 접근이 가능해야 하지만, 외부에서도 접근이 가능해야 하는 서버가 있는데, 이런 서버를 어느 구역에 놓을지 애매할 경우에 위치시킬 구역이 필요하기 때문입니다.



어떤 서버들이 DMZ에 위치해야 할까요? 인터넷을 사용할 때 반드시 필요한 서비스가 있습니다. 바로 DNS 서버(Domain Name Server)와 Web서버(HTTP Service), 전자우편 서버(Mail service) 등입니다. 인터넷을 사용하기 위해 웹 브라우저(익스플로러, 크롬)의 주소 창에 www.naver.com을 입력하게 되면, PC는 naver.com이라는 도메인 이름의 서버가 가지고 있는 IP주소를 찾게 됩니다. 



이때 도메인 이름을 입력하면 IP주소로 알려주는 서버가 DNS 서버이며, 이렇게 확인한 IP주소를 가지는 웹 서버에서 웹 페이지 정보를 불러오게 됩니다. 메일 서버도 동일한 방법으로 메일을 보내거나 받는 용도로 사용되는 서버입니다.



그런데 이런 서버들은 반드시 인터넷을 통해 외부에서 접속하는 사용자와 통신이 가능해야 합니다. 회사 홈페이지에 접속하거나 임직원에게 메일을 보내는 사람은 임직원뿐만 아니라 불특정 다수 즉, 인터넷에 연결된 모든 사람이 접속 가능해야 문제없이 서비스가 가능하기 때문입니다. 문제는 내외부의 모든 사람에게 접속을 허용해야 하기 때문에 공격의 위험도 그만큼 증가하는 것입니다.



만약 이런 공개된 서버가 내부 구역(Trust)에 설치되어 있다면 어떤 문제가 생길까요? 이 서버가 해킹당하게 되면, 같은 내부 구간에 있는 일반 PC 뿐만 아니라 사내에서만 사용되는 서버까지 위험하게 됩니다. 해킹된 서버에서 사내 전산 자원으로 접속하는데 아무런 제약이 없기 때문에 공격이 확산되는 것을 막을 수가 없게 되는 것이지요.



이런 외부에 공개된 서버가 DMZ 구간에 있을 경우 같은 구역의 서버들은 공격을 당할 위험에 높아지지만 최소한 방화벽으로 구역이 분리되어 있는 내부 전산자원으로의 침입은 방어가 가능하게 됩니다. 즉 불이 번지는 것을 막을 수 있는 것입니다. DMZ 구역뿐만 아니라, 사용자가 임의로 구역을 추가로 만들고 같은 성격의 서버를 위치시킬 수 있습니다. 



예를 들어 외부에서 취재한 사진과 기사를 인터넷을 통해 본사 서버로 전송할 경우 어쩔 수 없이 취재자료서버는 외부에 공개되어야 합니다. 그러나 이런 서버를 방화벽에서 특정 구역으로 분리하면, 이 서버가 혹시 해킹되더라도, 이 서버를 통해 사내의 전산자원으로 공격이 이루어지는 것을 차단할 수 있습니다.



이론적으로는 모든 서버 앞에 방화벽을 각각 한 개씩 설치하면 좀 더 완벽한 방어가 가능합니다. 기존에는 물리적인 방화벽의 도입이나 관리 문제로 불가능했지만, 최근에는 가상 서버(VM: Virtual Machine)를 많이 사용하기 때문에, 가상 서버 앞에 논리적으로 가상 방화벽을 한 개씩 설치하는 것에 문제가 없을 정도로 기술이 발전하였습니다. 



이런 설계 방식을 Micro-segmentation이라고 하여 굉장히 잘게 구역을 쪼개서 세밀하게 서버 접근을 제어할 수 있게 설계하는 방식이 있는 데 요즘 퍼블릭 클라우드에서는 AWS의 'Security group'이라는 서비스를 이용하여 이런 방식으로 구성할 수 있습니다.



그럼 다음 글에서는 방화벽에서 단말과 서버 간의 통신을 연결하거나 차단하기 위해 사용하는 보안정책(Security Policy)에 대해서 설명드리도록 하겠습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari