Baadhi ya mifano ya kupanga WiFi ya shirika tayari imeelezwa. Hapa nitaelezea jinsi nilivyotumia suluhisho sawa na shida ambazo nililazimika kukabiliana nazo wakati wa kuunganisha kwenye vifaa tofauti. Tutatumia LDAP iliyopo na watumiaji waliosajiliwa, tutainua FreeRadius na kusanidi WPA2-Enterprise kwenye kidhibiti cha Ubnt. Kila kitu kinaonekana kuwa rahisi. Hebu tuoneβ¦
Kidogo kuhusu njia za EAP
Kabla ya kuendelea na kazi, tunahitaji kuamua ni njia gani ya uthibitishaji tutakayotumia katika suluhisho letu.
Kutoka Wikipedia:
EAP ni mfumo wa uthibitishaji ambao mara nyingi hutumiwa katika mitandao isiyo na waya na miunganisho ya uhakika hadi hatua. Umbizo lilielezewa kwa mara ya kwanza katika RFC 3748 na kusasishwa katika RFC 5247.
EAP hutumiwa kuchagua mbinu ya uthibitishaji, funguo za kupitisha, na kuchakata funguo hizo kwa programu-jalizi zinazoitwa mbinu za EAP. Kuna njia nyingi za EAP, zote zimefafanuliwa na EAP yenyewe na iliyotolewa na wachuuzi binafsi. EAP haifafanui safu ya kiungo, inafafanua tu umbizo la ujumbe. Kila itifaki inayotumia EAP ina itifaki yake ya usimbaji ujumbe wa EAP.
Mbinu zenyewe:
- LEAP ni itifaki ya umiliki iliyotengenezwa na CISCO. Udhaifu umepatikana. Kwa sasa haipendekezi kutumia
- EAP-TLS inasaidiwa vyema kati ya wachuuzi wasio na waya. Ni itifaki salama kwa sababu ndiyo mrithi wa viwango vya SSL. Kuweka mteja ni ngumu sana. Unahitaji cheti cha mteja pamoja na nenosiri. Inasaidiwa kwenye mifumo mingi
- EAP-TTLS - inaungwa mkono sana kwenye mifumo mingi, inatoa usalama mzuri kwa kutumia vyeti vya PKI kwenye seva ya uthibitishaji pekee.
- EAP-MD5 ni kiwango kingine wazi. Inatoa usalama mdogo. Inayo hatarini, haitumii uthibitishaji wa pande zote na uundaji muhimu
- EAP-IKEv2 - kulingana na toleo la 2 la Itifaki ya Ubadilishanaji Muhimu ya Mtandao. Hutoa uthibitishaji wa pande zote na uanzishaji wa ufunguo wa kipindi kati ya mteja na seva.
- PEAP ni suluhisho la pamoja la CISCO, Microsoft na Usalama wa RSA kama kiwango wazi. Inapatikana sana katika bidhaa, hutoa usalama mzuri sana. Sawa na EAP-TTLS, inayohitaji cheti cha upande wa seva pekee
- PEAPv0/EAP-MSCHAPv2 - baada ya EAP-TLS, hiki ni kiwango cha pili kinachotumika kwa wingi duniani. Uhusiano wa seva ya mteja uliotumika katika Microsoft, Cisco, Apple, Linux
- PEAPv1/EAP-GTC - Imeundwa na Cisco kama njia mbadala ya PEAPv0/EAP-MSCHAPv2. Hailindi data ya uthibitishaji kwa njia yoyote. Haitumiki kwenye Windows OS
- EAP-FAST ni mbinu iliyotengenezwa na Cisco ili kurekebisha mapungufu ya LEAP. Hutumia Kitambulisho cha Ufikiaji Uliolindwa (PAC). Haijakamilika kabisa
Kati ya utofauti huu wote, chaguo bado sio kubwa. Njia ya uthibitishaji ilihitajika: usalama mzuri, usaidizi kwenye vifaa vyote (Windows 10, macOS, Linux, Android, iOS) na, kwa kweli, rahisi zaidi. Kwa hiyo, chaguo liliangukia EAP-TTLS kwa kushirikiana na itifaki ya PAP.
Swali linaweza kutokea - Kwa nini utumie PAP? kwa sababu anatuma nywila kwa uwazi?
Ndiyo hiyo ni sahihi. Mawasiliano kati ya FreeRadius na FreeIPA yatafanyika kwa njia hii. Katika hali ya utatuzi, unaweza kufuatilia jinsi jina la mtumiaji na nenosiri hutumwa. Ndiyo, na waache waende, ni wewe tu unayeweza kufikia seva ya FreeRadius.
Unaweza kusoma zaidi kuhusu kazi ya EAP-TTLS
BureRADIUS
FreeRadius itatolewa kwenye CentOS 7.6. Hakuna chochote ngumu hapa, tunaiweka kwa njia ya kawaida.
yum install freeradius freeradius-utils freeradius-ldap -y
Toleo la 3.0.13 limewekwa kutoka kwa vifurushi. Mwisho unaweza kuchukuliwa
Baada ya hapo, FreeRadius tayari inafanya kazi. Unaweza kufuta mstari katika /etc/raddb/users
steve Cleartext-Password := "testing"
Fungua kwenye seva katika hali ya utatuzi
freeradius -X
Na fanya muunganisho wa jaribio kutoka kwa mwenyeji wa ndani
radtest steve testing 127.0.0.1 1812 testing123
Nimepata jibu Imepokea Kitambulisho cha Kukubali-Kufikia 115 kutoka 127.0.0.1:1812 hadi 127.0.0.1:56081 urefu wa 20, ina maana kila kitu kiko sawa. Endelea.
Tunaunganisha moduli ldap.
ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
Na tutaibadilisha mara moja. Tunahitaji FreeRadius ili kuweza kufikia 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}})"
}
...
Anzisha tena seva ya radius na uangalie maingiliano ya watumiaji wa LDAP:
radtest user_ldap password_ldap localhost 1812 testing123
Kuhariri ndani mods-enabled/eaap
Hapa tunaongeza matukio mawili ya eap. Watatofautiana tu katika vyeti na funguo. Hapo chini nitaelezea kwa nini hii ni hivyo.
mods-enabled/eaap
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"
}
}
Uhariri zaidi tovuti imewezeshwa/chaguo-msingi. Sehemu za idhini na uthibitishaji zinavutia.
tovuti imewezeshwa/chaguo-msingi
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
}
Katika sehemu ya idhini, tunaondoa moduli zote ambazo hatuhitaji. Tunaacha ldap tu. Ongeza uthibitishaji wa mteja kwa jina la mtumiaji. Ndio maana tuliongeza mifano miwili ya eap hapo juu.
EAP nyingiUkweli ni kwamba wakati wa kuunganisha vifaa vingine, tutatumia vyeti vya mfumo na kutaja kikoa. Tuna cheti na ufunguo kutoka kwa mamlaka ya cheti kinachoaminika. Kwa kibinafsi, kwa maoni yangu, utaratibu wa uunganisho huo ni rahisi zaidi kuliko kutupa cheti cha kujiandikisha kwenye kila kifaa. Lakini hata bila vyeti vya kujiandikisha, bado haikufanya kazi. Vifaa vya Samsung na Android =< matoleo 6 hayawezi kutumia vyeti vya mfumo. Kwa hivyo, tunaunda mfano tofauti wa eap-mgeni kwao na vyeti vya kujiandikisha. Kwa vifaa vingine vyote, tutatumia eap-client na cheti cha kuaminika. Jina la Mtumiaji linabainishwa na sehemu isiyojulikana wakati kifaa kimeunganishwa. Thamani 3 pekee ndizo zinazoruhusiwa: Mgeni, Mteja na sehemu tupu. Kila kitu kingine kinatupwa. Itakuwa configured katika wanasiasa. Nitatoa mfano baadaye kidogo.
Hebu tuhariri idhini na kuthibitisha sehemu ndani tovuti-imewezeshwa/ndani-handaki
tovuti-imewezeshwa/ndani-handaki
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
}
Kisha, unahitaji kubainisha katika sera ambayo majina yanaweza kutumika kwa ajili ya kuingia bila kukutambulisha. Kuhariri policy.d/chujio.
Unahitaji kupata mistari inayofanana na hii:
if (&outer.request:User-Name !~ /^(anon|@)/) {
update request {
Module-Failure-Message = "User-Name is not anonymized"
}
reject
}
Na hapa chini katika elsif ongeza maadili unayotaka:
elsif (&outer.request:User-Name !~ /^(guest|client|@)/) {
update request {
Module-Failure-Message = "User-Name is not anonymized"
}
reject
}
Sasa tunahitaji kuhamia kwenye saraka cert. Hapa unahitaji kuweka ufunguo na cheti kutoka kwa mamlaka ya cheti kinachoaminika, ambacho tayari tunacho na tunahitaji kutoa vyeti vya kujiandikisha vya eap-guest.
Badilisha vigezo kwenye faili 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"
Tunaandika maadili sawa kwenye faili seva.cnf. Tunabadilisha tu
jina la kawaida:
seva.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"
Unda:
make
Tayari. Imepokelewa seva.crt ΠΈ kitufe cha seva tayari tumejiandikisha hapo juu katika eap-guest.
Na hatimaye, hebu tuongeze pointi zetu za kufikia kwenye faili mteja.conf. Nina 7 kati yao. Ili sio kuongeza kila hatua tofauti, tutaandika tu mtandao ambao ziko (pointi zangu za kufikia ziko kwenye VLAN tofauti).
client APs {
ipaddr = 192.168.100.0/24
password = password_AP
}
Mdhibiti wa Ubiquiti
Tunainua mtandao tofauti kwenye mtawala. Hebu iwe 192.168.2.0/24
Nenda kwa mipangilio -> wasifu. Tunaunda mpya:
Tunaandika anwani na bandari ya seva ya radius na nenosiri ambalo liliandikwa kwenye faili wateja.conf:
Unda jina jipya la mtandao lisilotumia waya. Chagua WPA-EAP (Enterprise) kama njia ya uthibitishaji na ubainishe wasifu wa radius iliyoundwa:
Tunahifadhi kila kitu, tuma na uendelee.
Kuweka wateja
Wacha tuanze na ngumu zaidi!
Windows 10
Ugumu unakuja kwa ukweli kwamba Windows bado haijui jinsi ya kuunganisha kwa WiFi ya ushirika kupitia kikoa. Kwa hivyo, tunapaswa kupakia cheti chetu wenyewe kwenye duka la cheti linaloaminika. Hapa unaweza kutumia waliojiandikisha na kutoka kwa mamlaka ya uthibitishaji. Nitatumia ya pili.
Ifuatayo, unahitaji kuunda muunganisho mpya. Ili kufanya hivyo, nenda kwa mipangilio ya mtandao na Mtandao -> Mtandao na Kituo cha Kushiriki -> Unda na usanidi muunganisho mpya au mtandao:
Weka mwenyewe jina la mtandao na ubadilishe aina ya usalama. Baada ya sisi bonyeza badilisha mipangilio ya uunganisho na katika kichupo cha Usalama, chagua uthibitishaji wa mtandao - EAP-TTLS.
Tunaingia kwenye vigezo, kuagiza usiri wa uthibitishaji - mteja. Kama mamlaka ya uidhinishaji inayoaminika, chagua cheti tulichoongeza, chagua kisanduku "Usitoe mwaliko kwa mtumiaji ikiwa seva haiwezi kuidhinishwa" na uchague mbinu ya uthibitishaji - nenosiri ambalo halijasimbwa (PAP).
Ifuatayo, nenda kwa mipangilio ya hali ya juu, weka tiki kwenye "Taja hali ya uthibitishaji." Chagua "Uthibitishaji wa Mtumiaji" na ubonyeze kuhifadhi sifa. Hapa utahitaji kuingiza username_ldap na password_ldap
Tunahifadhi kila kitu, tumia, funga. Unaweza kuunganisha kwenye mtandao mpya.
Linux
Nilijaribu kwenye Ubuntu 18.04, 18.10, Fedora 29, 30.
Kwanza, hebu tupakue cheti chetu. Sikupata katika Linux ikiwa inawezekana kutumia cheti cha mfumo na ikiwa kuna duka kama hilo hata kidogo.
Hebu tuunganishe kwenye kikoa. Kwa hivyo, tunahitaji cheti kutoka kwa mamlaka ya uthibitishaji ambayo cheti chetu kilinunuliwa.
Viunganisho vyote vinafanywa kwenye dirisha moja. Kuchagua mtandao wetu:
mteja asiyejulikana
kikoa - kikoa ambacho cheti kimetolewa
Android
zisizo za Samsung
Kutoka kwa toleo la 7, unapounganisha WiFi, unaweza kutumia vyeti vya mfumo kwa kubainisha kikoa pekee:
kikoa - kikoa ambacho cheti kimetolewa
mteja asiyejulikana
Samsung
Kama nilivyoandika hapo juu, vifaa vya Samsung havijui jinsi ya kutumia cheti cha mfumo wakati wa kuunganisha kwenye WiFi, na hawana uwezo wa kuunganishwa kupitia kikoa. Kwa hivyo, lazima uongeze cheti cha mizizi ya mamlaka ya uthibitishaji kwa mikono (ca.pem, tunaichukua kwenye seva ya Radius). Hapa ndipo ambapo kujitia sahihi kutatumika.
Pakua cheti kwenye kifaa chako na ukisakinishe.
Ufungaji wa cheti
Wakati huo huo, utahitaji kuweka mchoro wa kufungua skrini, msimbo wa siri au nenosiri, ikiwa bado halijawekwa:
Nilionyesha toleo ngumu la kusakinisha cheti. Kwenye vifaa vingi, bonyeza tu kwenye cheti kilichopakuliwa.
Wakati cheti kimewekwa, unaweza kuendelea na muunganisho:
cheti - onyesha moja ambayo imewekwa
mtumiaji asiyejulikana - mgeni
MacOS
Vifaa vya Apple nje ya kisanduku vinaweza tu kuunganisha kwa EAP-TLS, lakini bado unahitaji kuvitupia cheti. Ili kutaja njia tofauti ya uunganisho, unahitaji kutumia Apple Configurator 2. Ipasavyo, lazima kwanza uipakue kwenye Mac yako, uunda wasifu mpya na uongeze mipangilio yote muhimu ya WiFi.
Apple Configurator
Weka jina la mtandao wako hapa
Aina ya Usalama - WPA2 Enterprise
Aina za EAP Zinazokubalika - TTLS
Jina la mtumiaji na Nenosiri - acha tupu
Uthibitishaji wa Ndani - PAP
Kitambulisho cha Nje-mteja
Kichupo cha uaminifu. Hapa tunabainisha kikoa chetu
Wote. Wasifu unaweza kuhifadhiwa, kusainiwa na kusambazwa kwa vifaa
Baada ya wasifu uko tayari, unahitaji kuipakua kwenye poppy na kuiweka. Wakati wa mchakato wa usakinishaji, utahitaji kutaja usernmae_ldap na password_ldap ya mtumiaji:
iOS
Mchakato huo ni sawa na macOS. Unahitaji kutumia wasifu (unaweza kutumia sawa na kwa macOS. Jinsi ya kuunda wasifu katika Apple Configurator, angalia hapo juu).
Pakua wasifu, sakinisha, weka kitambulisho, unganisha:
Ni hayo tu. Tulianzisha seva ya Radius, tukaisawazisha na FreeIPA, na tukaiambia Ubiquiti APs kutumia WPA2-EAP.
Maswali yanayowezekana
Katika: jinsi ya kuhamisha wasifu/cheti kwa mfanyakazi?
Kuhusu: Ninahifadhi vyeti/wasifu wote kwenye ftp na ufikiaji wa wavuti. Imeongeza mtandao wa wageni wenye kikomo cha kasi na ufikiaji wa Mtandao pekee, isipokuwa ftp.
Uthibitishaji hudumu kwa siku 2, baada ya hapo huwekwa upya na mteja huachwa bila mtandao. Hiyo. mfanyakazi anapotaka kuunganisha kwenye WiFi, kwanza anaunganisha kwenye mtandao wa wageni, anafikia FTP, anapakua cheti au wasifu anaohitaji, anausakinisha, kisha anaweza kuunganisha kwenye mtandao wa shirika.
Katika: kwa nini usitumie schema na MSCHAPv2? Yuko salama zaidi!
Kuhusu: Kwanza, mpango kama huo hufanya kazi vizuri kwenye NPS (Mfumo wa Sera ya Mtandao wa Windows), katika utekelezaji wetu ni muhimu kusanidi kwa kuongeza LDAP (FreeIpa) na kuhifadhi heshi za nenosiri kwenye seva. Ongeza. haipendekezi kufanya mipangilio, kwa sababu. hii inaweza kusababisha matatizo mbalimbali ya kusawazisha ultrasound. Pili, heshi ni MD4, kwa hivyo haiongezi usalama mwingi.
Katika: inawezekana kuidhinisha vifaa na mac-anwani?
Kuhusu: HAPANA, hii si salama, mshambulizi anaweza kubadilisha anwani za MAC, na hata zaidi uidhinishaji wa anwani za MAC hautumiki kwenye vifaa vingi.
Katika: nini kwa ujumla vyeti hivi vyote vya kutumia? unaweza kujiunga bila wao?
Kuhusu: vyeti hutumiwa kuidhinisha seva. Wale. wakati wa kuunganisha, kifaa hukagua ikiwa ni seva inayoweza kuaminiwa au la. Ikiwa ni, basi uthibitishaji unaendelea, ikiwa sio, uunganisho umefungwa. Unaweza kuunganisha bila vyeti, lakini ikiwa mshambulizi au jirani ataweka seva ya radius na kituo cha ufikiaji chenye jina sawa na letu nyumbani, anaweza kukatiza vitambulisho vya mtumiaji kwa urahisi (usisahau kuwa vinatumwa kwa maandishi wazi). Na cheti kinapotumiwa, adui ataona kwenye kumbukumbu zake tu Jina letu la kubuni la Mtumiaji - mgeni au mteja na aina ya hitilafu - Cheti kisichojulikana cha CA.
kidogo zaidi kuhusu macOSKawaida kwenye macOS, kuweka tena mfumo hufanywa kupitia mtandao. Katika hali ya urejeshaji, Mac lazima iunganishwe kwa WiFi, na wala WiFi yetu ya shirika wala mtandao wa wageni hautafanya kazi hapa. Kwa kibinafsi, niliinua mtandao mwingine, WPA2-PSK ya kawaida, iliyofichwa, tu kwa shughuli za kiufundi. Au bado unaweza kutengeneza gari la USB flash la bootable na mfumo mapema. Lakini ikiwa poppy ni baada ya 2015, bado utahitaji kupata adapta ya gari hili la flash)
Chanzo: mapenzi.com