Size: 11795
Comment:
|
Size: 15724
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 222: | Line 222: |
Az SCTP protokoll rendellenes viselkedésének vizsgálatát számos debug parancs segíti, ezek a következők: {{{ sctp_test.vh.hbone.hu#debug ip sctp ? api Enable API debugging congestion Enable congestion debugging init Enable association initialization debugging multihome Enable multihoming debugging performance Enable performance debugging rcvchunks Enable receive chunk debugging rto Enable retrans timer debugging segments Enable simplified segment debugging segmentv Enable verbose segment debugging signal Enable signal debugging sndchunks Enable send chunk debugging state Enable state debugging timer Enable timer debugging warnings Enable warning debugging }}} A néhány debug opciót beállítva a következőhöz hasonló kimenetet kapjuk, ahol részletesen követhetőek az SCTP üzenetek, események, stb. {{{ 716316: Aug 23 17:25:27.647 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60 716317: Aug 23 17:25:27.647 MET-DST: SCTP: HEARTBEAT_CHUNK 716318: Aug 23 17:25:27.647 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60 716319: Aug 23 17:25:27.647 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK 716320: Aug 23 17:25:27.647 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880 716321: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214 716322: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: destaddr 195.111.98.214, rto updated 5000 ms 716323: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: rtt 0 ms, srtt 0 ms, rttvar 0 ms 716324: Aug 23 17:25:28.195 MET-DST: 716325: Aug 23 17:25:28.195 MET-DST: SCTP Sent: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 1, ULP Dgrams 1 716326: Aug 23 17:25:28.195 MET-DST: SCTP Rcvd: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 0, ULP Dgrams 0 716327: Aug 23 17:25:28.195 MET-DST: Chunks Discarded: 0, Retransmitted 0 716328: Aug 23 17:25:28.195 MET-DST: 716329: Aug 23 17:25:33.347 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60 716330: Aug 23 17:25:33.347 MET-DST: SCTP: HEARTBEAT_CHUNK 716331: Aug 23 17:25:33.347 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60 716332: Aug 23 17:25:33.347 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK 716333: Aug 23 17:25:33.347 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880 716334: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214 716335: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: destaddr 195.111.98.214, rto updated 5000 ms 716336: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: rtt 0 ms, srtt 0 ms, rttvar 0 ms 716337: Aug 23 17:25:38.195 MET-DST: 716338: Aug 23 17:25:38.195 MET-DST: SCTP Sent: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 1, ULP Dgrams 1 716339: Aug 23 17:25:38.195 MET-DST: SCTP Rcvd: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 0, ULP Dgrams 0 716340: Aug 23 17:25:38.195 MET-DST: Chunks Discarded: 0, Retransmitted 0 716341: Aug 23 17:25:38.195 MET-DST: 716342: Aug 23 17:25:39.055 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60 716343: Aug 23 17:25:39.055 MET-DST: SCTP: HEARTBEAT_CHUNK 716344: Aug 23 17:25:39.055 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60 716345: Aug 23 17:25:39.055 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK 716346: Aug 23 17:25:39.055 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880 716347: Aug 23 17:25:39.055 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214 }}} |
Munkaszakasz 2.3: Flow alapú hálózat monitoring rendszer tesztelése és vizsgálata
Bevezető
A flow alapú forgalom monitorozásról általában
A flow alapú hálózati forgalom monitorozás kiemelkedő fontossággal bír nagy kiterjedesű hálózatok üzemeltetésében, hiszen lehetővé teszi, hogy a hálózati forgalmat továbbító aktív eszközökből részletes információt nyerjünk az átmenő forgalmat alkotó folyamokról (flow).
A flow alapú monitorozás általános felhasználási területei:
- Nagy forgalmat bonyolító számítógépek megtalálása. Forgalom alapú számlázás.
- Hálózati támadások felderítése, jellegük megfigyelése.
- Hálózati forgalmat generáló vírussal, spyware-el fertőzött számítógépek lokalizálása.
A nagy forgalmat bonyolító számítógépek megtalálása és kiszűrése/korlátozása nagyban csökkentheti intézményünk hálózati forgalmát, amely más, esetenként lényegesebb, szintén hálózaton kommunikáló alkalmazások gyorsulásához vezethet.
A mai hálózati viszonyoknak megfelelően számítógépeink állandó támadásnak ill. vírus/spyware fertőzésnek vannak kitéve. A támadások azonosításában, lokalizálásában ill. a fertőzött számítógépek megtalálásában különösen fontos szerepet játszik a flow alapú hálózati forgalom monitorozás, amelyet ma már jónéhány felsőoktatási ill. akadémiai intézményben sikerrel alkalmaznak a fenti problémák kezelésében. A flow alapú monitorozással a következő gyanús, biztonsági kockázatot valószínűsítő hálózati forgalmak azonosíthatóak gyorsan és egyszerűen:
Szokatlan nagyságú ICMP forgalom: támadásra utal.
TCP SYN flood: Denial of Service (DoS) támadások a megtámadott számítógép/kiszolgáló erőforrásainak lekötéséhez.
Szokatlanul nagy mennyiségű TCP vagy UDP flow: az adott számítógép rendellenes viselkedésére utalhat. Pl. spyware fertőzött (más számítógépeket támad vagy kommunikál saját példányaival, nem kívánt tartalmat forgalmaz, stb.).
Egy specifikus TCP/UDP portra menő szokatlan nagyságú forgalom egyetlen számítógépről: általában ez szintén spyware vagy vírus jelenlétét valószínűsíti. Amikor egy-egy ilyen nem kívánt alkalmazást a megfelelő biztonsági csoport azonosít, megjelenik az adott spyware/vírus pontos leírása. Ezekből a leírásokból egyszerűen azonosíthatóak a megfelelő spyware-ek/vírusok ill. a fertőzött számítógép.
A fentiek természetesen mind az IPv6, mind pedig az IPv4 protokollra egyformán érvényesek.
A NetFlow
A NetFlow protokollt eredetileg a Cisco Systems dolgozta ki 1996-ban, hogy lehetővé tegye flow információk exportálását hálózati eszközeiből. A NetFlow protokoll több verziót is megélt (1, 5, 7, 8 és 9). A legszélesebb körben az 5-ös verzió használt, de természetesen a preferált, IPv6 képes verzió a 9-es. A Cisco Systems által gyártott hálózati kapcsolók és router-ek jelentős része képés NetFlow információk exportálására.
A NetFlow működési modelje az alábbi ábrán látható. A NetFlow képes hálózati eszköz folyamatosan gyűjti a rajta átmenő IP flow-k információt egy ún. NetFlow cache gyorsítótárba. Amikor ez a tár megtelik, sor került a megfelelő rekordok exportálására a NetFlow Collector Engine felé, amely általában egy szokványos kiszolgáló, lehetőleg minél nagyobb tárhellyel, hiszen a visszamenőleg tárolt flow információk nagy forgalom mellett óriásira duzzadhatnak.
attachment:netflow_model.jpg
A NetFlow az UDP protokollt használja, az exportálás jellege egyirányú, azaz kizárólag a hálózati eszköz felől érkeznek információk, a kollektor számítógép csak rögzíti és feldolgozza ezeket. A hálózati adminisztrátorok a kollektor által összegyűjtött információkat egy grafikus felületen tudják lekérdezni, ahol megfelelő feltételek megadásával képesek finomítani a lekérdezést. A lekérdezés a leggyakrabban a HTTP protokoll segítségével történik és megjelenítés értelemszerűen egy böngészővel. A megjelenítés általában grafikonos formában vagy nyers - pontosítás céljával - NetFlow rekordként történik.
A hálózati eszközök által export-ált rekordok több alapvető paramétert alkalmaznak az egyes flow-k leirásához:
- Forrás IP cím
- Cél IP cím
- Forrás port
- Cél port
- Layer 3 protokoll típus
- Type of Service mező (ToS v. DSCP érték)
- Input és output interfész
- Csomagméret
- Flow kezdési és befejezési időbélyeg
- TCP flag-ek, felsőbb szintű protokoll
- Routing információ: next-hop cím, forrás AS (Autonomous System) azonosító, cél AS azonosító, forrás prefix maszk, cél prefix maszk
A NetFlow v9 alapvető jellemzői:
- IPv4, IPv6, multicast és Multiprotocol Label Switching (MPLS) támogatás (többek között).
Template-ek: lehetőség van NetFlow v9 template-ek definiálására a router oldalán. Ez annyit jelent, hogy összeállítható egy azonosítóval ellátott template a router konfigurációjában, amelynek segítségével meghatározható, hogy pontosan milyen paramétereket exportáljon a router a collector felé. Néhány megjegyzés:
A template-ek leírását (mezők és jelentésük) a router időnként propagálja a collector alkalmazás felé, hogy azok formátumát értelmezni tudja a feldolgozó szoftver. Ilymódon biztosítható, hogy a rekord-formátumot a feldolgozó alkalmazás általános szinten kezelje és a formátum változásakor (ld. korábbi NetFlow verzióváltások) ne kelljen újraírni az alkalmazásokat.
- A template-ek segítségével ezen túl a felhasználó által összeállított template-ekben kizárólag a felhasználó számára releváns információk kerülnek átvitelre.
- A template-ek segítségével újabb protokollok és paramétereik egyszerűen, nagyobb változtatás nélkül exportálhatóak.
- Jelenleg a Cisco IOS szoftverek nem támogatják a template-ek létrehozását, ezt későbbre ígérik. Így a template-ek tesztelésére nem kerülhetett sor.
Az IETF (Internet Engineering Task Force) IP Information Export (IPFIX) és Pack Sampling (PSAMP) munkacsoportjai 2003-ban a Cisco IOS NetFlow v9 protokollt választották IP flow-ok leírásához és exportálásához, eltekintve néhány apróbb változtatástól. Az IPFIX munkacsoport azért alakult, hogy egy adatmodellt illetve egy kapcsolódó protokollt definiáljon. A hamarosan megjelenő IPFIX szabvány egyébként kötelezőként írja elő az SCTP alapú adatszállítás megvalósítását az IPFIX protokoll alkalmazásakor.
NetFlow v9 konfiguráció Cisco eszközökön
NetFlow v9 és SCTP konfiguráció Cisco eszközökön
A Cisco első NetFlow v9 SCTP képes implementációja a 12.2(4)6T verziószámú IOS-ben jelent meg. A projekt keretében a teszteléshez felhasznált konfiguráció a következő volt:
- Cisco 7206 VXR router, IO-GE és PA-FE kártyák
- IOS verzió: 12.4(9)T
Az alábbi konfigurációs példák az SCTP alapú exportálás beállítását mutatják (ld. még előző szakasz a NetFlow konfigurációhoz):
ipv6 flow-export destination 195.111.98.214 50000 sctp
A fenti parancs a 195.111.98.214 IP címre, az 50000-es SCTP port-ra próbálja meg küldeni a NetFlow rekordokat. A következőkben az SCTP protokollal kapcsolatos show parancsokat tárgyaljuk.
SCTP asszociációk listája:
sctp_test.vh.hbone.hu#show ip sctp association list ** SCTP Association List ** AssocID: 2712747875, Instance ID: 0 Current state: ESTABLISHED Local port: 51453, Addrs: 195.111.96.110 Remote port: 50000, Addrs: 195.111.98.214
A parancs segítségével kilistázhatóak a jelenleg érvényes SCTP asszociációk.
SCTP asszociáció részletei/paraméterei:
sctp_test.vh.hbone.hu#show ip sctp association parameters 2712747875 ** SCTP Association Parameters ** AssocID: 2712747875 Context: 1 InstanceID: 0 Assoc state: ESTABLISHED Uptime: 1d01h Local port: 51453 Peers Adaption layer indication is NOT set Local addresses: 195.111.96.110 Remote port: 50000 Primary dest addr: 195.111.98.214 Effective primary dest addr: 195.111.98.214 Destination addresses: 195.111.98.214: State: ACTIVE(CONFIRMED) Heartbeats: Enabled Timeout: 500 ms RTO/RTT/SRTT: 5000/0/0 ms TOS: 0 MTU: 1500 cwnd: 3000 ssthresh: 52736 outstand: 0 Num retrans: 0 Max retrans: 2 Num times failed: 0 Local vertag: A1B13F63 Remote vertag: 90266373 Num inbound streams: 10 outbound streams: 20 Max assoc retrans: 2 Max init retrans: 2 CumSack timeout: 200 ms Bundle timeout: 100 ms Min RTO: 5000 ms Max RTO: 5000 ms Max Init RTO (T1): 1000 ms LocalRwnd: 9000 Low: 9000 RemoteRwnd: 52628 Low: 52628 Congest levels: 0 current level: 0 high mark: 1
Itt szükséges megadnunk azon asszociációt, amelyről az információt le szeretnénk kérni.
SCTP asszociáció statisztikák:
sctp_test.vh.hbone.hu#show ip sctp association statistics 2712747875 ** SCTP Association Statistics ** AssocID/InstanceID: A1B13F63/0 Current State: ESTABLISHED Control Chunks Sent: 17062 Rcvd: 19413 Data Chunks Sent Total: 2352 Retransmitted: 0 Ordered: 2352 Unordered: 0 Avg bundled: 1 Total Bytes: 319124 Data Chunks Rcvd Total: 0 Discarded: 0 Ordered: 0 Unordered: 0 Avg bundled: 0 Total Bytes: 0 Out of Seq TSN: 0 ULP Dgrams Sent: 2352 Ready: 0 Rcvd: 0
SCTP-vel kapcsolatos hibák lekérdezése:
sctp_test.vh.hbone.hu#show ip sctp errors ** SCTP Error Statistics ** No SCTP errors logged.
A routeren aktív SCTP protokoll instanciák lekérdezése:
sctp_test.vh.hbone.hu#show ip sctp instances ** SCTP Instances ** Instance ID: 0 Local port: 51453 State: available Local addrs: 195.111.96.110 Default streams inbound: 20 outbound: 20 Adaption layer indication is not set Current associations: (max allowed: 6) AssocID: 2712747875 State: ESTABLISHED Remote port: 50000 Dest addrs: 195.111.98.214
SCTP statisztikák:
sctp_test.vh.hbone.hu#show ip sctp statistics ** SCTP Overall Statistics ** Control Chunks Sent: 98491 Rcvd: 110776 Data Chunks Sent Total: 12281 Retransmitted: 0 Ordered: 12281 Unordered: 0 Total Bytes: 1854500 Data Chunks Rcvd Total: 0 Discarded: 0 Ordered: 0 Unordered: 0 Total Bytes: 0 Out of Seq TSN: 0 SCTP Dgrams Sent: 110587 Rcvd: 110776 ULP Dgrams Sent: 12281 Ready: 0 Rcvd: 0 Additional Stats Instances Currently In-use: 1 Assocs Currently Estab: 1 Active Estab: 185 Passive Estab: 0 Aborts: 13580 Shutdowns: 184 T1 Expired: 0 T2 Expired: 0
Az SCTP protokoll rendellenes viselkedésének vizsgálatát számos debug parancs segíti, ezek a következők:
sctp_test.vh.hbone.hu#debug ip sctp ? api Enable API debugging congestion Enable congestion debugging init Enable association initialization debugging multihome Enable multihoming debugging performance Enable performance debugging rcvchunks Enable receive chunk debugging rto Enable retrans timer debugging segments Enable simplified segment debugging segmentv Enable verbose segment debugging signal Enable signal debugging sndchunks Enable send chunk debugging state Enable state debugging timer Enable timer debugging warnings Enable warning debugging
A néhány debug opciót beállítva a következőhöz hasonló kimenetet kapjuk, ahol részletesen követhetőek az SCTP üzenetek, események, stb.
716316: Aug 23 17:25:27.647 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60 716317: Aug 23 17:25:27.647 MET-DST: SCTP: HEARTBEAT_CHUNK 716318: Aug 23 17:25:27.647 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60 716319: Aug 23 17:25:27.647 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK 716320: Aug 23 17:25:27.647 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880 716321: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214 716322: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: destaddr 195.111.98.214, rto updated 5000 ms 716323: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: rtt 0 ms, srtt 0 ms, rttvar 0 ms 716324: Aug 23 17:25:28.195 MET-DST: 716325: Aug 23 17:25:28.195 MET-DST: SCTP Sent: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 1, ULP Dgrams 1 716326: Aug 23 17:25:28.195 MET-DST: SCTP Rcvd: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 0, ULP Dgrams 0 716327: Aug 23 17:25:28.195 MET-DST: Chunks Discarded: 0, Retransmitted 0 716328: Aug 23 17:25:28.195 MET-DST: 716329: Aug 23 17:25:33.347 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60 716330: Aug 23 17:25:33.347 MET-DST: SCTP: HEARTBEAT_CHUNK 716331: Aug 23 17:25:33.347 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60 716332: Aug 23 17:25:33.347 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK 716333: Aug 23 17:25:33.347 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880 716334: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214 716335: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: destaddr 195.111.98.214, rto updated 5000 ms 716336: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: rtt 0 ms, srtt 0 ms, rttvar 0 ms 716337: Aug 23 17:25:38.195 MET-DST: 716338: Aug 23 17:25:38.195 MET-DST: SCTP Sent: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 1, ULP Dgrams 1 716339: Aug 23 17:25:38.195 MET-DST: SCTP Rcvd: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 0, ULP Dgrams 0 716340: Aug 23 17:25:38.195 MET-DST: Chunks Discarded: 0, Retransmitted 0 716341: Aug 23 17:25:38.195 MET-DST: 716342: Aug 23 17:25:39.055 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60 716343: Aug 23 17:25:39.055 MET-DST: SCTP: HEARTBEAT_CHUNK 716344: Aug 23 17:25:39.055 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60 716345: Aug 23 17:25:39.055 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK 716346: Aug 23 17:25:39.055 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880 716347: Aug 23 17:25:39.055 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214
Az SCTP szállítási szintű protokoll
A Stream Control Transmission Protocol (SCTP) egy szállítási szintű protokoll, amelyet 2000-ben definiált az IETF Signaling Transport (SIGTRAN) munkacsoportja. A protokoll leírása megtalálható az RFC 2960 ill. az RFC 3286 dokumentumokban. Mint szállítási protokoll az SCTP ekvivalens mind a TCP-vel, mind pedig az UDP-vel és mégis több annál. Az alábbi linkeken egy magyar nyelvű SCTP protokoll leírás ill. alapszintű SCTP socket programozási dokumentáció található:
1. [:SCTP tutorial: Magyar nyelvű SCTP leírás]
2. [:SCTP socket: SCTP socket programozás]