Freeradius Active Directory és Mac Address autentikáció

Sziasztok!

Lentebb már kérdeztem, hogyan tudnék MAC address szűrést rakni Ubiquiti Unifi eszközre. Elkezdtem a freeradius tanulmányozását.

Egyenlőre ott tartok, hogy sikerült leírás alapján úgy bekonfigurálnom egy alap freeradius szervert, hogy a user fájlban lévő felhasználónév és jelszó segítségével lehet csatlakozni a wifihez. PEAP hitelesítést használva. Így az eszközökre nem kell tanúsítványt telepíteni Ezt kellene tovább bővíteni azzal, hogy a MAC addresst is ellenőrizze.

Lehetséges úgy beállítani a freeradiust, hogy hitelesítsen felhasználónév, jelszó és MAC address hármassal? Később esetleg úgy, hogy a felhasználónevet és jelszót Active Directory-ból vegye?

MAC address szűrés mindenképpen kell, az igazgatót nem lehet lebeszélni róla, mert szerinte az úgy is kikerül a diákok kezébe. Emiatt addig nem is engedi az eszközt élesíteni, amíg a MAC szűrés nincs meg. MAC szűréshez nem találtam egyértelmű leírást, ezért kezdtem el először egy alap felhasználónév jelszó hitelesítést összerakni. Hogy ne csak MAC szűrés legyen, ezért gondoltam, hogy meghagyom a felhasználónév jelszó hitelesítést is mellé, ha lehet.

Előre is köszönöm a segítséget.

Hozzászólások

Ebből te melyik alapján állítottad be? Itt van 6 lehetőség.

Próbálkoztam a Plain MAC-Auth beállításával a leírás alapján. Viszont ebben az esetben milyen felhasználónév, jelszót kell megadni? mert ha nem adok meg semmit, azt írja Hitelesítési hiba. Valamint ha az eap-ot alapértelmezetten hagyom, akkor nem kell tanúsítvány az eszközökre?

Nos a helyzet a következő. Két helyen is kísérletezek, otthon és a munkahelyen.

Otthon http://www.linuxlasse.net/linux/howtos/Freeradius_EAP-PEAP_(TLS) ez a leírás alapján megy, hogy a users fájlban lévő felhasználónév jelszó párossal tudja hitelesíteni az eszközöket a wifi. Ehhez jönne még hozzá http://wiki.freeradius.org/guide/Mac-Auth#Plain-Mac-Auth ez a leírás alapján a Mac-Auth and 802.1x Tegnap ezt meg is csináltam, de valamiért nem veszi figyelembe a MAC címeket, beenged minden eszközt, amin megadom a felhasználónevet és jelszót.

A munkahelyemen Active Directory-ból való hitelesítést próbálok beállítani, amit majd aztán összekötök a Mac-Auth and 802.1x beállítással. Itt odáig jutottam egy leírás alapján, hogy a Linux csatlakoztatva van a tartományhoz, és az ntlm_auth tudja hitelesíteni a felhasználókat. Ezután http://wiki.freeradius.org/guide/FreeRADIUS-Active-Directory-Integratio… ez a leírás alapján próbáltam összekötni az AD hitelesítést a freeradius-al, de nem működik. Ami a users fájlba van írva felhasználó, azzal hitelesít, de AD-ben lévő felhasználóval nem.

Nos az AD hitelesítés mellé is beállítottam a MAC autentikációt. A következő a probléma:

Ha AD-s felhasználóval akarok hitelesíteni, a log a következő hibát írja:


Thu Sep  4 09:26:33 2014 : Auth: Login incorrect (mschap: External script says Reading winbind reply failed! (0xc0000001)): [kisspepe/<via Auth-Type = EAP>] (from client 172.17.253.2 port 0 via TLS tunnel)
Thu Sep  4 09:26:33 2014 : Auth: Login incorrect: [kisspepe/<via Auth-Type = EAP>] (from client 172.17.253.2 port 0 cli 34-51-C9-45-7D-3C)

Miután http://wiki.freeradius.org/guide/Mac-Auth#Plain-Mac-Auth a leírás alapján beállítottam mellé a MAC autentikációt is, a freeradius újraindításakor a következő hibaüzenet került a log-ba:


Thu Sep  4 11:40:43 2014 : Error: /etc/freeradius/sites-enabled/default[91]: Failed to load module "rewrite_calling_station_id".
Thu Sep  4 11:40:43 2014 : Error: /etc/freeradius/sites-enabled/default[69]: Errors parsing authorize section. 
Thu Sep  4 11:40:43 2014 : Error: Failed to load virtual server <default>

A default fájlt a következő linken elérhető: https://dl.dropboxusercontent.com/u/1464483/freeradius/sites-available/…

Mik lehetnek a problémák?

Ugye a "files"-fájlban benne van az "authorized_macs".. Rewrite-modul be van töltve.? A policy.conf hogynéz ki.?

God bless you, Captain Hindsight..

Persze a files-ben benne van az authorized_macs. A policy.confba is beállítottam amit a leírás ír. A rewrite modul nem tudom, hogy be van-e töltve, azt hogyan tudom ellenőrizni? A hétvégén otthon telepítek virtuális gépre egy Win 2008-at, hogy otthon is tudjak az AD-s hitelesítéssel kísérletezni. Ha az összejött, akkor utána próbálkozok tovább a MAC autentikációval.

Az AD hitelesítéssel is tovább jutottam, csak most újabb hibát ír, amihez még nem találtam meg a megoldást:


Fri Sep  5 09:05:50 2014 : Auth: Login incorrect (mschap: External script says Logon failure (0xc000006d)): [kisspepe/<via Auth-Type = EAP>] (from client 172.17.253.2 port 0 via TLS tunnel)
Fri Sep  5 09:05:50 2014 : Auth: Login incorrect: [kisspepe/<via Auth-Type = EAP>] (from client 172.17.253.2 port 0 cli 34-23-BA-B5-81-47)

Valamint a logban mindíg bekerül a következő hiba:


Fri Sep  5 09:04:56 2014 : Error: Failed binding to authentication address * port 1812: Address already in use 
Fri Sep  5 09:04:56 2014 : Error: /etc/freeradius/radiusd.conf[240]: Error binding to port for 0.0.0.0 port 1812

Hát ez egyszerűen nem megy. Itthoni kísérlethez telepítettem egy Active Directoryt ugyan azokkal a beállításokkal mint a munkahelyen.

Ubuntun a csatlakozás megy, az ntlm_auth hitelesíti a felhasználót.

A freeradiust ppa tárolóból telepítettem ppa:freeradiu/stable-3.0

Két leírást használtam:
https://docs.google.com/document/d/14LnsBznOw0w2fR7xgBJhzyWp1OztlKO6D5f…
http://wiki.freeradius.org/guide/FreeRADIUS-Active-Directory-Integratio…

Ezek alapján állítottam be a freeradiust. Ha be akarok lépni Android telóról a következő hibákat adja:

EAP módszer: PEAP
Phase 2 hitelesítés: MSCHAPV2

Felhasználónév kisspepe

Hiba:

mschap: No NT-Domain was found in the User-Name

Felhasználónév: pg.local\kisspepe

Hiba: [code]mschape:Program returned code (1) and output 'Reading winbind reply failed! (0x0000001)

A freeradius -X kimenete az alábbi linkről letölthető:
https://dl.dropboxusercontent.com/u/1464483/radiusconfig

Jelenleg ott tartok, hogy az Active Directory hitelesítés megy. A freeradius tudja hitelesíteni a felhasználót AD-n keresztül.

Csináltam két virtuális szervert a freeradius konfigban, egy tanar és egy kollegium-ot. A sites-available-ben létrehoztam a default alapján mind a kettőnek a megfelelő fájlt, valamint a files-be is létrehoztam a megfelelő bejegyzéseket, ahol megadtam a hozzájuk tartozó users fájl elérhetőségét is.

Mégis ha nem AD felhasználót adok meg, akkor nem a virtuális szerverhez tartozó users fájlt nézi meg, hanem az alap users fájlt.

Nem tudom ennek mi lehet az oka?

Most jönne majd az, hogy beállítsam a MAC address szűrést.
Meg lehet úgy oldani a MAC szűrést, hogy a két virtuális szerveren menjen a users fájlból való hitelesítés is, az AD-s hitelesítés is és emellett a MAC szűrés?

Mostmár működik az Active Directory hitelesítés freeradiusal, és mellé a két szerveren külön megy a MAC szűrés is.

Mostmár csak az a probléma, ha nem AD-ból van a felhasználó, akkor az a users fájlból veszi, és nem abból amit én megadtam az adott virtuális szervernek. Pl. a lentebbi konfigban az AP a kollegium virtuális szerverbe tartozik, és a kollegium-user-list-ből kellene vennie a felhasználót, de nem ezt teszi.


/etc/freeradius/clients.conf
-------------------------------------------

client 172.16.253.8 {
   secret         = jelszo
   shortname      = 172.16.253.8
   virtual_server = kollegium
}

-------------------------------------------

/etc/mods-enabled/files
-------------------------------------------

files {
    moddir = ${modconfdir}/${.instance}
    filename = ${moddir}/authorize
    usersfile = ${moddir}/authorize
    acctusersfile = ${moddir}/accounting
    preproxy_usersfile = ${moddir}/pre-proxy
}

files kollegium {
    moddir = /etc/freeradius/mods-config/files

    filename = ${moddir}/kollegium-user-list
    usersfile = ${moddir}/kollegium-user-list
    acctusersfile = ${moddir}/accounting
    preproxy_usersfile = ${moddir}/pre-proxy
}

files kollegium_macs {
    moddir = /etc/freeradius/mods-config/files

    key = "%{Calling-Station-ID}"
    filename = ${moddir}/kollegium_macs
    usersfile = ${moddir}/kollegium_macs
    compat = no
}

-------------------------------------------

/etc/freeradius/mods-config/files/kollegium_macs
-------------------------------------------

34-51-C9-45-7D-3C
    Reply-Message = "Device with MAC Address %{Calling-Station-Id} authorized for network access"

-------------------------------------------

/etc/freeradius/mods-config/files/kollegium-user-list
-------------------------------------------

  .
  .
  .
testdiak Cleartext-Password := "jelszo", MS-CHAP-Use-NTLM-Auth := 0

-------------------------------------------

/etc/freeradius/sites-enabled/kollegium
-------------------------------------------
server kollegium {
  .
  .
  .
  authorize {
    filter_username
    preprocess

    rewrite_calling_station_id
    kollegium_macs

    if(!ok) {
      reject
    }

    if(!EAP-Message) {
       update control {
          Auth-Type := Accept
       }
    }
    else {
       eap
    }

    chap
    mschap
    digest
    suffix

    eap {
       ok = return
    }

    files
    -sql
    -ldap
    expiration
    logintime
    pap
  }

  .
  .
  .
}

-------------------------------------------

wpeople

Nem az a gondom, hogy nem megy a user fájlra. A gondom az, hogy rossz user file-ra megy. Ha az AD-ben nem találja meg a felhasználót, akkor keresi az authorize fájlban jelenleg, hogy ott benne van-e. Nekem viszont a fentebb bemásolt konfig alapján a kollegium-user-list fájlban kellene keresnie. Valamiért azonban nem ezt teszi.

feliratkozás
--
>'The time has come,' the Walrus said<

Hát a freeradius nem működik túl jól.

Én a telefonommal Android 4.3 simán tudok csatlakozni. Azonban egy csomó eszköz van, Windows 7, Windows 8, Android, IOS amik nem csatlakoznak.

Logból pár részlet


Wed Sep 10 14:43:16 2014 : Auth: (101) Invalid user: [elsos/<no User-Password attribute>] (from client 172.16.253.8 port 0 cli 90-C1-15-5A-D0-D9)
Wed Sep 10 12:27:31 2014 : Auth: (134) Login incorrect (eap_peap: SSL says: TLS Alert read:fatal:unknown CA): [dorabalint/<via Auth-Type = EAP>] (from client 172.16.253.8 port 0 cli 60-D8-19-03-A9-2B)
Wed Sep 10 12:31:48 2014 : Auth: (19) Invalid user: [MindaAdam/<no User-Password attribute>] (from client 172.16.253.8 port 0 cli 20-54-76-D6-6F-13)