[Linux] NFTables

ondacloud·2025년 3월 25일
0

Linux

목록 보기
9/10
post-thumbnail

기본 개념

  1. Table
  • 패킷 필터링을 적용할 룰셋을 포함하는 컨테이너 역할
  • 패킷을 처리할 Chain을 포함
  1. (Chain)
  • 트래픽이 특정 조건을 만족할 경우 수행할 규칙(룰)의 모음
  • 체인은 hook을 통해 커널 네트워크 스택에 연결됨
  1. Rule
  • 특정 조건을 만족하는 패킷에 대해 실행할 동작을 정의
  1. Set
  • 여러 개의 IP 주소, 포트 번호 등을 그룹화하여 관리 가능
  1. Map
  • 특정 값과 대응되는 다른 값을 매핑하여 관리 가능

Nftables Chain & Hook

Hook LocationDescriptionApplicable Table
prerouting패킷이 시스템에 도착했을 때 즉시 처리ip, ip6, inet, arp
input시스템이 대상인 패킷을 필터링ip, ip6, inet
forward다른 인터페이스로 전달되는 패킷 필터링ip, ip6, inet
output시스템이 생성한 패킷 필터링ip, ip6, inet
postrouting인터페이스를 통해 나가기 직전 패킷을 처리ip, ip6, inet, arp

Command

Install Package

apt install -y nftables
systemctl enable --now nftables

Basic Structure

nft add rule [family] [table] [chain] ip saddr [Source] sport [Source_Port] ip daddr [Destination] dport [Destination_Port] [Action]

Command

nft add table ip [Table_Name]

Table 생성 (대소문자 구별함)


nft add chain ip [NAT] [Chain_Name] { type [Type] hook [postrouting] priority [Priority_Number] \; }

Additional Description

TypeDescriptionUse Hook
Filter방화벽 규칙 (패킷 필터링)INPUT, OUTPUT, FORWARD
NATNAT 변환 (IP 주소 변경)PREROUTING, POSTROUTING
Route패킷 경로 변경PREROUTING, OUTPUT
Security보안 정책 적용INPUT, OUTPUT, FORWARD

Priority RangeDescription
-300 ~ -100패킷을 수정하는 규칙 (ex: mangle, route)
-99 ~ -1연결 추적 및 정책 결정 관련 (ex: conntrack)
0기본 우선순위 (특별한 설정이 없으면 이 값 사용)
1 ~ 99일반적인 방화벽 및 필터 규칙
100 이상NAT 규칙 (postrouting에서 주로 사용됨)

nft list tables

테이블 조회


nft table ip [Table_Name]

nft add rule ip [Table_Name] [Chain_Name] ip saddr [Source_IP] ip daddr [Destination_IP] counter [Action]

ntf insert rule ip [Table_Name] input [Protocol] dport [Destination_Port] counter accept

단일 Port 필터링


ntf insert rule ip [Table_Name] input [Protocol] dport {[Destination_Port], [Destination_Port]} counter accept

멀티 Port 필터링

profile
클라우드 엔지니어가 목표인 학생

0개의 댓글

Powered by GraphCDN, the GraphQL CDN