Firewall이라고도 불리는 방화벽은 미리 정의된 보안 규칙에 기반해, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템이다.
신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성해, 서로 다른 네트워크를 지나는 데이터를 허용 및 거부, 검열, 수정 하는 기능을 갖춘 소프트웨어나 그런 소프트웨어를 구동시키는 하드웨어 장치를 뜻한다.


1. 취약한 서비스로부터의 보호
2. 집중된 보안
3. 비밀성 향상
1. 접근 통제 (Access Control)
패킷 필터링, 프록시 방식 등을 통해 통제하는 기능이다.2. 인증 (Authentication)
신뢰할 수 있는 통신선을 통해 전송되는 메세지의 신뢰성 보장한다.사용자가 누군지에 대해 증명 하는 기능 (OTP, 토큰 기반 인증, 패스워드 인증 등)인가된 호스트인지 확인 한다.3. 감사 및 로그 기능 (Auditing / Logging)
접속 정보를 로그로 남긴다.4. 프라이버시 보호 (Privacy Protection)
내부 네트워크와 외부 네트워크 간의 중개자 역할을 함으로써 내부 네트워크의 정보 유출을 방지한다.5. 서비스 통제 (Service Control)
위험성이 존재하는 서비스를 필터링함으로써 내부 네트워크의 호스트가 가지고 있는 취약점을 감소한다.6. 데이터 암호화 (Data Encryption)
방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화해서 보내는 것으로, 보통 VPN의 기능 이용한다.1. 악성 소프트웨어 침투 방어에 대한 한계
일반적으로 방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 하기 때문에, 바이러스, 웜, XSS 코드와 같이 문서 또는 프로그램 내부에 포함된 악성 소프트웨어를 탐지하여 방어하는 데에 한계가 있다.
2. 악의적인 내부 사용자의 공격에 대한 한계
내부 사용자가 방화벽을 통과하는 통신 선로가 아닌 무선(셀룰러)이나 사설 통신 선로를 이용해 통신을 한다면 공격자는 방화벽을 우회하여 내부 네트워크로 접속할 수 있다. 내부자가 이를 악용하면 막을 수 있는 방법이 없다.
3. 새로운 형태의 공격에 대한 한계
방화벽은 예측된 접속에 대한 규칙을 세우고 이에 대한 방어를 하기 때문에 새로운 형태의 공격에는 능동적으로 적용하기 어렵다.
1. 패킷 필터링 (Packet Filtering)
가장 기초적인 방화벽 방식으로, 네트워크 계층(OSI Layer 3), 전송 계층(OSI Layer 4)에서 동작한다.전달되는 패킷을 가로채 해당 패킷 안의 IP 주소와 서비스 포트를 검색한 후, 정의된 보안 규칙에 따라 서비스의 접근 허용 여부를 결정한다.속도가 빠르다.강력한 로깅 기능 및 사용자 인증을 기대하기는 어렵다.패킷 내의 데이터를 활용한 공격 차단이 불가능하다. 2. 상태 추적 (Stateful Inspection)
패킷 필터링 방식의 내부 데이터를 이용한 공격 취약성을 보완한다.프로토콜 특성에 따른 변화를 동적으로 대응해 주는 방화벽이다. Session 추적 기능을 추가해 일련의 네트워크 서비스의 순서를 추적하고, 순서에 위배되는 패킷들은 모두 차단한다.3. 어플리케이션 게이트웨이 (Application Gateway)
어플리케이션 계층(OSI Layer 7)까지 동작해 통과하는 패킷의 헤더 안의 Data 영역까지 체크하여 통제할 수 있다.해당 서비스별로 프록시가 구동되어 각 서비스 요청에 대해 방화벽의 접근 규칙을 적용시키고 연결을 대신하는 역할을 수행한다.높은 보안 설정이 가능하며, 일회용 패스워드를 이용한 강력한 사용자 인증을 제공한다. 네트워크에 많은 부하를 주며, 하드웨어에 의존적이다.미리 정의된 어플리케이션만 수용 가능하기 때문에 다양하고 빠르게 발전하는 인터넷 어플리케이션에 대응하지 못한다.세션 계층(OSI Layer 5)과 어플리케이션 계층(OSI Layer 7) 사이에서 접근 제어를 실시한다.수정된 클라이언트 프로그램이 필요하다.대표 프록시를 이용하므로 어느 서비스 프로토콜도 방화벽을 적용시킬 수 있다. 
5. 하이브리드
패킷 필터링 방식과 어플리케이션 방식을 혼합한 방식이다.선택적인 보안 설정이 가능하다.관리가 복잡하며, 설치시 전문적인 네트워크 컨설팅이 필요하다.