Archiv pro štítek: mikrotik

Mikrotik mini-howto: Hlavní a záložní zavaděč RouterBOOT

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

Hlavní a záložní zavaděč RouterBOOT


Zavaděč (bootloader) RouterBOOT je v zařízeních značky Routerboard software (firmware, kód) zodpovědný za inicializaci hardware po sepnutí napájení, vyhledání dostupného úložiště (NAND flash) a následné načtení operačního systému RouterOS do paměti a předání mu řízení. Pokračování textu Mikrotik mini-howto: Hlavní a záložní zavaděč RouterBOOT

Mikrotik mini-howto: EoIP a šifrování s IPsec

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

EoIP a šifrování s ipsec

Proprietární EoIP protokol Mikrotiku pro tunelování L2 provozu je na systému RouterOS velmi populární zejména pro svojí velmi snadnou konfiguraci, prakticky přidáte pouze na každé stráně (zařízení) remote-address a shodné tunnel-id a můžete začít tunelovat, jednoduché, nekomplikované.

Článek: 
Jak funguje EoIP a je možný proti Linux serveru ?
www.mojeservery.cz/linux-eoip-tunel-proti-mikrotik/

Jednou z nevýhod EoIP je nešifrovaný provoz, přirozeně je možné zabalit celý provoz a transparetně šifrovat oba konce přes IPsec, který je podporován v Mikrotiku, bohužel většina administrátorů tuto konfiguraci neřeší, mají k IPsecu “odpor”, vetšinou z důvodu neznalosti jeho problematiky, lidé se bojí toho co neznají.

Proto Mikrotik přidal podporu šifrování do EoIP skrze IPsec (dle informací k 15. výročí protokolu), a to tak snadno, že pouze vyplníte ipsec-secret (pre-shared key, heslo, ideálně netriviální), Mikrotik následně sám nakonfiguruje dynamické ipsec peery (strany tunnelu), nakonfiguruje policy s výchozím šifrováním na sha1/aes128cbc, hotovo a máte šifrováný L2 tunnel, jednodušší už to nebude, takže šifrujte !

Ukázka konfigurace EoIP s IPsec

Používáme RouterOS version: 6.37.1 (stable)

Pozn.:
IPsec u EoIP potřebuje explicitně specifikovat local-address u EoIP tunelu kvůli konfiguraci ipsec peerů a také vypnout fastpath funkcionalitu jinak není možné IPsec povolit na EoIP.

Příklad síťové topologie:

mikrotik-minihowto-eoip-ipsec-2016

Konfigurace:

Router R1:
/interface eoip add name="EOIP-R2" local-address=1.1.1.2 remote-address=2.2.2.2 tunnel-id=10 allow-fast-path=no ipsec-secret=ozCafWutIvFikamNekUlhedeipdobus5
Router R2:
/interface eoip add name="EOIP-R1" local-address=2.2.2.2 remote-address=1.1.1.2 tunnel-id=10 allow-fast-path=no ipsec-secret=ozCafWutIvFikamNekUlhedeipdobus5

A to je vše, snadné, tak šifrujte !

Děkujeme za Váš čas, MOJEservery.cz

Realizováno! Konsolidace LAN, výstavba VPN pro AROMATERAPIE a.s.

Realizace VPN, konsolidace sítě LAN


Úspěšně realizováno!

Pro zákazníka 1. AROMATERAPEUTICKÁ KH a.s. jsem provedli konsolidaci lokální počítačové sítě (LAN), připojení první vzdálené pobočky pomocí technologie VPN, napojení na VoIP ústřednu, konfigurace firewallu a zavedení základní bezpečnostní politiky. Pokračování textu Realizováno! Konsolidace LAN, výstavba VPN pro AROMATERAPIE a.s.

Linux mini-howto: Diagnostický nástroj Traceroute

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

Diagnostický nástroj Traceroute


Info: Následující krátký jednoduchý text vznikl na základě praktické zkušenosti dotazů a z workshopů, je cílen na mladší generaci síťařů/adminů pro objasnění, že i za tak jednoduchým nástrojem traceroute není žádná magie, není cílem nikoho urazit, pouze osvěta. Děkuji.

Nástroj traceroute umožňuje základní analýzu počítačové sítě formou textového výpisu směrovačů (uzlů) na cestě paketu od zdroje v cíli, jde tedy o velmi efektivní nástroj pro rychlé zobrazení aktuálních cesty (routování) v sítí, standardně je tento nástroj obsažen ve většině Linux/Unix systémech, ve světě Windows má svoji implementaci v podobě nástroje tracert. Pokračování textu Linux mini-howto: Diagnostický nástroj Traceroute

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.

Linux: Fail2ban a Mikrotik firewall

Bezpečnost a ochrana skupiny serverů jako celku je velmi efektivní, pojďme si ukázat jak elegantně spojit firewall Mikrotik s řešením Fail2ban a chránit tak skupinu serverů jako jeden celek.

Fail2ban, nástroj dobře znám z unix světa, co dělá, jak funguje, v jednoduchosti scanuje log soubory, hledá chybné pokusy o přihlášení na jejich základě blokuje (ban) IP adresu utočníka po určitou dobu v lokálním firewallu serveru, jednoduché.

Složitěji?

Mějme následující situaci, Mikrotik jako hraniční firewall a router, za routerem skupina fyzických či virtuálních serverů, cílem je propojit fail2ban na serverech, tak aby upravovaly firewall na hraničním routeru, tedy ban bude probíhat na firewallu.

Proč?

Je pravděpodobně, že skupina serverů sdílý společný rozsah veřejných IP adres v případě pokusu o napadení jednoho serveru se automaticky začné chránit celý rozsah a to chceme, chránit celek je většinout(nikoliv vždy) efektivnější.

Obrázek pro dokreslení situace.

linux-fail2ban-mikrotik

Mikrotik firewall router

Základem je mít možnost přístupu na router Mikrotik via ssh, nejlépe pomocí klíčů, vygeneruje si tedy pár veřejný-soukromý klíč, přenést a importovat veřejný klíč na firewall router, nezadávejte při generování passphrase!

root@raspberrypi:~# ssh-keygen -t dsa
 Generating public/private dsa key pair.
 Enter file in which to save the key (/root/.ssh/id_dsa):
 Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
 Your identification has been saved in /root/.ssh/id_dsa.
 Your public key has been saved in /root/.ssh/id_dsa.pub.
 The key fingerprint is:
 ac:6c:02:92:bb:b0:b8:e4:4d:bc:ac:c6:eb:1b:cd:

Vzniklý soubor id_dsa.pub přeneste na Mikrotik router (winbox, ftp, scp …), založte samostatného uživatele a importujte mu klíč, za address dosaďte IP adresu linux serveru s instalovaným fail2ban. (uživatel je omezen na přístup z této IP, nebo nechte volné pokud chcete či chráníte ssh jinak), na Mikrotiku máme vše hotovo.

[admin@ro1.faha.neutron.mojeservery.cz] > user add name=fail2ban address=xx.xx.xx.xx group=full
[admin@ro1.faha.neutron.mojeservery.cz] > /user ssh-keys import public-key-file=id_dsa.pub user=fail2ban

Linux server

Instalace fail2ban démona (Debian součásti reposítářů, pro CentOS použíjte např. tento návod).

root@raspberrypi:~# apt-get install fail2ban

Nyní ta “magie”, vytvořet soubor /usr/local/bin/mikrotik-fail2ban s tímto obsahem, za xx.xx.xx.xx dosaďte IP adresu (nebo dns, v této ukázce) firewall Mikrotik (většinou brána)

#!/bin/bash
ssh -l failban -p22 -i /root/.ssh/id_dsa ro1.faha.neutron.mojeservery.cz "$1"

Naučíme fail2ban používat Mikrotik, vytvořte soubor /etc/fail2ban/action.d/mikrotik.conf s tímto obsahem.

# Mikrotik fail2ban
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = mikrotik-fail2ban ":ip firewall filter add action=drop chain=forward dst-address=<ip> comment=AutoFail2ban-<ip>"
actionunban = mikrotik-fail2ban ":ip firewall filter remove [:ip firewall filter find comment=AutoFail2ban-<ip>]"

Jsme téměr u konce, zapneme služby které mají být kontrolovány službou fail2ban a nastavíme action na mikrotik, v našem případě si ukážeme službu FTP, editujte soubor /etc/fail2ban/jail.conf.

[vsftpd]
enabled  = false
port     = ftp,ftp-data,ftps,ftps-data
filter   = vsftpd
logpath  = /var/log/vsftpd.log
action = mikrotik
sendmail-whois[name=FTP, dest=havel@mojeservery.cz, sender=fail2ban-neutron@mojeservery.cz]
maxretry = 5
bantime = 300

Hotovo!

To bylo snadné, že?! Nyní postup můžete rozšířit na libovolný počet serverů v DMZ, dostanete automaticky ochranu celku při pokusu o napadnutí jednoho stroje.

Tento základní mustr lze zdokonalit, vylepšit, meze fantazii se nekladou, dejte pozor na přílišnou kreativitu.

Děkuji za Váš čas. František Havel

Linux: EoIP tunel proti Mikrotik

EoIP tunel je technologie důvěrně známá ze zařízení společnosti Mikrotik, eoip (ethernet over IP) je tunelovácí nešifrovaný protokol postavený na zapouzdření ethernet rámce do standartního GRE protokolu (Geneneric Routing Encapsulation, IP protokol 47, RFC1701).

Mikrotik samotný podporuje pochopitelně i GRE tunel, ovšem můžete být v situaci, kdy bude vyžadováno použití EoIP, EoIP samotný je stavěn primárně pro tunelování L2 provozu (přenáší navíc proti GRE Ethernet hlavičku a MAC adresy), umí fragmentovat, zachová tedy MTU, má relativně nízký overhead (28bytes), vetší režii právě díky dis/assemblování a tím i nižší propustnost, ale hlavně velmi snadnou konfiguraci, proto je oblíben.

Zpět k našemu problému, na jedné straně máme Mikrotik s RouterOS a na druhé straně Linux router (např. Debian).

linux-eoip-mikrotik

Projekt linux-eoip implementoval proprietární řešení EoIP Mikrotik, autorem je Denys Fedoryshchenko , stáhneme zdrojový kód, přeložíme, nainstalujeme, nastavíme. (https://code.google.com/p/linux-eoip, předpokládejme nainstalovaný překladač GCC)

root@raspberrypi:/usr/src# wget https://linux-eoip.googlecode.com/files/linux-eoip-0.5.tgz
root@raspberrypi:/usr/src# tar -xvzf linux-eoip-0.5.tgz
root@raspberrypi:/usr/src# cd linux-eoip-0.5
root@raspberrypi:/usr/src/linux-eoip-0.5# ./configure
root@raspberrypi:/usr/src/linux-eoip-0.5# make
root@raspberrypi:/usr/src/linux-eoip-0.5# make install

Máme nainstalováno, v /usr/local/bin/eoip je samotný démon, k samotnému spuštění je potřeba ještě konfigurační soubor, ukázka a spuštění démona.

root@raspberrypi:~# cat /etc/eoip.cfg 
[zeoip0]
id=50
dst=x.x.x.x
root@raspberrypi:~# /usr/local/bin/eoip /etc/eoip.cfg

Konfigurační soubor je velmi jednoduchý, id je ekvivalent tunnel-id na Mikrotiku, dst je ekvivalent remote-address, tedy vzdálená adresa protějšího routeru, soubor může obsahovat libovolné množství tunelů, konfigurace na Mikrotik routeru najdete v sekci /interface eoip postačí pouze dodržet shodná tunnel-id a vyplniť korektní adresu protějšku.

Po spuštění bude vytvořeno nové rozhraní s názvem uvedeným v eoip.cfg, v našem případě zeoip0, chová se jako konec tunelu, je možné na něj nasadit spojovací ip adresy, použít ho pro routing či dále bridge-ovat, lze ho zmiňovat v iptables apod.

TIP! Šifrování provozu EoIP tunelem lze dosáhnout např. vytvořením PPTP tunelu mezi dvěma routery a EoIP tunel vystavět v rámci PPTP tunelu, přihlédneme-li k menší bezpečnosti  je to jednoduchý způsob, jak výkonově (CPU) tak konfiguračně, na vše ostatní je IPSec, pokud tedy máme dostatečně výkonný router.

Závěrem, pro zvídavé geeky doporučuji udělat si čas prostudovat si zdrojové kódy projektu linux-eoip, jsou velmi jednoduché, přehledné a dají Vám přehled o tom jak vlastně funguje takové zapouzdření, co na to jádro atd., prostě dobré čtení.

A to je vše, děkuji za Váš čas. František Havel

Mikrotik: partitions, k čemu je to dobré?

Funkce partitioning nebo raději hezky česky rozdělení NAND flash paměti na oddíly byla představena v RouterOS verze 6 ještě behěm vývoje této řady, konkrétně v6rc5, pojďme si ji v rychlosti představit a ukázat její možnosti.

Partitioning umožňuje:

  • rozdělení interní flash paměti na oddíly (max 8)
  • instalace OS separátně do každého oddílu
  • nastavit aktivní boot oddíl
  • nastavit fallback oddíl pokud aktivní selže (vhodné pro upgradování RB s možností návratu v případě selhání)
  • integrované nastroje pro rozdělení, klonování bežícího systému do oddílu, uložení/obnova aktuální (running) konfigurace z/do oddílu
  • podpora RouterBOARD s architekturou MIPS, PowerPC, CCR (x86 platforma není podporována)

Typická aplikace pro rozdělení je nasazení/testování nové verze RouterOS s možností návratu k předchozí, pojďme na to.

[admin@MikroTik] > /partitions print
Flags: A – active, R – running # NAME FALLBACK-TO
0 AR part0 next

(zde vidíme pouze jeden oddíl je aktivní (A) tedy bootujeme z něj a running (R), právě z něj běžíme )

[admin@MikroTik] > partitions repartition partitions=2
Repartitioning requires reboot. Continue, yes? [y/N]:

(vytvoříme si dva oddíly, je vyžadován reboot, původní part0 zůstane zachován pouze se změní velikost).

mikrotik-partitions-3 mikrotik-partitions-4

Předchozí printscreen zobrazuje dva oddíly (part0, part1), původní part0 obsahuje náš systém, oddíl part1 je zatím prázdný jak je z obrázků vidět, nyní je možné pomocí funkce copy udělat kopii oddílu part0 -> part1, položka Fallback To je nastavitelná, výchozí hodnota next určuje chování v případě selhání bootování z part0 zkusit další oddíl v tomto případě tedy part1.

Jdeme do finále, naklonujeme aktivní systém, pro případ zálohy a uložíme aktuální konfiguraci od oddílu part1.

[admin@MikroTik] > /partitions copy-to part1
status: done

mikrotik-partitions-5 mikrotik-partitions-6

[admin@MikroTik] /partitions> save-config-to part1
status: done

Hotovo! V oddílu part1 máme klon systému včetně konfigurace, vzdálený upgrade RouterOS občas nedopadne nejlépe, zařízení přestane reagovat a je nutný zásah s fyzickou přítomností, bohužel systém je po tuto dobu nefunkční, chytrý fallback nám zachránil situaci, máme zpět původní systém, takový “safe mode” nad celým systémem.

TIP: použít scheduler pro pravidelnou kopii konfigurace na záložní oddíl (např. 1x denně bude dostačovat)

Oficiální dokumentace Mikrotik, http://wiki.mikrotik.com/wiki/Manual:Partitions.

A to je vše, děkuji za Váš čas. František Havel