LINUX.ORG.RU
ФорумAdmin

[Wi-fi] удобная организация.

 


0

2

Всёже пока так и висит у меня вопрос wi-fi удобного для гостей.

Задача: есть несколько зданий. В эти здания приезжают периодически гости из различных стран и этим гостям требуется wi-fi иногда. Также есть постоянные сотрудники, часть сотрудников может пользоваться Интернет, часть сотрудников на уровне начальства имеет запрет на Интернет (как на wi-fi, так и на проводной) - причина низкая производительность труда и дороговизна офисного канала Интернет. Первая часть сотрудников является начальством, и любит баловаться Iphone, Ipad, навигаторами, ноутбуками. Также как и гости приезжают с китайскими или испанскими смартфонами, что затрудняет нам как сотрудникам настройку wi-fi у них (ввод пароля и всё прочее).

Хочется такого: открытый wi-fi, тыркнул и сразу подключился. Если запустил браузер то увидел страницу с телефонами IT отдела. Не важно в общем, суть такова: тыркнул, позвонил кто-то в отдел (гостей всегда кто-то из начальства сопровождает), мы запустили нечто, где было показано: что в 10,30 утра подключился неизвестный клиент. Дать ему Интернет? - Если да, то на сколько? 1 день, 1год... И чтоб комент можно оставить что за клиент. После нажатия двух кнопок у гостя должно всё заработать.

Далее: есть начальство которое меняет смартфоны как перчатки, но иногда приносит старые смарты на работу. То есть, нужна некая пролонгация: Принёс начальник свою игрушку, тыркнул на wi-fi, позвонил, мы дали доступ на год. Если в течении года смартфон не будет появляться то чтоб запись об нём удалялась, если будет появляться, чтоб запись пролонгировалась. Ибо начальству не очень приятно принести телефон через пол года, и обнаружить, что им надо снова куда-то звонить, и об чём-то просить.

Почему мне не подходят всякие решения с одноразовыми паролями? - 1) секретарям запрещён доступ в Интернет, т.е. генерировать их придётся сотрудникам ИТ отдела, что не есть хорошо в плане временных затрат. 2) начальник не будет каждый раз запускать браузер и вводить что-то на подобии: wrjskh7 в качестве пароля, он просто всех проклянёт через неделю.

Какое решение мне наиболее подойдёт чтобы реализовать вышеописанное, и было как можно проще и удобнее в плане внедрения? Есть ряд точек с одинаковым SSID, планирую их положить просто в одни VLAN.

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

Писать скрипты наколенные? Если да, то как? Парсить логи dhcp, юзать atd для удаления старых записей, и пользовать iptables? - И ко всему этому сделать какую-то морду? Или в dhcp как-то попробовать использовать lease times для каждой записи новой персонально? Клиентов не столь много, можно обойтись и без пролонгации, а просто выставляя клиентам lease time скажем в 3 года - некоторым.

★★★★★

hostapd (или точка доступа умеющая радиус) + радиус сервер. А на радиус-сервере можно уже накрутить какие угодно политики и веб-морду нужную.

Вайфай клиент авторизуется в сети по логину-паролю (через EAP-TTLS к примеру), и уже радиус решает - давать ему доступ или нет. Ну а дальше дело твое, писать морду к радиусу и т.п. Там всё очень гибко.

blind_oracle ★★★★★
()

беги оттуда, беги :) вайфай - зло, а неконтролируемый и неогороженный вайфай - еще большее зло :)

Harald ★★★★★
()
Ответ на: комментарий от blind_oracle

Генерировать сертификаты, и разбираться в каком-нибудь блекбери с Итальянским языком на борту, корячить их туда и всё прочее..? Не, спасибо.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от Harald

Да не, в целом всё очень устраивает меня. Ну не хочет если главбух чтоб бухгалтера вместо того чтоб разбираться почему в отчёте расхождения сидели в быдлоодноклассниках...

DALDON ★★★★★
() автор топика

Ставишь WPA2 preshared key и сообщаешь его руководству. И не сообщаешь всем остальным.

Поскольку

гостей всегда кто-то из начальства сопровождает

=> у гостей пароль всегда будет. У начальства тоже.

zgen ★★★★★
()
Ответ на: комментарий от DALDON

Сертификаты для того же TTLS не нужны клиентские. Просто логин-пасс и всё. Все современные телефоны умеют работать с ним. Ну, дело хозяйское.

blind_oracle ★★★★★
()
Ответ на: комментарий от zgen

Такая схема сделана и сейчас, но пароль с течением времени «утекает»... Начальник сообщил одному подчинённому, по необходимости, а тот «без палева» уже отдал в офис его через прошествие времени. - А смена пароля на точке ведёт к тому, что необходимо менять его и на всех клиентских устройствах - начальство недовольно.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от aol

Можете привести use case из вышеперечисленных решений, который подойдёт для меня?

Дело в том, что всяких чудес в виде Radius и прочих прелестей мне в целом не требуется, требуется дать гостям и кому надо Интернет на ихние игрушки. Всё.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от aol

monowall и прочие это не плохо, но там нельзя выставить правила firewall на определённый срок «до». А всякие chlispot это в первую очередь коммерческий доступ. Каждый раз при обрыве вводить снова пароль никто не будет. Надо чтоб было максимально просто на стороне клиента всё сделать.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Привязка ip к mac адресу, разные правила iptables.

При первом включении новое клиентское устройство получает адрес из сети которая тупо перенаправляется на одну статическую страницу и больше ничего не имеет. При этом ты получаешь новый mac адрес. Можно сделать на странице форму где требовать комментарий (представиться), что бы тебе не копаться в куче маков.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Ну да, это ближе всего, только я вот думаю, как с наименьшими костылями этого всего добра добиться.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от sin_a

И в Вашем случае клиент должен будет переконектиться, чтоб получить другой адрес, а идеальный случай это конечно-же не объяснять Итальяшке, что он должен переконектиться, а просто чтоб у него всё заработало без лишних вопросов, то есть я хотел бы сразу отдать ему валидный адрес.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Приходит клиент, подключает wifi -> доступа нет (страничка-инфо)

-- опрашивается по snmp коммутатор на наличие новых mac, если есть - message to admin --

Скрипт добавляет правило iptables -A FORWARD -m mac --mac-source ff:ff:ff:ff:ff:ff -j ACCEPT

доступ есть.

uspen ★★★★★
()
Ответ на: комментарий от sin_a

Да, и как это сделать по уму, и попроще? В этом и вопрос. У меня к примеру есть некий range, пришёл гость (гостей может быть и пять одновременно!), тыркнул, получил коннект, его сопровождающий позвонил в отдел, я спросил кто-это, написал сам комент к примеру: Испанец1, Испанец2, Испанец3, спросил как долго они тут будут сидеть, мне сказали две недели, я скзаал ок. И у них появился Интернет. Через две недели чтоб удалилось всё это дело. А вот начальство, чтоб мне позвонило, и я написал что надо держать это дело скажем 2 года (за два года они себе телефон так или иначе сменят скорее всего, ну через два года позвонить ещё раз это уже не есть трудность на самом то деле). Сами понимаете, объяснять группе из 5ти человек, что им надо ввести куда-то какой-то комментарий надо, уже не столь просто.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от uspen

А если речь идёт о разбросанных точках доступа и не совсем управляемых свитчах на пути к ним... И если я сделаю точку открытым, чтоб мне тоже не ломились сообщения о том что всякий дурень попробовать Интернет решил...

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

не совсем управляемых свитчах на пути к ним

достаточно arp -n на шлюзе

не ломились сообщения о том что всякий дурень попробовать Интернет решил...

а в случае каптив портала тоже дурни будут каменты слать

uspen ★★★★★
()
Ответ на: комментарий от DALDON

Комментарий можно не делать, он вообще нужен только тебе что бы отличать кто из них кто. Можно сделать его необязательным, кто не вписал - ждёт полчаса (пока ты работаешь, пыхтишь, разбираешься в этих их адресах), кто вписал - получает сразу. Может быть так подоходчивей будет

На чём это строить - не подскажу, но здесь говорили красивое слово «радиус», может быть оно как раз отсюда.

sin_a ★★★★★
()
Ответ на: комментарий от uspen

и что тебе при твоих условиях мешает давать временный доступ (1 час - 1 неделю) и/или по лимиту трафика в час/неделю?

Ну будет твой итальянец раз в неделю тыкать на страничке инфо «подключиться» и что?

Так как у тебя нет авторизации, значит любой дурень сможет воспользоваться твоими ресурсами. Либо делай авторизацию

uspen ★★★★★
()
Ответ на: комментарий от uspen

Vpa2psk в любом случае должно быть. Даже если оно шуточное и все знают ключ, хотя бы трафик друг у друга не слушать.

sin_a ★★★★★
()
Ответ на: комментарий от uspen

Во, я тоже думаю, что Вы дело говорите! Придумал. Скрипт каждые 3 мин. смотрит arp -n, сверяет правила iptables с маками в кеше арп таблицы, если видит новый mac куда-то его откладывает. Я запускаю некую утилитку, и оно говорит, за последние минуты тут вот появилось новое устройство, дать ему Интернеты? Я говорю дай! Оно спрашивает на сколько батенька? Я говорю да на пару недель. Или дай на пару лет. Оно говорит хорошо. И где-то отмечает что это правило надо через две недели вынести с этим маком из iptables.

Огромное спасибо, я не знал что iptables умеет по MAC правила строить.

Вопрос, как более просто через n времени вынести MAC правило из iptables файла с правилами? at? Или что-то покошернее есть навроде модуля time в iptables? Жаль, что он мне не подходит похоже...

DALDON ★★★★★
() автор топика
Ответ на: комментарий от sin_a

Ну да, я понимаю, что априори нешифрованная сеть есть плохо. И что маки можно своровать, и подменить, да только я не думаю, что в промзонах особо этим будет кто-то морочиться. Впрочем да, можно повесить пароль на WPA2 в открытый доступ.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от zgen

Ну один начальник любит всякую херню на подобии: ааа, вышла новая прошивка!!! Срочно надо накатиться!!! И офисный подчинённый попросил тоже ему за одно обновить... И пошло поехало... Потом менять пароли ох как и не вариант...

DALDON ★★★★★
() автор топика

часть сотрудников на уровне начальства имеет запрет на Интернет (как на wi-fi, так и на проводной) - причина низкая производительность труда и дороговизна офисного канала Интернет

я бы не стал запрещать, просто, обрезать канал до, например, 32кбит.

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

Ой, начальство в этом ни бум-бум, им надо чтоб сотрудники хоть что-то делали, а не сидели в чате и одноклассниках. Это уже усмотрение начальства. Так что я только исполнитель. Сказали выключить -> мы выключили.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

Ну для чатов этого вполне хватит. Вообще говоря пробовали резать канал, они начинали ныть что слишком медленно... :)

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Ну не хочет если главбух чтоб бухгалтера вместо того чтоб разбираться почему в отчёте расхождения сидели в быдлоодноклассниках...

Мотивировать сотрудников нужно другими способами. Найдётся умелец в бухгалтерии, который притащит usb-модем и будет всем в своём отделе раздавать интернет, и что тогда?

anonymous
()

Я конечно не админ, но на мой взгляд очевидным решением было бы не разрешать доступ по мак-адресам, а, наоборот, запрещать. Вряд ли у бухгалтеров меняется комп чаще раза в несколько лет, а поменять мак-адрес не всякая секретарша сможет.

anonymous
()
Ответ на: комментарий от DALDON

Вообще говоря пробовали резать канал, они начинали ныть что слишком медленно...

А когда совсем отключено - не ноют?

Вообще - не нужно было говорить, что резали :)

lazyklimm ★★★★★
()
Ответ на: комментарий от anonymous

То есть, разрешать по умолчанию всем, а запрещать только избранным или по запросу непосредственного начальника, если он видет, что сотрудник сидит в одноклассниках.

anonymous
()
Ответ на: комментарий от DALDON

Тебе многие годные советы дали. sin_a особенно, просто я поднес ближе к печке.

Вопрос, как более просто через n времени вынести MAC правило из iptables файла с правилами?

ну, на коленке так:

# iptables -D FORWARD -m mac --etc..
# sed -i '/iptables -A FORWARD -m mac --etc../d' /etc/init.d/firewall
или так
# sed -i '/ff:ff:ff:ff:ff:ff/d' /etc/init.d/firewall

uspen ★★★★★
()
Ответ на: комментарий от uspen

Да, sin_a тоже весьма годно подсказал. Городить просто radius серверы, и возиться с паролями - не охото ну никак. Если б, я продавал трафик это одно, а мне просто надо доступом порулить, да так чтоб не бегать взад да назад из-за всякой ерунды, вида: шеф отдела XXX купил Ipad3 , и это стало для всех событием, теперь надо Интернеты!

upsen, отлично, да, sed что надо, теперь мне бы вот чего надо запилить:

Грепать кеш arp и сравнивать все mac из таблицы с файлом правил iptables, если в arp есть что-то отличное от файла с правилами firewall выводить принтом этот mac. Поможете плиииз. :)

# arp -n |awk 'NR > 1 {print $3}' - вот так я начал, пока получил просто список mac, что дальше делать пока не особо представляю... В этом деле не очень силён...

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Ну один начальник

Я уже написал. Пусть не раздают - будут довольны. Или раздают и тогда вбивают новый пароль в случае чего. Или пусть wifi будет доступен всем. Или пусть остаются недовольны постоянной сменой пароля (тоже вариант)

Во всех случаях крайнее звено - они.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Во всех случаях им пофиг. Есть начальник одного отдела, и ему нет никакого дела совершенно до тараканов в голове у начальника другого отдела. Если другой начальник запретил интернеты всем, то это никак не волнует начальников остальных XX отделов. А уж генеральному директору и тем более по барабану на всю эту кухню, ему надо чтоб «просто работало», чтобы он не звонил по 100 раз в отдел к нам.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от zgen

И да: во всех случаях крайнее звено ИТ отдел, ибо он должен придумать так, чтоб у всех было нормально и хорошо, чтоб не надо было им звонить постоянно. :)

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Во всех случаях им пофиг.

Тогда 2 (3-5-7) wifi под количество участников, которым на все насрать и хочется, чтобы все было.

За все надо платить.

zgen ★★★★★
()
Ответ на: комментарий от DALDON

arp -n |awk 'NR > 1 {print $3}' > maclist1

через 3 минуты

arp -n |awk 'NR > 1 {print $3}' > maclist2

newmac="`diff maclist{1,2}`"
if [ -n "$newmac" ]; then
 echo "$newmac" | \
  while read line; do 
   iptables -A FORWARD -m mac --mac-source "$line" -j ACCEPT; echo "FORWARD -m   mac --mac-source $line -j ACCEPT" >> rulesdb
  done
 echo -e "Mac:\n $newmac \n added"|mail -s newmac admin@example.com
fi

чтоб удалить

while read line; do iptables -D $line; done < rulesdb
Только учти, что все подряд новые маки добавятся.

uspen ★★★★★
()
Ответ на: комментарий от uspen

и еще. лучше сравнивать не с arp кэшем, а с эталонным списком маков, так как утром включиться компьютер запрещенной бухгалтерши и он удачно выйдет в сеть.

uspen ★★★★★
()
Ответ на: комментарий от uspen

А таблица arp по идее сама чистится ведь через некоторое время, сейчас буду покусочно тестировать работу скрипта! Но в любом случае Вам три чая! Отпишусь как и чего.

А что касаемо всего остального что сказал Господин zgen про политическое решение: это всё хорошо, но у меня отделов более 30ти, и начальники в них далеко не белые воротнички, а рабочие по металлу... Так что я вот по-этому и занимаюсь технической стороной.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от uspen

Вот с выводом diff я и сам мучаюсь. Тут не совсем правильно вы сделали...

# echo $newmac # 1a2 > 00:17:31:89:47:fa

Это во-первых, а во-вторых, что будет если появится два новых мака?

DALDON ★★★★★
() автор топика
Ответ на: комментарий от uspen

И ещё: в таком скрипте им надо будет успеть позвонить в отдел за три минуты, а иначе mac1 и mac2 будут идентичны уже. По-этому я хочу сравнивать mac с rulesdb... А это уже посложнее будет.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от uspen

В идеале оно должно смотреть кеш arp сравнивать его с rulesdb и строить массив, затем из этого массива делать список и выводить его в листинг! К примеру: я не буду подключать никого если обнаружу два новых мака, хотя в данный момент времени меня известили только об одном госте, я попрошу его переподключиться (предварительно почистив кеш arp и запустив снова скрипт (это я думаю не сложно сделать в виде кнопки) и это не часто конечно думаю будет). Если всё ок, я указываю кол-во дней жизни в rulesdb (тут я уже асилил в общем то at -f), и жму ентер, всё. Пользователь добавлен на n дней.

Вопрос в массиве и чтения с него, и сравнения с него.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

я ж сказал, что нужно сравнивать с эталоном. Скрипт как раз и рассчитан, что в переменной $newmac будет много адресов - там построчное чтение. Сравнение - man comm

uspen ★★★★★
()
Ответ на: комментарий от DALDON

А почему бы не поднять несколько вайфаев сразу: для гостей, для планктона, для директоров.

Соответственно всех их в разные, полностью разделённые подсети. Для гостей можно какие-нибудь OTP-пароли, ну вобщем чё-нить замутить, чтобы пароль каждый раз был новый и соответственно рядовые сотрудники никак не могли воспользоваться этой сетью.

Для рядовых сотрудников всё легко: на точке делаем список разрешённых маков, остальные блокируем, по желанию включаем шифрование чтоб хоть трафик не слушали.

Для директоров всё просто: на вайфае стоит WPA2 с 10-значным буквоциферным паролем, который вводим один раз и забываем, плюс фильтрация по макам тоже не помешает.

Я так предполагаю что всё же люди сидят в разных комнатах территориально и не факт вообще что у рядовых сотрудников будет ловится вайфай для гостей.

Gordon01 ★★
()
Ответ на: комментарий от uspen

Беда в том, что comm может сравнивать только отсортированные списки... Это надо ещё тогда мудрить с убиранием видимо точек, в адресах, как-то переводить это всё в числа, и потом сортировать чтоль? Большими костылями пахнет, не уж-то как-то более изящно не решить эту задачу в Linux? :)

Про построчное чтение виноват, затупил.

DALDON ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.