Мы хотим ограничить ежедневное использование Интернета пользователями, но не пропускную способность локальной сети. Наши пользователи работают на разных платформах (Windows, Android, IOS), поэтому невозможно принудительно применить какие-либо политики, например, Active Directory, и, если бы это было возможно, ограничил бы всю полосу пропускания. Единственный способ, который остается, - это установить ограничение на основе IP на границе сети. Это возможно с помощью Mikrotik или других межсетевых экранов. Но проблема в том, что пользователи могут менять свои IP-адреса при достижении лимита и продолжать использовать пропускную способность интернета. Поэтому идея заключалась в том, чтобы пользователи могли передавать данные только в том случае, если их MAC-адрес и IP-адрес, назначенный нашим DHCP-сервером, совпадают. Это должно быть возможно в коммутаторах Cisco и может быть выполнено на основном коммутаторе. Думаю, я что-то читал о соединении между коммутаторами Cisco и DHCP-сервером.
Вопрос в том, как это возможно, или есть другое решение, которое могло бы быть проще и эффективнее?
Мы используем точки доступа, коммутаторы Cisco 2960 и Cisco 4500 в качестве коммутатора ядра. Наш DHCP - это FreeBSD, но мы готовы изменить его, если это необходимо. Метод аутентификации для наших точек доступа - 802.1x.
РЕДАКТИРОВАТЬ:
Мы попробовали решение с использованием сервера RADIUS, которое дало нам возможность узнать, сколько трафика было использовано каждым пользователем (через порт 1812/1813), но проблема заключалась в том, что единственный способ ограничить пользователя - не разрешать ему подключаться, когда его предел был достигнут. Это означает, что до тех пор, пока пользователь не подключится повторно, он сможет загружать файлы без каких-либо ограничений.
Мы также думали о прокси-сервере как о решении, но у нас было две проблемы:
Лучше сделать это на уровне 7, а не на уровне 2 или 3.
Устройствам можно изменить свой MAC-адрес, а также IP-адрес. (Пользователю сложнее изменить свой MAC-адрес, но это все еще возможно.) Если у вас есть люди, меняющие IP-адреса, чтобы обойти ограничения, это только вопрос времени, когда они тоже изменят MAC-адреса.
Есть несколько решений, которые я могу придумать в своей голове.
Адаптивный портал, который требует, чтобы пользователь аутентифицировался с использованием учетных данных для каждого пользователя (например, RADIUS обратно в вашу Active Directory), предоставит вам учетную запись для каждого пользователя. Для этого существует множество продуктов, как коммерческих, так и бесплатных / с открытым исходным кодом.
Заставьте пользователей подключаться к VPN, используя учетные данные для каждого пользователя, чтобы получить доступ за пределы беспроводной подсети.
Оба эти метода не требуют утомительной перекрестной ссылки IP-MAC и легко масштабируются при добавлении новых пользователей / устройств.
Вы можете использовать ebtables для фильтрации пакетов по MAC-адресу с неправильным IP, например:
ebtables -N USER
ebtables -A FORWARD -p ip -i eth0 -j USER
ebtables -P USER DROP
ebtables -A USER -p ip --ip-src 192.168.0.52 -s 00:52:2c:be:ac:2a -j ACCEPT
ebtables -A USER -p ip --ip-src 192.168.0.23 -s 01:51:2d:be:pc:1b -j ACCEPT
Здесь мы разрешаем пользователю с MAC 00:52:2c:be:ac:2a
только использовать IP 192.168.0.52
и то же самое для других. Но, насколько я знаю, телефоны iOS (и другие, я полагаю) сбросить MAC-адрес при каждом подключении из соображений безопасности, чтобы сделать невозможным отслеживание миграции устройства с одной точки доступа Wi-Fi в другую. Так что полагаться на MAC-адрес не на 100% правильно.
Другой способ решить эту проблему - это, возможно, ввести L2TP и разрешить Интернет-трафик только по нему. Вы дадите каждому пользователю пару пользователь / пароль и назначите статические IP-адреса. Тогда вы сможете отслеживать трафик по IP.