O dalších zařízeních, které jsou připojené do stejné lokální sítě jako vy, lze získat velké množství užitečných informací. Jaké informace to jsou a jakým způsobem je získat v Linuxu?
MAC adresa je jedinečný identifikátor síťového rozhraní a je nutným prvkem pro použití IP protokolu. To znamená, že pokud realizujeme spojení s dalším klientem v síti, tak musíme kromě IP adresy znát i MAC adresu.
Toho využívá následující příklad, kdy se pomocí programu ping spojíme s klientem 192.168.1.22 a MAC adresu odečteme z ARP tabulky, kterou si operační systém uchovává pro potřebu síťové komunikace.
ping -c 3 192.168.1.22 arp | grep 192.168.1.22
Příkazem arp vypíšete všechny IP adresy a MAC adresy, které jsou pro operační systém známé, příkazem grep výstup omezíte pouze na zainteresovanou IP adresu. O získání MAC adres (pomocí protokolu ARP) se v tomto případě automaticky postará operační systém. Podobným způsobem lze MAC adresy sbírat ve velkém a to sice pingnutím všech IP adres v lokální síti pomocí programu fping (typicky 256 adres).
fping -g 192.168.1.1/24 arp | grep -v "nekompletní"
Příklad výše vypíše IP adresy a MAC adresy všech zařízení v lokální síti (IP od 192.168.1.0 do 192.168.1.255), které odpoví na ping.
Jiným způsobem získávání MAC adresy je přímé použití protokolu ARP - příkazem arping. Principiálně je získávání MAC adresy stejné (potřebuji oslovit určitou IP, ale nemám MAC adresu - vyšlu ARP paket s dotazem na broadcast a vyčkám na odpověď).
arping -c 3 192.168.1.22
Kromě toho, že pomocí MAC adresy jednoznačně rozeznáte jednotlivá zařízení (je na rozdíl od IP adresy jedinečná a statická), tak z MAC adresy také zjistíte výrobce zařízení. Rozsahy adres jsou totiž výrobcům pevně přiděleny. Výrobce z MAC adresy můžete zjistit například zde: http://www.coffer.com/mac_find Pro použití ve skriptech můžete využít například soubor, který je součástí Nmapu (viz příkaz níže).
cat /usr/share/nmap/nmap-mac-prefixes
Mnohá zařízení (typicky s MS Windows) jsou označena pomocí NetBIOS jmen. Následující příkaz vypíše NetBIOS jména všech zařízení v lokální síti.
nbtscan 192.168.1.1/24
Další ze způsobů identifikace zařízení a služeb pomocí jmen je Zeroconf a jeho implementace Avahi. Následující příkaz projde všechny dostupné služby na lokální síti a vypíše podrobnosti.
avahi-browse -a -r -t
Klientská jména zařízení na lokální síti lze získat nasloucháním DHCP paketům.
tcpdump -i p3p1 -vvv -l "(port 67 or port 68) and udp" 2> /dev/null | egrep "(Client-Ethernet-Address|Hostname Option)"