Назад | Перейти на главную страницу

Как убедиться, что клиенты используют только IP, назначенный через DHCP

Мы хотим ограничить ежедневное использование Интернета пользователями, но не пропускную способность локальной сети. Наши пользователи работают на разных платформах (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), но проблема заключалась в том, что единственный способ ограничить пользователя - не разрешать ему подключаться, когда его предел был достигнут. Это означает, что до тех пор, пока пользователь не подключится повторно, он сможет загружать файлы без каких-либо ограничений.

Мы также думали о прокси-сервере как о решении, но у нас было две проблемы:

  1. У нас были проблемы с производительностью со squid, и установка squid, поскольку прозрачный прокси - это слишком много работы.
  2. У других прокси также были проблемы с производительностью, а у тех, кто работал хорошо, не было возможности использовать их в качестве прозрачного прокси.

Лучше сделать это на уровне 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.