Рейтинг:0

Создайте правило NFQUEUE для сопоставления с локальным адресом назначения в моем маршрутизаторе Raspberry Pi.

флаг pe

Я работаю над проектом по проверке источника каждого пакета, если его пункт назначения является одним из нескольких IP-адресов в сети LAN.Меня интересуют IP-адреса локальной сети, а не WAN.

Я пытался создать много совпадений, как показано ниже, но ничего не получилось.

iptables -t nat -d <список IP-адресов> -A FORWARD -j NFQUEUE --queue-num 1

Я использовал следующие правила, чтобы включить маршрутизацию в моем raspberry pi.

судо iptables-F

sudo iptables -t nat -F

sudo iptables -t nat -A POSTROUTING -o $eth -j MASQUERADE

sudo iptables -A FORWARD -i $eth -o $wlan -m состояние --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ

sudo iptables -A FORWARD -i $wlan -o $eth -j ПРИНЯТЬ

Вопрос в том, куда мне поставить правило NFQUEUE?

-РЕДАКТИРОВАТЬ-

Мне сказали включить proxy_arp, чтобы маршрутизатор Raspberry Pi отвечал на любые локальные запросы. Я считаю, что мне нужно настроить таблицы маршрутизации внутри raspberry pi, не так ли?

Любые мысли будут оценены.


К сожалению, Proxy ARP не помог мне добиться желаемого контроля над пакетами ARP в сети. Тем не мение. Я видел решение(OpenVPN клиент-клиент), но я еще не реализовал это, я вернусь к этому вопросу, чтобы опубликовать, сработало это или нет.

флаг pl
В цепочке FORWARD нет таблицы 'nat'. Ваша команда выдает ошибку? Чего вы пытаетесь достичь, отправить пакет в программу пользовательского пространства?
zezo mehdawi avatar
флаг pe
Спасибо за ваши ответы! я обновил свой вопрос. пожалуйста, сообщите мне, если вам нужна более подробная информация
zezo mehdawi avatar
флаг pe
@BrahimGaabab Точно, я пытаюсь отправить пакеты, соответствующие определенному месту назначения, в пользовательское пространство.
zezo mehdawi avatar
флаг pe
@BrahimGaabab Какое подходящее правило iptables следует добавить к предыдущим правилам?
Рейтинг:0
флаг pl

Когда используешь сетевой фильтр, вы должны понимать, как пакет проходит через ядро, т.е. цепи (аналог «дорожного контрольно-пропускного пункта»), которые он посещает, и какие виды обработка он попадает в каждую цепочку (обозначается термином Таблица). Процессинг и цепочки показаны на эта иллюстрация, каждая коробка имеет цепь в нижней части и тип обработки в верхней. (Вы должны сосредоточиться на сетевом уровне.) В зависимости от пути пакета задействовано только подмножество цепочек: пакеты, проходящие через вашу малину, будут проходить только через ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ, ВПЕРЕД и РАЗМЕЩЕНИЕ.

Имея ВПЕРЕД chain, не означает, что он маршрутизирует пакеты. Вы должны включить его с помощью команды sysctl -w net.ipv4.ip_forward=1 (не стойкий).

Кроме того, как показано на рисунке, нет нат обработка в ВПЕРЕД цепь, только калечить и фильтр, поэтому команда

iptables -t nat -d <список IP-адресов> -A FORWARD -j NFQUEUE --queue-num 1

это неверно.

Обработка пакетов для каждой таблицы/цепочки фактически управляется упорядоченным списком правил, таблицей, которую вы определяете с помощью iptables команда. Каждое правило состоит из критериев соответствия и действия, которое зависит от типа таблицы (nfqueue допускается только в фильтр столы, маскарад в нат столы и др.)

Теперь, подойдя к nfqueue. Мы используем такое действие, когда дальнейшая обработка некоторых пакетов должна производиться вне ядра программой, которую вы сами создаете (см. пример питона здесьнапример, в системах обнаружения вторжений.Пакеты помещаются в очередь (обозначается 16-битным номером), обрабатываются, а затем возвращаются в ядро, чтобы возобновить их поток в следующей таблице/цепочке. (Их также можно сбросить в пространстве пользователя). В обычном сценарии вы обычно хотите отправлять в пространство пользователя только принятые пакеты (отфильтрованные пакеты игнорируются на уровне ядра). Вы должны быть осторожны с вашими точными потребностями, которые еще не ясны. Я попытаюсь привести пример, чтобы объяснить, как это работает, используя ваш сценарий:

судо iptables-F
sudo iptables -t nat -F
sudo iptables -t nat -A POSTROUTING -o $eth -j MASQUERADE
sudo iptables -A FORWARD -i $eth -o $wlan -m state --state RELATED, ESTABLISHED -j NFQUEUE --queue-num 1
sudo iptables -A FORWARD -i $wlan -o $eth -j NFQUEUE --queue-num 1

Это означает, что пакеты, проходящие между $эт и $wlan будут поставлены в ту же очередь. Вы должны убедиться, что какая-то программа обрабатывает очередь №. 1 и готов к обработке пакетов.

zezo mehdawi avatar
флаг pe
Спасибо за прекрасное объяснение, оно действительно прояснило мой разум.Но дело в том, что предложенные вами правила соответствуют только трафику, который идет в Интернет. Поскольку я создаю IDS, я ищу соответствие только внутреннему трафику. Я проверяю, работает ли он, размещая веб-страницу с моего ноутбука, а затем пытаясь получить доступ к ней с моего телефона. В этом сценарии NFQUEUE должен обнаружить этот запрос!
zezo mehdawi avatar
флаг pe
вот мой собственный файл журнала после применения предложенных вами правил. Это может прояснить результаты. IP-адрес подключения: 157.240.196.60 MAC-адрес подключения: e8:cd:2d:a9:01:f7 IP-адрес подключения: 20.93.28.56 MAC-адрес подключения: e8:cd:2d:a9:01:f7 IP-адрес подключения: 172.64.154.162 MAC-адрес подключения: e8 :cd:2d:a9:01:f7 ‒
флаг pl
Не ждите, что я разберусь в вашем сценарии и в том, какой трафик поставить в очередь :-) Итак, ноутбук и телефон находятся на стороне WLAN в одной IP-подсети? Если это так, вам, вероятно, придется полагаться на драйвер интерфейса wlan для захвата и постановки пакетов в очередь в пользовательское пространство, потому что netfilter не разрешает цель NFQUEUE для фреймов сети. Вы хотите принять решение о переадресации там, это просто для копирования кадров?
zezo mehdawi avatar
флаг pe
Да точно, но цель не копировать, а принять или отбросить пакет. Не беспокойтесь о моей пользовательской программе, она отлично работает. мне просто нужно добавить правило iptables в очередь для него. Я могу организовать сеанс масштабирования для вас, чтобы показать детали, если хотите.
флаг pl
Один из способов — заставить пакеты проходить через IP-драйвер маршрутизатора, заставив ваш маршрутизатор объявить MAC-адрес интерфейса беспроводной сети в локальной сети. Я дам вам знать, если будет доступно сегодня вечером или завтра утром.
zezo mehdawi avatar
флаг pe
Хорошо! Спасибо за вашу доброту
zezo mehdawi avatar
флаг pe
Здравствуйте, сэр, надеюсь, вы скоро свяжетесь со мной, чтобы я мог уложиться в срок моего проекта :(
флаг pl
@zezomehdawi, теперь я свободен. Чтобы принудительно пропускать пакеты через маршрутизатор, вы должны объявить его MAC-адрес в своей беспроводной локальной сети. Вы можете сделать это, включив проксирование ARP на маршрутизаторе.
zezo mehdawi avatar
флаг pe
На самом деле, я никогда не устанавливал прокси arp. Вы можете проинструктировать меня здесь или мы можем продолжить этот сеанс масштабирования. Это твой выбор. https://iauvle.zoom.us/j/7036217353
флаг pl
По какой-то причине он не работает (у вас корпоративный зум-аккаунт?). Вы можете настроить другой сервис.
zezo mehdawi avatar
флаг pe
у меня есть еще один, дай мне секунду
zezo mehdawi avatar
флаг pe
Это мой личный аккаунт: https://us04web.zoom.us/j/7559513161?pwd=bW9JVWJhdG95Mkd4RTFZM2hPQitEUT09

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

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