
안녕하세요,
오늘은 Rocky Linux 10 부터 공식 백엔드로 사용되는 nftables 설치 및 설정 방법을 기재하겠습니다.
<h3> iptables-services 패키지 설치를 통한 비교 </h3>
Rocky Linux 9부터 기존 iptables 커맨드가 내부적으로 nftables를 백엔드로 사용하도록 변경됩니다.
예를 들어 Rocky 10에서 iptables-services 패키지를 설치하면 아래와 같이 iptables-nft-services 패키지를 다운로드합니다.
|
|
Rocky 8에서 같은 명령어 사용 시 일반 iptables-services 패키지를 설치합니다.
|
|
익숙한 명령어를 사용하기 위해 iptables를 사용할 수도 있지만 nftables를 익히기 위해 nftables 설치 및 사용해보겠습니다.
※ 목차
- 설치
- 설정파일을 이용한 규칙 설정
- 터미널 명령어
1.설치
dnf 명령어로 nftables 패키지를 간단하게 설치 가능합니다.
dnf install -y nftables
|
|
설치 이후 기본적인 설정으로 서버 부팅 시 자동 재시작 설정을 걸어줄 수 있습니다.
systemctl enable nftables --now
|
|
2. 설정파일을 이용한 규칙 설정
보통 시스템 파일을 설치하면 /etc/패키지명 하단에 설정 파일들이 생기기 때문에 한 번 살펴보면,
|
|
이렇게 무언가 규칙 선언 파일처럼 보이는 파일들이 있습니다.
| 파일 또는 폴더 명 | 파일 설명 |
| main.nft | 메인 규칙 (INPUT, OUTPUT, FORWARD 등) 설정 파일 |
| nat.nft | NAT 관련 규칙 (SNAT, DNAT, MASQUERADE) 설정 파일 |
| osf | OS Fingerprint 관련 설정, 확장 기능 관련 파일 폴더 |
| router.nft | Routing 체인 관련 규칙 설정 파일 |
그러나 해당 파일들을 사용하기 전에 먼저 nftables daemon이 실제로 어떤 설정 파일을 참고하고 있는지 확인해야 합니다.
systemctl cat nftables
|
|
systemctl cat 명령어를 사용하면 실제 서비스 데몬이 어떻게 정의되어 있는지 알 수 있습니다.
해당 명령어로 불러온 파일과 실제 서비스 데몬 선언 파일이 동일합니다.
|
|
nftables 서비스 데몬은 설정 파일 경로를 /etc/sysconfig/nftables.conf를 기반으로 실행되고 있습니다.
서비스 데몬 설정 파일을 보면 nftables는 실행 시마다 /sbin/nft -f /etc/sysconfig/nftables.conf 명령어로 본 파일을 규칙으로 적용시킵니다.
따라서 /etc/nftables 하단에 파일에 규칙을 설정해도 지금 상태에서는 규칙이 적용되지 않습니다.
만일 /etc/nftables 하단 파일을 이용하고 싶다면 /etc/sysconfig/nftables.conf 안에 규칙이 아닌 include “/etc/nftables/main.nft” 이런 식으로 기재해주면 됩니다.
그럼 서비스 데몬은 재실행 시 무조건 nftables.conf 파일을 적용하기 때문에 본 파일 안에 적용된 main.nft도 실행하게 됩니다.
본 게시 글에서는 nftables.conf 파일에 규칙을 기재해보겠습니다. 코멘트로 설명을 달아두었습니다.
# 백업
cp -arp /etc/sysconfig/nftables.conf /etc/sysconfig/nftables.conf_ori
# 설정파일 수정
vi /etc/sysconfig/nftables.conf
===
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0;
policy drop;
# 루프백 허용
iif lo accept comment "루프백"
# 이미 연결된 세션 허용
ct state established,related accept comment "기존 연결 허용"
# 특정 IP 전체 허용
ip saddr 192.168.10.100 accept comment "단일 IP 기준으로 모든 접근 허용 (PC)"
# 8080 포트 전부 허용
tcp dport 8080 accept comment "단일 포트 허용 정책 (웹 서비스 허용)"
# HTTP / HTTPS 포트 전부 허용
tcp dport {80, 443} accept comment "다중 포트 허용 정책 (웹 서비스 허용)"
# UDP SNMP 포트 1개 전부 허용
udp dport 161 accept comment "UDP 단일 포트 허용 정책 (SNMPD 서비스 허용)"
# Ping 허용
icmp type echo-request accept comment "Ping 허용"
}
chain forward {
type filter hook forward priority 0;
policy accept;
}
chain output {
type filter hook output priority 0;
policy accept;
}
}
===
# 룰셋 적용
systemctl restart nftables # 또는
nft -f /etc/sysconfig/nftables.conf
3. 터미널 명령어
터미널에서 쓸 수 있는 명령어는 iptables에서 많이 쓰이는 몇 가지 옵션을 nftables 방식으로 기재하겠습니다.
| 기능 | iptables | nftables |
| 규칙 파일 재적용 | iptables-restore < /etc/sysconfig/iptables | nft -f /etc/sysconfig/nftables.conf |
| 적용 중인 규칙 리스트 확인 | iptables -vnL | nft list ruleset |
| 현재 운영 중인 규칙 리스트를 파일로 저장 | iptables-save > /etc/sysconfig/iptables | nft list ruleset > /etc/sysconfig/nftables.conf |
- <h3> 참고 게시물 링크 </h3>
마지막으로 아래에는 참고할 수 있는 게시글입니다.
👉 [nftables 설치에 이어 기본 문법 개념들의 정리~]
👉 [nftables 를 설치해보자 (Centos7 환경 기반)]
🌍 [nftables 관련 설명이 잘 되어 있는 외부 게시글]









