суббота, 24 октября 2015 г.

как можно ограничить число устройств у абонента?



     эта проблема давно беспокоит всяких жадных провайдеров, ведь клиенты очень любят интернет использовать не просто на своем ноутбуке, но и на телефоне, на телевизоре, медиацентре, на виртуальных машинах, да и просто не привязывать себя к столу проводом а использовать вай-фай.
естественно провайдеру хочется что б клиент в этом случае платил за свои 2Мбит интернета за каждое "подключение" отдельно.

1. традиционное решение проблемы - привязка мак-адресов.
для абонента такой фильтр это даже не проблема - любое устройство позволяет этот мак подменить, а домашние вайфай роутеры это делают почти автоматом.
не проблема для абонента.

2. следующий шаг - использование аутентификации.
например - 802.1x или PPPoE/PPTP доступ в сеть.
решение - выполнять аутентификацию на роутере и с него же поднимать туннель.
не проблема для абонента.

3. тяжелая артиллерия - фильтрация по TTL :)
вешать на клиента список доступа, принимающие пакеты ровно с TTL=128(венда) или TTL=64(unix/linux/macos).
здесь все становится немного сложнее.
не все роутеры умеют такое бороть, но если роутер использует прошивку на линуксе (dd-wrt/openwrt/и т.д.), то там все решается предельно просто:
iptables -t mangle -A POSTROUTING -o -j TTL --ttl-set 128
большинство прошивок могут такую команду добавить а автозапуск.

4. сверх-тяжелая артелерия и приз зрительских симпатий - УСТАНОВКА TTL!
роутер провайдера на все пакеты идующие в сторону клиента ставит TTL=1.
если абонент подключил маршрутизатор, то он при пересылке пакета внутрь на проводную ил беспроводную либо даже виртуальную сеть уменшает TTL на единицу, и тут - упс, TTL=0, пакет нужно отбросить и отправить TTL exceeded!
на линуксе (dd-wrt/openwrt/и т.д.) все решается предельно просто, как и в прошлом варианте, только теперь на трафик полученный на wan интерфейсе:
iptables -t mangle -A PREROUTING -i -j TTL --ttl-set 128
большинство прошивок могут такую команду добавить а автозапуск.

Взято отсюда