Archiv autora: MOJEservery.cz

Raspberry Pi 2: inovace pro vaše projekty, skladem Tachov, Planá, Mariánské Lázně

Naskladněno Raspberry Pi 2, už nemusíte čekat, Raspberry můžete mít ještě dnes, kontakt zde, skladem Tachov, Planá, Mariánské Lázně.

Poskytujeme technickou podporu na minipočítač Raspberry, pomoc s rozběhnutím, instalace, zaškolení, připravovaný je pro Vás zdarma Workshop, zustaňte naladěni, sledujte na FB, Twitter, Youtube viz kontaky.

Z komerčních projektů jsme úspěšně na Raspberry Pi realizovali VoIP telefonní ústřednu pro 5 účastníků, micro VPN server, mini Samba server, firemní web server nginx a PHP, domácí kamerový systém pro dvě IP kamery a domácí automatizace časového spínání světel s optotriakem.

Raspberry Pi 2

  • Čtyřjádrový SoC Broadcom BCM2836 z rodiny ARM Cortex-A7 taktovaný na 900 MHz, s posílenou jednotkou FPU, zpětně kompatibilní s Raspberry Pi 1
  • Grafický procesor VideoCore IV, podporující OpenGL ES, 2.0, 1080p30, MPEG-4
  • 1 GB RAM
  • 4x USB
  • 40x GPIO
  • podpora Linux/Android, Windows 10 (edice IoT, zdarma)
Inovujte, hrajte si, učte sebe i svoje děti s Raspberry a open source software je to snadné, zábavné a hlavně přínosné.

raspberry-pi-export-web-skladem-800

IMG_20150423_151128

IMG_20150423_151303

IMG_20150423_151448

IMG_20150423_151419

Sítě: BGP (Border Gateway Protocol) s láskou

Pozn.: Tento příspěvek je ležérní, neformální a uvolněný jak jen okovy otroka kapitalismu mohou být volná.

Protokol BGP (Border Gateway Protocol) je páteřní směrovací protokol pro udržbu a výměnu směrovacích tabulek, BGP je protokol, který budete milovat!

O to více mě mrzí, že v případě bývalého zaměstnavatele (TaNET ISP) se nepodařilo nasadit BGP jako full mesh internal iBGP a eBGP pro spojení se světem, clověk přišel o část možných zkušeností a kupu zábavy s touto úžasnou technologií.

V labu mám spojený 2x fyzický router Mikrotik, 1x VyOS ( komunitní fork Brocade Vyatta = virtuální router), každý router představuje vlastní autonomní systém (AS, lze si  představit jako skupinu směrovaču se společnou politikou, správou, např. městská síť, organizace, ISP,…), rozběhnuto BGP, filtrování, cluster/reflector, co chci testovat je přidání jednoho Mikrotik routeru (který teď nemám k dispozici) a konfiguraci MPLS(VPLS) s BGP.

Zajímavou myšlenkou BGP nebo takové motto, které mě zaujalo a jeho pamatováním nic nezkazíte: “The more you know, the better off you are”, aplikováno do řeči BGP , čím přesnější (kompletnější) routovací informace máte tím lepší rozhodnutí pro routing můžete udělat, to dává vcelku smysl.

Proč používa BGP?

Pravděpodobně už máte nějakou představu jak BGP funguje nebo jak ho dokonce konfigurovat, ale říkáte si proč to vůbec dělat?

bgpispsingle

  • Jeden UPLINK, jedna cesta ven, zde BGP nedává smysl, vše směrujeme v případě AS100 na výchozí bránu (AS200).

bgpispduallink

  • Podobný scénář, s tím rozdílem, mezi AS jsou dvě linky, zde by už BGP mohlo dávat smysl, přes BGP můžeme vynutit traffic přes konkrétní linku a druhou použít pro zálohu či udělat rozklad záteže

bgpispsingleas

  • Zajímavější situace, představme si na chvíli statický routing mezi AS100 a jeho ISP AS200, pro AS100 je vše za síťí ISP neviditelné, nemáme žadnou přestavu o síťích “tam venku”, s nasazením BGP začneme dostávat informace co se děje “venku”, dostaneme kompletní prefixy sítí za ISP včetně AS ve kterých se necházejí, budeme moci tak lépe rozhodnout který traffic půjde kterou naší linkou, jsem schopni chování ovlivňovat skrze atributy BGP (stejně jako chování ovlivňují ostatní)

bgpdualisp

  • V případě rešení tzv. “dual-home” jsem jako zákazník připojen na dva nezávislé ISP, zde dává nasazení BGP největší smysl, jako zákazník budu ve svém BGP routeru dostávat informace pro prefixech a AS ze dvou směrů, mohu pokud bych chtěl routovat k HugeCompany přes ISP2 i když to nemusí dávat smysl na první pohled mohu k tomu mít důvody a propoj přes ISP1 pro routing k HugeCompany si ponechat pouze jako zálohu nebo do něj hrnout ostatní traffic

Jak je vidět s BGP lze kouzlit, ovlivnovat jeho chování pomocí atributů ( jedním z nejdůležitějších je AS patch, povinný atribut obsahuje seznam všech autonomních systému přes které je propagovaný prefix), BPG si zamilujete a má smysl se ho naučit.

František Havel

 

Sítě: 2.5Gbit, 5Gbit ETHERNET

NBASE-T, výsledek společné práce firem Cisco, Freescale, Xilinx a dalších dává na stůl specifikace pro přenosové rychlosti 2.5Gbits a 5Gbits s cílem a dovolím si citovat: “Cílem naší mise je zvýšit rychlost sítě bez potřebné změny kabelové infrastruktury “.

Proč je potřeba kompromisu mezi 1Gbit a 10Gbit? Pro 10Gbit standart nejsou v SOHO data ani peníze, nejlépe vše navíc zajistit na stávající kabeláži (Cat5e, Cat6e) do vzdálenosti 100m.

Realným motivem je zajištění konektivity pro wireless access-pointy s rychlou přenosovou kapacitou na krátké vzdálenosti (802.11ac, teoretická rychlost 6.9Gbits), 4k/8k HD Video (60Hz, 120Hz), kamerové systémy, domácí/firemní úložiště.

Pro skutečné využití je nutná IEEE standartizace, které může trvat 2 roky a více, nový návrh je navíc přijímán i kriticky s odkazen na existenci LACP (agregace fyzických n X 1Gbit portů do jednoho logického) a v ruku v ruce s klesající cenou 10Gbit technologie.

Osobně si bych uvítal možnost této technologie, dokážu si představit její využití, respektive snadnou cestou nebo formu upgrade ve stávajících firemních sítích, letos by mělo přijít první funkční demo, nechme se překvapit.

František Havel

 

Disqus: komentáře pro vaše weby snadno a rychle?

Disqus jako forma outsource komentářové systému pro Vaše weby je vyvíjena od roku 2007, lze se s ním setkat na značném množství zahraničních webů i v českém virtuálním prostoru začíná být značně populární.

Začněme obráceně, kritikou, riziky, pokud se přes ně dokážete přenést, je to Vaše. Pro administrátory webových stránek je na první pohled snadná možnost integrace komentářů lákavá, nezatěžuj server, nízké náklady, snadná integrace, ale všechno má své ale.

  • ztrácíte nad tím úplnou kontrolu
  • uživatelé i weby jsou sledované (statistiky kdo, kdy, kam, píše, navštěvuje apod.)
  • do budoucna možné riziko placených placeného komentářového spamu
  • těsná integrace na sociální sítě ( uživatel je nucen vlastnit účet na sociální sítí jinak není schopen rozumně zanechat komentář)

disqus-login-page

Jste tu ještě? Výborně, né vše je tak špatné jak na první pohled může, díky své rozšířenosti má Disqus solidní podporu.

  • snadná implementace, podpora pro širokou škálu CMS (WordPress nevyjímaje)
  • spam filtr
  • notifikace a moderování skrze email
  • možnost sychronizace a import/export komentářů
  • přežije změnu URL i domény
  • podpora čestiny
  • možnost stylování
  • optimalizace pro mobilní zařízení
  • rozsahlé API
  • “jednička” na webu v  oblasti komentářů

Pokud přemýšlíte o řešení komentářů zvažte Disqus, možná si ušetříte dost práce.

Nebyl popsán kompletní seznam vlastností, ale nebylo to cílem článku, objevujte možnosti tohoto řešení, až uzraje čas, zapneme podporu i zde na webu.

Díky za Váš čas. František Havel

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

SMTP-CLI: Nadupaný řádkový SMTP klient pro Vaše skripty

Hledáte řádkově orientovaný, jednoduchý a přitom schopný nástroj pro odesílání emailů z Vašich skriptů?

Zkuste smtp-cli, autorem je tuzemský vývojář Michal Ludvig (logix).

SMTP-CLI (smtp-client, smtp-command line interface) je smtp klient/nástroj napsaný v jazyce Perl (jeden samostatný soubor, ~ 30kb) s podporou pro:

  • STARTSSL, SMTP-AUTH
  • IPv4, IPv6
  • plaintext zprávy, html zprávy
  • přílohy, inline obrázky, mime-type
  • charset, text-encoding
  • načítání dat ze souborů
  • skriptovatelný
  • debug, testování SMTP

Instalaci,popis nasazení, ukázky nejlépe popisují přímo stránky smtp-cli a github.

http://www.logix.cz/michal/devel/smtp-cli/
https://github.com/mludvig/smtp-cli

Podpořte autora skrz Paypal.

Dnes to bylo rychlé, díky 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

Linux: Blokujeme čínu,rusko firewallem a ipset

S Čínou i Ruskem jsou potíže, jsou veliké.

Nedávno zde proběhl článek Linux firewall: Blokujeme pomocí IPSET jak blokovat rozsáhlá pravidla v linux firewallu bez výkonové penalizace.

Dnes bych rád na toto téma lehce navázal, ukážeme si jak efektivně zablokovat provoz z konkrétní země, v našem případě jde o Čínu a Rusko, bude to jednoduché a rychlé, slibuji.

Co budeme potřebovat? Nástroj IPset,wget a seznam rozsahů konkrétní země.

Vytvoříme si dvě hash tabulky, následně stáhneme pomocí nástroje wget soubor veřejných rozsahů, aplikujeme v jednoduchém cyklu na ipset a poté pouze nasadíme iptables.

Pojďme na to!

root@havel-machine:~# ipset -N china hash:net
root@havel-machine:~# ipset -N russia hash:net

root@havel-machine:~# wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
root@havel-machine:~# wget http://www.ipdeny.com/ipblocks/data/countries/ru.zone

root@havel-machine:~# for i in $(cat cn.zone ); do ipset -A china $i; done
root@havel-machine:~# for i in $(cat ru.zone ); do ipset -A russia $i; done

root@havel-machine:~# iptables -A INPUT -p tcp -m set --match-set china src -j DROP
root@havel-machine:~# iptables -A INPUT -p tcp -m set --match-set russia src -j DROP

A to je vše! Dejte si pozor kam umístíte iptables DROP pravidla, musí být povětšinou před zbytkem pravidel, jinak nebudou mít efekt.

Prozkoumejte podrobněji www.ipdeny.com , k dispozici jsou i agregované seznamy rozsahů (v našem případě použit ne-agregovaný seznam, ipset agreguje za nás), pěkný je online generátor pravidel do iptables,ipchain,ipfw.acl. Co mě překvapilo je i seznam IPv6 rozsahů http://www.ipdeny.com/ipv6/ipaddresses/blocks/ , prostě skvělé.

K dokonalosti je vhodné celé řešení zabalit do scriptu, ošetřit možné chyby kolem wget a pravidelně aktualizovat, nechávám za domácí úkol.

Díky za Váš čas. František Havel

Zemřel sir Terry Pratchett, Úžasná Zeměplocha žije dál.

Dnes ve věku 66 let zemřel Terry Pratchett, děkujeme, nezapomeneme. RIP

http://www.bbc.com/news/entertainment-arts-31858156

Měl výraz sekačky na trávu, která právě zjistila, že si tráva založila odbory.

Míň vlasů k česání, ale na druhou stranu zase větší kus obličeje k mytí… 

"Varuju vás!Jsem zoufalý muž!" "To je naběračka, kámo. Ale hezkej pokus."

"Čas je droga. Když ho užíváte příliš mnoho, zahubí vás." 

"... Já měl dojem, že filozofové jsou lidé, kteří uvažují logicky!" 
Didactylos pokrčil rameny. 
"Víš, já to vidím tak, že logika je jen způsob, jak se mýlit ve velkém."

terry_81600230_21d7e4b7-0ef8-45f5-a72f-496371c890fe