netfilter - The Packet Filtering Framework for Linux
리눅스 커널 모듈로서 네트워크 패킷을 처리하기 위한 프레임워크이다.
netfilter는 패킷 필터링, 네트워크 주소 변환 및 포트 변환을 위한 다양한 기능 및 작업을 제공한다. 이러한 기능은 네트워크를 통해 패킷을 전달하고 패킷이 네트워크의 중요한 위치에 도달하는 것을 방지하는 데 필요한 기능을 제공한다.
iptables - Packet Mangling Tool
- 패킷을 필터링하거나 변환할 수 있는 방화벽 규칙을 정의하기 위한 테이블 기반 시스템을 제공한다.
- NIC을 거쳐 유입되는 모든 네트워크 패킷을 netfilter에 등록된 룰을 거쳐 제어된다.
- iptables를 활용하면 특정 조건에 부합하는 패킷을 드랍하거나, 패킷의 출발지(source) 혹은 목적지(destination)를 수정하는 것 등이 가능하다.
- iptables는 다섯 개의 테이블을 지원한다.
- Filter Table - iptables의 기본 테이블이다. filter 테이블은 등록된 룰에 따라 들어오거나 나가는 패킷의 허용/거부 여부를 결정하는 방화벽의 역할을 수행한다.
- NAT Table - 주소 변환을 담당한다. 등록된 룰에 따라 패킷의 출발지 혹은 목적지를 조작하여 패킷을 라우팅하는 역할을 한다.
- Mangle Table - 패킷의 IP 헤더 일부를 변환하기 위해 사용된다. 예를 들어 mangle 테이블에 규칙을 등록하면 패킷의 TTL 헤더를 조작하여 패킷이 거칠 수 있는 네트워크 홉의 수를 줄이거나 늘리는 것이 가능하다.
- Raw Table - iptables는 connection tracking 기능을 제공한다. iptables에서 모든 connection은 상태를 가지며 iptables에 등록된 모든 규칙은 연결 상태에 영향을 받는다. 예를들어 invalid 상태에 놓인 connection에서 오는 패킷은 유효하지 않은 것으로 간주된다. raw 테이블은 이러한 연결 상태를 제어하고 패킷에 마킹하는 역할을 수행한다. 사용자가 raw 테이블을 직접 제어할 일은 많지 않다.
- Security Table - SELinux 내부적으로 패킷에 security context를 마킹하는 역할을 한다. security 테이블을 거쳐 생성된 마크는 SELinux에서 패킷을 제어하는데 영향을 준다.
'네트워크' 카테고리의 다른 글
[네트워크] 허브 / 브릿지 / 스위치 / 라우터 (1) | 2024.03.04 |
---|---|
[네트워크] 유니캐스트, 브로드캐스트, 멀티캐스트 (0) | 2024.03.04 |