Приветствую всех обитателей данного ресурса.
В последнее время пришлось столкнуться с небольшой, казалось бы, проблемой.
Такова суть сего повествования: пришлось мне стать добровольным волонтёром по внедрению *nix в одну школу.
Насущный вопрос предостал предо мной: надо всего лишь оптимально распределять трафик между компьютерами учителей, учеников, служебными. Подняты DHCP, и (О мой Б-г!) Traffic Inspector на втором сервере, исполняющий роль интернет-шлюза. Но связка Windows Server 2003 + Traffic Inspector потребляет неоправданнно много ресурсов (про лицензионную чистоту речь не идет). Поэтому (и по множеству других причин) было принято решение попробовать перевести интернет-шлюз на Linux (наиболее подходящим дистрибутивом мне кажется Debian Squeeze). Что же мне нужно:
* Централизированный инструмент управления пользователями (добавление/удаление)
* Редактирование ограничений скорости для групп и отдельных пользователей
* Настройки DHCP для пользовательской машины (на основе его MAC)
* Гибкое управление правами доступа на различные ресурсы (как по IP, ак и по URL, желательно с поддержкой
масок и регулярных выражений) как для групп, так и для отдельных пользователей (в т.ч. создание эксклюзивных правил для пользователя в группе)
Конечно, можно попробовать разрулить ситуацию с помощью ручной настройки и правки dhcpd.conf, настройки шейпинга с помощью htb (ибо напрямую работа с tc слишком монструозна), правка iptables и постоянная ручная синхронизация. Но желания заниматься таким BDSM'ом совершенно нет. Поэтому поглядел на имеющиеся биллинговые системы.
Из адекватных по отзывам поглядел Abills и NoDeny, которые мне не понравились:
* В Abills куча необходимых модулей просто платные и отсутствуют в свободном доступе, документация осознанно обрезана для свободной версии.
* NoDeny не поддерживается адекватно для Linux. (у кого есть истории успеха - поделитесь, в случае их подтверждения сделаю вменяемую HOWTO).
В общем, аж руки чешутся смастерить свой велосипед, только чтобы он не был завязан на единственном разработчике, чтобы все заинтересованные лица могли участвовать в усовершенствовании (в отличии от abills и nodeny)
Пока предполагаю писать на C++/Qt (для повышения переносимости и модульности). Есть ли заинтересованные люди в этом?