Archiv pro štítek: sítě

Linux mini-howto: DHCP Option 82 ?

Linux mini-howto?
Krátce o nástrojích ze života sysadmina.

DHCP Option 82 ?


Ve stručnosti řečeno DHCP volba 82 (option) je “DHCP Relay Agent Information Option”, dobře, máme to, končíme, … ;-), protože nedávno jsme řešili tuto konfiguraci v zákaznické síti tak alespoň slov o této možnosti.

DHCP protokol je technologie pro automatizovanou konfiguraci zařízení připojeným do sítě, používá protokol a porty UDP/68,UDP/69, přiřazení konfigurace má 4 fáze.

Princip a činnost DHCP
Princip a činnost DHCP

 

  1. Discovery – klient se připojí do sítě a pomocí broadcast požádá o konfiguraci sítě.
  2. Offer - DHCP server odpoví, rezervuje si IP adresu pro klienta ze svého adresního rozsahu (pool) nabídne ji klientovi.
  3. Request - klient si vybere IP adresu (DHCP server může nabídnou více IP adres) a informuje server o vybrané IP (opět broadcastem)
  4. Acknowledge - DHCP server potvrdí platnost vybrané IP adresy a zašle další informace, bránu, DNS servery, dobu zápůjčky IP adresy (lease time) a případné další informace dle konfigurace.

K čemu DHCP option 82 ?

Velké a rozsáhle firemní sítě, IPTV implementace, specializované sítě např. pro řízení, monitoring, atp. často vyžadují nějakou formu centralizovaného řízení přiřazování IP adres, DHCP služba má tu nepříjemnost, že komunikuje pomocí broadcast a tudíž by musel být DHCP server na každém segmentu sítě, což je nepraktické, zde nám přichází na pomoc DHCP Relay Agent (služba typicky běží na lokální routeru nebo chytřejším switchi obsluhující dané segmenty LAN), předává unicastem požadavky na centrální DHCP server a zpracovává odpovědi zpět do LAN.

DHCP option 82, relay agent information šikovně doplňuje informaci pro DHCP server o požadavku ( RFC https://tools.ietf.org/html/rfc3046 ), typicky jde o hodnoty Agent CurcuitID  (pro ethernet switche reprezentuje port ze kterého přišel požadavek) a Agent RemoteID (MAC adresa agenta), informaci je možné dále použít v logice rozhodování o přiřazení konfigurace DHCP serverem, bezpečnosti, analýze kdy, kde a co se nám připojuje apod.

Pozn.: Informací které lze předávat může být více, pomocí sub option, vždy je vhodné mít po ruce dokumentaci od aktivního prvku a např. wireshark/tcpdump, protože chcete mít jistotu a vědět a né jen tušit, protože správné naladění Vám chvilku může zabrat.

Co na to ISC DHCP server ?

Předně je ISC DHCP server trochu ďábelský kus software, mohlo by se Vám hodit PDF https://www.isc.org/wp-content/uploads/2014/08/DHCP-4.3.1-Distribution-Documentation-Aug-4-14.pdf , dále notná dávka trpělivost, logování a tcpdump je velmi vhodný, nelze zde popsat všechny možnosti, principiálně jde o “matchování”

Málá ukázka triviální ukázka od které jsem se odpíchli, ukazuje použití match/podmínky if a proměné agent.circuit-id v tomto případě detekuje číslo portu na sw.

dhcpd.conf
---
class "static-port-A1" {
match if(substring(option agent.circuit-id,4,2)=01:01)
} 

class "static-port-A1" {
match if(substring(option agent.circuit-id,4,2)=01:02)
}
 
shared-network group {
subnet 10.1.0.0 netmask 255.255.0.0 {
        pool {
                allow members of        'keep1';
                range 10.1.1.100 10.1.1.200;
                option subnet-mask      255.255.255.0;
        }
        pool {
                allow members of        'keep2'
                range 10.1.2.100 10.1.2.200;
                option subnet-mask      255.255.255.0;
        }
}
}
# Log
if exists agent.circuit-id
{
 log ( info, concat( " Lease for ",
                     binary-to-ascii (10, 8, ".", leased-address),
                     " Switch port: ", 
                     binary-to-ascii (10, 8, ".", option agent.circuit-id), 
                     " Switch MAC: ",
                     binary-to-ascii(16, 8, ".", option agent.remote-id)));
}

http://henrici.biz/projects/downloads/option82_dhcpd.conf 

https://adamkuj.net/blog/2015/10/09/isc-dhcpd-putting-option-82-vendor-codes-to-use/ 

Překvapivě konfigurace není úplně triviální, zabere dost času ale dává další možnosti a kontrolu, zajímavou možností je také v ISC DHCP serveru spustit event při každém novém přiřazení IP adresy, to lze využít, pochopitelně se ve větší nevyhnete dhcp snoopingu a rozdělení portů na trusted/untrusted, port-security případně IP source guard apod. technikám, útok na druhou vrstvu je překvapivě snadný o to více bolestivý, dhcp option 82 je další možnost, kterou je fajn znát.

A to je vše, užívejte moudře a happy hacking.
František Havel, www.mojeservery.cz

Linux mini-howto: Telnet ověření dostupnosti služeb

Linux mini-howto?
Krátce o nástrojích ze života sysadmina.

Telnet ověření dostupnosti TCP/IP služeb


Telnet jako nástroj a protokol byl před mnoha a mnoha lety zatracen a nahrazen zejmána kvůli bezpečnostním nedostatkům protokolem ssh, což je zcela v pořádku, v mnoha současných distribucích není již dnes ani nainstalován a přitom byl běžný. Pokračování textu Linux mini-howto: Telnet ověření dostupnosti služeb

Linux mini-howto: Blokujeme TOR EXIT nodes

Linux mini-howto?
Krátce o nástrojích ze života sysadmina.

Důvod proč blokovat přístup ke službám ze sítě Tor je na Vašem rozhodnutí a není předmětem tohoto článku.

Tor je anonymizační nástroj (software) maskující skutečný pohyb uživatele po internetové síti, ukrývající skutečnou IP adresu případně další informace, které mohou umožnit jeho sledování.

Pokračování textu Linux mini-howto: Blokujeme TOR EXIT nodes

Mikrotik: Blokování a omezení multicast provozu

Mikrotik mini-howto? Krátce ze života s RouterOS.

Mikrotik blokování/omezení multicast

Nedávná realizace VPN tunelu pro zákazníka nás přivedla k jednomu drobnému problému, požadavek na začátku byl plně transparentní L2 tunel spojující dvě lokality, za normálních okolností je rozumné vyhnout se L2 bridge sítím přes VPN, raději děláme klasickou routovanou VPN.

Problem nastal po zjištění, že v lokalitě 1 je zdroj multicast provozu, který díky bridge proléza do druhé lokality přes VPN, dle zjišťování Mikrotik stále dosud neumí IGMP snooping (viz. kňučení zde http://forum.mikrotik.com/viewtopic.php?t=62073), který by tomu mohl zabránit.

Podobný problém jsem zaznamenal i v případě multicast provozu služby IPTV, který přicházel do Mikrotiku přes uplink port (typicky ether1-gateway) a díky výchozí konfiguraci zbytku portů routeru jako switche v kombinaci s bridgem bezdrátového rozhraní WLAN docházelo k šíření multicasti do WiFi, ± 10Mbit provoz trvale zaplavující wifi není ideální, zvláště pokud ho tam nikdo nechce.

Co je to Multicast?

IP multicast je metoda přeposílání IP datagramů z jednoho zdroje skupině více koncových stanic. Multicast adresy lze vcelku dobře identifikovat cílové adresa je v rozsahu třídy D (224.0.0.0 – 239.255.255.255), zdrojová adresa je unicast adresa odesílatele.

unicast-vs-multicast-1

Co je to IGMP snooping?

IGMP snooping je funkce dobřé známá z chytřejších switchů, kdy dochází ke zkoumání IGMP zpráv procházející switchem, zařízení si na jejich základě udržuje tabulku jakou multicast adresu posílat na jaký port, tedy data putují pouze tam kam mají a nezahlcují trasu kam nepatří, velmi zjednodušeně řečeno.

Multicast IGMP snooping
Multicast IGMP snooping

 

Hledané řešení je triviální

Varianta 1. Úplné blokování multicast provozu

/interface bridge filter add chain=output out-interface=wlan1 packet-type=multicast action=drop

Varianta 2. Omezení multicast provozu

Zapneme firewall na bridge, aby provoz prošel až na firewall/CPU a bylo možné s ním něco udělat.

/interface bridge settings set use-ip-firewall=yes

Markujeme(označíme) pakety multicastu.

/ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=multimark passthrough=yes dst-address-type=multicast
/ip firewall mangle add chain=prerouting connection-mark=multimark action=mark-packet new-connection-mark=multimark_packet passthrough=no

Máme označen multicast provoz, pomocí fronty omezíme jednoduše jeho rychlost na např. 512kbit.

/queue tree add parent=wlan1-parent packet-mark=multimark_packet max-limit=512k name="wlan1-limit-multicast"

A to je vše, takto nám to funguje.

Díky za pozornost. František Havel, MOJEservery.cz.