Red Hat Training

A Red Hat training course is available for RHEL 8

9.11. firewalld를 사용하여 IP 세트 설정 및 제어

firewalld 에서 지원하는 IP 세트 유형 목록을 보려면 root로 다음 명령을 입력합니다.

# firewall-cmd --get-ipset-types
hash:ip hash:ip,mark hash:ip,port hash:ip,port,ip hash:ip,port,net hash:mac hash:net hash:net,iface hash:net,net hash:net,port hash:net,port,net
주의

Red Hat은 firewalld 를 통해 관리되지 않는 IP 세트를 사용하지 않는 것이 좋습니다. 이러한 IP 세트를 사용하려면 세트를 참조하려면 영구적인 직접 규칙이 필요하며 이러한 IP 세트를 생성하려면 사용자 지정 서비스를 추가해야 합니다. 이 서비스는 firewalld 를 시작하기 전에 시작해야 합니다. 그렇지 않으면 firewalld 가 이러한 세트를 사용하여 직접 규칙을 추가할 수 없습니다. /etc/firewalld/direct.xml 파일을 사용하여 영구적인 직접 규칙을 추가할 수 있습니다.

9.11.1. CLI를 사용하여 IP 세트 옵션 구성

IP 세트는 firewalld 영역에서 소스로 사용할 수 있으며 리치 규칙의 소스로 사용할 수도 있습니다. Red Hat Enterprise Linux에서 선호되는 방법은 직접 규칙에서 firewalld 로 생성된 IP 세트를 사용하는 것입니다.

  • 영구 환경에서 firewalld 로 알려진 IP 세트를 나열하려면 root 로 다음 명령을 사용합니다.

    # firewall-cmd --permanent --get-ipsets
  • 새 IP 세트를 추가하려면 영구 환경을 root 로 사용하여 다음 명령을 사용하십시오.

    # firewall-cmd --permanent --new-ipset=test --type=hash:net
    success

    이전 명령은 이름이 test 인 새 IP 세트와 IPv4hash:net 유형을 생성합니다. IPv6 에서 사용할 IP 세트를 생성하려면 --option=family=inet6 옵션을 추가합니다. 새로운 설정을 런타임 환경에서 유효하게 하려면 firewalld 를 다시 로드합니다.

  • root 로 다음 명령을 사용하여 새 IP 세트를 나열합니다.

    # firewall-cmd --permanent --get-ipsets
    test
  • IP 세트에 대한 자세한 정보를 얻으려면 다음 명령을 root 로 사용하십시오.

    # firewall-cmd --permanent --info-ipset=test
    test
    type: hash:net
    options:
    entries:

    현재 IP 세트에는 항목이 없습니다.

  • 테스트 IP 세트에 항목을 추가하려면 root 로 다음 명령을 사용합니다.

    # firewall-cmd --permanent --ipset=test --add-entry=192.168.0.1
    success

    이전 명령은 IP 주소 192.168.0.1 을 IP 집합에 추가합니다.

  • IP 세트의 현재 항목 목록을 가져오려면 root 로 다음 명령을 사용합니다.

    # firewall-cmd --permanent --ipset=test --get-entries
    192.168.0.1
  • IP 주소 목록이 포함된 iplist.txt 파일을 만듭니다. 예를 들면 다음과 같습니다.

    192.168.0.2
    192.168.0.3
    192.168.1.0/24
    192.168.2.254

    IP 집합의 IP 주소 목록이 있는 파일에는 행당 항목이 포함되어야 합니다. 해시, 세미콜론 또는 빈 행으로 시작하는 행은 무시됩니다.

  • iplist.txt 파일의 주소를 추가하려면 root 로 다음 명령을 사용합니다.

    # firewall-cmd --permanent --ipset=test --add-entries-from-file=iplist.txt
    success
  • IP 세트의 확장 항목 목록을 보려면 root 로 다음 명령을 사용합니다.

    # firewall-cmd --permanent --ipset=test --get-entries
    192.168.0.1
    192.168.0.2
    192.168.0.3
    192.168.1.0/24
    192.168.2.254
  • IP 세트에서 주소를 제거하고 업데이트된 항목 목록을 확인하려면 root 로 다음 명령을 사용합니다.

    # firewall-cmd --permanent --ipset=pass:_test_ --remove-entries-from-file=iplist.txt
    success
    # firewall-cmd --permanent --ipset=test --get-entries
    192.168.0.1
  • IP 세트를 영역에 소스로 추가하여 영역으로 설정된 IP 세트에 나열된 주소에서 들어오는 모든 트래픽을 처리할 수 있습니다. 예를 들어 테스트 IP 세트를 소스로 추가하여 테스트 IP 세트에 나열된 모든 항목에서 들어오는 모든 패킷을 삭제하려면 root 로 다음 명령을 사용합니다.

    # firewall-cmd --permanent --zone=drop --add-source=ipset:test
    success

    소스의 ipset: 접두사는 firewalld 가 소스가 IP 주소 또는 주소 범위가 아닌 IP 세트임을 보여줍니다.

IP 세트의 생성 및 제거만 영구 환경으로 제한되며 다른 모든 IP 세트 옵션도 --permanent 옵션 없이 런타임 환경에서 사용할 수 있습니다.