Zadání: Generátor topológie siete pomocou ICMP Echo, (ping, traceroute) a NMap
Cieľom práce bude vytvoriť skript, ktorý pomocou týchto nástrojov oskenuje daný segment siete, vytvorí hierarchiu, ziska fqdn a oskenuje porty. Výsledok sa uloží na disk (v nejakej forme).
Schválení: NE
Program, ktorý by dokázal rýchlo a efektívne oskenovať veľkú sieť, môže mať veľa využití. Monitorovanie behu, zisťovanie dostupnosti, logovanie a ladenie. Aj keď existujú hotové open source riešenia, napríklad NMap, môže byť zaujímavé sa bližšie pozrieť na túto problematiku.
Kôli jednoduchosti zvolíme ping doplnený traceroute. Pingom získame zoznam živých hostov, a pomocou traceroute určíme hierarchické usporiadanie. Pomocou príkazu host získame fqdn a pomocou nmap zoznam otvorených portov. Na SNMP mi nikto neodpovedal, a routovacie tabuľky mi tiež nikto nechcel dať :)
Budeme sa snažiť zistiť topológiu celej siete ČVUT (147.32.*). Najprv prejdeme všetky siete typu 147.32.*.1 (predpokladáme 24 bitovú masku a teda čo sa nám ozve, bude pravdepodobne router) Ak bude host živý, otestujeme celú podsieť 147.32.n.1-254. Ak je host off, skúsime adresu 147.32.n.129 (predpoklad 25 bitovej masky) a ak bude živý, otestujeme celú podsieť 147.32.n.129-254. Ak nie, skúsime ešte adresy 147.32.n.65 a 147.32.n.193 (26 bitová maska) a prípadne ich podsiete.
Takto vygenerovaný zoznam adries prejdeme príkazom host, ktorý získa fqdn, a príkazom nmap, ktorý získa zoznam voľných portov. Na záver traceroute zistí usporiadanie siete.
Ukážkový skript najprv vytvorí zoznam živých hostov vo forme súboru. Tento súbor sa prejde, a pre každý host sa vytvorí súbor, do ktorého sa zapíše fqdn, voľné porty, a zoznam adries, ktoré sú v rovnakej podsieti.
Rýchlosť skriptu je silne obmedzená čakaním na timeout u príkazu ping, ktorý sa nedá nastaviť na hodnotu menšiu ako 1s. Čo znamená v najhoršom prípade, keď bude vypnuté celé ČVUT, 17 minút len ping. V najrýchlejšej verzi sa dá tento čas skrátiť na necelú minútu, má to ale za následok vyťaženie procesora na 100% a vytvorenie 2552 procesov na pozadí a ping toho istého množstva počítačov. To isté sa týka príkazu traceroute, ktorý čaká 1 sekundu na každom uzle. Rýchlosť teda môže byť zvýšena za cenu vyššej záťaže stroja a siete.
V sobotu ráno o 10:00, keď som skript testoval, bolo na ČVUT online 3913 zariadení, test trval XXX minút a vygeneroval XXX kb textových súborov.