LINUX.ORG.RU

OpenWrt

 ,


0

1

Всем привет)

Суть: Имеется wifi роутер прошитый openwrt. Хочу что бы на новое подключение к роутеру запускался скрипт на вход которому бы подавался ip и mac подключившегося устройства. Если скрипт возвращает 1 то пущять трафик от этого устройства в интернеты, а если 0 то редиректитиь на локальный веб сервер на роутере?

Вопрос в следуюущем: как можно запускать скрипты на роутере при новом подключении?

Что люди только не изобретают, вместо того что бы поставить chillispot или любой другой captive portal.

joy4eg ★★★★★
()

За сколько секунд ляжет твой роутер, если на каждый пакет с флагом SYN будет запускаться копия интерпретатора?

Black_Shadow ★★★★★
()
Ответ на: комментарий от Black_Shadow

Мне не надо что бы на каждый пакет запускался. только при первом подключении. а потом правило бы снималось

maksspaces
() автор топика
Ответ на: комментарий от maksspaces

syn пакет и означает «первое подключение» в каждом tcp соединении. возьми tcpdump и погляди сколько их за обычную сессию бравзинга интернетов.

или что для рутера должно быть «первым подключением»? от чего оно отсчитывается как первое, и per что? на каждый ip клиента? за какой период? в день в месяц в год? или навсегда? как тогда хранить будешь инфу кому уже отказано и сколько осталось? а если ip поменяется?

mos ★★☆☆☆
()
Ответ на: комментарий от maksspaces

Дык смотри исходники, и кури netlink. Это задача не самая тривиальная. В идеале, тебе нужно ловить события от wifi драйвера (или hostapd) о том, что новый клиент подключился, это даст тебе МАК адрес. Потом можешь дернуть какой-то arping и узнать IP.

joy4eg ★★★★★
()
Ответ на: комментарий от joy4eg

А если например использовать https://github.com/sbyx/odhcpd как основу? При подключении к dhcp редиректить трафик на нужный сервер если пользователь не залогинился, и пропускать в интернеты если все ок?

maksspaces
() автор топика
Ответ на: комментарий от joy4eg

Все очень просто решилось: на prerouting'е весь tcp трафик гонится на локальный сервер со страничкой авторизации. потом парсится с помощью arping mac адрес и добавляется в белый лист, откуда весть трафик уже пускается в интернет

maksspaces
() автор топика
Ответ на: комментарий от Black_Shadow

смотря какого. есть реализация lua скриптов, привязанная к netfilter. работает. потому что luа мелкий и лёгкий, это не говнопистон какой-нить. кстати, в OpenWRT он как раз есть: iptables-mod-lua (http://cn.cs.unibas.ch/pub/doc/2010-msthGraf.pdf) но я не уверена, что ТС с ним справится. там сурово выполняется скрипт внутри обработчика netfilter и пакеты в нём требушить надо вручную. это надо ковырять и тестировать. конечно, оно будет намного медленнее, чем обработка в ядре. но по сравнению с прочими скриптовыми обработками это хотя бы работает.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

уже вопрос решен) на PREROUTING весь трафик с ip не из набора разрешенных, редиректится на локальный сервер. И вот уже на нем парсится mac и добавляется в набор (macipmap).

maksspaces
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.