Sababaraha conto ngatur WiFi perusahaan parantos dijelaskeun. Di dieu kuring bakal ngajelaskeun kumaha kuring ngalaksanakeun solusi anu sami sareng masalah anu kuring kedah nyanghareupan nalika nyambungkeun kana alat anu béda. Kami bakal nganggo LDAP anu aya sareng pangguna anu kadaptar, ngangkat FreeRadius sareng ngonpigurasikeun WPA2-Enterprise dina controller Ubnt. Sagalana sigana basajan. Urang tingali…
A saeutik ngeunaan métode EAP
Sateuacan neraskeun tugas, urang kedah mutuskeun metode auténtikasi mana anu bakal kami anggo dina solusi kami.
Ti Wikipedia:
EAP mangrupikeun kerangka auténtikasi anu sering dianggo dina jaringan nirkabel sareng sambungan titik-ka-titik. Formatna munggaran dijelaskeun dina RFC 3748 sareng diropéa dina RFC 5247.
EAP dianggo pikeun milih metodeu auténtikasi, lulus konci, sareng ngolah konci éta nganggo plug-in anu disebut metode EAP. Aya seueur metode EAP, duanana didefinisikeun sareng EAP sorangan sareng dikaluarkeun ku padagang individu. EAP teu nangtukeun lapisan link, éta ngan nangtukeun format pesen. Unggal protokol nganggo EAP gaduh protokol enkapsulasi pesen EAP sorangan.
Métode sorangan:
- LEAP mangrupikeun protokol proprietary anu dikembangkeun ku CISCO. Vulnerabilities kapanggih. Ayeuna henteu disarankeun pikeun dianggo
- EAP-TLS dirojong saé diantara padagang nirkabel. Éta mangrupikeun protokol anu aman sabab éta panerusna standar SSL. Nyetél klien cukup pajeulit. Anjeun peryogi sertipikat klien salian kecap akses. Dirojong dina seueur sistem
- EAP-TTLS - loba dirojong dina loba sistem, nawarkeun kaamanan alus ku ngagunakeun sertipikat PKI ngan dina server auténtikasi.
- EAP-MD5 mangrupikeun standar kabuka anu sanés. Nawarkeun kaamanan minimal. Rentan, henteu ngadukung silih auténtikasi sareng generasi konci
- EAP-IKEv2 - dumasar kana Internet Key Exchange Protocol versi 2. Nyadiakeun auténtikasi silih sarta ngadegkeun konci sési antara klien jeung server
- PEAP mangrupikeun solusi gabungan CISCO, Microsoft sareng RSA Security salaku standar terbuka. Lega sadia dina produk, nyadiakeun kaamanan pohara alus. Sarupa jeung EAP-TTLS, merlukeun ukur sertipikat dina sisi server
- PEAPv0/EAP-MSCHAPv2 - sanggeus EAP-TLS, ieu standar kadua loba dipaké di dunya. Hubungan klien-server dipaké dina Microsoft, Cisco, Apple, Linux
- PEAPv1 / EAP-GTC - Dijieun ku Cisco salaku alternatif pikeun PEAPv0 / EAP-MSCHAPv2. Henteu ngajaga data auténtikasi dina cara naon waé. Henteu dirojong dina OS Windows
- EAP-FAST mangrupikeun téknik anu dikembangkeun ku Cisco pikeun ngabenerkeun kakurangan LEAP. Ngagunakeun Kapercayaan Aksés Dilindungan (PAC). Sapinuhna tacan beres
Tina sadaya karagaman ieu, pilihanna masih henteu saé. Metodeu auténtikasi diperyogikeun: kaamanan anu saé, dukungan dina sadaya alat (Windows 10, macOS, Linux, Android, ios) sareng, saleresna, langkung saderhana langkung saé. Ku alatan éta, pilihan murag dina EAP-TTLS ditéang jeung protokol PAP.
Patarosan tiasa timbul - Naha nganggo PAP? sabab anjeunna transmits sandi dina jelas?
Sumuhun leres. Komunikasi antara FreeRadius sareng FreeIPA bakal lumangsung ku cara ieu. Dina modeu debug, anjeun tiasa ngalacak kumaha nami pangguna sareng kecap akses dikirim. Leres, sareng ngantepkeun aranjeunna, ngan anjeun gaduh aksés kana server FreeRadius.
Anjeun tiasa maca langkung seueur ngeunaan karya EAP-TTLS
FreeRADIUS
FreeRadius bakal diangkat dina CentOS 7.6. Henteu aya anu pajeulit di dieu, kami nyetél éta dina cara biasa.
yum install freeradius freeradius-utils freeradius-ldap -y
Vérsi 3.0.13 dipasang tina bungkusan. Panungtungan bisa dicokot
Saatos éta, FreeRadius parantos damel. Anjeun tiasa uncomment garis dina /etc/raddb/users
steve Cleartext-Password := "testing"
Ngajalankeun kana server dina modeu debug
freeradius -X
Jeung nyieun sambungan test ti localhost
radtest steve testing 127.0.0.1 1812 testing123
Meunang jawaban Narima Aksés-Tampa Id 115 ti 127.0.0.1:1812 ka 127.0.0.1:56081 panjangna 20, hartina sagalana OK. Lajengkeun.
Urang sambungkeun modul ldap.
ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
Sarta kami bakal ngarobah éta langsung. Urang peryogi FreeRadius supados tiasa ngaksés FreeIPA
mods-diaktipkeun / 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}})"
}
...
Balikan deui server radius sareng pariksa sinkronisasi pangguna LDAP:
radtest user_ldap password_ldap localhost 1812 testing123
Ngédit eap di mods-diaktipkeun / eap
Di dieu urang tambahkeun dua instansi eap. Aranjeunna bakal béda ngan dina sertipikat sareng konci. Di handap ieu kuring bakal ngajelaskeun naha ieu kitu.
mods-diaktipkeun / 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"
}
}
Ngédit salajengna situs-diaktipkeun / standar. Bagian otorisasi sareng oténtikasi anu dipikaresep.
situs-diaktipkeun / standar
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
}
Dina bagian authorize, urang miceun kabeh modul nu urang teu butuh. Urang ninggalkeun ukur ldap. Tambahkeun verifikasi klien ku ngaran pamaké. Éta sababna urang nambihan dua conto eap di luhur.
Multi EAPKanyataanna nyaéta nalika nyambungkeun sababaraha alat, kami bakal nganggo sertipikat sistem sareng netepkeun domain. Kami ngagaduhan sertipikat sareng konci ti otoritas sertipikat anu dipercaya. Pribadi, dina pamanggih kuring, prosedur sambungan sapertos langkung gampang tibatan ngalungkeun sertipikat anu ditandatanganan diri dina unggal alat. Tapi sanaos tanpa sertipikat anu ditandatanganan diri, éta tetep henteu hasil. Alat Samsung sareng Android =<6 versi teu tiasa nganggo sertipikat sistem. Ku alatan éta, urang nyieun hiji conto misah tina eap-tamu pikeun aranjeunna kalayan sertipikat timer ditandatanganan. Pikeun sadaya alat anu sanés, kami bakal nganggo klien eap kalayan sertipikat anu dipercaya. Ngaran pamaké ditangtukeun ku widang Anonim nalika alat disambungkeun. Ngan ukur 3 nilai anu diidinan: Tamu, Klién sareng lapangan kosong. Sagalana sejenna dipiceun. Éta bakal dikonpigurasi dina politikus. Kuring gé masihan conto saeutik engké.
Hayu urang ngédit otorisasi sareng ngaoténtikasi bagian dina situs-diaktipkeun / jero-torowongan
situs-diaktipkeun / jero-torowongan
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
}
Salajengna, anjeun kedah netepkeun dina kawijakan nami mana anu tiasa dianggo pikeun login anonim. Ngédit kawijakan.d/filter.
Anjeun kedah milarian garis anu sami sareng ieu:
if (&outer.request:User-Name !~ /^(anon|@)/) {
update request {
Module-Failure-Message = "User-Name is not anonymized"
}
reject
}
Sareng di handap dina elsif tambahkeun nilai anu dipikahoyong:
elsif (&outer.request:User-Name !~ /^(guest|client|@)/) {
update request {
Module-Failure-Message = "User-Name is not anonymized"
}
reject
}
Ayeuna urang kudu pindah ka diréktori sertipikat. Di dieu anjeun kedah nempatkeun konci sareng sertipikat ti otoritas sertipikat anu dipercaya, anu kami parantos gaduh sareng kedah ngahasilkeun sertipikat anu ditandatanganan diri pikeun tamu eap.
Robah parameter dina file 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"
Kami nyerat nilai anu sami dina file server.cnf. Urang robah wungkul
ngaran umum:
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"
Jieun:
make
Siap. Ditampi server.crt и server.konci kami geus didaptarkeun di luhur di eap-tamu.
Sarta pamustunganana, hayu urang tambahkeun titik aksés urang kana file klien.conf. Kuring boga 7 sahijina. Dina raraga teu nambahan unggal titik misah, urang ngan bakal nulis jaringan nu aranjeunna lokasina (titik aksés kuring dina VLAN misah).
client APs {
ipaddr = 192.168.100.0/24
password = password_AP
}
Ubiquiti controller
Urang ngangkat jaringan misah on controller nu. Hayu éta 192.168.2.0/24
Pindah ka setélan -> profil. Urang nyieun nu anyar:
Kami nyerat alamat sareng palabuhan tina server radius sareng kecap konci anu diserat dina file klien.conf:
Jieun ngaran jaringan nirkabel anyar. Pilih WPA-EAP (Enterprise) salaku metodeu auténtikasi sareng tangtukeun profil radius anu diciptakeun:
Urang nyimpen sagalana, nerapkeun jeung ngaléngkah.
Nyetél klien
Hayu urang mimitian ku anu paling hese!
Windows 10
Kasusahna asalna tina kanyataan yén Windows henteu acan terang kumaha nyambungkeun ka WiFi perusahaan liwat domain. Ku alatan éta, urang kudu sacara manual unggah sertipikat urang ka toko sertipikat dipercaya. Di dieu anjeun tiasa nganggo anu ditandatanganan diri sareng ti otoritas sertifikasi. Abdi badé nganggo anu kadua.
Salajengna, Anjeun kudu nyieun sambungan anyar. Jang ngalampahkeun ieu, buka setélan jaringan sareng Internét -> Jaringan sareng Pusat Babagi -> Jieun sareng konpigurasikeun sambungan atanapi jaringan énggal:
Lebetkeun nami jaringan sacara manual sareng robih jinis kaamanan. Saatos urang klik dina ngarobah setelan sambungan sarta dina tab Kaamanan, pilih auténtikasi jaringan - EAP-TTLS.
Urang lebet kana parameter, resep karusiahan auténtikasi - langganan. Salaku otoritas sertifikasi anu dipercaya, pilih sertipikat anu kami tambahkeun, centang kotak "Ulah ngaluarkeun uleman ka pangguna upami server teu tiasa otorisasi" sareng pilih metodeu auténtikasi - sandi unencrypted (PAP).
Salajengna, buka setélan canggih, nempatkeun keletik dina "Sebutkeun mode auténtikasi". Pilih "User Auténtikasi" teras klik dina nyimpen Kapercayaan. Di dieu anjeun kedah ngasupkeun username_ldap sareng password_ldap
Urang nyimpen sagalana, nerapkeun, nutup. Anjeun tiasa nyambung ka jaringan anyar.
Linux
Kuring diuji dina Ubuntu 18.04, 18.10, Fedora 29, 30.
Mimiti, hayu urang unduh sertipikat kami. Kuring henteu mendakan dina Linux naha mungkin nganggo sertipikat sistem sareng naha aya toko sapertos kitu.
Hayu urang nyambung ka domain. Ku alatan éta, urang peryogi sertipikat ti otoritas sertifikasi ti mana sertipikat urang dibeuli.
Sadaya sambungan dilakukeun dina hiji jandela. Pilih jaringan kami:
anonim-klien
domain - domain nu sertipikat ieu dikaluarkeun
Android
non-Samsung
Tina vérsi 7, nalika nyambungkeun WiFi, anjeun tiasa nganggo sertipikat sistem ku ngan ukur nangtukeun domain:
domain - domain nu sertipikat ieu dikaluarkeun
anonim-klien
Samsung
Salaku I wrote luhur, alat Samsung teu nyaho kumaha carana make sertipikat sistem nalika nyambungkeun ka WiFi, sarta aranjeunna teu boga kamampuhan pikeun nyambungkeun via domain a. Kituna, anjeun kudu sacara manual nambahkeun sertipikat akar otoritas sertifikasi (ca.pem, urang nyandak eta dina server Radius). Di dieu nyaeta dimana timer ditandatanganan bakal dipaké.
Unduh sertipikat ka alat anjeun sareng pasang.
Pamasangan Sertipikat
Dina waktos anu sami, anjeun kedah nyetél pola muka konci layar, kodeu pin atanapi kecap akses, upami éta henteu acan disetel:
Kuring némbongkeun versi pajeulit tina masang sertipikat. Dina kalolobaan alat, kantun klik sertipikat anu diunduh.
Nalika sertipikat dipasang, anjeun tiasa neruskeun sambungan:
sertipikat - nunjukkeun hiji anu dipasang
pamaké anonim - tamu
macOS
Alat Apple out of the box ngan bisa nyambung ka EAP-TLS, tapi anjeun masih kudu buang sertipikat ka aranjeunna. Pikeun nangtukeun metodeu sambungan anu béda, anjeun kedah nganggo Apple Configurator 2. Sasuai, anjeun kedah ngaunduh heula kana Mac anjeun, jieun profil énggal sareng tambahkeun sadaya setélan WiFi anu diperyogikeun.
Apple Configurator
Lebetkeun nami jaringan anjeun di dieu
Tipe Kaamanan - WPA2 Enterprise
Ditampa Tipe EAP - TTLS
Ngaran pamaké sarta Sandi - ninggalkeun kosong
Auténtikasi Batin - PAP
Luar Identity-klien
Tab kapercayaan. Di dieu urang nangtukeun domain urang
Sadayana. Profilna tiasa disimpen, ditandatanganan sareng disebarkeun ka alat
Saatos profil parantos siap, anjeun kedah unduh kana poppy sareng pasang. Salila prosés pamasangan, anjeun kedah netepkeun usernmae_ldap sareng password_ldap pangguna:
ios
Prosésna sami sareng macOS. Anjeun kedah nganggo profil (anjeun tiasa nganggo anu sami sareng macOS. Kumaha cara ngadamel profil dina Apple Configurator, tingali di luhur).
Unduh profil, pasang, asupkeun kredensial, sambungkeun:
Éta hungkul. Kami nyetél server Radius, nyingkronkeun sareng FreeIPA, sareng nyarios ka Ubiquiti AP nganggo WPA2-EAP.
Patarosan kamungkinan
Dina: kumaha cara nransper profil/sertipikat ka pagawe?
Ngeunaan: Kuring nyimpen sagala sertipikat / profil dina ftp kalawan aksés web. Ngangkat jaringan tamu kalawan wates speed na aksés ngan ka Internet, iwal ftp.
Auténtikasi lumangsung 2 dinten, saatos éta direset sareng klien ditinggalkeun tanpa Internét. Anu. lamun hiji pagawe hayang nyambung ka WiFi, anjeunna mimiti nyambung ka jaringan tamu, ngakses FTP, ngundeur sertipikat atawa profil manehna perlu, install deui, lajeng bisa nyambung ka jaringan perusahaan.
Dina: naha henteu nganggo skéma sareng MSCHAPv2? Manehna leuwih aman!
Ngeunaan: Anu mimiti, skéma sapertos kitu tiasa dianggo dina NPS (Windows Network Policy System), dina palaksanaan urang kedah ngonpigurasikeun tambahan LDAP (FreeIpa) sareng nyimpen sandi hashes dina server. Tambihan. teu sasaena nyieun setelan, sabab. Ieu bisa ngakibatkeun sagala rupa masalah nyingkronkeun ultrasound nu. Kadua, hash nyaéta MD4, janten henteu nambihan seueur kaamanan.
Dina: éta mungkin mun otorisasi alat ku mac-alamat?
Ngeunaan: Henteu, ieu henteu aman, panyerang tiasa ngarobih alamat MAC, komo deui otorisasi ku alamat MAC henteu didukung dina seueur alat.
Dina: Naon umumna sadayana sertipikat ieu dianggo? anjeun tiasa gabung tanpa aranjeunna?
Ngeunaan: sertipikat dipaké pikeun otorisasi server. Jelema. nalika nyambungkeun, alat mariksa naha éta téh server anu bisa dipercaya atawa henteu. Upami kitu, teras auténtikasi diteruskeun, upami henteu, sambunganna ditutup. Anjeun tiasa nyambungkeun tanpa sertipikat, tapi upami panyerang atanapi tatangga nyetél server radius sareng titik aksés anu sami sareng nami di bumi, anjeunna tiasa gampang nyegat kapercayaan pangguna (ulah hilap yén aranjeunna dikirimkeun dina téks anu jelas). Sareng nalika sertipikat dianggo, musuh bakal ningali dina log na ngan ukur nami pangguna fiksi - tamu atanapi klien sareng kasalahan jinis - Sertipikat CA anu teu dipikanyaho
langkung seueur ngeunaan macOSBiasana dina macOS, pamasangan ulang sistem dilakukeun ngalangkungan Internét. Dina modeu recovery, Mac kudu disambungkeun ka WiFi, sarta boh WiFi perusahaan urang atawa jaringan tamu moal jalan di dieu. Pribadi, abdi diangkat jaringan sejen, nu biasa WPA2-PSK, disumputkeun, ngan pikeun operasi teknis. Atanapi anjeun masih tiasa ngadamel USB flash drive bootable sareng sistem sateuacanna. Tapi upami poppy saatos 2015, anjeun masih kedah milarian adaptor pikeun flash drive ieu)
sumber: www.habr.com