Рейтинг:0

Использование ipset для блокировки IP

флаг gi

Что это iptables команда для блокировки всех IP-адресов в ipset? я пытался ВХОД и ВЫВОД и источник и летнее время, но ничего из того, что я пробовал, не работает.

Машина моего домашнего роутера делает маскарад; у него есть два исходящих интерфейса, которые переключаются при сбое.

Вот мой iptables сценарий:

# кошка bin/iptables.sh
#!/бин/ш

iptables -t физ -F
iptables -t мангл -F
iptables-F
iptables -X

# Блокировщик
ipset -L заблокирован >/dev/null 2>&1
если [$? -ne 0 ]
тогда
        echo "Создание ipset: заблокировано"
        ipset создать заблокированный hash:ip
фи

если [ -f /root/blocked_domains.txt ]
тогда
        ipset флеш заблокирован
        для домена в $(cat /root/blocked_domains.txt); делать
                для адреса в $( dig a $domain +short | grep -P -e '^(\d{1,3}\.){3}\d{1,3}$' ); делать
                        эхо $домен "->" $адрес
                        ipset добавить заблокированный адрес $
                сделано
        сделано

        ipset -L заблокирован >/dev/null 2>&1
        если [$? -экв 0]
        тогда
                эхо "Блокировка"
                # # # Что здесь происходит? # # #
                iptables -A INPUT -m set --match-set заблокирован src -j DROP         
        фи
фи

# Разрешить использование резервного соединения только вещам в этом поле (ограниченный объем данных.)
iptables -A FORWARD -s localhost -j ПРИНЯТЬ
iptables -A ВПЕРЕД -s 192.168.1.0/24 -o enp0s6f1u2 -j УДАЛИТЬ

# Маскарад
iptables -A FORWARD -m conntrack --ctstate УСТАНОВЛЕНО, СВЯЗАННО -j ПРИНЯТЬ
iptables -t nat -F РАЗМЕЩЕНИЕ
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s6f1u2 -j MASQUERADE

Обновлять

# iptables -vnL ВВОД
Цепочка INPUT (политика ACCEPT 15M пакетов, 16G байт)
 pkts bytes target prot opt ​​in out source target
    0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set заблокирован src

(Обрезано, но ясно, что это соответствующая строка.)

Еще одно обновление

Я также запутался, потому что один из доменов, которые я пытаюсь заблокировать, похоже, меняет свой IP-адрес (разные ответы от одного и того же сервера имен, который является точкой доступа WiFi на моем телефоне Android).

# датировать; копать b.scorecardresearch.com
Пт 2 июля 09:34:36 BST 2021

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> b.scorecardresearch.com
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 3185
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 4, АВТОРИЗАЦИЯ: 0, ДОПОЛНИТЕЛЬНО: 1

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; UDP: 1280
;; РАЗДЕЛ ВОПРОСОВ:
;b.scorecardresearch.com. В

;; РАЗДЕЛ ОТВЕТОВ:
b.scorecardresearch.com. 1 В А 143.204.198.94
b.scorecardresearch.com. 1 В А 143.204.198.59
b.scorecardresearch.com. 1 В А 143.204.198.111
b.scorecardresearch.com. 1 В А 143.204.198.90

;; Время запроса: 35 мс
;; СЕРВЕР: 192.168.43.214#53(192.168.43.214)
;; КОГДА: пятница, 02 июля, 09:34:36 BST 2021
;; РАЗМЕР MSG rcvd: 116


# датировать; копать b.scorecardresearch.com
Пт 2 июля 09:34:51 BST 2021

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> b.scorecardresearch.com
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 52849
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 4, АВТОРИЗАЦИЯ: 0, ДОПОЛНИТЕЛЬНО: 1

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; UDP: 1280
;; РАЗДЕЛ ВОПРОСОВ:
;b.scorecardresearch.com. В

;; РАЗДЕЛ ОТВЕТОВ:
b.scorecardresearch.com. 24 В А 99.84.15.95
b.scorecardresearch.com. 24 В А 99.84.15.83
b.scorecardresearch.com. 24 В А 99.84.15.117
b.scorecardresearch.com. 24 В А 99.84.15.65

;; Время запроса: 63 мс
;; СЕРВЕР: 192.168.43.214#53(192.168.43.214)
;; КОГДА: пятница, 02 июля, 09:34:51 BST 2021
;; РАЗМЕР MSG rcvd: 116


флаг it
Вам нужно создать правило iptables, которое ссылается на ipset. https://serverfault.com/questions/837705/configure-iptables-with-ipset
флаг gi
Это мой вопрос: что это за команда? Эта команда не работает: `iptables -A INPUT -m set --match-set заблокирован src -j DROP`.
флаг it
Извините, я пропустил ссылку, которую вы имеете во фрагменте. Я вижу это сейчас. Что показывает вывод `iptables -vnL INPUT`? Есть ли какие-либо совпадения с этим правилом?
флаг it
Может быть, вы применили это не к той цепи? `INPUT` предназначен для материалов, предназначенных для фактического хоста. Вы намерены вместо этого блокировать маршрутизируемый или NAT-трафик, проходящий через хост? Если это так, вы не получите никаких совпадений в цепочке `INPUT`, и вам нужно будет изменить правило сопоставления, чтобы оно находилось либо в цепочке `FORWARD`, либо в подходящем правиле NAT в цепочке `POSTROUTING`.
Рейтинг:1
флаг cw

Вот пример

ipset create Banned_hosts hash:net family inet hashsize 1048576 maxelem 1500000 счетчики комментарий

Вот правило iptables

iptables -t nat -A PREROUTING -i eth0 -m set --match-set Banned_hosts src -j DROP
флаг gi
Я должен использовать FORWARD, а не PREROUTING, потому что iptables v1.8.2 (nf_tables): цепочка PREROUTING не существует. Кроме того, я считаю, что в iptables (в отличие от ipchains) цепочка INPUT соответствует только пакетам, предназначенным для локального хоста. Я также запутался, потому что один из доменов, которые я пытаюсь заблокировать (рекламный сервер), похоже, меняет свой IP-адрес каждые несколько минут.
флаг it
@RichardBarraclough Убедитесь, что вы используете аргументы `-t nat` в своей команде iptables. У меня есть рабочие правила ipset iptables, работающие в цепочке `PREROUTING`.
флаг it
Я думаю, что цель `-j DROP` также должна быть изменена на `-j RETURN` в цепочках `-t nat`. Если кто-то может подтвердить это, пожалуйста, отредактируйте приведенный выше ответ соответствующим образом.
флаг cw
OP хочет блокировать блок IP-адресов. -J RETURN этого не делает. Вы хотите -J DROP. Вы можете использовать -J REJECT, но это отправляет пакеты обратно к источнику, указывая на отклонение. Это определенно не то, на что вы хотите тратить пропускную способность, поскольку вы просто отправляете роботу, сканирующему порты.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.