IPV6-macguard

Z Czela.net
Přejít na: navigace, hledání

IPV6 úvod

Na siti jiz mame IPv6 nasazenu a potrebujeme kontrolovat kdo nam ji pouziva. Hromada lidi totiz po zablokovani macguadem se dostane na youtube a co horsi na jejich domovskou stranku seznam.cz a jsou totalne zmateni.

Implementace

Potrebujeme mikrotik s plne fungujici IPv6 :)

Z IPv4 si prevedeme format subnetu do IPv6 a to nasledovne: Napriklad 10.93.20.0 (ne adresa routeru 10.93.20.1!) nemena prvni cast 10.93.->2a01:490:1b: adresa site 20.00 -> 1400:

Celkova IP je tedy 2a01:490:1b:1400:: Ty dve dvojtecky znaci agragaci nul. Plny format by byl 2a01:0490:001b:1400:0000:0000:0000:0000.

Masku mame /24 tedy 256IP (254 bez adresy site a broadcastu). Tu transformujem na /56 coz je 256 IPv6 /64 subnetu ktery pridelujeme dal.

Kdyz mame informace, vytvorime si pool ze ktereho je budeme pridelovat:

/ipv6 pool
add name=cina prefix=2a01:490:1b:1400::/56 prefix-length=64

Musime rict mikrotiku ze prvni subnet z poolu nam bude sedet na interfacu:

/ipv6 address
add advertise=yes eui-64=no from-pool=cina interface=sfp1

Z winboxu muzeme nedefinovat ze adresa bude treba konkretne 2a01:490:1b:1400::1 a ne neco co si vybere. Pokud nebude zaznam jeste pouzity, tak nam to projde.

Nez zacneme pridelovat adresy lidem chce to mit k dispozici i IPv6 DNSka. Nastavuji se u IPv4.

/ip dns
set allow-remote-requests=yes servers=10.93.0.1,10.93.0.2,2a01:490:1b::1,2a01:490:1b:fd00::2

Protoze mame na interfacu RA zaple (advertise=yes), coz je bezstavova konfigurace, zapneme sdelovani nasich DNS ven pres:

/ipv6 nd
set [ find default=yes ] advertise-dns=yes

Dale nastavime DHCPv6 server.

/ipv6 dhcp-server
add address-pool=cina interface=sfp1 lease-time=1d name=cina

Obdoba s IPv4, rikame kde posloucha, na jak dlouho prideluje jmeno serveru a odkud si ma brat prefixy.

A jdeme na kontrolu.

/system script
add name=ipv6 owner=admin policy=read,write source=":local mac\r\
   \n/ipv6 firewall filter disable [find action=drop]\r\
   \n/ipv6 firewall mangle remove [/ipv6 firewall mangle find]\r\
   \n/ipv6 firewall mangle add action=accept chain=prerouting connection-mark=valid\r\
   \n/ipv6 firewall mangle  add action=mark-connection chain=prerouting connection-state=new dst-address=2a01:490:1b::/48 new-connection-mark=valid passthrou\
   gh=no\r\
   \n:foreach d in=[/ip hotspot ip-binding find] do={\r\
   \n:set mac [/ip hotspot ip-binding get \$d mac-address ];\r\
   \n/ipv6 firewall mangle add chain=prerouting src-mac-address=\$mac connection-state=new action=mark-connection new-connection-mark=valid comment=\$mac;\r\
   \n}\r\
   \n/ipv6 firewall filter enable [find action=drop]"

Vytvorime si jednoduchy script, ktery nam nejdriv vypne blokovani, pak vymaze markovaci pravidla v manglu, prida pravidlo aby se neprochazel mangle zbytecne, povoli spojeni v ramci czely, omarkuje spojeni podle MAC z /ip hotspot ip-bindig a zapne blokaci co nam nema jit do internetu. Script si pustime idealne rovnou.

Automaticky pak pres:

/system scheduler
add interval=1d name=macguard_v6 on-event="/system script run ipv6" policy=read,write start-date=jan/24/2017 start-time=04:15:00

Pak muzeme zadat do ipv6 firewallu pravidla pro blokaci/povoleni provozu.

/ipv6 firewall filter
add action=accept chain=forward comment="navazana pruchozi spojeni dale nebudeme kontrolovat" connection-state=established,related
add action=accept chain=forward comment="spojeni z patere nebudeme kontrolovat" in-interface=sfpplus1
...
add action=accept chain=forward comment="spojeni ktere vyhovi SRC MAC povolime" connection-mark=valid log-prefix=valid
add action=drop chain=forward comment="dropneme nevalidni provoz" connection-state=invalid
add action=drop chain=forward comment="zbytek zahodime" log-prefix=zablokovano

Ve zkratce, co uz bylo povoleno nemusime resit, spojeni z trusted siti neresime, povolime lidem provoz kdyz jsme nasli jejich MAC a zablokujem bordel.

Voala, mame zakladni kontrolu nad IPv6 na siti.

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje