iptables에 URL 목록 파일을 포함하는 방법은 무엇입니까?

iptables에 URL 목록 파일을 포함하는 방법은 무엇입니까?

그래서 80,000개가 넘는 URL을 기반으로 한 파일을 포함하고 싶습니다.https://github.com/StevenBlack/hostsIPTABLES의 규칙에 파일을 호스팅합니다. 이 작업을 수동으로 수행할 수 있는 방법이 있지만 아시다시피 80,000개 이상의 항목을 수동으로 수행하는 것은 매우 힘든 일입니다.

필터: 입력 드롭[0:0] :앞으로 드롭[0:0] :출력 허용[0:0] :upnp - [0:0] :vpnlist - [0:0] :bfplimit - [0:0] : 마이크 목록-[0:0]
:urllist - [0:0]
-A 입력 -m 상태 --상태가 설정됨, 관련됨 -j 허용됨
-A 입력 -i br0 -j 수락
-A 입력 -i lo -j 수락
-A 입력 -m 상태 --상태가 유효하지 않음 -j DROP
-A 입력 -p udp --sport 67 --dport 68 -j 수락
-A 입력 -p icmp ! --icmp-type 에코 요청 -j 수락
-A 앞으로 -i br0 -o br0 -j 수락
-A urllist -p tcp -m webstr --url "ada.com aaa.com ffff.com"-j REJECT --reject-with tcp-reset
-A 앞으로 -i br0 -j urllist
-A 앞으로 -m 상태 --상태가 설정됨, 관련 -j 허용됨
-A 앞으로 -m 상태 --상태가 유효하지 않음 -j DROP
-A 앞으로 -i br0 -j 수락
-A FORWARD -m conntrack --ctstate DNAT -j 제출 수락

굵은 글씨 부분은 모든 URL을 입력하거나 파일을 포함하고 싶은 부분입니다

이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

답변1

내가 아는 한, iptables는 URL이나 도메인을 이해하지 못합니다. 먼저 모든 URL을 IP 주소로 변환해야 합니다. 이 온라인 도구를 사용하세요http://domaintoipconverter.com/index.php

이전 결과에서 IP 주소를 추출하려면 이 온라인 도구를 사용하세요.https://www.ipvoid.com/ip-extractor/

IP 주소를 list.txt한 줄에 하나씩 텍스트 파일(예:)에 저장합니다. 파일 list.txt은 다음과 유사해야 합니다.

$ cat list.txt
145.14.145.222
145.14.144.69
192.243.59.20
192.243.59.12
150.242.210.158
150.242.210.187
122.226.186.3

그런 다음 간단한 "for loop" bash 스크립트를 사용하여 list.txt파일의 모든 IP 주소를 iptables에 추가합니다.

#!/bin/bash
for i in $(cat list.txt);
do 
iptables -A OUTPUT -d "$i" -j DROP
done
# Save the rules
service iptables save

답변2

iptables를 사용하면 패킷 내용을 기준으로 필터링할 수 있지만 해당 패킷이 암호화되지 않은 경우에만 가능합니다.

광고 차단기로 사용하고 싶기 때문에:

  • https 연결에서는 작동하지 않습니다.
  • 모든패킷은 80,000개 이상의 규칙과 일치됩니다.

대안을 고려해 보십시오(예:https://pi-hole.net/).

관련 정보