The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Перевод Wireless HotSpot HowTo (wireless wifi hotspot perl billing auth radius)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: wireless, wifi, hotspot, perl, billing, auth, radius,  (найти похожие документы)
From: Руслан Денисенко Date: Mon, 25 Jun 2006 14:31:37 +0000 (UTC) Subject: Перевод Wireless HotSpot HowTo Оригинал: http://howtoforge.org.ua/?q=node/42 Linksys WRT54GS + OpenWRT + ChillSpot + FreeRadius (Mysql авторизацией и хранением аккаунтов) + PHP/Perl Автор: Yunus Bookwal Оригинал статьи: http://www.howtoforge.com/wireless_hotspot_howto Версия перевода: 1.0.0 Автор перевода: Руслан Денисенко Перед тем, как вы начнете Я порекомендую с чем вам надо ознакомиться: OpenWRT - www.openwrt.org ChilliSpot - www.chillipot.org FreeRadius - www.freeradius.org Mysql - www.mysql.com PHP - www.php.net Perl - www.cpan.org Краткое введение : OpenWrt - это дистибутив Linux для Linksys WRT54G. Мы будем использовать OpenWrt в качестве замены к оригинальной firmware Linksys, которая прибывает заранееустановленной с маршрутизатором. ChilliSpot - это контролер доступа к беспроводным сетям. Он используется для идентификации пользователей беспроводных сетей. Поддерживает web based авторизацию для узлов беспроводного доступа . Chilli демон играет первоначальную роль в полной установке узла беспроводного доступа. Он работает на маршрутизаторе и обеспечивает доступ пользователей к беспроводной точке доступа. FreeRadius - это сервер, который управляет идентификацией удаленного пользователя и хранением аккаунтов. Mysql - это opensource сервер базы данных. Вся пользовательская база данных, все аккаунты хранятся в базе данных Mysql. Используйте это howto на ваш собственный риск...!!! Я следовал по тем шагами которые продемонстрированы здесь. У меня все работало. Вам возможно потребуются специальные настройку согласно вашей потребности. Установка маршрутизатора Linksys Я использовал маршрутизатор Linksys WRT54GS для этой установки. Для других поддерживаемых маршрутизаторов, посмотрите: http://wiki.openwrt.org/OpenWrtDocs/Installing Нам нужно установить OpenWrt на маршрутизаторе. Это сделано путем сброса заранее установленной firmware Linksys с openwrt . Вам, возможно, нужно сделать downgrade firmware linksys для разрешения опции boot _ wait . 1. Загрузит firmware можно отсюда wget ftp://ftp.linksys.com/pub/network/WRT54GS_3.37.2_US_code.zip на свой компьютер. 2. Сетевой кабель должен быть подключен к PORT 1 на маршрутизаторе. 3. Заходим в браузер, и указываем адрес панели администрирования LinkSys, обычно http://192.168.1.1, перейдите к Admin Page -> Upgrade firmware link 4. Загрузим скаченную выше firmware на маршрутизатор. 5. Как только Вы успешно произвели downgrade firmware, перейдите к Administration -> Diagnostics -> Ping test 6. Введите точно каждую упомянутую ниже строку в область "адреса IP", одна строка за раз, нажимая кнопку Ping после каждой строки. ;cp${IFS}*/*/nvram${IFS}/tmp/n ;*/n${IFS}set${IFS}boot_wait=on ;*/n${IFS}commit ;*/n${IFS}show>tmp/ping.log 7. Когда вы получите окно последней команды ping , оно должно быть заполнено длинным списком переменных, включая boot_wait=on где угодно в списке. 8. Сейчас вы готовы установить актуальную firmware openwrt . Для этого Вам нужен TFTP клиент. 9. Скачать firmware openwrt wget http://downloads.openwrt.org/whiterussian/rc3/bin/openwrt-wrt54gs-jffs2.bin Основная задача использования клиента tftp , чтобы переслать новую firmware на ваш маршрутизатор. 1. Отключите питание от вашего маршрутизатора 2. Запустите tftp клиент Укажите адрес маршрутизатора (обычно 192.168.1.1) Установить mode в octet Укажите tftp клиенту повторно отсылать файл, пока он не будет закачен Отправьте файл 3. Включите маршрутизатор, при этом tftp клиент должен работать и постоянно пробовать подключиться. 4. Как только tftp client получит ack от bootloader , начнется отправка firmware Пожалуйста будьте терпеливы, повторная перепрошивка происходит после того как firmware переслана на маршрутизатор. Не отключайте маршрутизатор, он автоматически перезапустится с новой firmware. Типичная tftp сессия tftp 192.168.1.1s tftp> binary tftp> trace Packet tracing on. tftp> put openwrt-wrt54gs-jffs2.bin На системе Windows , можно сделать так tftp -i 192.168.1.1 PUT openwrt-wrt54gs-jffs2.bin из командной строки. На маршрутизаторах с DMZ индикатором, OpenWrt зажжет DMZ индикатор при загрузке, после загрузки индикатор погаснет. Иногда автоматический перезапуск не работает, так что вы сможете безопасно перезапустить маршрутизатор через 5 минут. Если все вплоть до этого шага идет отлично, мы готовы использовать маршрутизатор с новым OpenWrt . Использование маршрутизатора OpenWrt. Сейчас Вы можете подключиться к маршрутизатору подобно подключению к Linux. Но первое что надо сделать после того, как маршрутизатор перезапущен - установить пароль для ` root ' пользователя. В этот момент вы можете подключится через telnet к маршрутизатору. Если вы установили пароль для ` root ', то при следующем перезапуске вы сможете подключится к маршрутизатору только через ssh . IP Адрес заданный по умолчанию на маршрутизаторе 192.168.1.1, ваша машина принадлежит к сетевым диапазонам 192.168.1.*. # telnet 192.168.1.1 Проверьте что опция boot _ wait включена. boot _ wait должен быть включен для обновления или восстановления плохой инсталляции. # nvram get boot_wait boot _ wait = on Устанавливаем пароль для пользователя `root' # passwd Если вы получили любую ошибку при установке пароля, запустите следующую команду. # firstboot Или маршрутизатору требуется перезагрузка. # reboot Сейчас вы можете подключится к маршрутизатору через ssh протокол, и приступить к его конфигурированию. # ssh root @192.168.1.1 Мы будем использовать маршрутизатор как <<Точку доступа>>. Запустите следующие команды на маршрутизаторе. Эти команды устанавливают параметры сети маршрутизатора, для доступа к Internet ( WAN ). # nvram set wan_ifname=vlan1 # nvram set wan_proto=static # nvram set wan_ipaddr=xxx.xxx.xxx.xxx # nvram set wan_netmask=255.255.255.0 # nvram set wan_gateway=192.168.1.1 # nvram set wan_dns=192.168.1.1 # nvram commit Если ваш маршрутизатор получает IP Адрес через DHCP , вам нужно выполнить только это. # nvram set wan_ifname=vlan1 # nvram set wan_proto=dhcp # nvram commit Для PPPoE Internet подключения # nvram set wan_ifname=ppp0 # nvram set wan_proto=pppoe # nvram set ppp_mtu=1492 # nvram set pppoe_ifname=vlan1 # nvram set ppp_username=your_isp_login # nvram set ppp_passwd=your_isp_password # nvram commit Сейчас вам необходимо перезагрузить маршрутизатор. Установка ChilliSpot Скачайте следующие архивы на ваш компьютер Модуль для создания туннеля на маршрутизаторе # wget http://downloads.openwrt.org/experimental-20050525/bin/packages/kmod-tun_2.4.30-1_mipsel.ipk Chilli daemon # wget http://chillispot.org/download/chillispot_1.0-1_mipsel.ipk # wget http://chillispot.org/download/chillispot-1.0.tar.gz Скопируйте эти файлы на маршрутизатор # scp kmod-tun_2.4.30-1_mipsel.ipk [email protected]:/tmp # scp chillispot_1.0-1_mipsel.ipk [email protected]:/tmp Войдите на маршрутизатор через SSH # ssh root @192.168.1.1 На маршрутизаторе # cd /tmp # ipkg install kmod-tun_2.4.30-1_mipsel.ipk Редактируем /etc/modules и добавим "tun" в него. Это загружает модуль tun , после каждой перезагрузки маршрутизатора. На маршрутизаторе вы можете использовать редактор vi . OpenWrt поставляется со следующими сетевыми интерфейсами: * eth0: LAN Switch. Is used as the connection point for the VLANs. Do never use this port directly. * eth1: Wireless Interface * vlan1: Virtual LAN: Internet * vlan0: Virutal LAN: Port 1 to 4 * br0: Bridge between vlan0 and eth1. Мы имеем сеть не доступную через радио и наоборот, удалим интерфейс eth1 с моста. Запустите следующие команды # nvram set lan_ifnames="vlan0 eth3" # nvram commit # /etc/init.d/S40network restart Установка chillispot # cd /tmp # ipkg install chillispot_1.0-1_mipsel.ipk Теперь firewall на месте. Скопируйте firewall скрипты из исходных кодов на маршрутизатор. Untar исходники chillispot на ваш компьютер # tar zxvf chillispot-1.0.tar.gz # cd chillispot-1.0/doc # scp firewall.openwrt [email protected]:/tmp На маршрутизаторе # rm /etc/init.d/S45firewall # cp /tmp/firewall.openwrt /etc/init.d/S45firewall # chmod 755 /etc/init.d/S45firewall Мне пришлось отредактировать скрипт S 45 firewall и изменить WANIF=$(nvram_get wan_ifname) на WANIF=$(nvram get wan_ifname) Chilli сам заботится о назначении IP адресов для беспроводных клиентов. Теперь мы можем безопасно удалить dnsmasq сервис openwrt dns и dhcp . # rm /etc/init.d/S#dnsmasq Замените # в S#dnsmasq подходящим числом. Сконфигурируем Chilli для загрузки при старте маршрутизатора. Отредактируем / etc / init . d / S 50 services и добавим эти строки в конец. sleep 5 /usr/sbin/chilli Конфигурационный файл chilli daemon можно найти /etc/chilli.conf на маршрутизаторе. Сейчас перед всеми дальнейшими конфигурациями chilli , мы будем инсталлировать и конфигурировать UAM и FreeRadius сервер. Мы будем использовать Universal Access Method ( UAM ) для авторизации и входа в беспроводную точку доступа. С UAM беспроводные клиенты переадресовываются на страницу входа в систему что бы быть авторизированным при первом запросе Internet или Extranet . Я предполагаю что у Вас установлен и сконфигурирован Apache httpd сервер, для обработки CGI страниц. UAM метод использует скрипт hotspotlogin.cgi , который можно найти в doc/hotspotlogin.cgi в директории с исходниками chillispot . Положите cgi -сценарий в директорию где apache исполняет cgi -сценарии, по умолчанию используйте /var/www/cgi-bin/ на вашем сервере. Откройте для редактирования hotspotlogin . cgi . Разкомментируйте следующие строки $uamsecret = "ht2eb8ej6s4et3rg1ulp"; Change this to your liking. $ userpassword =1; Сценарий hotspotlogin.cgi требует https( SSL ). Вам, возможно, нужно сконфигурировать SSL сертификаты. FreeRadius Мы будем иметь FreeRadius сервер, сконфигурированный с поддержкой MySql для авторизации и хранения аккаунтов пользователей. Если компилировать из исходных кодов # wget ftp://ftp.freeradius.org/pub/radius/freeradius-1.0.5.tar.gz # tar zxvf freeradius-1.0.5.tar.gz # cd freeradius-1.0.5 # ./ configure --with-mysql # make && make install Конфигурирование FreeRadius Мы подготовим базу данных для использования с freeradius . # mysql -u root -p > create database radius; > quit # mysql -u root -p radius < /usr/share/doc/freeradius-x.x.x/db_mysql.sql # mysql -u root -p > GRANT select,insert,update,delete,create,drop ON radius.* TO `radiususer'@'localhost' IDENTIFIED BY 'radiuspasswd'; > quit редактируем /etc/raddb/radius.conf или /usr/local/etc/raddb/radius.conf В итоге ваш radiusd.conf должен выглядеть приблизительно так : authorize { preprocess chap mschap # auth_log # attr_filter # digest suffix sql # file # eap # etc_smbpasswd # ldap } authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP{ mschap } # pam # unix # Auth-Type LDAP { # ldap # } # eap } preacct { pre process acct_unique suffix # files } accounting { acct_unique detail # counter unix sql radutmp # sradutmp } session { radutmp } Файл radius.conf является хорошо комментированным, вы можете настроить его за вашей потребностью. Отредактируйте фаил /etc/raddb/sql.conf и введите адрес сервера, логин и пароль для подключения к вашему MySQL серверу и базе данных RADIUS . Dialupadmin Dialupadmin - это система управления пользователями RADIUS, посредством WEB интерфейса. Cкопируйте директорию dialup_admin из директории с исходниками freeradius в /usr/local/dialup_admin # cp -r freeradius-x.x.x/dialup_admin /usr/local/ Создайте symlink от вашего корневого каталога веба-сервер к dialup_admin/htdocs # ln -s /usr/local/dialup_admin/htdocs /var/www/html/dialupadmin Отредактируйте dialup_admin/conf/admin.conf. general_radiusd_base_dir: /usr/local/radiusd general_domain: company.com general_lib_type: sql general_radius_server: localhost general_radius_server_port: 1812 general_encryption_method: clear sql_type: mysql sql_server: localhost sql_port: 3306 sql_username: radiususer sql_password: radius69passwd sql_database: radius Сейчас Вы можете обратиться к dailup_admin по следующему URL : http://yourwebsever/dialupadmin Сейчас мы можем продвинуться вперед по конфигурированию chilli на маршрутизаторе. Файл конфигурации chilli может быть найден в /etc/chilli.conf на маршрутизаторе. Конфигурационные директивы о которых нужно изменить. #dns server that will be specified to the clients machines dns1 172.16.0.5 dns2 172.16.0.6 #domain name that will be suggested to the clients domain your.hotspot.com #radius server IP radiusserver1 192.168.0.100 radiusserver2 192.168.0.101 #secret shared between the router and the radius servers #on the radius server it in the file clients.conf radiussecret somesecret123 #Location ID of the router that will be sent to the radius for #accounting purpose radiuslocationi isocc=in,cc=91,ac=400078,network=HOME_Nework #Location name radiuslocationname HOME,magnet dhcpif eth1 #DHCP lease period in seconds lease 900 #UAM paramter. URL of web server handling authentication. Uamserver https://youruamserver/cgi-bin/hotspotlogin.cgi #secret shared between chilli and authentication web server. #Specify same as mentioned in the hotspotlogin.cgi uamsecret ht2eb8ej6s4et3rg1ulp #Domains that users can browse with out authentication uamallowed www.chillispot.org,www.openwrt.org Есть другие параметры, которые могут быть изменены согласно вашему предпочтению. Тестирование полной установки Вся основная конфигурация сделана, и готова к проверке . Укажите браузеру адрес WEB интерфейса dialup_admin. Создайте аккаунт тестового пользователя. Будут работать только имя пользователя и пароль, остальные поля можете оставить пустыми . Запустите сервер chilli на маршрутизаторе в отладочном режиме. # /usr/sbin/chilli - f - d Также запустите radius на сервере, если он не запущен. Использование - X , чтобы видеть отладочных данные. # /usr/sbin/radiusd - X Сейчас с вашей беспроводной клиентской машины, попробуйте выйти в Интернет. Ваш браузер должен перейти к странице hotspotlogin.cgi. Используйте имя/пароль пользователя тестового аккаунта, который вы создали для входа в систему.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1.1, Сергей (??), 15:13, 13/06/2007 [ответить]  
  • +/
    А как настроить Радиус так, что бы если пользователь  уже авторизировался (ВПН) нельзя было под темже логином войти второй раз? :-)

    По умолчанию можно под одним логином войти сколько хочешь раз одновременно :)

     
     
  • 2.3, alt (?), 16:12, 24/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    нужно добавить в табличку radcheck следующие данные: username, Simultaneous-Use, :=, 1
     

  • 1.2, SS (??), 16:58, 31/12/2008 [ответить]  
  • +/
    Вы хотите сказать, что на линксис становится MySQL server или он у вас на отдельном внешнем сервере?%)
     
     
  • 2.4, alt (?), 16:13, 24/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    на вайфай точке стоит отлько chilli, mysql+freeradius+apache стоит в другом месте.
     

  • 1.5, alt (?), 16:19, 24/02/2009 [ответить]  
  • +/
    Жалко нет примера для учета трафика времени и сброса пользователя при привышении лимита.
     
  • 1.6, xolodru (ok), 00:12, 08/08/2009 [ответить]  
  • +/
    Ребят, а кто нибудь делал нарезку скорости для chillispot который работает в связки с abills?
    У меня два NAS сервера(chillispot и mpd5), всё крутиться на одной машине, через mpd5 шейпер работает на УРА, используя ng_car, а, как теперь нарезать скорость для chillispotа?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру