WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Gen kèk egzanp sou òganize WiFi antrepriz deja dekri. Isit la mwen pral dekri ki jan mwen aplike yon solisyon konsa ak pwoblèm yo mwen rankontre lè konekte sou aparèy diferan. Nou pral sèvi ak LDAP ki egziste deja ak itilizatè etabli, enstale FreeRadius ak konfigirasyon WPA2-Enterprise sou kontwolè Ubnt la. Tout bagay sanble senp. Ann wè…

Yon ti kras sou metòd EAP

Anvan nou kòmanse travay la, nou bezwen deside ki metòd otantifikasyon nou pral itilize nan solisyon nou an.

Soti nan Wikipedya:

EAP se yon kad otantifikasyon ki souvan itilize nan rezo san fil ak koneksyon pwen-a-pwen. Fòma a te premye dekri nan RFC 3748 epi mete ajou nan RFC 5247.
Yo itilize EAP pou chwazi yon metòd otantifikasyon, transfere kle, epi trete kle sa yo pa grefon yo rele metòd EAP. Gen anpil metòd EAP, tou de defini ak EAP li menm ak sa yo pibliye pa machann endividyèl yo. EAP pa defini kouch lyen an, li sèlman defini fòma mesaj la. Chak pwotokòl ki sèvi ak EAP gen pwòp pwotokòl EAP mesaj encapsulation.

Metòd tèt yo:

  • LEAP se yon pwotokòl propriétaires devlope pa CISCO. Vilnerabilite yo jwenn. Kounye a pa rekòmande pou itilize
  • EAP-TLS byen sipòte pami fournisseurs san fil. Li se yon pwotokòl ki an sekirite paske li se siksesè nan estanda SSL yo. Mete kanpe kliyan an se byen konplike. Ou bezwen yon sètifika kliyan anplis modpas la. Sipòte sou anpil sistèm
  • EAP-TTLS - lajman sipòte sou anpil sistèm, ofri bon sekirite lè l sèvi avèk sètifika PKI sèlman sou sèvè otantifikasyon an
  • EAP-MD5 se yon lòt estanda louvri. Ofri minimòm sekirite. Vilnerab, pa sipòte otantifikasyon mityèl ak jenerasyon kle
  • EAP-IKEv2 - ki baze sou Entènèt Key Exchange Protocol Version 2. Bay otantifikasyon mityèl ak etablisman kle sesyon ant kliyan ak sèvè
  • PEAP se yon solisyon ansanm ant CISCO, Microsoft ak RSA Sekirite kòm yon estanda ouvè. Lajman disponib nan pwodwi yo, bay sekirite trè bon. Menm jan ak EAP-TTLS, ki egzije sèlman yon sètifika bò sèvè
  • PEAPv0/EAP-MSCHAPv2 - Apre EAP-TLS, sa a se dezyèm estanda ki lajman itilize nan mond lan. Itilize relasyon kliyan-sèvè nan Microsoft, Cisco, Apple, Linux
  • PEAPv1/EAP-GTC - Kreye pa Cisco kòm yon altènativ a PEAPv0/EAP-MSCHAPv2. Pa pwoteje done otantifikasyon nan okenn fason. Pa sipòte sou Windows OS
  • EAP-FAST se yon metòd Cisco devlope pou korije enpèfeksyon LEAP yo. Itilize Pwoteje Aksè Kredansyèl (PAC). Konplètman fini

Nan tout varyete sa a, chwa a se toujou pa gwo. Metòd otantifikasyon ki nesesè: bon sekirite, sipò sou tout aparèy (Windows 10, macOS, Linux, Android, iOS) epi, an reyalite, pi senp la pi bon an. Se poutèt sa, chwa a te tonbe sou EAP-TTLS an konjonksyon avèk pwotokòl PAP la.
Kesyon an ka leve - Poukisa sèvi ak PAP? Apre yo tout, li transmèt modpas nan tèks klè?

Wi se vre. Kominikasyon ant FreeRadius ak FreeIPA pral fèt egzakteman konsa. Nan mòd debug, ou ka swiv ki jan non itilizatè a ak modpas yo voye. Wi, epi kite yo ale, sèlman ou gen aksè a sèvè FreeRadius la.

Ou ka li plis sou fason EAP-TTLS fonksyone isit la

FreeRADIUS

Nou pral ajou FreeRadius a CentOS 7.6. Pa gen anyen konplike isit la, nou enstale li nan fason nòmal la.

yum install freeradius freeradius-utils freeradius-ldap -y

Nan pakè yo, vèsyon 3.0.13 enstale. Lèt la ka pran nan https://freeradius.org/

Apre sa, FreeRadius deja ap travay. Ou ka retire liy lan nan /etc/raddb/users

steve   Cleartext-Password := "testing"

Lanse nan sèvè a nan mòd debug

freeradius -X

Epi fè yon koneksyon tès soti nan localhost

radtest steve testing 127.0.0.1 1812 testing123

Nou te resevwa yon repons Resevwa Aksè-Aksepte Id 115 soti nan 127.0.0.1:1812 rive nan 127.0.0.1:56081 longè 20, sa vle di tout bagay se OK. Ale pi devan.

Konekte modil la ldap.

ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap

Epi nou pral chanje li imedyatman. Nou bezwen FreeRadius pou nou kapab jwenn aksè nan FreeIPA

mods-enabled/ldap

ldap {
server="ldap://ldap.server.com"
port=636
start_tls=yes
identity="uid=admin,cn=users,dc=server,dc=com"
password=**********
base_dn="cn=users,dc=server,dc=com"
set_auth_type=yes
...
user {
base_dn="${..base_dn}"
filter="(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
}
...

Rekòmanse sèvè reyon an epi tcheke senkronizasyon itilizatè LDAP yo:

radtest user_ldap password_ldap localhost 1812 testing123

Edit eap nan mods-enabled/eap
Isit la nou pral ajoute de ka eap. Yo pral diferan sèlman nan sètifika ak kle. Mwen pral eksplike poukisa sa a se vre anba a.

mods-enabled/eap

eap eap-client {                                                                                                                                                                                                                           default_eap_type = ttls                                                                                                                                                                                                                 timer_expire = 60                                                                                                                                                                                                                       ignore_unknown_eap_types = no                                                                                                                                                                                                          cisco_accounting_username_bug = no                                                                                                                                                                                                      max_sessions = ${max_requests}
           tls-config tls-common {
           private_key_file = ${certdir}/fisrt.key
           certificate_file = ${certdir}/first.crt
           dh_file = ${certdir}/dh
           ca_path = ${cadir}
           cipher_list = "HIGH"
           cipher_server_preference = no
           ecdh_curve = "prime256v1"
           check_crl = no
           }
                                                                                                                                                                                                                                                                                                                                                                                                                                                 
           ttls {
           tls = tls-common
           default_eap_type = md5
           copy_request_to_tunnel = no
           use_tunneled_reply = yes
           virtual_server = "inner-tunnel"
           }
}
eap eap-guest {
default_eap_type = ttls                                                                                                                                                                                                                 timer_expire = 60                                                                                                                                                                                                                       ignore_unknown_eap_types = no                                                                                                                                                                                                          cisco_accounting_username_bug = no                                                                                                                                                                                                      max_sessions = ${max_requests}
           tls-config tls-common {
           private_key_passwotd=blablabla
           private_key_file = ${certdir}/server.key
           certificate_file = ${certdir}/server.crt
           dh_file = ${certdir}/dh
           ca_path = ${cadir}
           cipher_list = "HIGH"
           cipher_server_preference = no
           ecdh_curve = "prime256v1"
           check_crl = no
           }
                                                                                                                                                                                                                                                                                                                                                                                                                                                 
           ttls {
           tls = tls-common
           default_eap_type = md5
           copy_request_to_tunnel = no
           use_tunneled_reply = yes
           virtual_server = "inner-tunnel"
           }
}

Apre sa nou edite sit ki pèmèt/default. Mwen enterese nan seksyon otorize ak otantifye yo.

sit ki pèmèt/default

authorize {
  filter_username
  preprocess
  if (&User-Name == "guest") {
   eap-guest {
       ok = return
   }
  }
  elsif (&User-Name == "client") {
    eap-client {
       ok = return 
    }
  }
  else {
    eap-guest {
       ok = return
    }
  }
  ldap
  if ((ok || updated) && User-Password) {
    update {
        control:Auth-Type := ldap
    }
  }
  expiration
  logintime
  pap
  }

authenticate {
  Auth-Type LDAP {
    ldap
  }
  Auth-Type eap-guest {
    eap-guest
  }
  Auth-Type eap-client {
    eap-client
  }
  pap
}

Nan seksyon otorize nou retire tout modil nou pa bezwen. Nou kite sèlman ldap. Ajoute verifikasyon kliyan pa non itilizatè. Se poutèt sa nou te ajoute de ka eap pi wo a.

Multi EAPReyalite a se ke lè konekte kèk aparèy nou pral sèvi ak sètifika sistèm epi presize domèn nan. Nou gen yon sètifika ak kle ki soti nan yon otorite sètifika ou fè konfyans. Pèsonèlman, nan opinyon mwen, pwosedi koneksyon sa a pi senp pase voye yon sètifika pwòp tèt ou siyen sou chak aparèy. Men, menm san yo pa siyen pwòp tèt ou sètifika li te toujou pa posib yo kite. Aparèy Samsung ak Android =< 6 vèsyon pa konnen kijan pou yo itilize sètifika sistèm yo. Se poutèt sa, nou kreye yon egzanp separe nan eap-guest pou yo ak pwòp tèt ou-siyen sètifika. Pou tout lòt aparèy nou pral sèvi ak eap-client ak yon sètifika ou fè konfyans. Non itilizatè a detèmine pa jaden an anonim lè konekte aparèy la. Se sèlman 3 valè yo pèmèt: Guest, Kliyan ak yon jaden vid. Tout rès la jete. Sa a ka configuré nan règleman yo. Mwen pral bay yon egzanp yon ti kras pita.

Ann edite seksyon otorize ak otantifye nan sit-pèmèt / enteryè-tinèl

sit-pèmèt / enteryè-tinèl

authorize {
  filter_username
  filter_inner_identity
  update control {
   &Proxy-To-Realm := LOCAL
  }
  ldap
  if ((ok || updated) && User-Password) {
    update {
        control:Auth-Type := ldap
    }
  }
  expiration
  digest
  logintime
  pap
  }

authenticate {
  Auth-Type eap-guest {
    eap-guest
  }
  Auth-Type eap-client {
    eap-client
  }
  Auth-Type PAP {
    pap
  }
  ldap
}

Apre sa, ou bezwen presize nan règleman yo ki non yo ka itilize pou koneksyon anonim. Modification policy.d/filter.

Ou bezwen jwenn liy ki sanble ak sa a:

if (&outer.request:User-Name !~ /^(anon|@)/) {
  update request {
    Module-Failure-Message = "User-Name is not anonymized"
  }
  reject
}

Ak pi ba a nan elsif ajoute valè ki nesesè yo:

elsif (&outer.request:User-Name !~ /^(guest|client|@)/) {
  update request {
    Module-Failure-Message = "User-Name is not anonymized"
  }
  reject
}

Koulye a, nou bezwen ale nan anyè a sètifika. Isit la nou bezwen mete kle a ak sètifika ki soti nan yon otorite sètifikasyon ou fè konfyans, ki nou deja genyen, epi nou bezwen jenere sètifika oto-siyen pou eap-guest.

Chanje paramèt yo nan dosye a ca.cnf.

ca.cnf


...
default_days = 3650
default_md = sha256
...
input_password = blablabla
output_password = blablabla
...
countryName = RU
stateOrProvinceNmae = State
localityNmae = City
organizationName = NONAME
emailAddress = [email protected]
commonName = "CA FreeRadius"

Nou ekri menm valè yo nan dosye a server.cnf. Nou sèlman chanje
commonName:

server.cnf


...
default_days = 3650
default_md = sha256
...
input_password = blablabla
output_password = blablabla
...
countryName = RU
stateOrProvinceNmae = State
localityNmae = City
organizationName = NONAME
emailAddress = [email protected]
commonName = "Server Certificate FreeRadius"

Nou kreye:

make

Pare. Resevwa server.crt и sèvè.kle Nou te deja anrejistre pi wo a nan eap-guest.

Epi anfen, ann ajoute pwen aksè nou yo nan dosye a kliyan.conf. Mwen gen 7 nan yo. Pou pa ajoute chak pwen separeman, nou pral anrejistre sèlman rezo kote yo ye a (pwen aksè mwen yo nan yon VLAN separe).

client APs {
ipaddr = 192.168.100.0/24
password = password_AP
}

Ubiquiti kontwolè

Nou ogmante yon rezo separe sou kontwolè a. Se pou li 192.168.2.0/24
Ale nan anviwònman -> pwofil. Ann kreye yon nouvo:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Nou ekri adrès ak pò sèvè reyon an ak modpas ki te ekri nan dosye a kliyan.conf:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Kreye yon nouvo non rezo san fil. Chwazi WPA-EAP (Enterprise) kòm metòd otantifikasyon epi presize pwofil reyon ki te kreye a:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Nou sove tout bagay, aplike li epi kontinye.

Mete kanpe kliyan yo

Ann kòmanse ak pati ki pi difisil la!

Fenèt 10

Difikilte a desann nan lefèt ke Windows poko konnen ki jan yo konekte ak antrepriz fil sou yon domèn. Se poutèt sa, nou dwe manyèlman telechaje sètifika nou an nan magazen sètifika ou fè konfyans. Isit la ou ka itilize swa yon siyen pwòp tèt ou oswa youn nan yon otorite sètifikasyon. Mwen pral sèvi ak dezyèm lan.

Apre sa, ou bezwen kreye yon nouvo koneksyon. Pou fè sa, ale nan Anviwònman Rezo ak Entènèt -> Rezo ak Sant Pataje -> Kreye ak konfigirasyon yon nouvo koneksyon oswa rezo:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Nou manyèlman antre non rezo a epi chanje kalite sekirite a. Lè sa a klike sou chanje paramèt koneksyon ak nan tab la Sekirite, chwazi otantifikasyon rezo - EAP-TTLS.

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Ale nan anviwònman yo, mete konfidansyalite nan otantifikasyon - kliyan. Kòm yon otorite sètifikasyon ou fè konfyans, chwazi sètifika nou ajoute a, tcheke kare a "Pa bay yon envitasyon bay itilizatè a si sèvè a pa ka otorize" epi chwazi metòd otantifikasyon an - modpas tèks klè (PAP).

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Apre sa, ale nan paramèt adisyonèl epi tcheke ti bwat la "Espesize mòd otantifikasyon." Chwazi "Otantifikasyon itilizatè" epi klike sou sove kalifikasyon yo. Isit la w ap bezwen antre username_ldap ak password_ldap

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Nou sove, aplike, fèmen tout bagay. Ou ka konekte ak yon nouvo rezo.

Linux

Mwen teste sou Ubuntu 18.04, 18.10, Fedora 29, 30.

Premyèman, telechaje sètifika a pou tèt ou. Mwen pa jwenn nan Linux si li posib pou itilize sètifika sistèm oswa si gen yon magazen konsa.

Nou pral konekte atravè domèn. Se poutèt sa, nou bezwen yon sètifika nan men otorite sètifikasyon ki soti nan ki sètifika nou an te achte.

Tout koneksyon yo fèt nan yon sèl fenèt. Chwazi rezo nou an:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

anonim - kliyan
domain — domèn pou ki sètifika a te bay

android

ki pa Samsung

Soti nan vèsyon 7, lè w konekte WiFi, ou ka itilize sètifika sistèm lè w espesifye sèlman domèn nan:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

domain — domèn pou ki sètifika a te bay
anonim - kliyan

Samsung

Kòm mwen te ekri pi wo a, aparèy Samsung pa konnen ki jan yo sèvi ak sètifika sistèm lè konekte WiFi, epi yo pa gen kapasite nan konekte atravè domèn. Se poutèt sa, ou bezwen manyèlman ajoute sètifika rasin otorite sètifikasyon an (ca.pem, pran li nan sèvè Radius la). Sa a se kote pwòp tèt ou siyen yo pral itilize.

Telechaje sètifika a sou aparèy ou an epi enstale li.

Enstale yon sètifikaWiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Nan ka sa a, w ap bezwen mete yon modèl debloke ekran, kòd PIN oswa modpas, si li pa deja mete:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Mwen te montre yon opsyon konplèks pou enstale yon sètifika. Sou pifò aparèy, tou senpleman klike sou sètifika telechaje a.

Lè sètifika a enstale, ou ka kontinye nan koneksyon an:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

sètifika - endike youn ou enstale a
itilizatè anonim - envite

MacOS

Aparèy Apple yo ka sèlman konekte ak EAP-TLS soti nan bwat la, men ou toujou bezwen ba yo yon sètifika. Pou presize yon metòd koneksyon diferan, ou bezwen sèvi ak Apple Configurator 2. An konsekans, ou bezwen premye telechaje li sou Mac ou a, kreye yon nouvo pwofil epi ajoute tout paramèt WiFi ki nesesè yo.

Apple ConfiguratorWiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Isit la nou endike non rezo nou an
Kalite Sekirite - WPA2 Enterprise
Kalite EAP ki aksepte - TTLS
Non itilizatè ak modpas - kite vid
Otantifikasyon Entèn - PAP
Eksteryè Idantite - kliyan

Tab konfyans. Isit la nou endike domèn nou an

Tout. Pwofil la ka sove, siyen ak distribye nan aparèy

Apre pwofil la pare, ou bezwen telechaje li sou Mac ou epi enstale li. Pandan pwosesis enstalasyon an, w ap bezwen presize usernmae_ldap ak password_ldap itilizatè a:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

yo

Pwosesis la sanble ak macOS. Ou bezwen sèvi ak yon pwofil (ou ka sèvi ak yon sèl la menm jan ak macOS. Gade pi wo a pou kòman yo kreye yon pwofil nan Apple Configurator).

Telechaje pwofil la, enstale, antre kalifikasyon, konekte:

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

WiFi Enterprise. FreeRadius + FreeIPA + Ubiquiti

Se tout. Nou mete sèvè Radius la, senkronize li ak FreeIPA, epi nou te di pwen aksè Ubiquiti yo pou yo itilize WPA2-EAP.

Kesyon posib

NAN: kijan pou transfere yon pwofil/sètifika bay yon anplwaye?

O: Mwen sere tout sètifika / pwofil sou FTP ak aksè atravè entènèt la. Mwen mete yon rezo envite ak yon limit vitès ak aksè sèlman nan Entènèt la, ak eksepsyon de FTP.
Otantifikasyon dire 2 jou, apre sa li reset epi kliyan an rete san entènèt la. Sa. Lè yon anplwaye vle konekte ak WiFi, li premye konekte ak rezo envite, konekte nan FTP, telechaje sètifika oswa pwofil li bezwen an, enstale yo, epi Lè sa a, ka konekte nan rezo antrepriz la.

NAN: poukisa pa sèvi ak yon konplo ak MSCHAPv2? li pi an sekirite!

O: premyèman, konplo sa a travay byen sou NPS (Windows Network Policy System), nan aplikasyon nou an li nesesè anplis konfigirasyon LDAP (FreeIpa) ak magazen hashes modpas sou sèvè a. Ajoute. Li pa konseye pou fè paramètres, paske sa ka mennen nan divès pwoblèm ak senkronizasyon nan sistèm nan ultrason. Dezyèmman, hash la se MD4, kidonk li pa ajoute anpil sekirite

NAN: Èske li posib pou otorize aparèy lè l sèvi avèk adrès Mac?

O: NON, sa a pa an sekirite, yon atakè ka twonpe adrès MAC, e menm plis konsa, otorizasyon nan adrès MAC pa sipòte sou anpil aparèy.

NAN: Poukisa sèvi ak tout sètifika sa yo ditou? ou ka konekte san yo

O: sètifika yo itilize pou otorize sèvè a. Moun sa yo. Lè konekte, aparèy la tcheke si li se yon sèvè ki ka fè konfyans oswa ou pa. Si se konsa, otantifikasyon an ap kontinye; si se pa sa, koneksyon an fèmen. Ou ka konekte san sètifika, men si yon atakè oswa yon vwazen mete kanpe yon sèvè reyon ak yon pwen aksè ki gen menm non ak pa nou lakay li, li ka byen fasil entèsepte kalifikasyon itilizatè a (pa bliye ke yo transmèt nan tèks klè) . Epi lè yo itilize yon sètifika, lènmi an pral wè nan mòso bwa li yo sèlman non itilizatè fiktif nou an - envite oswa kliyan ak yon erè tip - Unknown CA Certificate

yon ti kras plis sou macOSTipikman, sou macOS, re-enstalasyon sistèm lan fèt sou entènèt la. Nan mòd rekiperasyon, Mac a dwe konekte ak WiFi, epi ni WiFi antrepriz nou an, ni rezo envite a pa pral travay isit la. Pèsonèlman, mwen enstale yon lòt rezo, abityèl WPA2-PSK, kache, sèlman pou operasyon teknik. Oswa ou ka tou fè yon kondwi flash USB demaraj ak sistèm nan davans. Men, si Mac ou a apre 2015, w ap bezwen tou jwenn yon adaptè pou kondwi flash sa a)

Sous: www.habr.com

Add nouvo kòmantè