Рейтинг:0

iptables - отбросить пакет в цепочке FORWARD на основе совпадения строк, не работает

флаг cn

Я пытаюсь перенаправить трафик с одного хоста на другой. Это работает, но я хочу добавить белый список URL-адресов. Следующие правила сохранения iptables по-прежнему блокируют такие посещения, как http://host:8383/api/test.

Что мне не хватает?

*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [0:0]
:ВВОД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [7:517]
:ОТПРАВКА ПРИНЯТИЯ [2:161]
-A PREROUTING -p tcp -m tcp --dport 8383 -j DNAT --to-destination x.x.x.x:8001
-ПОСТРОЕНИЕ! -s 127.0.0.1/32 -j МАСКАРАД
СОВЕРШИТЬ

*фильтр
:ВВОД ПРИНЯТЬ [0:0]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]

-A FORWARD -p tcp -m строка --string "GET /api" --algo bm --icase -j ПРИНЯТЬ
-P ПАДЕНИЕ ВПЕРЕД

СОВЕРШИТЬ
судо iptables-nvL
Цепочка INPUT (политика ACCEPT 49 пакетов, 2356 байт)
 pkts bytes target prot opt ​​in out source target

Цепочка FORWARD (политика DROP 5 пакетов, 200 байт)
 pkts bytes target prot opt ​​in out source target
    0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 STRING соответствует "GET /api" имя ALGO bm TO 65535 ICASE

Цепочка OUTPUT (политика ACCEPT 38 пакетов, 3060 байт)
 pkts bytes target prot opt ​​in out source target
Tom Yan avatar
флаг in
Вот `tcpdump` простого завитка с другого хоста на мой сервер lighttpd: https://paste.ubuntu.com/p/FCHsg4PmBR/, так что нет, вы не можете «включить его в белый список». Это не то, как работают TCP или HTTP.
Tom Yan avatar
флаг in
Тем не менее, с таким подходом вы можете *занести в черный список* определенные `GET`.
perlwle avatar
флаг cn
установка политики на ПРИНЯТЬ, тогда работает черный список, но это не то, что я хочу. Любые другие идеи?
флаг us
IPTables сопоставляет только IP-пакеты. Чтобы достичь своей цели, вам нужен перехват на уровне TCP. Возможно, самым простым было бы создать прозрачный HTTP-прокси с помощью Squid.
perlwle avatar
флаг cn
Там вроде есть другие варианты. Кальмар, как было предложено. Я думаю, что прямой прокси-сервер с использованием nginx тоже может работать.Однако могут быть проблемы с протоколом https.
djdomi avatar
флаг za
у вас есть классическая проблема x и y, что вы действительно хотите решить?

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

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