A wifi access pointunknál felhasználóneves és jelszavas azonosítás van, amit az access point RADIUS-on keresztül ellenőriztet. A beérkező kéréseket a Windows Server 2008-ba beépített Network Policy Server (NPS) dolgozza fel. Ha valami gond van, akkor lehet nézni a napló fájlját. Ez a régi verzióban (akkor még IAS-nak hívták az NPS-t) egy CSV fájl volt, az újabbakban már XML bejegyzések vannak. Valami hasonló formájú egy-egy bejegyzés:
<Event><Timestamp data_type=”4″>06/17/2010 14:57:47.674</Timestamp><Computer-Name data_type=”1″>SERVER</Computer-Name><Event-Source data_type=”1″>IAS</Event-Source><NAS-IP-Address data_type=”3″>192.168.1.2</NAS-IP-Address><Called-Station-Id data_type=”1″>0034df3423ab</Called-Station-Id><Calling-Station-Id data_type=”1″>00213478bcda</Calling-Station-Id><NAS-Identifier data_type=”1″>0034df3423ab</NAS-Identifier><NAS-Port data_type=”0″>46</NAS-Port><Framed-MTU data_type=”0″>1400</Framed-MTU><NAS-Port-Type data_type=”0″>19</NAS-Port-Type><Client-IP-Address data_type=”3″>192.168.1.2</Client-IP-Address><Client-Vendor data_type=”0″>0</Client-Vendor><Client-Friendly-Name data_type=”1″>FTSRG Asus Wifi</Client-Friendly-Name><User-Name data_type=”1″>ftsrg\user</User-Name><Proxy-Policy-Name data_type=”1″>FTSRG Wifi – Connection Request</Proxy-Policy-Name><Provider-Type data_type=”0″>1</Provider-Type><SAM-Account-Name data_type=”1″>ftsrg\user</SAM-Account-Name><Fully-Qualifed-User-Name data_type=”1″>ftsrg\user</Fully-Qualifed-User-Name><NP-Policy-Name data_type=”1″>FTSRG Wifi student – Network Policy</NP-Policy-Name><Class data_type=”1″>311 1 192.168.1.1 06/12/2010 00:08:37 321</Class><Quarantine-Update-Non-Compliant data_type=”0″>1</Quarantine-Update-Non-Compliant><Authentication-Type data_type=”0″>11</Authentication-Type><MS-Extended-Quarantine-State data_type=”0″>0</MS-Extended-Quarantine-State><MS-Quarantine-State data_type=”0″>0</MS-Quarantine-State><Packet-Type data_type=”0″>1</Packet-Type><Reason-Code data_type=”0″>0</Reason-Code></Event>
Ilyenből van jó pár akár egy kapcsolódási kísérlet esetén, és ebben kell megtalálni, hogy mi a gond:). Viszonylag sok felesleges bejegyzés is van benne (legalábbis ami a mi környezetünkben mindig ugyanaz, így nincs jelentősége), és a legtöbb mezőnél nincsenek feloldva a konstansok. Találtam olyan eszközt, ami az IAS logját feldolgozza (iasparse.exe), de ezt legjobb tudomásom szerint NPS-re nem frissítették. A Log Parsert említik még pár helyen, de ez amennyire látom ugyanúgy nem “érti” az NPS logjait, csak képes hatékonyan feldolgozni XML vagy CSV fájlokat. Vannak fizetős eszközök, amik ismerik az NPS-t is (pl. Sawmill) de legnagyobb meglepetésemre ingyenen eszközt vagy scriptet nem találtam. Úgyhogy nem maradt más hátra, valamit nekem kellett összedobni.
Mivel XML alapú a log, ezért könnyen adódott, hogy egy egyszerű XSLT-vel HTML-t generálok belőle. A neheze egyedül annyi volt, hogy megtalálni, hogy pl. a Packet-Type esetén az 1-es érték mit jelent. Ezek segítettek:
- Interpret NPS Database Format Log Files
- [MS-RNAP]: Vendor-Specific RADIUS Attributes for Network Access Protection (NAP) Data Structure
- RFC2548 Microsoft Vendor-specific RADIUS Attributes
Természetesen azért minden nem lett meg. Pl. a dokumentáció szerint a Packet-Type mezőnek nincs 11-es értéke, közben mégis:) Ez másnak is feltűnt, de pontos választ ott se kaptak. Egy nagyságrenddel azért most már könnyebb olvasni a logokat.
A mellékelt xlst transzformációt kell használni, a log fájlba be kell rakni a pl. a következő sorokat:
<?xml version='1.0'?> <?xml-stylesheet type="text/xsl" href="nps-log.xsl"?> <events> .... </events>