Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: NAT + Биллинг + Шейпинг + web интерфейс  (Прочитано 3692 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн hardir

  • Автор темы
  • Участник
  • *
  • Сообщений: 124
  • open source рулит
    • Просмотр профиля
    • маленький блог бедного программера
Возник вопрос о переползании с Windows + TrafficInspector на Linux сервер.
В качестве ОС выбрал Ubuntu Server (В дальнейшем хочу и под Ubuntu desctop замутить. Чтобы оператора научить добавлять пользователей)

Задача:
Раздавать интернет по гостинице посредством WiFi. Авторизация через Web интерфейс по IP (можно и по MAC).
Раздача через NAT со статистикой по пользователям (по IP). Ну и шейпинг было бы неплохо прикрутить.
 Т.е. юзверь подрубается по wifi скажем с мобилки, и пробует открыть сайтик. Тут выскакивает страничка с просьбой ввести PIN - код доступа.

Это всё сейчас реализовано на Windows. Но есть проблемы с надежностью. Иногда серъёзные. Хочется понадежнее систему (чтобы не пропускала всех подрят).

В какую сторону копать?
Я уже научился ставить ubuntu server и расшаривать инет через iptables (NAT).
Поднял DNS (dnsmasq). Squid не катит, т.к. это прокся а нужен прозрачный NAT.

Проблема с авторизацией. Как её реализовать. Чтобы юзвер ввёл на страничке авторизации PIN (заранее сгенерированный и сохранённый в базе, это я могу сам сделать на PHP) и его IP прописался в разрешённых.
Т.е. сейчас работает NAT - полная анархия. Все пользуются инетом на халяву.
Остро стоит вопрос о запрете доступа для всех, и перенаправлении их на страницу авторизации. Если авторизация прошла успешно, IP (и, если можно MAC) юзверя вносится в белый лист, и доступ в интернет открывается.
« Последнее редактирование: 28 Июля 2013, 20:22:17 от hardir »

Оффлайн drako

  • Старожил
  • *
  • Сообщений: 1422
    • Просмотр профиля
Re: NAT + Биллинг + Шейпинг + web интерфейс
« Ответ #1 : 29 Июля 2013, 23:42:39 »
Это всё сейчас реализовано на Windows. Но есть проблемы с надежностью. Иногда серъёзные. Хочется понадежнее систему (чтобы не пропускала всех подрят).
Наибольшей надежности можно достичь либо используя прокси, либо какой-либо клиент для авторизации, в противном случае остается возможность обхода.
Ну, а по системе авторизации могу предложить такой вариант:
1. php-скрипт, который при успешной авторизации прописывает в netfilter правило разрешающее выход в интернет для данного девайса по mac адресу.
2. в cron добавляете задание, которое мониторит базу и netfilter на предмет разрешенных mac. Как mac из базы пропадает, скрипт удаляет разрешающее правило.
3. в netfilter создать правило, которое будет заворачивать всех кто не прошел по маку на страницу авторизации.
4. не забываем, что один и тот же пользователь может захотеть выходить с нескольких устройств.

Оффлайн hardir

  • Автор темы
  • Участник
  • *
  • Сообщений: 124
  • open source рулит
    • Просмотр профиля
    • маленький блог бедного программера
Re: NAT + Биллинг + Шейпинг + web интерфейс
« Ответ #2 : 13 Августа 2013, 20:49:23 »
1. php-скрипт, который при успешной авторизации прописывает в netfilter правило разрешающее выход в интернет для данного девайса по mac адресу.
На винде у меня получить мак по пхп не удавалось. Да и сеть у меня wi-fi. Иногда мак может не пропускать (глючное оборудование). Авторизация по IP работает стабильно.

2. в cron добавляете задание, которое мониторит базу и netfilter на предмет разрешенных mac. Как mac из базы пропадает, скрипт удаляет разрешающее правило.
Тут пока вопросов нет.

3. в netfilter создать правило, которое будет заворачивать всех кто не прошел по маку на страницу авторизации.

В яблочко!
Как это сделать? Что и где прописать? Примерчик можно, пожалуйста?
Приведите, пожалуйста примерчик, когда все IP перенаправляются на страницу авторизации, кроме разрешённых (например, кроме 10.0.0.3 / 255.0.0.0).

4. не забываем, что один и тот же пользователь может захотеть выходить с нескольких устройств.

Для этого и реализована авторизация по PIN. В общем, это я решил.

Я понимаю, что без mac юзвери могут подменять IP и "рубить халяву", но поверьте, с mac всё глючит и тупит (wi-fi сеть. Ethernet с "маком" работает стабильно). Эту проблему я решу по своему (повторная авторизация каждые 24 часа например.)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28507
    • Просмотр профиля
Re: NAT + Биллинг + Шейпинг + web интерфейс
« Ответ #3 : 13 Августа 2013, 23:44:52 »
Наибольшей надежности можно достичь либо используя прокси, либо какой-либо клиент для авторизации, в противном случае остается возможность обхода.
Попробуй обойти VPN подключение. Я на тебя посмотрю.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн drako

  • Старожил
  • *
  • Сообщений: 1422
    • Просмотр профиля
Re: NAT + Биллинг + Шейпинг + web интерфейс
« Ответ #4 : 14 Августа 2013, 01:41:53 »
1. php-скрипт, который при успешной авторизации прописывает в netfilter правило разрешающее выход в интернет для данного девайса по mac адресу.
На винде у меня получить мак по пхп не удавалось. Да и сеть у меня wi-fi. Иногда мак может не пропускать (глючное оборудование). Авторизация по IP работает стабильно.
Сам php не имеет нативных средств для получения mac адреса, но в php можно вызывать сторонние утилиты, которые могут узнать mac у dhcp сервера.
Если честно, я не очень понимаю почему у Вас wi-fi со свободным доступом, гораздо корректней было бы использовать авторизацию в wi-fi для разрешения выхода в интернет.
3. в netfilter создать правило, которое будет заворачивать всех кто не прошел по маку на страницу авторизации.

В яблочко!
Как это сделать? Что и где прописать? Примерчик можно, пожалуйста?
Приведите, пожалуйста примерчик, когда все IP перенаправляются на страницу авторизации, кроме разрешённых (например, кроме 10.0.0.3 / 255.0.0.0).
Нее, так не пойдет, почитать про netfilter Вам таки придется, иначе наворотите дел. Намекаю на nat prerouting redirect.
Наибольшей надежности можно достичь либо используя прокси, либо какой-либо клиент для авторизации, в противном случае остается возможность обхода.
Попробуй обойти VPN подключение. Я на тебя посмотрю.
Хм, и когда же vpn перестал работать в режиме клиент-сервер? :)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28507
    • Просмотр профиля
Re: NAT + Биллинг + Шейпинг + web интерфейс
« Ответ #5 : 14 Августа 2013, 05:14:12 »
Наибольшей надежности можно достичь либо используя прокси, либо какой-либо клиент для авторизации, в противном случае остается возможность обхода.
Попробуй обойти VPN подключение. Я на тебя посмотрю.
Хм, и когда же vpn перестал работать в режиме клиент-сервер? :)
Расшифруйте, сэр.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн nau..

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: NAT + Биллинг + Шейпинг + web интерфейс
« Ответ #6 : 14 Августа 2013, 14:47:44 »
...
Раздавать интернет по гостинице посредством WiFi. Авторизация через Web интерфейс по IP (можно и по MAC).
Раздача через NAT со статистикой по пользователям (по IP).
...

это называется хотспот
http://www.google.ru/search?client=opera&q=ubuntu+hotspot+howto&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest

P.S. Правилами вроде бы не должно быть запрещено, но вот http://wiki.mikrotik.com/wiki/Hotspot_server_setup как у микротика это выглядит. Это для нагладности и что бы представлять, что нужно запилить под управлением Ubuntu server
HF
« Последнее редактирование: 14 Августа 2013, 14:50:57 от nau.. »

Оффлайн hardir

  • Автор темы
  • Участник
  • *
  • Сообщений: 124
  • open source рулит
    • Просмотр профиля
    • маленький блог бедного программера
Re: NAT + Биллинг + Шейпинг + web интерфейс
« Ответ #7 : 17 Января 2014, 15:11:49 »
Миктроник очень сложен, запутан и нагроможден всяким хламом. Я хочу всё сделать САМ. Биллинг разработать тоже сам. Это не сложно, я уже так делал под виндой. Хочется переехать на linux. Может я недостаточно точно описал суть проблемы, попробую разбить её на этапы.
1) Раздача интернета посредством NAT (СДЕЛАНО, iptables)
2) Контроль доступа по IP+MAC (СЕЙЧАС ЭТО ПРЕДСТОИТ РЕАЛИЗОВАТЬ)
3) Динамический шейпинг канала. Нужно каждые 2 секунды перераспределять канал в зависимости от количества активных клиентов. (ПРЕДСТОИТ РЕАЛИЗОВАТЬ)
4) Всё это управляется через Web-интерфейс. Список пользователей, их баланс, добавление/удаление и т.д. (ЭТО Я СДЕЛАЮ САМ)


Сейчас затуп на 2-м этапе. Как контролировать доступ к интернету?
Нужно минимум изменений, максимум надёжности и стабильности. Читал про SC. Вроде оно самое, то что мне нужно. Но чёт я совсем не вкуриваю как заставить это работать. В репах CentOS нет sc, попробую копать в этом направлении...
« Последнее редактирование: 17 Января 2014, 15:18:25 от hardir »

 

Страница сгенерирована за 0.055 секунд. Запросов: 25.