A vállalati WiFi megszervezésére már leírtunk néhány példát. Itt leírom, hogyan valósítottam meg egy hasonló megoldást, és milyen problémákkal kellett szembenéznem, amikor különböző eszközökön csatlakoztam. A meglévő LDAP-t használjuk a regisztrált felhasználókkal, emeljük a FreeRadiust és konfiguráljuk a WPA2-Enterprise-t az Ubnt vezérlőn. Minden egyszerűnek tűnik. Lássuk…
Egy kicsit az EAP módszerekről
Mielőtt folytatnánk a feladatot, el kell döntenünk, hogy melyik hitelesítési módszert alkalmazzuk megoldásunkban.
A Wikipédiából:
Az EAP egy hitelesítési keretrendszer, amelyet gyakran használnak vezeték nélküli hálózatokban és pont-pont kapcsolatokban. A formátumot először az RFC 3748-ban írták le, majd az RFC 5247-ben frissítették.
Az EAP a hitelesítési mód kiválasztására, a kulcsok átadására és a kulcsok EAP metódusoknak nevezett beépülő modulokkal való feldolgozására szolgál. Számos EAP-módszer létezik, mindkettőt magával az EAP-vel határozták meg, és amelyeket az egyes szállítók bocsátanak ki. Az EAP nem határozza meg a kapcsolati réteget, csak az üzenet formátumát. Minden EAP-t használó protokollnak saját EAP-üzenetbeágyazási protokollja van.
Maguk a módszerek:
- A LEAP a CISCO által kifejlesztett szabadalmaztatott protokoll. Sebezhetőséget találtak. Jelenleg nem javasolt a használata
- Az EAP-TLS jól támogatott a vezeték nélküli gyártók körében. Ez egy biztonságos protokoll, mert az SSL szabványok utódja. Az ügyfél beállítása meglehetősen bonyolult. A jelszó mellett szükség van egy kliens tanúsítványra is. Számos rendszeren támogatott
- EAP-TTLS – széles körben támogatott számos rendszeren, jó biztonságot nyújt a PKI tanúsítványok csak a hitelesítési szerveren történő használatával
- Az EAP-MD5 egy másik nyílt szabvány. Minimális biztonságot nyújt. Sebezhető, nem támogatja a kölcsönös hitelesítést és a kulcsgenerálást
- EAP-IKEv2 - az Internet Key Exchange Protocol 2-es verzióján alapul. Kölcsönös hitelesítést és munkamenetkulcs-létrehozást biztosít az ügyfél és a szerver között
- A PEAP a CISCO, a Microsoft és az RSA Security közös megoldása, mint nyílt szabvány. Széles körben elérhető termékekben, nagyon jó biztonságot nyújt. Hasonló az EAP-TTLS-hez, csak egy tanúsítványt igényel a szerver oldalon
- PEAPv0/EAP-MSCHAPv2 – az EAP-TLS után ez a második széles körben használt szabvány a világon. Használt kliens-szerver kapcsolat Microsoft, Cisco, Apple, Linux rendszerben
- PEAPv1/EAP-GTC – A Cisco készítette a PEAPv0/EAP-MSCHAPv2 alternatívájaként. Semmilyen módon nem védi a hitelesítési adatokat. Windows operációs rendszeren nem támogatott
- Az EAP-FAST a Cisco által kifejlesztett technika a LEAP hiányosságainak kijavítására. Védett hozzáférési hitelesítő adatokat (PAC) használ. Teljesen befejezetlen
A sokféleség közül a választék még mindig nem nagy. Szükség volt a hitelesítési módszerre: jó biztonság, támogatás minden eszközön (Windows 10, macOS, Linux, Android, iOS), sőt, minél egyszerűbb, annál jobb. Ezért a választás az EAP-TTLS-re esett a PAP protokollal együtt.
Felmerülhet a kérdés – Miért használjunk PAP-ot? mert tisztán továbbítja a jelszavakat?
Igen ez így van. A FreeRadius és a FreeIPA közötti kommunikáció ilyen módon történik. Hibakeresési módban nyomon követheti a felhasználónév és a jelszó elküldésének módját. Igen, és engedd el őket, csak neked van hozzáférésed a FreeRadius szerverhez.
Az EAP-TTLS munkájáról bővebben olvashat
FreeRADIUS
A FreeRadius a CentOS 7.6-on fog megjelenni. Nincs itt semmi bonyolult, a szokásos módon állítjuk be.
yum install freeradius freeradius-utils freeradius-ldap -y
A 3.0.13-as verzió telepítve van a csomagokból. Ez utóbbit lehet venni
Ezt követően a FreeRadius már működik. A sor megjegyzését az /etc/raddb/users fájlból törölheti
steve Cleartext-Password := "testing"
Indítsa el a szervert hibakeresési módban
freeradius -X
És készíts tesztkapcsolatot a localhost-ról
radtest steve testing 127.0.0.1 1812 testing123
Megvan a válasz 115-ös hozzáférési-elfogadási azonosító érkezett 127.0.0.1:1812 és 127.0.0.1:56081 között 20 hosszúság, ez azt jelenti, hogy minden rendben van. Menj tovább.
Csatlakoztatjuk a modult ldap.
ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
És azonnal megváltoztatjuk. Szükségünk van a FreeRadiusra, hogy hozzáférhessünk a FreeIPA-hoz
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}})"
}
...
Indítsa újra a sugárkiszolgálót, és ellenőrizze az LDAP-felhasználók szinkronizálását:
radtest user_ldap password_ldap localhost 1812 testing123
Szerkesztés eap in mods-enabled/eap
Itt hozzáadjuk az eap két példányát. Csak a tanúsítványokban és a kulcsokban különböznek egymástól. Az alábbiakban elmagyarázom, miért van ez így.
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"
}
}
További szerkesztés site-enabled/alapértelmezett. Az engedélyezési és hitelesítési szakaszok érdekesek.
site-enabled/alapértelmezett
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
}
Az engedélyezési részben eltávolítjuk az összes olyan modult, amelyre nincs szükségünk. Csak az ldap-ot hagyjuk. Adjon hozzá ügyfél-ellenőrzést felhasználónév alapján. Ezért adtunk hozzá két eap-példányt fent.
Több EAPA helyzet az, hogy egyes eszközök csatlakoztatásakor rendszertanúsítványokat használunk, és megadjuk a tartományt. Van egy tanúsítványunk és egy kulcsunk egy megbízható tanúsító hatóságtól. Személy szerint véleményem szerint egy ilyen csatlakozási eljárás egyszerűbb, mint minden eszközön önaláírt tanúsítványt dobni. De még önaláírt tanúsítványok nélkül sem sikerült. Samsung eszközök és Android =< 6 verziók nem használhatnak rendszertanúsítványokat. Ezért külön eap-guest példányt hozunk létre számukra önaláírt tanúsítványokkal. Az összes többi eszköz esetében az eap-klienst használjuk megbízható tanúsítvánnyal. A felhasználónevet az Anonymous mező határozza meg, amikor az eszköz csatlakoztatva van. Csak 3 érték megengedett: Vendég, Ügyfél és egy üres mező. Minden mást eldobnak. A politikusokban lesz beállítva. Kicsit később mondok egy példát.
Szerkesszük az engedélyezési és hitelesítési szakaszokat site-enabled/inner-alagút
site-enabled/inner-alagút
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
}
Ezután meg kell adnia a házirendekben, hogy mely nevek használhatók a névtelen bejelentkezéshez. Szerkesztés policy.d/filter.
Ehhez hasonló sorokat kell találnia:
if (&outer.request:User-Name !~ /^(anon|@)/) {
update request {
Module-Failure-Message = "User-Name is not anonymized"
}
reject
}
Az elsif alatt pedig adja hozzá a kívánt értékeket:
elsif (&outer.request:User-Name !~ /^(guest|client|@)/) {
update request {
Module-Failure-Message = "User-Name is not anonymized"
}
reject
}
Most át kell lépnünk a könyvtárba tanúsítványok. Ide kell elhelyezni a kulcsot és a tanúsítványt egy megbízható tanúsító hatóságtól, amellyel már rendelkezünk, és önaláírt tanúsítványokat kell generálnunk az eap-guest számára.
Módosítsa a fájl paramétereit 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"
Ugyanazokat az értékeket írjuk a fájlba szerver.cnf. Csak mi változunk
gyakori név:
szerver.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"
Teremt:
make
Kész. Megkapta szerver.crt и szerver.kulcs fentebb már regisztráltunk az eap-guestben.
És végül adjuk hozzá hozzáférési pontjainkat a fájlhoz kliens.conf. Nekem 7 db van belőle, hogy ne vegyen fel minden pontot külön, csak azt a hálózatot írjuk ki, amelyben találhatók (az én hozzáférési pontjaim külön VLAN-ban vannak).
client APs {
ipaddr = 192.168.100.0/24
password = password_AP
}
Ubiquiti vezérlő
A vezérlőn külön hálózatot emelünk ki. Legyen 192.168.2.0/24
Menjen a beállítások -> profilhoz. Létrehozunk egy újat:
Megírjuk a sugárkiszolgáló címét és portját, valamint a fájlba írt jelszót clients.conf:
Hozzon létre egy új vezeték nélküli hálózatnevet. Válassza ki a WPA-EAP-t (Enterprise) hitelesítési módszerként, és adja meg a létrehozott sugárprofilt:
Mindent elmentünk, jelentkezünk és megyünk tovább.
Ügyfelek beállítása
Kezdjük a legnehezebbel!
A windows 10
A nehézség abból adódik, hogy a Windows még nem tudja, hogyan kell tartományon keresztül csatlakozni a vállalati WiFi-hez. Ezért manuálisan kell feltöltenünk tanúsítványunkat a megbízható tanúsítványtárolóba. Itt használhatja mind az önaláírt, mind a hitelesítés-szolgáltatótól származó adatokat. A másodikat fogom használni.
Ezután új kapcsolatot kell létrehoznia. Ehhez lépjen a Hálózati és internetbeállítások -> Hálózati és megosztási központ -> Új kapcsolat vagy hálózat létrehozása és konfigurálása menüpontra:
Adja meg kézzel a hálózat nevét, és módosítsa a biztonság típusát. Miután rákattintunk módosítsa a kapcsolat beállításait és a Biztonság lapon válassza a hálózati hitelesítés - EAP-TTLS lehetőséget.
Bemegyünk a paraméterekbe, előírjuk a hitelesítés titkosságát - vásárló. Megbízható hitelesítés-szolgáltatóként válassza ki az általunk hozzáadott tanúsítványt, jelölje be a "Ne adjon ki meghívót a felhasználónak, ha a szerver nem engedélyezhető" négyzetet, és válassza ki a hitelesítési módot - titkosítatlan jelszó (PAP).
Ezután lépjen a speciális beállításokhoz, és jelölje be a „Hitelesítési mód megadása” lehetőséget. Válassza a "Felhasználói hitelesítés" lehetőséget, és kattintson a gombra mentse a hitelesítő adatokat. Itt meg kell adnia a username_ldap és a password_ldap mezőket
Mindent elmentünk, jelentkezünk, bezárunk. Csatlakozhat egy új hálózathoz.
Linux
Ubuntu 18.04, 18.10, Fedora 29, 30 alatt teszteltem.
Először is töltsük le a tanúsítványunkat. Linuxban nem találtam, hogy lehet-e rendszertanúsítványt használni, és van-e egyáltalán ilyen bolt.
Csatlakozzunk a domainhez. Ezért szükségünk van egy tanúsítványra attól a tanúsító hatóságtól, amelytől a tanúsítványunkat vásároltuk.
Minden csatlakozás egy ablakban történik. Hálózatunk kiválasztása:
névtelen-kliens
domain - az a domain, amelyre a tanúsítványt kiállították
Android
nem Samsung
A 7-es verziótól kezdve a WiFi csatlakoztatásakor csak a domain megadásával használhatja a rendszertanúsítványokat:
domain - az a domain, amelyre a tanúsítványt kiállították
névtelen-kliens
Samsung
Ahogy fentebb is írtam, a Samsung készülékek nem tudják, hogyan kell használni a rendszertanúsítványokat a WiFi-hez való csatlakozáskor, és nem tudnak domainen keresztül csatlakozni. Ezért manuálisan kell hozzáadnia a hitelesítésszolgáltató gyökértanúsítványát (ca.pem, a Radius szerveren vesszük fel). Itt az önaláírást fogják használni.
Töltse le a tanúsítványt a készülékére, és telepítse.
Tanúsítvány telepítése
Ezzel egyidejűleg be kell állítania a képernyő feloldási mintáját, a PIN-kódot vagy a jelszót, ha még nincs beállítva:
Megmutattam a tanúsítvány telepítésének egy bonyolult változatát. A legtöbb eszközön egyszerűen kattintson a letöltött tanúsítványra.
A tanúsítvány telepítése után folytathatja a csatlakozást:
tanúsítvány - jelölje meg azt, amelyik telepítve volt
névtelen felhasználó - vendég
MacOS
Az Apple készülékek a dobozból csak az EAP-TLS-hez tudnak csatlakozni, de továbbra is tanúsítványt kell adni nekik. Más csatlakozási mód megadásához az Apple Configurator 2-t kell használnia. Ennek megfelelően először le kell töltenie Mac gépére, létre kell hoznia egy új profilt, és hozzá kell adnia az összes szükséges WiFi beállítást.
Apple Configurator
Ide írja be a hálózat nevét
Biztonsági típus - WPA2 Enterprise
Elfogadott EAP-típusok – TTLS
Felhasználónév és jelszó - hagyja üresen
Belső hitelesítés - PAP
Külső identitás-kliens
Bizalom lap. Itt adjuk meg a domainünket
Minden. A profil menthető, aláírható és eszközökre terjeszthető
Miután elkészült a profil, le kell töltenie a mákba és telepítenie kell. A telepítési folyamat során meg kell adnia a felhasználó usernmae_ldap és password_ldap paramétereit:
iOS
A folyamat hasonló a macOS-hez. Használnia kell egy profilt (ugyanazt használhatja, mint a macOS esetében. Hogyan hozhat létre profilt az Apple Configuratorban, lásd fent).
Profil letöltése, telepítés, hitelesítési adatok megadása, csatlakozás:
Ez minden. Beállítottunk egy Radius szervert, szinkronizáltuk a FreeIPA-val, és azt mondtuk az Ubiquiti hozzáférési pontoknak, hogy WPA2-EAP-t használjanak.
Lehetséges kérdések
BAN BEN: hogyan lehet profilt/tanúsítványt átadni egy alkalmazottnak?
RÓL RŐL: Az összes tanúsítványt/profilt ftp-n tárolom webes hozzáféréssel. Sebességkorlátozással rendelkező vendéghálózatot hozott létre, és csak az internethez férhet hozzá, az ftp kivételével.
A hitelesítés 2 napig tart, utána visszaáll, és a kliens internet nélkül marad. Hogy. amikor egy alkalmazott csatlakozni szeretne a WiFi-hez, először csatlakozik a vendég hálózathoz, hozzáfér az FTP-hez, letölti a szükséges tanúsítványt vagy profilt, telepíti, majd csatlakozhat a vállalati hálózathoz.
BAN BEN: miért nem használ sémát az MSCHAPv2-vel? Biztonságban van!
RÓL RŐL: Először is, egy ilyen séma jól működik az NPS-en (Windows Network Policy System), megvalósításunk során szükség van az LDAP (FreeIpa) további konfigurálására és a jelszókivonatok tárolására a szerveren. Hozzáadás. nem célszerű beállításokat végezni, mert. ez különféle problémákhoz vezethet az ultrahang szinkronizálásában. Másodszor, a hash MD4, tehát nem ad nagy biztonságot.
BAN BEN: lehetséges az eszközök engedélyezése mac-címek alapján?
RÓL RŐL: NEM, ez nem biztonságos, a támadók megváltoztathatják a MAC-címeket, és még inkább a MAC-címek engedélyezése nem támogatott sok eszközön
BAN BEN: általában mire kell használni ezeket a tanúsítványokat? csatlakozhatsz nélkülük?
RÓL RŐL: tanúsítványokat használnak a szerver engedélyezésére. Azok. csatlakozáskor az eszköz ellenőrzi, hogy megbízható-e vagy sem. Ha igen, akkor a hitelesítés folytatódik, ha nem, a kapcsolat megszakad. Tanúsítványok nélkül is csatlakozhat, de ha egy támadó vagy szomszéd otthon beállít egy sugárkiszolgálót és a miénkkel megegyező nevű hozzáférési pontot, könnyen elkaphatja a felhasználó hitelesítő adatait (ne felejtsük el, hogy azokat tiszta szöveggel továbbítják). És amikor egy tanúsítványt használnak, az ellenség csak a fiktív felhasználói nevünket fogja látni - vendég vagy kliens - és egy típushibát - ismeretlen CA-tanúsítvány.
kicsit többet a macOS-rőlÁltalában macOS-en a rendszer újratelepítése az interneten keresztül történik. Helyreállítási módban a Macnek csatlakoznia kell a WiFi-hez, és itt sem a céges WiFi-nk, sem a vendéghálózat nem fog működni. Személy szerint egy másik hálózatot, a szokásos WPA2-PSK-t emeltem ki rejtve, csak technikai műveletekre. Vagy készíthet előre egy indítható USB flash meghajtót a rendszerrel. De ha a mák 2015 után van, akkor is találnia kell egy adaptert ehhez a flash meghajtóhoz)
Forrás: will.com