WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Nokkrum dæmum um skipulagningu á WiFi fyrirtækja hefur þegar verið lýst. Hér mun ég lýsa því hvernig ég innleiddi svipaða lausn og vandamálunum sem ég þurfti að glíma við þegar ég tengdist mismunandi tækjum. Við munum nota núverandi LDAP með skráðum notendum, hækka FreeRadius og stilla WPA2-Enterprise á Ubnt stjórnandanum. Allt virðist vera einfalt. Látum okkur sjá…

Smá um EAP aðferðir

Áður en við höldum áfram með verkefnið þurfum við að ákveða hvaða auðkenningaraðferð við munum nota í lausninni okkar.

Frá Wikipedia:

EAP er auðkenningarrammi sem er oft notaður í þráðlausum netum og punktatengingum. Sniðinu var fyrst lýst í RFC 3748 og uppfært í RFC 5247.
EAP er notað til að velja auðkenningaraðferð, senda lykla og vinna úr þeim lyklum með viðbótum sem kallast EAP aðferðir. Það eru margar EAP aðferðir, bæði skilgreindar með EAP sjálfu og gefnar út af einstökum söluaðilum. EAP skilgreinir ekki hlekkjalagið, það skilgreinir aðeins skilaboðasniðið. Hver samskiptaregla sem notar EAP hefur sína eigin EAP-skilaboðahlífunarreglu.

Aðferðirnar sjálfar:

  • LEAP er sérsamskiptaregla þróuð af CISCO. Veikleikar fundust. Sem stendur er ekki mælt með því að nota það
  • EAP-TLS er vel studd meðal þráðlausra framleiðenda. Þetta er örugg samskiptaregla vegna þess að hún er arftaki SSL staðlanna. Uppsetning viðskiptavinarins er frekar flókin. Þú þarft viðskiptavottorð til viðbótar við lykilorðið. Styður á mörgum kerfum
  • EAP-TTLS - studd víða á mörgum kerfum, býður upp á gott öryggi með því að nota PKI vottorð eingöngu á auðkenningarþjóninum
  • EAP-MD5 er annar opinn staðall. Býður upp á lágmarks öryggi. Viðkvæm, styður ekki gagnkvæma auðkenningu og lyklaframleiðslu
  • EAP-IKEv2 - byggt á Internet Key Exchange Protocol útgáfu 2. Veitir gagnkvæma auðkenningu og stofnun lotulykils milli biðlara og netþjóns
  • PEAP er sameiginleg lausn CISCO, Microsoft og RSA Security sem opinn staðall. Víða fáanlegt í vörum, veitir mjög gott öryggi. Svipað og EAP-TTLS, þarf aðeins vottorð á netþjóninum
  • PEAPv0/EAP-MSCHAPv2 - á eftir EAP-TLS er þetta annar mikið notaði staðallinn í heiminum. Notað samband biðlara og netþjóns í Microsoft, Cisco, Apple, Linux
  • PEAPv1/EAP-GTC - Búið til af Cisco sem valkostur við PEAPv0/EAP-MSCHAPv2. Verndar ekki auðkenningargögn á nokkurn hátt. Ekki stutt á Windows OS
  • EAP-FAST er tækni þróuð af Cisco til að leiðrétta galla LEAP. Notar Protected Access Credential (PAC). Algjörlega ókláruð

Af öllum þessum fjölbreytileika er valið samt ekki mikið. Auðkenningaraðferðin var nauðsynleg: gott öryggi, stuðningur í öllum tækjum (Windows 10, macOS, Linux, Android, iOS) og í raun, því einfaldara því betra. Þess vegna féll valið á EAP-TTLS í tengslum við PAP siðareglur.
Spurningin gæti vaknað - Hvers vegna nota PAP? vegna þess að hann sendir lykilorð á hreinu?

Já það er rétt. Samskipti milli FreeRadius og FreeIPA munu fara fram með þessum hætti. Í villuleitarstillingu geturðu fylgst með því hvernig notendanafn og lykilorð eru send. Já, og slepptu þeim, aðeins þú hefur aðgang að FreeRadius þjóninum.

Þú getur lesið meira um starf EAP-TTLS hér

FreeRADIUS

FreeRadius verður hækkaður á CentOS 7.6. Hér er ekkert flókið, við stillum það á venjulegan hátt.

yum install freeradius freeradius-utils freeradius-ldap -y

Útgáfa 3.0.13 er sett upp úr pökkunum. Hið síðarnefnda má taka https://freeradius.org/

Eftir það er FreeRadius þegar að virka. Þú getur afskrifað línuna í /etc/raddb/users

steve   Cleartext-Password := "testing"

Ræstu inn á netþjóninn í villuleitarstillingu

freeradius -X

Og gerðu prufutengingu frá localhost

radtest steve testing 127.0.0.1 1812 testing123

Fékk svar Móttekið aðgangs-samþykkja auðkenni 115 frá 127.0.0.1:1812 til 127.0.0.1:56081 lengd 20, það þýðir að allt er í lagi. Gjörðu svo vel.

Við tengjum eininguna ldap.

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

Og við munum breyta því strax. Við þurfum FreeRadius til að geta fengið aðgang að 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}})"
}
...

Endurræstu radíusþjóninn og athugaðu samstillingu LDAP notenda:

radtest user_ldap password_ldap localhost 1812 testing123

Breytir eap in mods-virkjað/eap
Hér bætum við við tveimur tilfellum af eap. Þeir munu aðeins vera mismunandi hvað varðar vottorð og lykla. Hér að neðan mun ég útskýra hvers vegna þetta er svona.

mods-virkjað/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"
           }
}

Frekari klipping vefsvæði virkt/sjálfgefið. Heimildar- og auðkenningarhlutarnir eru áhugaverðir.

vefsvæði virkt/sjálfgefið

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
}

Í heimildarhlutanum fjarlægjum við allar einingar sem við þurfum ekki. Við skiljum aðeins ldap. Bættu við staðfestingu viðskiptavinar eftir notandanafni. Þess vegna bættum við við tveimur tilfellum af eap hér að ofan.

Multi EAPStaðreyndin er sú að við tengingu sumra tækja munum við nota kerfisvottorð og tilgreina lénið. Við erum með vottorð og lykil frá traustu vottunaryfirvaldi. Persónulega, að mínu mati, er svona tengingarferli auðveldara en að henda sjálfundirrituðu vottorði á hvert tæki. En jafnvel án sjálfsskrifaðra vottorða gekk það samt ekki upp. Samsung tæki og Android =< 6 útgáfur geta ekki notað kerfisvottorð. Þess vegna búum við til sérstakt tilvik af eap-guest fyrir þá með sjálfundirrituðum vottorðum. Fyrir öll önnur tæki munum við nota eap-viðskiptavininn með traust vottorð. Notandanafnið er ákvarðað af reitnum Nafnlaus þegar tækið er tengt. Aðeins 3 gildi eru leyfð: Gestur, Viðskiptavinur og tómur reitur. Öllu öðru er hent. Það verður stillt í stjórnmálamenn. Ég skal nefna dæmi aðeins síðar.

Við skulum breyta heimildar- og auðkenningarhlutunum í staðvirkt/innri göng

staðvirkt/innri göng

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
}

Næst þarftu að tilgreina í reglum hvaða nöfn má nota fyrir nafnlausa innskráningu. Klippingu policy.d/filter.

Þú þarft að finna línur svipaðar þessari:

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

Og hér að neðan í elsif bættu við viðeigandi gildum:

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

Nú þurfum við að fara í möppuna vottorð. Hér þarftu að setja lykilinn og vottorðið frá traustu vottunaryfirvaldi, sem við höfum nú þegar og þurfum að búa til sjálfundirrituð vottorð fyrir eap-guest.

Breyttu breytum í skránni 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"

Við skrifum sömu gildi í skrána server.cnf. Við breytum aðeins
algengt nafn:

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"

Búa til:

make

Tilbúið. Tekið á móti server.crt и miðlara.lykill við höfum þegar skráð okkur hér að ofan í eap-guest.

Og að lokum skulum við bæta aðgangsstaði okkar við skrána viðskiptavinur.conf. Ég er með 7. Til að bæta ekki hverjum punkti fyrir sig munum við aðeins skrifa netið sem þeir eru staðsettir í (aðgangspunktarnir mínir eru í sérstöku VLAN).

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

Ubiquiti stjórnandi

Við reisum sérstakt net á stjórnandanum. Láttu það vera 192.168.2.0/24
Farðu í stillingar -> prófíl. Við búum til nýjan:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Við skrifum heimilisfang og port radíusþjónsins og lykilorðið sem var skrifað í skrána clients.conf:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Búðu til nýtt nafn á þráðlausu neti. Veldu WPA-EAP (Enterprise) sem auðkenningaraðferð og tilgreindu stofnað radíussnið:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Við vistum allt, sækjum um og höldum áfram.

Að setja upp viðskiptavini

Byrjum á því erfiðasta!

Windows 10

Erfiðleikarnir koma niður á því að Windows veit ekki enn hvernig á að tengjast WiFi fyrirtækja í gegnum lén. Þess vegna verðum við að hlaða upp vottorðinu okkar handvirkt í trausta vottorðaverslunina. Hér getur þú notað bæði sjálfsritað og frá vottunaryfirvöldum. Ég mun nota þann seinni.

Næst þarftu að búa til nýja tengingu. Til að gera þetta, farðu í net- og internetstillingar -> Net- og samnýtingarmiðstöð -> Búðu til og stilltu nýja tengingu eða netkerfi:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Sláðu inn nafn netkerfisins handvirkt og breyttu tegund öryggis. Eftir að við smellum á breyta tengingarstillingum og í Öryggisflipanum skaltu velja netauðkenning - EAP-TTLS.

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Við förum í færibreyturnar, ávísum trúnaði um auðkenningu - viðskiptavinur. Sem traust vottunaraðili skaltu velja vottorðið sem við bættum við, haka í reitinn „Ekki gefa út boð til notandans ef ekki er hægt að heimila þjóninn“ og velja auðkenningaraðferðina - ódulkóðað lykilorð (PAP).

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Næst skaltu fara í háþróaðar stillingar, setja hak á "Tilgreindu auðkenningarstillingu." Veldu „User Authentication“ og smelltu á vista skilríki. Hér þarftu að slá inn username_ldap og password_ldap

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Við vistum allt, sækjum um, lokum. Þú getur tengst nýju neti.

Linux

Ég prófaði á Ubuntu 18.04, 18.10, Fedora 29, 30.

Fyrst skulum við hlaða niður vottorðinu okkar. Ég fann ekki í Linux hvort hægt sé að nota kerfisvottorð og hvort það sé yfirhöfuð slík verslun.

Tengjumst við lénið. Þess vegna þurfum við vottorð frá vottunaryfirvaldinu sem vottorðið okkar var keypt af.

Allar tengingar eru gerðar í einum glugga. Að velja netið okkar:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

nafnlaus-viðskiptavinur
lén - lénið sem vottorðið er gefið út fyrir

Android

ekki frá Samsung

Frá útgáfu 7, þegar þú tengir WiFi, geturðu notað kerfisvottorð með því að tilgreina aðeins lénið:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

lén - lénið sem vottorðið er gefið út fyrir
nafnlaus-viðskiptavinur

Samsung

Eins og ég skrifaði hér að ofan vita Samsung tæki ekki hvernig á að nota kerfisvottorð þegar þau tengjast WiFi og þau hafa ekki getu til að tengjast í gegnum lén. Þess vegna verður þú að bæta handvirkt við rótarvottorð vottunaryfirvaldsins (ca.pem, við tökum það á Radius þjóninum). Hér er þar sem sjálfritað verður notað.

Sæktu vottorðið í tækið þitt og settu það upp.

Uppsetning skírteinaWiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Á sama tíma þarftu að stilla skjáopnunarmynstrið, PIN-númerið eða lykilorðið, ef það er ekki þegar stillt:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Ég sýndi flókna útgáfu af því að setja upp vottorð. Í flestum tækjum smellirðu einfaldlega á niðurhalaða vottorðið.

Þegar vottorðið er sett upp geturðu haldið áfram að tengingunni:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

vottorð - tilgreinið það sem var sett upp
nafnlaus notandi - gestur

MacOS

Apple tæki úr kassanum geta aðeins tengst EAP-TLS, en þú þarft samt að henda vottorði í þau. Til að tilgreina aðra tengingaraðferð þarftu að nota Apple Configurator 2. Í samræmi við það þarftu fyrst að hlaða því niður á Mac þinn, búa til nýjan prófíl og bæta við öllum nauðsynlegum WiFi stillingum.

Apple ConfiguratorWiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Sláðu inn nafn netsins hér
Öryggistegund - WPA2 Enterprise
Samþykktar EAP gerðir - TTLS
Notandanafn og lykilorð - skildu eftir autt
Innri auðkenning - PAP
Ytri auðkenni-viðskiptavinur

Traust flipi. Hér tilgreinum við lénið okkar

Allt. Hægt er að vista, undirrita og dreifa prófílnum í tæki

Eftir að sniðið er tilbúið þarftu að hlaða því niður í valmúann og setja það upp. Meðan á uppsetningarferlinu stendur þarftu að tilgreina usernmae_ldap og password_ldap notandans:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

IOS

Ferlið er svipað og macOS. Þú þarft að nota prófíl (þú getur notað það sama og fyrir macOS. Hvernig á að búa til prófíl í Apple Configurator, sjá hér að ofan).

Sæktu prófíl, settu upp, sláðu inn skilríki, tengdu:

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

WiFi fyrirtæki. FreeRadius + FreeIPA + Ubiquiti

Það er allt og sumt. Við settum upp Radius netþjón, samstilltum hann við FreeIPA og sögðum Ubiquiti AP að nota WPA2-EAP.

Hugsanlegar spurningar

IN: hvernig á að flytja prófíl/skírteini til starfsmanns?

UM: Ég geymi öll skilríki/prófíla á ftp með vefaðgangi. Hækkaði gestanet með hámarkshraða og aðgangi eingöngu að internetinu, að undanskildum ftp.
Auðkenningin varir í 2 daga, eftir það er hún endurstillt og viðskiptavinurinn er skilinn eftir án internetsins. Það. þegar starfsmaður vill tengjast WiFi tengist hann fyrst gestanetinu, opnar FTP, hleður niður skírteininu eða prófílnum sem hann þarf, setur það upp og getur síðan tengst fyrirtækjanetinu.

IN: af hverju ekki að nota skema með MSCHAPv2? Hún er öruggari!

UM: Í fyrsta lagi virkar slíkt kerfi vel á NPS (Windows Network Policy System), í innleiðingu okkar er nauðsynlegt að stilla LDAP (FreeIpa) til viðbótar og geyma lykilorðahassa á þjóninum. Bæta við. það er ekki ráðlegt að gera stillingar, vegna þess að. þetta getur leitt til ýmissa vandamála við að samstilla ómskoðunina. Í öðru lagi er kjötkássa MD4, svo það bætir ekki miklu öryggi.

IN: er hægt að heimila tæki með mac-tölum?

UM: NEI, þetta er ekki öruggt, árásarmaður getur breytt MAC vistföngum, og enn frekar er heimild með MAC vistföngum ekki studd á mörgum tækjum

IN: hvað fyrir almennt öll þessi vottorð að nota? geturðu verið með án þeirra?

UM: vottorð eru notuð til að heimila netþjóninn. Þeir. við tengingu athugar tækið hvort það sé netþjónn sem hægt er að treysta eða ekki. Ef það er, þá heldur auðkenningin áfram, ef ekki er tengingunni lokað. Þú getur tengst án vottorða, en ef árásarmaður eða nágranni setur upp radíusþjón og aðgangsstað með sama nafni og okkar heima getur hann auðveldlega stöðvað skilríki notandans (ekki gleyma því að þau eru send í skýrum texta) . Og þegar skírteini er notað, mun óvinurinn sjá í annálum sínum aðeins gervi notandanafnið okkar - gestur eða viðskiptavinur og tegundarvilla - Óþekkt CA vottorð

aðeins meira um macOSVenjulega á macOS fer enduruppsetning kerfisins fram í gegnum internetið. Í bataham verður Mac að vera tengdur við WiFi og hvorki fyrirtækis WiFi okkar né gestanetið virka hér. Persónulega vakti ég annað net, venjulega WPA2-PSK, falið, aðeins fyrir tæknilegar aðgerðir. Eða þú getur samt búið til ræsanlegt USB glampi drif með kerfinu fyrirfram. En ef valmúinn er eftir 2015, þá þarftu samt að finna millistykki fyrir þetta glampi drif)

Heimild: www.habr.com

Bæta við athugasemd