검색

41장. nftables 시작하기

download PDF

nftables 프레임워크는 패킷을 분류하고 iptables,ip6tables,arptables,ebtables, ipset 유틸리티의 후속 조치입니다. 이전의 패킷 필터링 툴에 비해 편의성, 기능 및 성능이 크게 향상되었으며 주요 개선 사항은 다음과 같습니다.

  • 선형 처리 대신 기본 제공 조회 테이블
  • IPv4IPv6 프로토콜 모두를 위한 단일 프레임워크
  • 모든 규칙은 전체 규칙 세트를 가져오기, 업데이트 및 저장하는 대신 원자적으로 적용됩니다.
  • 규칙 세트(nftrace) 및 모니터링 추적 이벤트( nft 툴 내)에서 디버깅 및 추적 지원
  • 프로토콜별 확장 없이 보다 일관되고 컴팩트한 구문
  • 타사 애플리케이션을 위한 Netlink API

nftables 프레임워크는 테이블을 사용하여 체인을 저장합니다. 체인에는 작업을 수행하기 위한 개별 규칙이 포함되어 있습니다. nft 유틸리티는 이전 패킷 필터링 프레임워크의 모든 도구를 대체합니다. libnftnl 라이브러리를 사용하여 libmnl 라이브러리를 통해 nftables Netlink API와 하위 수준의 상호 작용을 수행할 수 있습니다.

규칙 세트 변경의 효과를 표시하려면 nft list ruleset 명령을 사용합니다. 이러한 유틸리티는 테이블, 체인, 규칙, 세트 및 기타 오브젝트를 nftables 규칙 세트에 추가하므로 nft flush ruleset 명령과 같은 nftables 규칙 세트 작업이 iptables 명령을 사용하여 설치된 규칙 세트에 영향을 미칠 수 있습니다.

41.1. iptables에서 nftables로 마이그레이션

방화벽 구성에서 여전히 iptables 규칙을 사용하는 경우 iptables 규칙을 nftables 로 마이그레이션할 수 있습니다.

41.1.1. firewalld, nftables 또는 iptables를 사용하는 경우

다음은 다음 유틸리티 중 하나를 사용해야 하는 시나리오에 대한 간략한 개요입니다.

  • firewalld: 간단한 방화벽 활용 사례에 firewalld 유틸리티를 사용합니다. 유틸리티는 사용하기 쉽고 이러한 시나리오의 일반적인 사용 사례를 다룹니다.
  • nftables: nftables 유틸리티를 사용하여 전체 네트워크에 대해 과 같이 복잡하고 성능이 중요한 방화벽을 설정합니다.
  • iptables: Red Hat Enterprise Linux의 iptables 유틸리티는 기존 백엔드 대신 nf_tables 커널 API 를 사용합니다. nf_tables API는 iptables 명령을 사용하는 스크립트가 Red Hat Enterprise Linux에서 계속 작동하도록 이전 버전과의 호환성을 제공합니다. 새 방화벽 스크립트의 경우 Red Hat은 nftables 를 사용하는 것이 좋습니다.
중요

다른 방화벽 관련 서비스(firewalld,nftables 또는 iptables)가 서로 영향을 미치지 않도록 하려면 RHEL 호스트에서 해당 서비스 중 하나만 실행하고 다른 서비스를 비활성화합니다.

41.1.2. iptables 및 ip6tables 규칙 세트를 nftables로 변환

iptables-restore-translateip6tables-restore-translate 유틸리티를 사용하여 iptablesip6tables 규칙 세트를 nftables 로 변환합니다.

사전 요구 사항

  • nftablesiptables 패키지가 설치되어 있습니다.
  • 시스템에는 iptablesip6tables 규칙이 구성되어 있습니다.

절차

  1. iptablesip6tables 규칙을 파일에 작성합니다.

    # iptables-save >/root/iptables.dump
    # ip6tables-save >/root/ip6tables.dump
  2. 덤프 파일을 nftables 명령으로 변환합니다.

    # iptables-restore-translate -f /root/iptables.dump > /etc/nftables/ruleset-migrated-from-iptables.nft
    # ip6tables-restore-translate -f /root/ip6tables.dump > /etc/nftables/ruleset-migrated-from-ip6tables.nft
  3. 생성된 nftables 규칙을 검토하고 필요한 경우 수동으로 업데이트합니다.
  4. nftables 서비스가 생성된 파일을 로드하도록 활성화하려면 /etc/sysconfig/nftables.conf 파일에 다음을 추가합니다.

    include "/etc/nftables/ruleset-migrated-from-iptables.nft"
    include "/etc/nftables/ruleset-migrated-from-ip6tables.nft"
  5. iptables 서비스를 중지하고 비활성화합니다.

    # systemctl disable --now iptables

    사용자 지정 스크립트를 사용하여 iptables 규칙을 로드한 경우 스크립트가 더 이상 자동으로 시작되지 않고 재부팅하여 모든 테이블을 플러시해야 합니다.

  6. nftables 서비스를 활성화하고 시작합니다.

    # systemctl enable --now nftables

검증

  • nftables 규칙 세트를 표시합니다.

    # nft list ruleset

41.1.3. 단일 iptables 및 ip6tables 규칙을 nftables로 변환

Red Hat Enterprise Linux는 iptables-translateip6tables-translate 유틸리티를 제공하여 iptables 또는 ip6tables 규칙을 nftables 에 해당하는 규칙으로 변환합니다.

사전 요구 사항

  • nftables 패키지가 설치되어 있습니다.

절차

  • iptables 또는 ip6tables 대신 iptables-translate 또는 ip6tables-translate 유틸리티를 사용하여 해당 nftables 규칙을 표시합니다.

    # iptables-translate -A INPUT -s 192.0.2.0/24 -j ACCEPT
    nft add rule ip filter INPUT ip saddr 192.0.2.0/24 counter accept

    일부 확장 기능에는 해당 지원이 누락되어 있는 경우도 있습니다. 이 경우 유틸리티는 # 기호가 붙은 번역되지 않은 규칙을 출력합니다. 예를 들면 다음과 같습니다.

    # iptables-translate -A INPUT -j CHECKSUM --checksum-fill
    nft # -A INPUT -j CHECKSUM --checksum-fill

추가 리소스

  • iptables-translate --help

41.1.4. 일반적인 iptables 및 nftables 명령 비교

다음은 공통 iptablesnftables 명령을 비교한 것입니다.

  • 모든 규칙 나열:

    iptablesnftables

    iptables-save

    nft list ruleset

  • 특정 테이블 및 체인 나열:

    iptablesnftables

    iptables -L

    nft list table ip filter

    iptables -L INPUT

    nft list chain ip filter INPUT

    iptables -t nat -L PREROUTING

    nft list chain ip nat PREROUTING

    nft 명령은 테이블 및 체인을 미리 생성하지 않습니다. 이는 사용자가 수동으로 생성한 경우에만 존재합니다.

    firewalld를 통해 생성된 규칙 나열:

    # nft list table inet firewalld
    # nft list table ip firewalld
    # nft list table ip6 firewalld
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.