# 리눅스에서 지원하는 방화벽

### 1. 리눅스 주요 방화벽 소프트웨어 비교

| 방화벽 소프트웨어 | 주요 특징 |
|------------------|-------------------------------------------------------------|
| **iptables** | 커널 레벨에서 작동하며 개별 패킷을 직접 필터링하는 강력한 방화벽 도구. |
| **nftables** | iptables의 후속 기술로 개발되어 향상된 성능을 제공하며, 더 적은 코드로 유연한 관리 가능. |
| **firewalld** | iptables/nftables를 백엔드로 활용하며, Zone 기반의 관리 방식을 제공.<br>대부분의 RHEL 계열의 운영체제에서 기본적으로 지원. <b>(RHEL 7 이상)</b> |
| **ufw** | iptables를 백엔드로 활용하며, 초보자 친화적인 명령어 기반 인터페이스를 제공.<br>대부분의 우분투 계열의 운영체제에서 기본적으로 지원. |

### 2. 장단점 비교

#### iptables

**장점**:

- 강력한 패킷 필터링 기능 제공
- 대부분의 리눅스 배포판에서 지원
- 커스텀 스크립트를 활용한 정밀한 제어 가능

**단점**:

- 설정이 복잡하고 학습 곡선이 가파름
- 동적 변경이 어렵고, 설정 변경 시 전체 규칙을 다시 로드해야 함

#### nftables

**장점**:

- iptables보다 성능이 개선되고 더 적은 코드로 관리 가능
- 하나의 프레임워크에서 IPv4, IPv6, ARP, 브리지 필터링 지원
- 동적 규칙 업데이트가 가능

**단점**:

- 사용법에 대한 자료가 iptables에 비해 상대적으로 적음

#### firewalld

**장점**:

- iptables나 nftables에 비해 편리한 설정 가능
- 존(Zone) 개념을 활용하여 트래픽을 용도에 따라 유연하게 관리 가능
- 동적 규칙 업데이트가 가능

**단점**:

- iptables나 nftables 대비 낮은 커스터마이징 자유도
- 성능이 중요한 환경에서는 문제가 발생할 수 있음

#### ufw

**장점**:

- 사용이 매우 간편하여 초보자도 쉽게 접근 가능
- 직관적인 명령어 사용 (`ufw allow 22/tcp` 등)
- Ubuntu 등에서 기본 제공되므로 추가 설치가 필요 없음

**단점**:

- 세밀한 설정이 어렵고, 복잡한 방화벽 규칙 적용이 어려움
- iptables와 연동되므로 직접적인 nftables 지원 부족