텍스트 파일의 IP 주소 목록을 사용하여 iptables 규칙을 제공하는 방법

텍스트 파일의 IP 주소 목록을 사용하여 iptables 규칙을 제공하는 방법

iptables일반 텍스트 파일의 IP 주소를 사용하여 규칙을 제공할 수 있는 모듈이 있습니까 ?

iptables-restore예: WhatsApp 관련 IP 주소를 허용하기 위해 사용자 정의 규칙 세트로 생성된 사용자 정의 체인이 있습니다 .

    :_WHATSAPP_ - [0:0]
    -A _WHATSAPP_ -j ACCEPT
    -A FORWARD -s <src_host> -d 31.13.64.51/32 -j _WHATSAPP_
    -A FORWARD -s <src_host> -d 31.13.65.49/32 -j _WHATSAPP_
    -A FORWARD -s <src_host> -d 31.13.66.49/32 -j _WHATSAPP_
    -A FORWARD -s <src_host> -d 31.13.67.51/32 -j _WHATSAPP_
    -A FORWARD -s <src_host> -d 31.13.68.52/32 -j _WHATSAPP_
    -A FORWARD -s <src_host> -d 31.13.69.240/32 -j _WHATSAPP_
    ----snip-----

WhatsApp에서 사용하는 모든 IP 주소는 다음에서 찾을 수 있습니다.이 링크.

경우에 따라 이 파일을 다운로드하고, ipv4 주소를 필터링하고, 다음 정보(있는 경우)와 함께 iptables를 제공하는 스위치를 사용하는 것이 더 빠릅니다.

    :_WHATSAPP_ - [0:0]
    -A _WHATSAPP_ -j ACCEPT
    -A FORWARD -s <src_host> --from-file-dst /etc/iptables/whatsapp_cidr.txt -j _WHATSAPP_

이 기능이 존재하나요? 맨페이지에서 찾을 수 없습니다.

iptables-restore파일을 처리하기 위해 이미 sintax 규칙을 사용하는 사용자 정의 방화벽 스크립트가 있으므로 파일을 로드하고 읽을 수 있는 모듈이 필요합니다 .

답변1

를 사용하여 목록을 제공하는 방법을 제안할 수 있습니다 iptables.IPsipset

간단하게 다음을 생성할 수 있습니다 ipset.

ipset -N <ipset name> iphash

IP그런 다음 다음을 사용하여 컬렉션에 무엇이든 추가 할 수 있습니다 .

ipset add <ipset name> IP

그런 다음 다음에서 컬렉션을 사용할 수 있습니다 iptables.

-A FORWARD -d <dst> -m set --match-set <ipset name> src -j _WHATSAPP_

IPs실행하지 않고도 런타임에 컬렉션에 데이터를 제공하고 컬렉션에서 제거 할 수 있는 간단한 스크립트를 작성할 수 있습니다.iptables-restore

답변2

이걸 활용하면 좋을 것 같아요https://gist.github.com/woods/25ef91a95da85bf10974 그런 다음 IP로 별도의 .csv 파일을 생성하고 이를 IPTABLES에 공급합니다.

관련 정보