Imate Smart TV, Nest, morda Tado? Fino, kako ste ga pa priklopili?

Imate Smart TV, Nest, morda Tado? Fino, kako ste ga pa priklopili?

V Virtui IT, kjer delam, tudi sami razvijamo t. i. IoT (internet of things) rešitve, zato si domišljam, da vem približno kako se tega lotevajo tudi drugje.
Najprej par trditev:
– V razvoju naprav v raznih startup podjetjih, varnost ni prva misel ali prvi cilj razvojnega cikla produkta,
– Večina gadgetov uporablja zunanje cloud storitve za različne namene, od pridobivanja podatkov, do obdelovanja vaÅ¡ih podatkov,
– Večina teh podjetij mora priti na trg izredno hitro, zato je ves fokus na samem delovanju naprav, skoraj nič časa ne more ostati za varnostne teste in podobno.
– Tudi če bi naprave varnostno intenzivno testirali, bi Å¡e vedno zelo verjetno pustili mnoge varnostne lukjne odprte. Celo podjetja, ki se ukvarjajo izključno z varnostnimi grožnjami, včasih ne morejo preprečit varnostnih lukenj v njihovih izdelkih.

Kaj želim povedati? Nikakor ne dajte naprav, kot so tado, Nest, in podobne v vaše lokalno omrežje doma, še manj pa v službeno. Naredite poseben krak na vašem usmerjevalniku in spustite ven promet le na internet. Če vaš usmerjevanik takih konfiguracij ne podpira, kupite novega, strošek je zanemarljiv. Začne se pri 40€. Posebej pazite, če imate IPv6.

Za manjša podjetja in za doma priporočam Mikrotike, dobite jih tule: https://shop.virtua-it.si/mikrotik.html

IGMP Proxy

IGMP Proxy

Naslov se sliši učeno, gre pa za to, da bi radi v LAN omrežju našega doma/službe, gledali vse programe T-2 IP televizije, ne da bi pri tem preveč ogrožali varnost našega omrežja.

Kot verjetno veste, T-2, pa tudi nekateri drugi ponudniki, v optiki ali VDSL kablu, ki ga dobite do doma, prenašajo najmanj tri omrežja: internet, televizijo in telefonijo. Zanimivo je, da niti niso posebej ločena, razen da uporabljajo različna IP območja (subnets), televizija pa se prenaša v multicast načinu.

Običajna postavitev Mikrotika v vašem omrežju je verjetno taka, da lokalnim računalnikom dodeljuje privatne IP naslove (temu priključku bomo rekli LAN), zunal pa z DHCP protokolom ali statično pridobite en javni naslov (WAN). Kaj je treba torej narediti, da bi lahko denimo s programom kot je VNC predvajalnik, lahko gledali program na naslovu udp://@239.1.1.11:5000 (SLO 3 v tem primeru)?

Najprej nadgradite Mikrotik in preverite, da je tudi multicast paket v nadgradnji.

nato dodajte te ukaze:

/routing igmp-proxy interface add interface=WAN upstream=yes
/routing igmp-proxy interface add interface=LAN

ÄŒe imate pravilno skonfiguriran požarni zid – in ne dvomim, da ga imate, boste morali tja dodati naslednji ukaz:

/ip firewall filter add action=accept chain=input comment="Dovoli IGMP" disabled=no protocol=igmp

To je pa tudi vse. V VNC si naložite “play listo” s programi, pa uspeÅ¡no gledanje.

Morda še dve opozorili: Vsak TV kanal zavzame širino cca 4-5 Mbps. Ko prekljapljate med kanali, se zaradi narave Multicast protokola prejšnje povezave ne zapirajo prav takoj, zato kmalu končate pri recimo 10. vzporednih TV kanalih, ki letijo čez vaš bogi Mikotik. To ga bo skoraj gotovo uničilo (resetiralo).

Za lajÅ¡anje te težave sem poskusil “fast leave” nastavitev, ki naj bi takoj zapirala nerabljene kanale, vendar ni bilo nobene razlike. Opazil sem sicer precej zavrnjenih paketov v požarnem zidu, ki imajo morda kakÅ¡no vezo s tem, vendar naprej od tega nisem priÅ¡el. če ima kdo kaj več podatkov, bom zelo vesel.
 

Enhanced by Zemanta
IGMP Proxy

Mikrotik OS – Osnovna nastavitev

Danes smo skoraj zaključili četrto izdajo Mikrotik treninga za MTCNA certifikat in je verjetno že čas, da del teh predavanj povzamem na tem mestu.

Ker je tega kar nekaj, bom to naredil v nekaj postih, obljubim, da bodo vsaj za ta namen precej bol jpogosti. Začeli bomo z osnovno higieno – konfiguracijo Mikrotika. Tu bomo nastavili naslednje ključne komponente:

  • Požarni zid,
  • uro in časovno cono,
  • beleženje ključnih sistemskih dogodkov na “disk”,
  • dostop iz znanih “administrativnih” omrežij,
  • dostop s trkanjem na porte (znan tudi kot Knock zaščita)

V naslednjih postih bomo pogledali Å¡e:

  • enostavnejÅ¡o impelmentacijo dodeljevanja pasovne Å¡irine uporabnikom s “Simple Queues”,
  • kompleksnejÅ¡o klasifikacijo prometa z “Mangle” mehanizmom,
  • Nastavitev “Queue Tree”, tako da imajo različni protokoli različne prioritete

Jutri bom na zaključku tečaja pokazal tudi eno od implementacij IPv6 požarnega zidu, ki sem jo podal v prejšnjem postu. Glede na to, da je šla zadeva nekoliko naprej, bomo morda ponovili vajo iz IPv6 in bom to tudi objavil.

Lotimo se torej osnovne konfiguracije Mikrotik usmerjevalnika:

Opravilo je zelo enostavno, spodnjo kodo le skopirajte v terminalno okno.

Pomembno: Skripta nastavi osnovno higieno usmerjevalnika, ne nastavi pa naslednjih parametrov:

  • ne nastavi lokalnega naslova,
  • ne nastavi zunanjega IP naslova ali dhcp/pppoe ali kakÅ¡enga drugega klienta
  • ne nastavi NAT prevajanja

Razlog je preprost, obstaja preprosto preveč kombinacij.

Uspešno konfiguriranje!

# najprej uredimo beleženje sistemskih dogodkov

/system logging

# pobrišemo osnovno konfiguracijo

remove 0
remove 1
remove 2
remove 3

# popravimo velikost datotek, kamor beležimo dogodke in dodamo novo – persistentno –
# za firewall dogodke

action set 0 disk-lines=200
action set 1 disk-lines=200
action add target=disk disk-lines=200 name=FirewallHits

# dodamo zanimive dogodke, ki jih želimo beležit

add topics=critical action=disk
add topics=critical action=echo
add topics=error action=disk
add topics=warning action=disk
add topics=info,!firewall  action=memory
add topics=firewall action=FirewallHits

# če imamo kakšen linux s syslog procesom, odkomentiramo tudi spodnje, pa seveda nastavimo pravi IP
# action set 3 remote=10.10.1.1:514 disabled=yes

# nastavimo čas s časovnim strežnikom in časovno cono

/system ntp client
set enabled=yes mode=unicast primary-ntp=193.2.1.117 secondary-ntp=193.2.1.92
/system clock set time-zone-name=”Europe/Ljubljana”

# dodamo svojo interno mrežo na spisek dovoljenih naslovov

/ip firewall address-list
add address=192.168.0.0/24 comment=”interno” disabled=no list=safe

#dodamo pravila v pošarni zid

/ ip firewall filter
add chain=input protocol=tcp dst-port=2030 action=add-src-to-address-list  address-list=knock \
address-list-timeout=15s comment=”” disabled=no
add chain=input protocol=tcp dst-port=4060 src-address-list=knock action= add-src-to-address-list \
address-list=safe  address-list-timeout=15m comment=”” disabled=no

add chain=input connection-state=established action=accept comment=”Accept established connection packets” disabled=no
add chain=input connection-state=related action=accept comment=”Accept related connection packets” disabled=no
add chain=input connection-state=invalid action=drop comment=”Drop invalid packets” disabled=no

add chain=input src-address-list=safe action=accept comment=”Allow access to router from known network” disabled=no

add chain=input protocol=tcp psd=21,3s,3,1 action=drop comment=”detect and drop port scan connections” disabled=no
add chain=input protocol=tcp connection-limit=3,32 src-address-list=black_list action=tarpit \
comment=”suppress DoS attack” disabled=no
add chain=input protocol=tcp connection-limit=10,32 action= add-src-to-address-list \
address-list=black_list  address-list-timeout=1d comment=”detect DoS attack” disabled=no

add chain=input protocol=icmp action=jump jump-target=ICMP comment=”jump to chain ICMP” disabled=no
add chain=input action=jump jump-target=services comment=”jump to chain services” disabled=no
add chain=input dst-address-type=broadcast action=accept comment=”Allow Broadcast Traffic” disabled=no

add chain=input action=log log-prefix=”Filter>” comment=”” disabled=no
add chain=input action=drop comment=”drop everything else” disabled=no

add chain=ICMP protocol=icmp icmp-options=0:0-255 limit=5,5 action=accept comment=”0:0 and limit for 5pac/s” disabled=no
add chain=ICMP protocol=icmp icmp-options=3:3 limit=5,5 action=accept comment=”3:3 and limit for 5pac/s” disabled=no
add chain=ICMP protocol=icmp icmp-options=3:4 limit=5,5 action=accept comment=”3:4 and limit for 5pac/s” disabled=no
add chain=ICMP protocol=icmp icmp-options=8:0-255 limit=5,5 action=accept comment=”8:0 and limit for 5pac/s” disabled=no
add chain=ICMP protocol=icmp icmp-options=11:0-255 limit=5,5 action=accept comment=”11:0 and limit for 5pac/s” disabled=no
add chain=ICMP protocol=icmp action=drop comment=”Drop everything else” disabled=no

add chain=services src-address-list=127.0.0.1 dst-address=127.0.0.1 action=accept comment=”accept localhost” disabled=no
add chain=services protocol=udp dst-port=20561 action=accept comment=”allow MACwinbox ” disabled=no
add chain=services protocol=tcp dst-port=2000 action=accept comment=”Bandwidth server” disabled=no
add chain=services protocol=udp dst-port=5678 action=accept comment=” MT Discovery Protocol” disabled=no
add chain=services protocol=tcp dst-port=161 action=accept comment=”allow SNMP” disabled=yes
add chain=services protocol=tcp dst-port=179 action=accept comment=”Allow BGP” disabled=yes
add chain=services protocol=udp dst-port=5000-5100 action=accept comment=”allow BGP” disabled=yes
add chain=services protocol=udp dst-port=123 action=accept comment=”Allow NTP” disabled=yes
add chain=services protocol=tcp dst-port=1723 action=accept comment=”Allow PPTP” disabled=yes
add chain=services protocol=gre action=accept comment=”allow PPTP and EoIP” disabled=yes
add chain=services protocol=tcp dst-port=53 action=accept comment=”allow DNS request” disabled=no
add chain=services protocol=udp dst-port=53 action=accept comment=”Allow DNS request” disabled=no
add chain=services protocol=udp dst-port=1900 action=accept comment=”UPnP” disabled=yes
add chain=services protocol=tcp dst-port=2828 action=accept comment=”UPnP” disabled=yes
add chain=services protocol=udp dst-port=67-68 action=accept comment=”allow DHCP” disabled=no
add chain=services protocol=tcp dst-port=8080 action=accept comment=”allow Web Proxy” disabled=yes
add chain=services protocol=ipencap action=accept comment=”allow IPIP” disabled=yes
add chain=services protocol=tcp dst-port=443 action=accept comment=”allow https for Hotspot” disabled=yes
add chain=services protocol=tcp dst-port=1080 action=accept comment=”allow Socks for Hotspot” disabled=yes
add chain=services protocol=udp dst-port=500 action=accept comment=”allow IPSec connections” disabled=yes
add chain=services protocol=ipsec-esp action=accept comment=”allow IPSec” disabled=yes
add chain=services protocol=ipsec-ah action=accept comment=”allow IPSec” disabled=yes
add chain=services protocol=udp dst-port=520-521 action=accept comment=”allow RIP” disabled=yes
add chain=services protocol=ospf action=accept comment=”allow OSPF” disabled=no
add chain=services action=return comment=”” disabled=no

blockquote>

Enhanced by Zemanta
IGMP Proxy

Hitrosti internetnih povezav

Trenutno sem V Rigi, Latvija, na nekem predavanju, ki ga prireja Mikrotik, zelo zanimiv proizvajalec strojne in programske opreme za usmerjevalnike, ki na svojo srečo, ne nosi za sabo preveč bremen preteklosti.
Kakor koli, pogovor je danes nanesel na pasovno širino (v nadaljevanju kar hitrost povezave), ki nam jo ponudniki prodajajo. Težava je namreč v tem, da večina ponudnikov prodaja nekaj, česar pravzaprav nima. Kaj bi se recimo zgodilo, če bi se vsi T-2 uporabniki na primer zmenili, da bodo istočasno zagnali uTorrenta na vseh domačih mašinah? Prej bi jih pa priklopili direktno na T-2 switch, da ne bodo s tem sesuli svojih routerjev.

Za tak primer bi moral imeti ponudnik zagotovljeno hitrost na vseh poteh, ki bi bila seštevek vseh hitrosti pri uporabnikih. Tega seveda nihče nima, pravzaprav bi bili že zelo srečni, če bi kdo imel vsaj tisočinko tega.
Ponudniki se sicer večinoma zavarujejo v svojih pogodbah, kjer nekje piÅ¡e, da je hitrost “best effort” ali da je navedena hitrost največ ta in ta. Zelo redki povedo kakÅ¡na pa je minimalna hitrost, ki jo bi lahko uporabnik, če bo imel smolo, pri njih izkusil.
Temu bi se dalo izogniti s cenovnim modelom, ki bi bil sicer nekoliko bolj zapleten, sem pa prepričan, da bi se ga ljudje hitro navadili.
Å lo bi nekako takole: Hitrost povezave ne bi bila fiksna. Določen krajÅ¡i čas Tb bi bila zelo visoka, recimo 100Mbps, temu bi rekli lahko “burst”, hitrosti povezave pa Vb. Po tem času (ob polni hitrosti) bi padla na neko bistveno manjÅ¡o hitrost, recimo ji Vmin. Tam bi ostala dokler bi seÅ¡tevek (integral) trenutnih hitrosti v drsečem obdobju zadnjih Tb enot ne bi padel pod določeno mejo Vcut*Tb. Z drugimi besedami, če bi uporabnik stalno kuril le Vcut internetne povezave, bi imel skozi konstantno hitrost. Vcut bi bila seveda bistveno nižja od sedanjih hitrosti ali Vb hitrosti.
To bi privedlo do bistveno kvalitetnejše izkušnje za uporabnike, ki internet uporabljajo za delo, ter nekoliko slabše izkušnje za tiste, ki ga uporabljajo za pretakanje vsebin, pa tudi za recimo backup na daljavo.
Paketi bi se razlikovali med seboj v glavnem po Tb parametru.
Seveda je tudi v tem modelu možno, da uporabniki vsi na enkrat začno pretakati nekaj velikega in so zato vsi na Vb hitrosti. Zato bi bilo smiselno povedati tudi kakšen je standardni čas, po katerem ob statističnih predpostavkah pridemo do resnične Vb hitrosti. Dodatna komplikacija je pa še ta, da so verjetno pogoji za dostop do lokalnega omrežja drugačni kot recimo pogoji za dostop do mednarodnega. Zato bi bilo verjetno nujno ta različna področja ločit in za vsakega določit neko svojo ceno glede na prej predstavljene parametre. Iz tega pa bi se naredili komercialni paketi, ki bi zajemali vsa področja s smiselnimi parametri za različne tipe strank.

Reblog this post [with Zemanta]
IGMP Proxy

Ipv6 je tu

Danes bi moral pisati nek tekst, pa mi ni diÅ¡alo in sem zato delal vse drugo. Najprej sem očistil klimo (kul je, ker ima odtok za kondenz in lahko zato nanjo zlivaÅ¡ poljubne količine vode – na hladilna rebra seveda, da s tem odplakneÅ¡ hrano za bakterije in drugo golazen, ki se tam notri redi), potem sem celo nekaj pospravljal, na koncu sem se pa lotil IPv6 protokola.
Vse skupaj je bilo posledica tega, da sem pred dnevi srečal Jana Žorža, ki se s tem poklicno ukvarja in ima celo spletno stran posvečeno vpeljavi tega novega protokola (http://ipv6.go6.si).

  • Moram reči, da se mi zdi, da bo s tem kar precejÅ¡nja drama. ÄŒeprav je protokol nedvomno precej naprednejÅ¡i, pa uvaja nekatere res dramatične spremembe, ki bodo prinesle kar nekaj težav: Zadeva pravzaprav ni združljiva z IPv4, kar pomeni, da bomo leta in leta živeli z obema. Starega protokola enostavno ne bo mogoče opustiti, kar pomeni, da bo treba oskrbovati kar dva. Zelo nadležno. ÄŒlovek bi pričakoval, da bo obstajal nek protokol za prevod med enim in drugim, pa tega enostavno ni. Je par poskusov pa nobenega pravega standarda.
  • IPv6 več ne potrebuje NAT, torej prevoda lokalnih naslovov v javne. SliÅ¡i se super, je pa kup težav na obzorju. Trenutno večina podjetij in domov “varuje” svoje računalnike z usmerjevalniki, ki prevajajo njihove lokalne IP naslove v javne. Ko javni strežnik odgovori, ta usmerjevalnik ugotovi za katero povezavo gre in zopet nazaj prevede tokrat javni naslov v lokalnega. Finta je v tem, da če povezave ni, torej ni bila ustvarjena iz notranjega računalnika, in zato usmerjevanik ne naredi ničesar. To nas do neke mere varuje pred zunanjimi vdori. Seveda NAT ni varnostna tehnologija, je pa res, da v praksi za manjÅ¡e in manj varnostno občutljive uporabnike kar nekako deluje. ÄŒe tega kar naenkrat ne bo več, bo vzdrževanje usmerjevalnikov v takih okoljih precej bolj problematično. Upamo, da bodo vsaj cenejÅ¡i usmerjevalniki vsebovali neke privzete nastavitve, ki bodo po funkciji podobne NAT, torej da bo dovoljen promet navzven, notri pa v celoti prepovedan
  • Ker naÅ¡i omiljeni ponudniki seveda Å¡e ne podpirajo IPv6, je komplikacija tudi s tem. ÄŒe se želite s tem igrati, je treba narediti tunel preko IPv4. Za to pa rabite ponudnika, ki ima na drugi strani strežnik, ki te tunele razkodira in vam tudi dodeli del novega naslovnega prostora, ki je milo rečeno res ogromen. Osnovni prostor, ki vam ga bodo dodelili za vaÅ¡o, recimo domačo uporabo, bo bistveno večji od celotnega interneta, kot ga poznamo danes. Pojdite torej na (recimo) http://he.net/ in si naredite svoj račun. ÄŒe imate katerega od podprtih usmerjevalnikov, vam bodo zgenerirali celo skripto, s katero boste nastavili svoj usmerjevalnik za delo z IPv6. Jaz uporabljam Mikrotik – s tem res ni bilo nobenih težav.

Takole, prvo poglavje je zaključeno, nastavil sem tudi osnovni požarni zid, bomo videli, kaj bo prineslo jutro.

Reblog this post [with Zemanta]