Как включить файл со списком URL-адресов в iptables?

-Pозначает, что grepдолжен использовать синтаксис регулярных выражений Perl, а в Perl (?<=pattern)является «нулевой -положительной шириной -за утверждением », другими словами, якорем который должен появиться перед самим матчем. Таким образом, (?<=inet )[^.]+соответствует непустой -последовательности символов, которые не являются точками ([^.]+), если они следуют за "inet ", другими словами, первому байту различных IP-адресов ваших сетевых интерфейсов, потому что ip address showвыводит такие строки, как inet 127.0.0.1/8 scope host lo.

Это сделано таким образом, потому что опции -oкоманды grepзаставляют выводить совпадение, и вы не хотите, чтобы бит "inet "печатался, даже если он важен для совпадения.

Вопрос в том, что вы можете сделать только с первым байтом ваших различных IP-адресов и почему ip2имеет то же значение, что и ip1. Для чего нужен скрипт?

Для ваших конкретных нужд что-то вроде:

# get last two bytes of IP (assume in 192.168.*. network)
last_two=$(ip a show | grep -oP '(?<=inet 192\.168\.)[^/]+')
# Split result in two
IFS=. read net host <<< $last_two
0
28.09.2020, 10:33
2 ответа

Насколько мне известно, 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

Затем используйте простой bash-скрипт «for loop», чтобы добавить все IP-адреса из файла list.txtв iptables:

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

iptables позволит вам фильтровать пакеты по их содержимому, но только если они не зашифрованы.

Поскольку вы хотите использовать это как блокировщик рекламы:

  • это не будет работать для соединений https
  • каждый пакет будет сопоставляться с более чем 80 тысячами правил

Пожалуйста, рассмотрите альтернативу (, например.https://pi-hole.net/).

0
18.03.2021, 23:01

Теги

Похожие вопросы