Мы (техник, с которым я работаю и я сам) живем в отдаленном северном городе, где доступ к Интернету является чем-то вроде роскоши, а пропускная способность довольно ограничена. Здесь сверхнормативные платежи, варьирующиеся от нескольких сотен до нескольких тысяч долларов в месяц, не редкость. Я сам несу регулярные ежемесячные платежи только из-за моего обычного пользования Интернетом дома (мне разрешено 10G за 60CAD!)
Как часть моей работы, я оказался связан с несколькими отелями, которые чувствуют это. Я знаю, что могу придумать что-то, чтобы решить эту проблему, но я относительно новичок в системном администрировании и не хочу, чтобы мои мечты преодолевали реальность.
Итак, я передаю эти идеи вам, тем, у кого гораздо больше опыта, чем у меня, в надежде, что вы поделитесь некоторыми своими мыслями и проблемами.
Эта система должна быть экономически эффективной, да, плата здесь высока, но доверие к технологиям самое низкое, что я когда-либо видел.
- Должен быть в состоянии помочь клиенту уменьшить их использование (squid)
- Разрешить ограниченный (пропускная способность и общее использование) количество бесплатного Интернета, так как это часто политика франшизы.
- Разрешить пользователю отслеживать использование пропускной способности
- Разрешить (опционально) более высокую скорость и / или использование за дополнительную плату. Эта плата может быть получена на стойке регистрации при оформлении заказа и не требует использования PayPal или кредитной карты.
- К сожалению, некоторые франшизы имеют нелепые правила, которые требуют использования
стороннего удаленного сервиса для аутентификации гостей в вашей сети. Это означает, что WPA отсутствует, и это также означает, что я не авторизуюсь перед использованием Интернета, это будет их работа. Тем не менее, я требую, чтобы СПОСОБНОСТЬ выполняла аутентификацию для доступа в Интернет, если в отеле нет этой политики. Мне все равно придется отслеживать пропускную способность (по умолчанию в гостевой учетной записи) и предоставлять такое же ограничение, однако гостю часто требуется полный «неограниченный» доступ с точки зрения существования, а не пропускной способности. - Предоставьте возможности брандмауэра для гостиниц, в которых нет ничего, сегрегация между офисом и гостевой сетью (некоторые из этих парней управляют своим офисом в гостевой сети, без шифрования и с простым TOS, чтобы войти!)
- Не позволяйте гостям подключаться к другим гостям, однако предоставьте средства, позволяющие этому произойти. IE. Каждый гость подключается к странице и разрешает другому гостю, это записывает правило iptables (с python-netfilter) и позволяет двум комнатам играть в игру, например.
Мои мысли о том, как это реализовать. Одна приличная коробка (сейчас мы будем называть ее маршрутизатором) с большим количеством оперативной памяти и 3 сетевыми картами:
- интернет
- офис
- Гости (точки доступа + Ethernet в номере)
Правила межсетевого экрана маршрутизатора
- Гость может общаться только с маршрутизатором, через который они направляются туда, куда им нужно идти, включая интернет-сервисы.
- Office можно использовать для подключения Office к Интернету, если существующее решение отсутствует, в противном случае оно просто работает для веб-интерфейса, доступного по сети (webmin + python-webmin?).
Программное обеспечение маршрутизатора:
- OpenVZ предоставляет виртуализацию для нескольких сервисов, которым я не очень доверяю. Squid, FreeRADIUS и Apache. Единственный сервис, напрямую доступный для гостей - это Apache.
- В Apache есть mod_wsgi и django, потому что я могу писать быстро, используя django, и мои потребности невелики. Он также потенциально имеет мод FreeRADIUS, но, похоже, здесь есть некоторые предостережения.
- Правила брандмауэра обрабатываются на маршрутизаторе с помощью iptables.
- Webmin (или, может быть, собственное приложение django) обеспечивает абстрактное управление любыми функциями, к которым может понадобиться персонал.
- Python, если вы не догадались, это язык, на котором я чувствую себя наиболее комфортно, и я использую его практически для всего.
И наконец, было ли это сделано, является ли это слишком масштабным проектом, который не стоит брать на себя одному парню, и / или есть ли какие-то инструменты, которые мне не хватает, которые могли бы сделать мою жизнь проще?
Кстати, я довольно хорошо разбираюсь в Python, но не очень хорошо знаком со многими другими языками (я могу бороться с помощью PHP, это косметическая проблема). Я также заядлый пользователь Linux, и мне удобно с файлами конфигурации и командной строкой.
Спасибо за ваше время, я с нетерпением жду ваших ответов.
Изменить: Мои извинения, если это не вопросы и ответы в том смысле, что некоторые ожидали, я просто ищу идеи и чтобы убедиться, что я не пытаюсь сделать что-то, что было сделано. Сейчас я рассматриваю pfSense как возможное начало для того, что мне нужно.