Můj popis se věnuje primárně přepínačům Cisco Nexus řada 3000 (jak jsem zjistil, tato řada má omezené funkce). Vše jsem testoval na switchi Cisco Nexus 3172T. Před tímto článkem doporučuji prohlédnout předchozí Cisco IOS 24 - zabezpečení komunikace na portech.
Traffic Storm Control
Odkaz do jedné z oficiálních dokumentací Cisco Nexus 3000 Series NX-OS Layer 2 Switching Configuration Guide, Release 7.x - Configuring Traffic Storm Control. Konfigurace Storm Control se provádí identicky jako v IOSu.
SWITCH(config-if)#storm-control broadcast level 10
Jiné je pouze zobrazení údajů o nastavení.
SWITCH#show interface counters storm-control [Action] S - Shut (Err Disable), T - Trap -------------------------------------------------------------------------------- Port UcastSupp % McastSupp % BcastSupp % TotalSuppDiscards Action -------------------------------------------------------------------------------- Eth1/1 100.00 10.00 10.00 0 [--] Eth1/2 100.00 10.00 10.00 0 [--]
Port Security
Cisco Nexus řada 3000 nepodporuje funkci Port Security. Ale pokud využijeme IP Source Guard, tak by nám to mělo nahradit i kontrolu MAC adres. Vyšší řady, jako 5000, ji již podporují. Je potřeba globálně povolit tuto vlastnost. Odkaz do jedné z oficiálních dokumentací Cisco Nexus 5500 Series NX-OS Security Configuration Guide, Release 7.x - Configuring Port Security.
SWITCH(config)#feature port-security
Pro náhradu Port Security bychom mohli použít MAC ACL Cisco IOS 8 - ACL - Access Control List.
SWITCH(config)#mac access-list TestACL SWITCH(config-mac-acl)#permit host 00c0.4f00.0000 any
A to aplikovat na port jako Port ACL.
SWITCH(config)#interface ethernet 1/1 SWITCH(config-if)#mac port access-group TestACL
Nebo případně na VLANu jako VLAN map Cisco IOS 20 - VLAN access-map - VLAN map - VACL.
Problém je, že Cisco Nexus řada 3000 nepodporuje ani MAC ACL.
DHCP Snooping
DHCP Snooping se opět konfiguruje stejně jako v IOSu. Odkaz do jedné z oficiálních dokumentací Cisco Nexus 3000 Series NX-OS Security Configuration Guide, Release 7.x - Configuring DHCP Snooping.
Nejprve ale musíme povolit vlastnost DHCP a pak již používáme běžné příkazy pro zapnutí DHCP Snooping na určité VLANy a některé porty můžeme nastavit jako důvěryhodné (trusted).
SWITCH(config)#feature dhcp SWITCH(config)#ip dhcp snooping SWITCH(config)#ip dhcp snooping vlan 1-3967 SWITCH(config)#interface Eth1/1 SWITCH(config-if)#ip dhcp snooping trust
Zobrazení informací o konfiguraci je opět podobné.
SWITCH#show ip dhcp snooping Switch DHCP snooping is enabled DHCP snooping is configured on the following VLANs: 1-3967 DHCP snooping is operational on the following VLANs: 1,100 Insertion of Option 82 is disabled Verification of MAC address is enabled DHCP snooping trust is configured on the following interfaces: Interface Trusted ------------ -------
DHCP Snooping Binding Database
V této oblasti došlo docela k výrazné změně oproti IOSu a řekl bych, že je to jednodušší nebo minimálně přehlednější. U IOSu jsem uváděl, že mi přijde zmatené používání DHCP Snooping Binding versus IP Source Binding. Na Nexusu je toto spojené. Nekonfigurujeme agenta a záznamy se neukládají do speciálního souboru. Databáze může mít maximálně 2000 záznamů.
Statický záznam se vkládá příkazem, který spíše vypadá jako statický záznam pro IP Source Guard, ale má přeházenou syntaxi oproti IOSu. A ukládá se do běžící konfigurace.
SWITCH(config)#ip source binding 192.168.100.10 1234.abcd.1234 vlan 100 interface Eth1/1
Pozn.: Nexus je na tom o trochu lépe nežli IOS, ale bohužel jen o málo. Záznamy se nepřepisují, ale zobrazí se chyba. A to v případě, že zadáme pro stejnou IP adresu různé MAC adresy ve stejné VLAN (VIP adresa, která se startuje na různých serverech). Nebo chceme zadat stejnou kombinaci MAC adresa a IP adresa na jiný port (virtuál, který může cestovat v clusteru na různé nody). Můžeme ale vytvořit více záznamů pro jednu MAC adresu s rozdílnými IP adresami (server má na jednom interfacu více IP adres, třeba VIP).
Výpis záznamů z databáze je ovšem opět stejný.
SWITCH#show ip dhcp snooping binding MacAddress IpAddress Lease(Sec) Type VLAN Interface ----------------- --------------- -------- ---------- ---- ------------- 12:34:ab:cd:12:34 192.168.100.10 infinite static 100 ethernet1/1
IP Source Guard
Bezpečnostní funkce IP Source Guard souvisí s DHCP Snoopingem (a předchozími poznámkami) a přímo vyžaduje, aby byl DHCP Snooping zapnutý. Konfiguruje se per interface a funguje jako filtr provozu, který povolí pouze pakety s odpovídajícími hodnotami MAC a IP adres, dle Binding DB (dynamické z DHCP Snooping Binding Database a statické IP Source Binding). Obecně je princip stejný jako u IOS switchů.
Zajímavé je, že v dokumentaci pro Cisco Nexus řada 3000 jsem nenašel žádný popis funkce IP Source Guard. Popis se nachází u vyšších řad, například Cisco Nexus 5500 Series NX-OS Security Configuration Guide, Release 7.x - Configuring IP Source Guard, ale funguje stejně i na Nexus 3000.
Konfiguraci provádíme na portu, funguje mi i na Port Channelu a zatím se zdá, že funguje i v rámci Virtual Port Channelu (úplně jsem nepochopil dokumentaci, ale asi to podporováno není). Zápis je lehce jiný než na IOSu a vůbec nepoužíváme klíčové slovo port-security
, kontrola MAC adres se provádí vždy.
SWITCH(config)#interface Eth1/1 SWITCH(config-if)#ip verify source dhcp-snooping-vlan
Zadání statického záznamu jsme si ukázali u DHCP Snoopingu, stejně tak vypsání tabulky záznamů. Obdobně jako u IOSu si můžeme vypsat seznam portů, kde je IP Source Guard nakonfigurován.
SWITCH#show ip verify source IP source guard excluded vlans: ------------------------------------------------------ none ----------------------------------- IP source guard is enabled on the following interfaces: ------------------------------------------------------ ethernet1/1 IP source guard operational entries: ----------------------------------- Interface Filter-mode IP-address Mac-address Vlan ------------ ----------- ---------- -------------- ---- ethernet1/1 active 192.168.100.10 12:34:ab:cd:12:34 100
Dynamic ARP Inspection (DAI)
Základní fungování Dynamic ARP Inspection je shodné jako na IOSu. Není zde možnost použít filtr ARP ACL (na řadě Nexus 3000, vyšší jej již podporují), ale vždy se používají pouze záznamy z DHCP Snooping Binding Database. Ať již dynamické nebo staticky zadané, jak jsme si popsali výše. Znamená to také to, že musí být zapnutý DHCP Snooping, aby se mohlo DAI využít. Také se neprovádí omezování počtu ARP rámců (Rate Limiting). Popis v oficiální dokumentaci Cisco Nexus 3000 Series NX-OS Security Configuration Guide, Release 7.x - Configuring Dynamic ARP Inspection.
Konfigurace spočívá v zapnutí pro vybrané VLANy a případně nastavení některých portů jako důvěryhodných (trusted), kde se neprovádí kontrola.
SWITCH(config)#ip arp inspection vlan 100,200 SWITCH(config)#interface Eth1/1 SWITCH(config-if)#ip arp inspection trust
Stejně také můžeme zapnout rozšířené kontroly.
SWITCH(config)#ip arp inspection validate src-mac dst-mac ip
K zobrazení informací o nastaveném DAI se používají stejné příkazy jako pro IOS, pouze formát výstup je trochu jiný.
SWITCH#show ip arp inspection Source Mac Validation : Disabled Destination Mac Validation : Disabled IP Address Validation : Disabled Vlan : 100 ----------- Configuration : Enabled Operation State : Active DHCP logging options : Deny ARP Req Forwarded = 3206 ARP Res Forwarded = 2616 ARP Req Dropped = 3 ARP Res Dropped = 0 DHCP Drops = 3 DHCP Permits = 5822 SMAC Fails-ARP Req = 0 SMAC Fails-ARP Res = 0 DMAC Fails-ARP Res = 0 IP Fails-ARP Req = 0 IP Fails-ARP Res = 0 SWITCH#show ip arp inspection interfaces Interface Trust State ------------- ----------- ethernet1/1 Trusted ethernet1/5 Trusted SWITCH#show ip arp inspection statistics vlan 100 Vlan : 100 ----------- ARP Req Forwarded = 2 ARP Res Forwarded = 1 ARP Req Dropped = 0 ARP Res Dropped = 0 DHCP Drops = 0 DHCP Permits = 3 SMAC Fails-ARP Req = 0 SMAC Fails-ARP Res = 0 DMAC Fails-ARP Res = 0 IP Fails-ARP Req = 0 IP Fails-ARP Res = 0 SWITCH#show ip arp inspection vlan 100 Source Mac Validation : Disabled Destination Mac Validation : Disabled IP Address Validation : Disabled Vlan : 100 ----------- Configuration : Enabled Operation State : Active DHCP logging options : All
Logování
Změna je také v logování a podle mne dost podstatná. Standardně se všechny odmítnuté/zahozené (denied/dropped) pakety zaznamenávají do logovacího bufferu. Ale již se neprovádí záznam do systémového logu (negeneruje systémovou zprávu). Takže nevím, jak pak předat informaci na Syslog.
U logovacího bufferu můžeme nastavit jeho velikost (default je 32). Když je zaplněn, tak se začnou přepisovat nejstarší zprávy.
SWITCH(config)#ip arp inspection log-buffer entries 100
Můžeme si vypsat obsah bufferu včetně nastavení. Zajímavé je, že je zde vidět i položka Syslog Rate. Ono i v oficiální dokumentaci jsou dost chyby, třeba jsou tam příklady logovaných zpráv do systémového logu, které se na Nexusu nevytváří (patrně je to kopie z IOS dokumentace).
SWITCH#show ip arp inspection log Syslog Buffer Size : 32 Syslog Rate : 5 entries per 1 seconds Tue Nov 1 17:23:30 2016 DHCP-SNOOP-DENY: ARP Req on ethernet1/1:vlan 100 source 192.168.100.10/12:34:ab:cd:12:34 dest 192.168.100.1/00:00:00:00:00: 00 eth src mac: 12:34:ab:cd:12:34 eth dst mac: 00:12:34:ab:cd:12 Wed Nov 2 11:22:55 2016 DHCP-SNOOP-PERMIT: ARP Req on ethernet1/1:vlan 100 source 192.168.100.10/58:20:b1:e1:13:d8 dest 192.168.100.1/00:00:00:00:0 0:00 eth src mac: 58:20:b1:e1:13:d8 eth dst mac: 00:12:34:ab:cd:12
Obsah logu můžeme ručně vymazat.
SWITCH#clear ip arp inspection log
Můžeme také zapnout rozšířené logování o pakety odpovídající DHCP bindings.
SWITCH(config)#ip arp inspection vlan 100 logging dhcp-bindings all
Zatím zde nejsou žádné komentáře.