nft — 넷필터4 방화벽 관리
Linux / 네트워크 및 방화벽 / nft.html
💬 "nft 명령어"
nft는 넷필터4 방화벽 관리 Linux 커널의 nftables 서브시스템을 관리합니다. iptables의 후계자입니다.
iptables·ip6tables·arptables·ebtables를 하나로 통합합니다. 동적 세트(set)로 대량 IP 관리가 가능합니다.
- 개념: iptables·ip6tables·arptables·ebtables를 하나로 통합합니다.
- 주요 기능: 동적 세트(set)로 대량 IP 관리가 가능합니다.
- 장점: 원자적 규칙 교체로 트래픽 끊김이 없습니다.
- 활용: JSON 기반 규칙 파일로 버전 관리가 가능합니다.
설치 및 다운로드
nft는 패키지 매니저 또는 공식 스크립트로 설치합니다.
| 환경 | 명령 |
|---|---|
| Ubuntu 22.04+ | sudo apt install nftables |
| RHEL / CentOS 9+ | sudo dnf install nftables |
| Arch | sudo pacman -S nftables |
| 확인 | nft --version |
| 서비스 시작 | sudo systemctl enable --now nftables |
설치 확인은 nft --version으로 합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
nft list ruleset | 현재 전체 규칙을 조회합니다 |
nft -f <file> | 규칙 파일을 일괄 로드합니다 |
nft add table inet filter | IPv4/IPv6 통합 테이블을 생성합니다 |
nft add chain ... | 체인을 생성합니다 |
nft flush ruleset | 전체 규칙을 삭제합니다 (주의) |
필수 명령어 조합 3가지
nft add table inet filter— 테이블 생성nft add rule inet filter input tcp dport 22 accept— SSH 허용nft list ruleset > /etc/nftables.conf— 규칙 영속화
💬 "실제 서버에서 nft를 사용하는 예시를 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 설치 확인
설치 여부를 확인합니다.
nft --version || sudo apt install -y nftables
2단계 · 테이블 생성
IPv4/IPv6 통합 테이블을 만듭니다.
sudo nft add table inet filter
3단계 · 규칙 추가
SSH와 HTTP를 허용합니다.
sudo nft add rule inet filter input tcp dport 22 accept
실제 실행 화면
nftables 규칙을 추가한 결과입니다.

실제 운영 중인 서버
실무에서는 이렇게 씁니다
1. SSH 허용 규칙
상황 — SSH 접속이 유지되도록 합니다.
sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0; policy drop; }'
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input tcp dport 22 accept
결과 — SSH가 유지된 상태에서 나머지 포트가 차단됩니다.
포인트 — 정책을 drop으로 두고 허용 규칙을 명시하는 방식이 안전합니다.
2. 대량 IP 차단
상황 — 악성 IP를 세트로 관리합니다.
sudo nft add set inet filter blacklist { type ipv4_addr; }
sudo nft add element inet filter blacklist { 1.2.3.4, 5.6.7.8 }
결과 — 세트에 IP를 추가하면 즉시 차단됩니다.
포인트 — 규칙 재로드 없이 동적으로 관리됩니다.
실제 실행 화면
nft list ruleset으로 전체 규칙을 조회한 결과입니다.

실제 운영 중인 서버
주의할 점
- nft flush ruleset은 모든 규칙을 즉시 삭제합니다. SSH가 막히면 서버에 못 들어갑니다. 반드시 콘솔 접속 수단을 확보합니다.
- IPv4/IPv6 혼용 환경에서는 inet 계열이 편하지만, 일부 커널 옵션은 family를 분리해야 합니다.
- firewalld나 ufw를 동시에 쓰면 규칙이 충돌합니다. 하나만 선택합니다.