CS/네트워크

[네트워크] 방화벽의 동작원리

mhko411 2021. 7. 19. 07:53
728x90

방화벽은 외부 네트워크로부터 내부 네트워크를 보호하는 역할을 한다. 방화벽을 설치하지 않는다면 외부 네트워크에 그대로 노출이 되어있는 상태가 되기 때문에 공격받기가 쉬워진다. 따라서 방화벽의 설치는 필수적이다. 

방화벽은 종류에 따라 동작하는 원리가 조금씩 다르다. 오늘은 방화벽의 기본 동작과 종류에 대해 알아보자.


방화벽의 기본 동작

방화벽은 외부에서의 모든 접속을 차단한다. 이후 보안 규칙에 따라 일부 요청을 내부 네트워크로 접속할 수 있도록 허가하고 포트번호를 통해 특정 프로그램에만 접근할 수 있도록 한다. 예를 들어 어떠한 패킷이 웹 서버로 전송되었다면 80번 포트를 열어 해당 패킷이 접속할 수 있도록 허용한다.

방화벽의 종류는 패킷 필터링형, 상태 분석형, 웹방화벽 등이 있으며 종류에 따라 동작방식의 차이가 있다.

 

패킷 필터링형

패킷 필터링형은 가장 먼저 적용된 방법이다. 이 방법은 패킷의 헤더를 분석하고 패킷의 헤더에 있는 수신측 주소가 해당 네트워크일 때 패킷을 통과시킨다. 또한 패킷의 포트번호를 통해 특정 프로그램에만 접근할 수 있도록 한다.

패킷 필터링형은 운용이 쉽다는 장점이 있지만 패킷의 과부하가 발생했을 때 처리가 지연되고 안전성이 낮다는 단점이 존재한다.

 

상태 분석형

패킷 필터링형 이후 발전된 형태로 상태 분석형이 있다. 상태 분석형은 패킷이 아닌 네트워크 연결 상태를 분석하게된다. 네트워크 연결 상태란 네트워크의 각 노드들이 통신하기위해 만들어진 논리적인 통신 선로인 세션을 분석한다는 것이다. 

세션 단위로 모니터링하여 패킷을 필터링하게 되며 패킷의 정보뿐만 아니라 세션의 생성이후 종료까지 전송되는 패킷을 별도로 관리할 수 있어 세션에 대한 보안규칙을 정하면 개별 패킷을 신경쓰지 않아도된다. 하지만 미리 정한 보안규칙이 많아질수록 성능 저하가 발생할 수 있으며 수만 개의 세션을 생성하는 대규모 공격같은 경우에 성능 저하 또는 무력화될 수 있다는 단점이 존재한다.

 

웹방화벽

웹방화벽은 네트워크 방화벽과 달리 웹 애플리케이션에 최적화된 방화벽이다. SQL 인젝션, XSS 등의 웹 공격을 차단하게된다. 웹 방화벽은 웹 애플리케이션에 의도하지 않은 내용들은 전송되지 못하도록 막는 역할을 한다.