{"id":37065,"date":"2019-10-31T22:15:33","date_gmt":"2019-10-31T19:15:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/wifi-enterprise-freeradius-freeipa-ubiquiti\/"},"modified":"2019-10-31T22:15:33","modified_gmt":"2019-10-31T19:15:33","slug":"wifi-enterprise-freeradius-freeipa-ubiquiti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/wifi-enterprise-freeradius-freeipa-ubiquiti","title":{"rendered":"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/4c045a0710e5eb14b73359afad484c3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJu\u017c wcze\u015bniej opisano kilka przyk\u0142ad\u00f3w organizacji korporacyjnego WiFi. Tutaj opisz\u0119, jak zrealizowa\u0142em podobne rozwi\u0105zanie oraz problemy, z kt\u00f3rymi si\u0119 zmierzy\u0142em przy pod\u0142\u0105czaniu r\u00f3\u017cnych urz\u0105dze\u0144. B\u0119dziemy korzysta\u0107 z ju\u017c istniej\u0105cego LDAP z dodanymi u\u017cytkownikami, uruchomimy FreeRadius i skonfigurujemy WPA2-Enterprise na kontrolerze Ubnt. Wydaje si\u0119 proste. Zobaczymy\u2026<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Troch\u0119 o metodach EAP<\/h2>\n<p>\nZanim przyst\u0105pimy do wykonania zadania, musimy okre\u015bli\u0107, jak\u0105 metod\u0119 autoryzacji b\u0119dziemy stosowa\u0107 w naszym rozwi\u0105zaniu.<\/p>\n<p><b>Z Wikipedii:<\/b><\/p>\n<blockquote><p>EAP to ramy autoryzacji, kt\u00f3re cz\u0119sto s\u0105 u\u017cywane w sieciach bezprzewodowych oraz w po\u0142\u0105czeniach punkt-punkt. Format zosta\u0142 po raz pierwszy opisany w RFC 3748 i zaktualizowany w RFC 5247.<br \/>\nEAP jest u\u017cywane do wyboru metody autoryzacji, wymiany kluczy oraz przetwarzania tych kluczy przez pod\u0142\u0105czane modu\u0142y zwane metodami EAP. Istnieje wiele metod EAP, zar\u00f3wno okre\u015blonych razem z samym EAP, jak i wydanych przez r\u00f3\u017cnych producent\u00f3w. EAP nie definiuje poziomu \u0142\u0105cza; okre\u015bla tylko format wiadomo\u015bci. Ka\u017cdy protok\u00f3\u0142 korzystaj\u0105cy z EAP ma sw\u00f3j w\u0142asny protok\u00f3\u0142 enkapsulacji wiadomo\u015bci EAP. <\/p><\/blockquote>\n<p>\n<b>Same metody:<\/b><\/p>\n<ul>\n<li>LEAP to protok\u00f3\u0142 proprietarny opracowany przez firm\u0119 CISCO. Znaleziono w nim luki. Obecnie nie jest zalecane jego u\u017cywanie. <\/li>\n<li> EAP-TLS jest dobrze wspierany przez dostawc\u00f3w rozwi\u0105za\u0144 bezprzewodowych. Jest protoko\u0142em bezpiecznym, poniewa\u017c jest nast\u0119pc\u0105 standard\u00f3w SSL. Konfiguracja klienta jest do\u015b\u0107 skomplikowana. Potrzebny jest certyfikat klienta poza has\u0142em. Obs\u0142ugiwany w wielu systemach. <\/li>\n<li> EAP-TTLS jest szeroko wspierany w wielu systemach, oferuj\u0105c dobr\u0105 bezpiecze\u0144stwo, wykorzystuj\u0105c certyfikaty PKI tylko na serwerze autoryzacji. <\/li>\n<li> EAP-MD5 to inny otwarty standard. Oferuje minimalne bezpiecze\u0144stwo. Jest podatny na ataki, nie wspiera wzajemnej autoryzacji ani generowania kluczy. <\/li>\n<li> EAP-IKEv2 oparty jest na protokole wymiany kluczy Internet Key Exchange version 2. Zapewnia wzajemn\u0105 autoryzacj\u0119 i ustanawianie klucza sesyjnego mi\u0119dzy klientem a serwerem. <\/li>\n<li> PEAP to wsp\u00f3lne rozwi\u0105zanie CISCO, Microsoftu i RSA Security jako otwarty standard. Szeroko dost\u0119pne w produktach, zapewnia bardzo dobre bezpiecze\u0144stwo. Podobne do EAP-TTLS, wymaga jedynie certyfikatu po stronie serwera. <\/li>\n<li> PEAPv0\/EAP-MSCHAPv2 \u2014 po EAP-TLS to drugi najszerzej u\u017cywany standard na \u015bwiecie. U\u017cywa po\u0142\u0105czenia klient-serwer w Microsoft, Cisco, Apple, Linux <\/li>\n<li> PEAPv1\/EAP-GTC \u2014 stworzony przez Cisco jako alternatywa dla PEAPv0\/EAP-MSCHAPv2. Nie chroni danych uwierzytelniaj\u0105cych w \u017cadnym przypadku. Nie s\u0105 obs\u0142ugiwane w systemie Windows <\/li>\n<li> EAP-FAST \u2014 metoda opracowana przez Cisco, aby naprawi\u0107 niedoci\u0105gni\u0119cia LEAP. U\u017cywa Protected Access Credential (PAC). Ca\u0142kowicie nieuko\u0144czona <\/li>\n<\/ul>\n<p>\nZ ca\u0142ej tej r\u00f3\u017cnorodno\u015bci wyb\u00f3r i tak nie jest wielki. Metoda uwierzytelniania powinna zapewnia\u0107: dobr\u0105 bezpiecze\u0144stwo, wsparcie na wszystkich urz\u0105dzeniach (Windows 10, macOS, Linux, Android, iOS) i, oczywi\u015bcie, im pro\u015bciej, tym lepiej. Dlatego wyb\u00f3r pad\u0142 na EAP-TTLS w po\u0142\u0105czeniu z protoko\u0142em PAP. <br \/>\nMo\u017ce pojawi\u0107 si\u0119 pytanie \u2014 po co u\u017cywa\u0107 PAP? Przecie\u017c przesy\u0142a has\u0142a w otwartym tek\u015bcie? <\/p>\n<p>Tak, to prawda. Komunikacja mi\u0119dzy FreeRadius a FreeIPA b\u0119dzie przebiega\u0107 w\u0142a\u015bnie w ten spos\u00f3b. W trybie debugowania mo\u017cna \u015bledzi\u0107, jak wysy\u0142ane s\u0105 username i password. I niech si\u0119 wysy\u0142aj\u0105, tylko macie dost\u0119p do serwera FreeRadius.<\/p>\n<p>Wi\u0119cej o dzia\u0142aniu EAP-TTLS mo\u017cna przeczyta\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.bmstu.wiki\/EAP-TTLS_(Tunneled_Transport_Layer_Security)\">tutaj<br \/>\n<\/a><\/noindex><\/p>\n<h2>FreeRADIUS<\/h2>\n<p>\nB\u0119dziemy uruchamia\u0107 FreeRadius na CentOS 7.6. To nie jest skomplikowane, instalujemy w zwyk\u0142y spos\u00f3b.<\/p>\n<pre><code class=\"bash\">yum install freeradius freeradius-utils freeradius-ldap -y<\/code><\/pre>\n<p>\n<i>Z pakiet\u00f3w instalowana jest wersja 3.0.13. Najnowsz\u0105 mo\u017cna pobra\u0107 z <noindex><a rel=\"nofollow\" href=\"https:\/\/freeradius.org\/\">https:\/\/freeradius.org\/<\/a><\/noindex><\/i><\/p>\n<p>Po tym FreeRadius ju\u017c dzia\u0142a. Mo\u017cna w \/etc\/raddb\/users odkomentowa\u0107 lini\u0119<\/p>\n<pre><code class=\"bash\">steve   Cleartext-Password := &quot;testing&quot;<\/code><\/pre>\n<p>\nUruchomi\u0107 serwer w trybie debugowania<\/p>\n<pre><code class=\"bash\">freeradius -X<\/code><\/pre>\n<p>\nI wykonujemy testowe po\u0142\u0105czenie z localhost<\/p>\n<pre><code class=\"bash\">radtest steve testing 127.0.0.1 1812 testing123<\/code><\/pre>\n<p>\nOtrzymali\u015bmy odpowied\u017a <i>Received Access-Accept Id 115 from 127.0.0.1:1812 to 127.0.0.1:56081 length 20<\/i>, wi\u0119c wszystko w porz\u0105dku. Idziemy dalej.<\/p>\n<p>Pod\u0142\u0105czamy modu\u0142 <i><b>ldap<\/b><\/i>.<\/p>\n<pre><code class=\"bash\">ln -s \/etc\/raddb\/mods-available\/ldap \/etc\/raddb\/mods-enabled\/ldap<\/code><\/pre>\n<p>\nI od razu go zmieniamy. Musimy, aby FreeRadius m\u00f3g\u0142 komunikowa\u0107 si\u0119 z FreeIPA<\/p>\n<p><b class=\"spoiler_title\">mods-enabled\/ldap<\/b><\/p>\n<pre><code class=\"bash\">ldap {\nserver=&quot;ldap:\/\/ldap.server.com&quot;\nport=636\nstart_tls=yes\nidentity=&quot;uid=admin,cn=users,dc=server,dc=com&quot;\npassword=**********\nbase_dn=&quot;cn=users,dc=server,dc=com&quot;\nset_auth_type=yes\n...\nuser {\nbase_dn=&quot;${..base_dn}&quot;\nfilter=&quot;(uid=%{%{Stripped-User-Name}:-%{User-Name}})&quot;\n}\n...<\/code><\/pre>\n<p>Restartujemy serwer radius i sprawdzamy synchronizacj\u0119 u\u017cytkownik\u00f3w LDAP:<\/p>\n<pre><code class=\"bash\">radtest user_ldap password_ldap localhost 1812 testing123<\/code><\/pre>\n<p>\nEdycja eap w <i><b>mods-enabled\/eap<\/b><\/i><br \/>\nTutaj dodamy dwa wyst\u0105pienia eap. B\u0119d\u0105 si\u0119 r\u00f3\u017cni\u0107 tylko certyfikatami i kluczami. Troch\u0119 ni\u017cej wyja\u015bni\u0119, dlaczego w\u0142a\u015bnie tak<\/p>\n<p><b class=\"spoiler_title\">mods-enabled\/eap<\/b><\/p>\n<pre><code class=\"bash\">eap eap-client {                                                                                                                                                                                                                           default_eap_type = ttls                                                                                                                                                                                                                 timer_expire = 60                                                                                                                                                                                                                       ignore_unknown_eap_types = no                                                                                                                                                                                                          cisco_accounting_username_bug = no                                                                                                                                                                                                      max_sessions = ${max_requests}\n           tls-config tls-common {\n           private_key_file = ${certdir}\/fisrt.key\n           certificate_file = ${certdir}\/first.crt\n           dh_file = ${certdir}\/dh\n           ca_path = ${cadir}\n           cipher_list = &quot;HIGH&quot;\n           cipher_server_preference = no\n           ecdh_curve = &quot;prime256v1&quot;\n           check_crl = no\n           }\n                                                                                                                                                                                                                                                                                                                                                                                                                                                 \n           ttls {\n           tls = tls-common\n           default_eap_type = md5\n           copy_request_to_tunnel = no\n           use_tunneled_reply = yes\n           virtual_server = &quot;inner-tunnel&quot;\n           }\n}\neap eap-guest {\ndefault_eap_type = ttls                                                                                                                                                                                                                 timer_expire = 60                                                                                                                                                                                                                       ignore_unknown_eap_types = no                                                                                                                                                                                                          cisco_accounting_username_bug = no                                                                                                                                                                                                      max_sessions = ${max_requests}\n           tls-config tls-common {\n           private_key_passwotd=blablabla\n           private_key_file = ${certdir}\/server.key\n           certificate_file = ${certdir}\/server.crt\n           dh_file = ${certdir}\/dh\n           ca_path = ${cadir}\n           cipher_list = &quot;HIGH&quot;\n           cipher_server_preference = no\n           ecdh_curve = &quot;prime256v1&quot;\n           check_crl = no\n           }\n                                                                                                                                                                                                                                                                                                                                                                                                                                                 \n           ttls {\n           tls = tls-common\n           default_eap_type = md5\n           copy_request_to_tunnel = no\n           use_tunneled_reply = yes\n           virtual_server = &quot;inner-tunnel&quot;\n           }\n}<\/code><\/pre>\n<p>Nast\u0119pnie edytujemy <i><b>site-enabled\/default<\/b><\/i>. Interesuj\u0105 nas sekcje authorize i authenticate.<\/p>\n<p><b class=\"spoiler_title\">site-enabled\/default<\/b><\/p>\n<pre><code class=\"bash\">authorize {\n  filter_username\n  preprocess\n  if (&User-Name == &quot;guest&quot;) {\n   eap-guest {\n       ok = return\n   }\n  }\n  elsif (&User-Name == &quot;client&quot;) {\n    eap-client {\n       ok = return \n    }\n  }\n  else {\n    eap-guest {\n       ok = return\n    }\n  }\n  ldap\n  if ((ok || updated) && User-Password) {\n    update {\n        control:Auth-Type := ldap\n    }\n  }\n  expiration\n  logintime\n  pap\n  }\n\nauthenticate {\n  Auth-Type LDAP {\n    ldap\n  }\n  Auth-Type eap-guest {\n    eap-guest\n  }\n  Auth-Type eap-client {\n    eap-client\n  }\n  pap\n}<\/code><\/pre>\n<p>W sekcji authorize usuwamy wszystkie modu\u0142y, kt\u00f3re nie s\u0105 nam potrzebne. Zostawiamy tylko ldap. Dodajemy sprawdzenie klienta po nazwie u\u017cytkownika. W\u0142a\u015bnie w tym celu dodali\u015bmy wcze\u015bniej dwa przypadki eap.<\/p>\n<p><b class=\"spoiler_title\">Multi EAP<\/b>Chodzi o to, \u017ce pod\u0142\u0105czaj\u0105c niekt\u00f3re urz\u0105dzenia b\u0119dziemy u\u017cywa\u0107 certyfikat\u00f3w systemowych i wskazywa\u0107 domen\u0119. Mamy certyfikat i klucz z zaufanego centrum certyfikacji. Moim zdaniem taka procedura pod\u0142\u0105czenia jest prostsza ni\u017c instalowanie samopodpisanych certyfikat\u00f3w na ka\u017cde urz\u0105dzenie. Ale i bez samopodpisanych certyfikat\u00f3w nie da si\u0119 jednak obej\u015b\u0107. Urz\u0105dzenia Samsung i Android &lt; 6 wersji nie potrafi\u0105 u\u017cywa\u0107 certyfikat\u00f3w systemowych. Dlatego dla nich tworzymy oddzielny przypadek eap-guest z samopodpisanymi certyfikatami. Dla wszystkich innych urz\u0105dze\u0144 u\u017cywa\u0107 b\u0119dziemy eap-client z zaufanym certyfikatem. User-Name okre\u015blane jest na podstawie pola Anonymous przy pod\u0142\u0105czaniu urz\u0105dzenia. Dozwolone jest u\u017cywanie tylko 3 warto\u015bci: Guest, Client i puste pole. Wszystkie inne s\u0105 odrzucane. Ustawiane jest to w politykach. Przyk\u0142ad podam troch\u0119 p\u00f3\u017aniej.<\/p>\n<p>Edytujemy sekcje authorize i authenticate w <i><b>site-enabled\/inner-tunnel<\/b><\/i><\/p>\n<p><b class=\"spoiler_title\">site-enabled\/inner-tunnel<\/b><\/p>\n<pre><code class=\"bash\">authorize {\n  filter_username\n  filter_inner_identity\n  update control {\n   &Proxy-To-Realm := LOCAL\n  }\n  ldap\n  if ((ok || updated) && User-Password) {\n    update {\n        control:Auth-Type := ldap\n    }\n  }\n  expiration\n  digest\n  logintime\n  pap\n  }\n\nauthenticate {\n  Auth-Type eap-guest {\n    eap-guest\n  }\n  Auth-Type eap-client {\n    eap-client\n  }\n  Auth-Type PAP {\n    pap\n  }\n  ldap\n}<\/code><\/pre>\n<p>Nast\u0119pnie nale\u017cy wpisa\u0107 w politykach, jakie nazwy mo\u017cna u\u017cywa\u0107 do anonimowego logowania. Edytujemy <b><i>policy.d\/filter<\/i><\/b>.<\/p>\n<p>Musimy znale\u017a\u0107 linie podobne do tych:<\/p>\n<pre><code class=\"bash\">if (&outer.request:User-Name !~ \/^(anon|@)\/) {\n  update request {\n    Module-Failure-Message = &quot;User-Name is not anonymized&quot;\n  }\n  reject\n}<\/code><\/pre>\n<p>\nI poni\u017cej w elsif doda\u0107 potrzebne warto\u015bci:<\/p>\n<pre><code class=\"bash\">elsif (&outer.request:User-Name !~ \/^(guest|client|@)\/) {\n  update request {\n    Module-Failure-Message = &quot;User-Name is not anonymized&quot;\n  }\n  reject\n}<\/code><\/pre>\n<p>\nTeraz musimy przej\u015b\u0107 do katalogu <b><i>certs<\/i><\/b>. Tutaj nale\u017cy umie\u015bci\u0107 klucz i certyfikat z zaufanego centrum certyfikacji, kt\u00f3re ju\u017c mamy, oraz wygenerowa\u0107 samopodpisane certyfikaty dla eap-guest.<\/p>\n<p>Zmiana parametr\u00f3w w pliku <b><i>ca.cnf<\/i><\/b>.<\/p>\n<p><b class=\"spoiler_title\">ca.cnf<\/b><\/p>\n<pre><code class=\"bash\">\n...\ndefault_days = 3650\ndefault_md = sha256\n...\ninput_password = blablabla\noutput_password = blablabla\n...\ncountryName = RU\nstateOrProvinceNmae = State\nlocalityNmae = City\norganizationName = NONAME\nemailAddress = admin@admin.ru\ncommonName = &quot;CA FreeRadius&quot;<\/code><\/pre>\n<p>Te same warto\u015bci umieszczamy w pliku <b><i><i>server.cnf<\/i><\/i><\/b>. Zmieni\u0107 nale\u017cy tylko <br \/>\n<b>commonName<\/b>:<\/p>\n<p><b class=\"spoiler_title\">server.cnf<\/b><\/p>\n<pre><code class=\"bash\">\n...\ndefault_days = 3650\ndefault_md = sha256\n...\ninput_password = blablabla\noutput_password = blablabla\n...\ncountryName = RU\nstateOrProvinceNmae = State\nlocalityNmae = City\norganizationName = NONAME\nemailAddress = admin@admin.ru\ncommonName = &quot;Server Certificate FreeRadius&quot;<\/code><\/pre>\n<p>Tworzymy:<\/p>\n<pre><code class=\"bash\">make<\/code><\/pre>\n<p>\nGotowe. Otrzymane <b><i>server.crt<\/i><\/b> i <b><i>server.key<\/i><\/b> s\u0105 ju\u017c podane powy\u017cej w eap-guest.<\/p>\n<p>I na koniec dodamy nasze punkty dost\u0119pu w pliku <b><i>client.conf<\/i><\/b>. Mam ich 7. Aby nie dodawa\u0107 ka\u017cdego punktu osobno, podamy tylko sie\u0107, w kt\u00f3rej si\u0119 znajduj\u0105 (moje punkty dost\u0119pu znajduj\u0105 si\u0119 w osobnym VLAN).<\/p>\n<pre><code class=\"bash\">client APs {\nipaddr = 192.168.100.0\/24\npassword = password_AP\n}<\/code><\/pre>\n<p><\/p>\n<h2>Kontroler Ubiquiti<\/h2>\n<p>\nNa kontrolerze tworzymy osobn\u0105 sie\u0107. Niech b\u0119dzie 192.168.2.0\/24<br \/>\nPrzechodzimy do ustawie\u0144 -&gt; profil. Tworzymy nowy:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/57d97f7ef2db1a62633aa16131435065.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPodajemy adres i port serwera radius oraz has\u0142o, kt\u00f3re by\u0142y podane w pliku <b><i>clients.conf<\/i><\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/edab8e5ef03897c88bb45b2912e577ec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTworzymy now\u0105 nazw\u0119 sieci bezprzewodowej. Jako metod\u0119 autoryzacji wybieramy WPA-EAP (Enterprise) i wskazujemy stworzony profil radius:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/9dc918b734cac3d7382db796feb6b7a2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWszystko zapisujemy, stosujemy i idziemy dalej.<\/p>\n<h2>Konfiguracja klient\u00f3w<\/h2>\n<p>\nZaczniemy od najtrudniejszego!<\/p>\n<h3>Windows 10<\/h3>\n<p>\nTrudno\u015b\u0107 polega na tym, \u017ce Windows jeszcze nie potrafi \u0142\u0105czy\u0107 si\u0119 z korporacyjnym WiFi przez domen\u0119. Dlatego trzeba r\u0119cznie za\u0142adowa\u0107 nasz certyfikat do magazynu zaufanych certyfikat\u00f3w. Mo\u017cna u\u017cy\u0107 zar\u00f3wno samopodpisanego, jak i certyfikatu z centrum certyfikacji. Ja u\u017cyj\u0119 drugiego. <\/p>\n<p>Nast\u0119pnie trzeba utworzy\u0107 nowe po\u0142\u0105czenie. W tym celu przechodzimy do ustawie\u0144 sieci i internetu -&gt; Centrum zarz\u0105dzania sieciami i wsp\u00f3lnym dost\u0119pem -&gt; Utw\u00f3rz i skonfiguruj nowe po\u0142\u0105czenie lub sie\u0107:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/406e515cff889ea70e226116f1dc0521.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/f88e592920e43d42cc7fed34423f09ea.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/1d7c045e02eb8e3b14016aacfa00da4c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nR\u0119cznie podajemy nazw\u0119 sieci i zmieniamy typ zabezpiecze\u0144. Nast\u0119pnie klikamy <i>zmie\u0144 ustawienia po\u0142\u0105czenia<\/i> i na zak\u0142adce Bezpiecze\u0144stwo wybieramy uwierzytelnianie sieci \u2014 EAP-TTLS.<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/7e736b4cffd6dca5fdd9df70cedd7988.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/6c328ff8b4a434ed488c46b594aa5108.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/d4a3d2883088a06592addae770a12a16.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWchodzimy w ustawienia, wpisujemy prywatno\u015b\u0107 uwierzytelnienia \u2014 <b>client<\/b>. Jako zaufane centrum certyfikacji wybieramy dodany przez nas certyfikat, zaznaczamy opcj\u0119 \u201eNie pytaj u\u017cytkownika, je\u015bli nie uda si\u0119 uwierzytelnienie serwera\u201d, a jako metod\u0119 weryfikacji wybieramy \u2014 niezaszyfrowane has\u0142o (PAP).<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/eb4897493f805f0d8869c22a1b706dec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNast\u0119pnie przechodzimy do dodatkowych ustawie\u0144, zaznaczamy pole \u201eOkre\u015bl tryb uwierzytelniania\u201d. Wybieramy opcj\u0119 \u201eUwierzytelnianie u\u017cytkownika\u201d i klikamy na <i>zapisz dane logowania<\/i>. Tutaj nale\u017cy wprowadzi\u0107 username_ldap i password_ldap<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/469bb4337e4e601a80de1021a48bc101.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/999dc6c41a69b22c8de2b49398c9a613.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/75347f2f7140cac58a181a325ab0f3ad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWszystko zapisujemy, stosujemy, zamykamy. Mo\u017cna pod\u0142\u0105czy\u0107 si\u0119 do nowej sieci.<\/p>\n<h3>Linuxa<\/h3>\n<p>\nSprawdza\u0142em na Ubuntu 18.04, 18.10, Fedora 29, 30.<\/p>\n<p>Na pocz\u0105tek pobieramy certyfikat. Nie znalaz\u0142em w Linux, czy istnieje mo\u017cliwo\u015b\u0107 u\u017cycia certyfikat\u00f3w systemowych i czy w og\u00f3le jest tam takie repozytorium. <\/p>\n<p>B\u0119dziemy \u0142\u0105czy\u0107 si\u0119 przez domen\u0119. Dlatego potrzebny jest certyfikat centrum certyfikacji, od kt\u00f3rego zakupili\u015bmy nasz certyfikat.<\/p>\n<p>Ca\u0142e po\u0142\u0105czenie odbywa si\u0119 w jednym oknie. Wybieramy nasz\u0105 sie\u0107:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/9e05f44a52ee7290921b5b74df718a0c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>anonymous \u2014 client<br \/>\ndomain \u2014 domena, dla kt\u00f3rej wydano certyfikat<br \/>\n<\/i><\/p>\n<h3>Android<\/h3>\n<p><\/p>\n<h4>non-Samsung<\/h4>\n<p>\nOd wersji 7 przy \u0142\u0105czeniu WiFi mo\u017cna u\u017cywa\u0107 certyfikat\u00f3w systemowych, podaj\u0105c tylko domen\u0119:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/f935493cbe35f5a19c4da8bb5632604f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>domain \u2014 domena, dla kt\u00f3rej wydano certyfikat<br \/>\nanonymous \u2014 client<br \/>\n<\/i><\/p>\n<h4>Samsung<\/h4>\n<p>\nJak ju\u017c wcze\u015bniej pisa\u0142em, urz\u0105dzenia Samsung nie potrafi\u0105 u\u017cywa\u0107 certyfikat\u00f3w systemowych podczas \u0142\u0105czenia WiFi i nie maj\u0105 mo\u017cliwo\u015bci \u0142\u0105czenia si\u0119 przez domen\u0119. Dlatego nale\u017cy r\u0119cznie doda\u0107 certyfikat g\u0142\u00f3wny centrum certyfikacji (ca.pem, pobieramy na serwerze Radius). Tutaj b\u0119dziemy u\u017cywa\u0107 samopodpisanego.<\/p>\n<p>Pobieramy certyfikat na urz\u0105dzenie i go instalujemy.<\/p>\n<p><b class=\"spoiler_title\">Instalacja certyfikatu<\/b><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/d02770f35c44a618f2f6243085c258b8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/eb9ec984d5e68824ebd0b138551a87c2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/2c5c95c339b00085845470fdff56932e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/1561758abad60a168e067f1ecb0b94f5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrzy tym trzeba b\u0119dzie ustawi\u0107 rysunek odblokowania ekranu, pin lub has\u0142o, je\u015bli jeszcze nie jest ustawione:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/eeb9189ecdb8c255f2b76918ec1954b5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/741c2f6df3e50c5ebb94c76e907efb33.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Pokaza\u0142em skomplikowan\u0105 wersj\u0119 instalacji certyfikatu. Na wi\u0119kszo\u015bci urz\u0105dze\u0144 wystarczy po prostu klikn\u0105\u0107 na pobrany certyfikat.<\/i><\/p>\n<p>Po zainstalowaniu certyfikatu mo\u017cna przej\u015b\u0107 do \u0142\u0105czenia:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/4e2a8716b30634b3effdb0f2cbf781af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>certyfikat \u2014 wskazujemy ten, kt\u00f3ry instalowali\u015bmy<br \/>\nanonimowy u\u017cytkownik \u2014 guest<br \/>\n<\/i><\/p>\n<h3>macOS<\/h3>\n<p>\nUrz\u0105dzenia Apple z pude\u0142ka mog\u0105 \u0142\u0105czy\u0107 si\u0119 tylko z EAP-TLS, ale i tak trzeba im wgra\u0107 certyfikat. Aby wskaza\u0107 inn\u0105 metod\u0119 po\u0142\u0105czenia, nale\u017cy skorzysta\u0107 z Apple Configurator 2. Odpowiednio nale\u017cy wcze\u015bniej pobra\u0107 go na Maca, stworzy\u0107 nowy profil i doda\u0107 wszystkie potrzebne ustawienia WiFi.<\/p>\n<p><b class=\"spoiler_title\">Apple Configurator<\/b><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/1864dedc371b851dbf2594eff3ec7fc7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/0847466b361f681bcfcabee92f1ac885.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Tutaj podajemy nazw\u0119 naszej sieci<br \/>\nTyp zabezpiecze\u0144 \u2014 WPA2 Enterprise<br \/>\nAkceptowane typy EAP \u2014 TTLS<br \/>\nNazwa u\u017cytkownika i has\u0142o \u2014 pozostawiamy puste<br \/>\nWewn\u0119trzna autoryzacja \u2014 PAP<br \/>\nZewn\u0119trzna to\u017csamo\u015b\u0107 \u2014 client <br \/>\n<\/i><\/p>\n<p><i>Zak\u0142adka Zaufanie. Tutaj podajemy nasz\u0105 domen\u0119<\/i><\/p>\n<p>Wszystko. Profil mo\u017cna zapisa\u0107, podpisa\u0107 i rozpowszechnia\u0107 na urz\u0105dzenia<\/p>\n<p>Po przygotowaniu profilu nale\u017cy go pobra\u0107 na Maca i zainstalowa\u0107. W trakcie instalacji trzeba b\u0119dzie poda\u0107 username_ldap oraz password_ldap u\u017cytkownika:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/d7cb1cbcfd1de930d0718c1596bc60d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/dd2e90a77fd9b64f6a98b0c0b21a080c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/c1cb62ec60fc835353c5e409a138f0be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>iOS<\/h3>\n<p>\nProces jest analogiczny do macOS. Nale\u017cy u\u017cy\u0107 profilu (mo\u017cna taki sam jak dla macOS. Jak stworzy\u0107 profil w Apple Configurator, patrz wy\u017cej).<\/p>\n<p>Pobieramy profil, instalujemy, wprowadzamy dane logowania, \u0142\u0105czymy si\u0119:<\/p>\n<p><img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/9e2be411c0dfb427bfd54ad0b1f42dcb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/d637fa93c0bcf09d1a5eb3701f769d4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/0908737918cd81cbf3e1ebf9ba0d9820.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/3821dc0bd6f866730575c6ceb3d5bbfb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/b4b0bf189ac037345e33e7864bfb2ad8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti\" src=\"\/wp-content\/uploads\/2019\/08\/f5f9b7168ac14b67d6f4753d050a742e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa tym ko\u0144czymy. Skonfigurowali\u015bmy serwer Radius, zsynchronizowali\u015bmy go z FreeIPA i wskazali\u015bmy punktom dost\u0119powym Ubiquiti u\u017cycie WPA2-EAP.<\/p>\n<h2>Mo\u017cliwe pytania<\/h2>\n<p>\n<b>P:<\/b> jak przekaza\u0107 profil\/ certyfikat pracownikowi?<\/p>\n<p><b>O:<\/b> Wszystkie certyfikaty\/ profile przechowuj\u0119 na FTP z dost\u0119pem przez sie\u0107. Uruchomi\u0142em sie\u0107 go\u015bcinn\u0105 z ograniczeniem pr\u0119dko\u015bci i dost\u0119pem tylko do internetu, z wyj\u0105tkiem FTP. <br \/>\nAutoryzacja trwa 2 dni, po czym jest resetowana i klient zostaje bez internetu. Tak wi\u0119c, gdy pracownik chce po\u0142\u0105czy\u0107 si\u0119 z WiFi, najpierw \u0142\u0105czy si\u0119 z sieci\u0105 go\u015bcin\u0105, wchodzi na FTP, pobiera potrzebny certyfikat lub profil, instaluje je, a nast\u0119pnie mo\u017ce po\u0142\u0105czy\u0107 si\u0119 z sieci\u0105 korporacyjn\u0105.<\/p>\n<p><b>P:<\/b> dlaczego nie u\u017cy\u0107 schematu z MSCHAPv2? przecie\u017c jest bardziej bezpieczny!<\/p>\n<p><b>O:<\/b> Po pierwsze, taki schemat dzia\u0142a dobrze na NPS (Windows Network Policy System), w naszej realizacji konieczne jest dodatkowe skonfigurowanie LDAP (FreeIpa) i przechowywanie hashy hase\u0142 na serwerze. Dodatkowe ustawienia s\u0105 niepo\u017c\u0105dane, poniewa\u017c mog\u0105 prowadzi\u0107 do r\u00f3\u017cnych problem\u00f3w z synchronizacj\u0105 u\u017cytkownik\u00f3w. Po drugie, hasz to MD4, wi\u0119c to nie znacz\u0105co zwi\u0119ksza bezpiecze\u0144stwa.<\/p>\n<p><b>P:<\/b> czy mo\u017cna autoryzowa\u0107 urz\u0105dzenia po adresach MAC?<\/p>\n<p><b>O:<\/b> NIE, to niebezpieczne, haker mo\u017ce podmieni\u0107 adresy MAC, a autoryzacja po adresach MAC nie jest obs\u0142ugiwana w wielu urz\u0105dzeniach. <\/p>\n<p><b>P:<\/b> po co w og\u00f3le u\u017cywa\u0107 wszystkich tych certyfikat\u00f3w? mo\u017cna si\u0119 \u0142\u0105czy\u0107 i bez nich.<\/p>\n<p><b>O:<\/b> Certyfikaty s\u0105 u\u017cywane do autoryzacji serwera. To znaczy, \u017ce urz\u0105dzenie podczas pod\u0142\u0105czenia sprawdza, czy to serwer, kt\u00f3remu mo\u017cna zaufa\u0107. Je\u015bli tak, to autoryzacja przebiega dalej, je\u015bli nie, po\u0142\u0105czenie jest zamykane. Mo\u017cna \u0142\u0105czy\u0107 si\u0119 bez certyfikat\u00f3w, ale je\u015bli osoba trzecia lub s\u0105siad uruchomi w\u0142asny serwer RADIUS i punkt dost\u0119powy o tej samej nazwie, co nasz, \u0142atwo b\u0119dzie mu przechwyci\u0107 dane logowania u\u017cytkownika (pami\u0119tajmy, \u017ce s\u0105 one przesy\u0142ane w postaci otwartej). Gdy u\u017cywany jest certyfikat, wr\u00f3g zobaczy tylko wymy\u015blone nazwy u\u017cytkownik\u00f3w \u2013 guest lub client i b\u0142\u0105d typu \u2013 Unknown CA Certificate.<\/p>\n<p><b class=\"spoiler_title\">Jeszcze troch\u0119 o macOS.<\/b>Zwykle w macOS ponowna instalacja systemu odbywa si\u0119 przez Internet. W trybie odzyskiwania Maca nale\u017cy pod\u0142\u0105czy\u0107 do WiFi, a tutaj nie zadzia\u0142a ani nasza korporacyjna sie\u0107 WiFi, ani sie\u0107 go\u015bcinna. Osobi\u015bcie utworzy\u0142em jeszcze jedn\u0105 sie\u0107, standardow\u0105 WPA2-PSK, ukryt\u0105, tylko do operacji technicznych. Mo\u017cna tak\u017ce wcze\u015bniej stworzy\u0107 bootowalny pendrive z systemem. Ale je\u015bli Mac jest po 2015 roku, trzeba jeszcze znale\u017a\u0107 adapter do tego pendrive'a.)<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463225\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0436\u0435 \u0431\u044b\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e WiFi. \u0417\u0434\u0435\u0441\u044c \u044f \u0440\u0430\u0441\u043f\u0438\u0448\u0443 \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445. \u0411\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0435\u0439\u0441\u044f LDAP \u0441 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u043c FreeRadius \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c WPA2-Enterprise \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 Ubnt. \u0412\u0440\u043e\u0434\u0435 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c\u2026 \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043c\u0435\u0442\u043e\u0434\u0430\u0445 EAP \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27785,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37065","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/wifi-enterprise-freeradius-freeipa-ubiquiti\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/wifi-enterprise-freeradius-freeipa-ubiquiti\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:15:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/wifi-enterprise-freeradius-freeipa-ubiquiti","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti | ProHoster","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/wifi-enterprise-freeradius-freeipa-ubiquiti","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:15:33+00:00","article:modified_time":"2019-10-31T19:15:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37065","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 05:57:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:36:42","updated":"2026-01-22 05:57:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=37065"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37065\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/27785"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=37065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=37065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=37065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}