Linux: Nové DNS servery pro síť TaNET

Pro našeho zákazníka společnost TaNET West s.r.o. provozující rozsáhlou počítačovou síť a lokálního internetového poskytovatele jsem vytvořili dvojici nových DNS serverů pro jeho klienty.

DNS (Domain Name System) je hierarchický systém doménových jmen, který je realizován servery DNS a protokolem stejného jména. Jeho hlavním úkolem jsou vzájemné převody doménových jmen a IP adres uzlů sítě, laicky řečeno je to služba pro převod doménového jména (např. www.mojeservery.cz) na IP adresu (46.167.204.50) se kterou pracují počítače, ale pro lidi je obtížně zapamatovatelná.

Z předchozího textu vyplývá důležitost DNS serverů jako jedné z klíčových komponent celého internetu, proto je vhodné provozovat ve větších sítích vlastní DNS a nespoléhat se na cizí služby (pro poskytovatele internetu je v to podstatě nutnost).

Dvojice nových rekurzivních DNS serverů TaNET:
  • 1x fyzický server
  • 1x virtuální server
  • operační systém Linux Debian 8 Stable 64bit
  • DNS server bind9
  • optimalizovaná konfigurace
  • podpora DNSSEC
  • cache
  • ACL (allow-query, allow-recursion, allow-transfer)
  • response-rate-limiting
  • možnost blokování konkrétních domén nebo celých stromů
  • reverzní záznamy (master-slave AXFR transfer)
  • fail2ban, firewall
  • NTP synchronizace času
  • SNMP pro monitoring stavu stroje
  • SMTP exim4 (relayhost, pouze notifikace)
  • WWW rozhraní pro snadnou editaci reverzních zón

Děkujeme za možnost realizace, bylo to fajn, přejeme vysoký uptime a hodně úspěšných resolvů (překladů).

František Havel

Linux: Firewall Iptables v příkladech

Zcela bez komentáře, linux firewall iptables v pár jednoduchých příkladech.

firewall status
# iptables -L -n -v
# iptables -n -L -v --line-numbers
# iptables -L INPUT -n -v
# iptables -L OUTPUT -n -v --line-numbers
Smazání všech pravidel (-F), chainu(-X), výchozí politika chainu(-P)
# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEP

# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
Insert a delete pravidel
# iptables -L INPUT -n --line-numbers
# iptables -I INPUT 10 -s 192.168.0.0/16 -j DROP
# iptables -L INPUT -n --line-numbers
# iptables -D INPUT 10
# iptables -D INPUT -s 192.168.0.0/16 -j DROP
Zahodit veškerý příchozí trafik i předávaní mezi rozhraním (forward), povolit pouze odchozí (ze stroje)
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Zahození privátních rozsahů na rozhraní do internetu (eth0)
# iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
# iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
# iptables -A INPUT -i eth0 -s 192.16.0.0/16 -j DROP
# iptables -A INPUT -i eth0 -s 224.0.0.0/4 -j DROP
# iptables -A INPUT -i eth0 -s 240.0.0.0/5 -j DROP
# iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP
  • 10.0.0.0/8 -j  (A
  • 172.16.0.0/12  (B)
  • 192.168.0.0/16 (C)
  • 224.0.0.0/4 (MULTICAST D)
  • 240.0.0.0/5 (E)
  • 127.0.0.0/8 (LOOPBACK)
Blokovaní příchozí, odchozí adresy, rozsahu, portu
# iptables -A INPUT -s 1.2.3.4 -j DROP
# iptables -A INPUT -s 192.168.0.0/24 -j DROP
# iptables -A INPUT -p tcp --dport 80 -j DROP
# iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP
# iptables -A OUTPUT -d 1.2.3.4 -j DROP
# iptables -A OUTPUT -d 192.168.1.0/24 -j DROP
# iptables -A OUTPUT -o eth1 -d 192.168.1.0/24 -j DROP
Logování, burst a drop
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: "
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP_SPOOF A: "
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
Zahození podle MAC
# iptables -A INPUT -m mac --mac-source d4:3d:7e:27:79:fc -j DROP
Blokování/povolení ICMP echo request/reply (ping)
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
# iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Otevření skupiny(rozsahu) portů
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT
Manipulace s rozsahem adres
# iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT
Povolení služeb
## ssh tcp port 22 ##
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
## CUPS (tisk pouze z LAN) ##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 631 -j ACCEPT
## NTP ##
iptables -A INPUT -m state --state NEW -p udp --dport 123 -j ACCEPT
## SMTP ##
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
# DNS ##
iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
## http/https (Apache) ##
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
## POP3 ##
iptables -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT
## IMAP ##
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
## Samba (pouze z LAN) ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
## PROXY (pouze z LAN) ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT
## mysql ##
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
Omezení počtu paralelních spojení (SSH 3 spojení z jedné IP adresy, HTTP 80 spojení z adres resp. seskupenou pod /24 IPv4 masku hosta)
# iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
# iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j DROP

 

František Havel

OPENWRT: Realizace levné VPN sítě TP-LINK WR1043ND, Nexx WT3020F

Ukázkové nasazení alternativního firmware OpenWrt v routerech TP-LINK a Nexx s cílem realizace levné firemní VPN (Virtuální privátní sítě) infrastuktury (propojení poboček s centrálou).

Za málo peněz hodně muziky, když potřebujete ze svého routeru vymáčknout něco navíc zkuste alternativní firmware OpenWrt a možná budete překvapeni.

Proč jsme použili OpenWrt? Narazili jsme na potřeby našeho nového klienta, malá firmička s centrální office (zde leží server a data, nějaky přechod do cloudu zatím nehrozí) a tři mikro-pobočky (pro představu mikro = 1-2 lidi = 1-2 stolní PC, 1 tiskárna, připojení přes místní wifi, bez veřejné statické IP, potřeba se připojit specializovaných programem na server do centrály).

Ilustrace dokresluje topologii budoucí VPN sítě.

blog-penwrt-vpn

Situace vcelku jasná, další požadavek byl velmi levně :-(. (nedáte si na wifi linku za 400Kč/měsíčně CISCO VPN za “majlant”, navíc jsme dostali informaci, že jednu z poboček už dvakrát vykradli, to je svět, že).

S OpenWrt a OpenVPN s tím lze něco dělat, železo “zdarma” a placená bude práce, tedy konfigurace, jelikož VPN routery se navíc mají na pobočky pouze zaslat pošlou poštou s připravenou konfigurací a vzdáleně dokonfigurovat.

TP-LINK WR1043ND – centrála ~ cena 1000Kč starší model

  • Atheros AR9132@400MHz
  • 32MB RAM
  • 8MB FLASH
  • 4x LAN, 1x WAN

Otestována rychlost OpenVPN, s AES se lze dostat na ~ 8Mbit, při použití “horšího” šifrování (3DES) lze dostat ~ 12Mbit při cca 40% zátěži CPU. (v přípádě problému dle dohody lze tento prvek vyměnit za rychlejší, ale vzhledem k rychlostem přípojek poboček zatím asi netřeba).

blog-openwrt-1   blog-openwrt-4  blog-openwrt-6 blog-openwrt-7 blog-openwrt-8  blog-openwrt-10

Jako OS použit zmiňovaný OpenWRT, poslední stable verze Barrier Braker, konfigurace služby OpenVPN, routing a firewall.

Nexx WT3020F – pobočky, malý zázrak za 15$

  • model WT3020F
  • MIPS MT7620n, 580MHz
  • 64MB RAM
  • 8MB FLASH
  • 2 x Ethernet 100 Mbps
  • 1x WIFI 2.4 GHz 802.11n
  • 1x USB host (podpora pro 3G GSM moduly)
  • 1x Serial

nexx.wt3020a.top nexx.wt3020a.bottom nexx.wt3020a.top.board

WT3020 je opravdu takový malý zázrak, hned jsme objednali i kousky na sklad, pro případ potřeby, nainstalováno OpenWrt, vytvořen OpenVPN tunel v režimu klienta, na LAN portu připraven DHCP server, dopředu před celou akcí rozmyšlen adresní plán pro rozsahy jednotlivých poboček a centrály.

Lokální přístup k internetu není směrován do VPN tunelu, směruje se aktuálně pouze rozsah pro server a do budoucna je plánováno osazení VoIP telefonů na pobočky a připojení do centrály opět stejným VPN tunelem s možností implementace QoS pro VoIP provoz.

A to je vše, zde je pěkně vidět, že i za málo peněz lze udělat hodně muziky a postavit VPN pobočkou síť nemusí nutně stát velké peníze a drahý hardware, vše záleží na možnostech a potřebách klienta, z toho je potřeba zvolit vhodné rešení.

VPN pro všechny! Máte dotazy k technologii VPN či OpenWrt, chcete pomoci s nasazením podobného řešení pro mále pobočky, pokladny, krámky (realizujeme VPN i přes GSM síť) nebo se jen chcete poradit, napište na kontaky.

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

Linux: Debian Hyper-v Live(online) Backup (VSS, KVP démon)

Testováno Debian Wheezy/Jessie, podpora pro online backup (live machine backup) do System Center (Data Protection).

http://docs.homelinux.org/downloads/hv_kvp_daemon-master.zip ||

https://github.com/v10networks/hv_kvp_daemon

# apt-get install unzip gcc automake make
# cd /usr/src
# wget http://docs.homelinux.org/downloads/hv_kvp_daemon-master.zip
# unzip hv_kvp_daemon-master.zip
# cd hv_kvp_daemon-master
./bootstrap.sh
./configure
# make
# make install
# cp init/deb/hv_* /etc/init.d/
# update-rc.d -f hv_kvp_daemon defaults
# update-rc.d -f hv_vss_daemon defaults
# /etc/init.d/hv_kvp_daemon start
# /etc/init.d/hv_vss_daemon start

# dmesg | grep hv_utils
hv_utils: VSS daemon registered
hv_utils: KVP: user-mode registering done.

# ps afx | grep hv_
/usr/sbin/hv_vss_daemon
/usr/sbin/hv_kvp_daemon
debian-hyperv-live-backup-datacenter
Data protection manager (system center)

Pokud se VM bude tvářit stále pouze jako offline backup, označne hosta a dejte refresh, online nabídka by se měla zobrazit.

František Havel

Linux: sTrace debug

Jedna z často zmiňovaných předností unix systémů je rozsáhla sada nástroju pro diagnostiku, debug, za to velký, ale opravdu velký dík.

Jedním z těchto nástrojů je také strace. Strace monitoruje systémová volání a signály pomocí speciálního syscallu ptrace, který slouží pro trasování bežícího kódu programu, ptrace je rozsahlá a velmi silná záležitost, dokaže se napojit na proces, krokovat ho, zasahovat do jeho paměti, odchýtávat signály apod, je také výužíváno oblíbeným GNU debugerem gdb.

(Pozn.: ptrace na první pohled vypadá jako pěkná bezpečnostní díra díky možnosti kontroly na jiným procesem, typicky je proto toto volání umožněho pouze potomkům procesu nebo speciálně pro Linux řízení pomocí capabilities SYS_PTRACE, toto ovšem neplatí pro roota)

Pokud netušíte co nebo k čemu jsou systémová volání a signály netrapte se, dejte si pořádný pohár jahodové zmrzliny se šlehačkou a hoďte to za hlavu nebo se můžete podívat např. do knihy Jádro systému Linux od Lukáše Jelínka.

Systémová volání (system call, syscall) představuji v informatice mechanismu komunikace programu s jádrem operačního systému, program po dobu svého životního cyklu buď volá funkce systému nebo si něco počítá.

Příkladem takového volání je např. sys_open pro otevření souboru nebo sys_read resp. sys_write pro čtení resp. zápis do deskriptoru (rozuměj souboru).

Syscallů je značné množství, přesto je snaha udržet jejich počet na rozumném počtu, překotný vývoj a implementace byl pro např. Linux ve verzích 1.x, 2.x, ze své povahy jde o relativně stabilní část jádra.

http://man7.org/linux/man-pages/man2/syscalls.2.html

Velmi pěkný článek o syscall na IBM Developer.
https://www.ibm.com/developerworks/linux/library/l-system-calls/
Signály představují jeden z nástroju meziprocesové komunikace, obecně se celá tato oblast označuje jako IPC(Inter-Process Communication), jde o formu výměny jednoduchých zpráv, pokud je procesu zaslán signál, operační systém přeruší jeho výkonávání (pozn. nechytáme se za slovo, k přeřušení může dojít pouze během NE-atomické operace) a zavolá se obsluha (handler, rutina) signálu, pokud vše "dobře" dopadne systém vrátí zpět řízení a původní proces běží dál.


Strace prakticky malá ukázka, zkusme si představit malý program bez dostupnosti zdrojového kódu, říkejme mu pwd (ano pwd součastí coreutils, ale to není podstatné), pustíme na něj strace.

root@havel-machine:/tmp/strace# strace pwd
execve("/bin/pwd", ["pwd"], [/* 23 vars */]) = 0
brk(0)                                  = 0xb3d000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2b2b01e000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
...
...
...
getcwd("/tmp/strace", 4096)             = 12
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 11), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2b2b01d000
write(1, "/tmp/strace\n", 12/tmp/strace
)           = 12
close(1)                                = 0
munmap(0x7f2b2b01d000, 4096)            = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

Výstup jsem zkrátil, ale v jednoduchosti, na levé straně vidíme použitá systémová volání na pravé pak jejich návratové hodnoty (číslo za =), co vidíme na první řádce sámotné spuštění programu pwd (za nás to udělal shell) pomocí syscall execve, následuje volání brk bez parametrů vrací aktuální hodnotu datového segmentu a pak tanečky kolem oprávnění, LD_PRELOAD a dynamického linkeru, až téměr na konci je zavoláno systémové volání getpwd vracející jako návratovou hodnotu aktuální pracovní adresář (ano, na to je také syscall), následuje vypsání této hodnoty na terminál pomocí opět systémového volání write (povšimněte si hodnoty 1 u volání write, jako první argument této funkce je tzv. číslo deskriptoru kam se bude zapisovat, hodnotu 1 reprezentuje v unix světe tzv. stdout [standartní výstup], 0 = stdin [standartní vstup], 2 = [standartní chybový výstup], takže vlastně výpis dat na terminál není nic jiného než zápis do soubor, skvělé že).

Pěkné co to umí dál? Mohou se občas hodit jen statistické údaje.

root@havel-machine:/tmp/strace# strace -c pwd
/tmp/strace
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 24.36    0.000104          12         9           mmap
 14.75    0.000063          21         3         3 access
 11.48    0.000049          12         4           mprotect
 11.24    0.000048          16         3           open
  9.13    0.000039          20         2           munmap
  8.43    0.000036           7         5           close
  6.56    0.000028           7         4           fstat
  5.15    0.000022          22         1           write
  2.34    0.000010           3         3           brk
  2.34    0.000010          10         1           execve
  1.87    0.000008           8         1           read
  1.41    0.000006           6         1           getcwd
  0.94    0.000004           4         1           arch_prctl
------ ----------- ----------- --------- --------- ----------------
100.00    0.000427                    38         3 total

Další užitečnost, filtrování pouze specifických volání nebo skupin (skupiny určíte -e trace=skupiny, např. -e trace=file,network,process, viz man strace)

root@havel-machine:/tmp/strace# strace -e open,write pwd
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
write(1, "/tmp/strace\n", 12/tmp/strace
) = 12
+++ exited with 0 +++

Napojení se na běžící proces je jedna z dalších užitečných vlastností, v praxi lze narazit na situaci, kdy program buď nedělá co má (čéka na něco) nebo naopak něco dělá a dělá to tak rychle jak dokáže (typicky vytěžuje jedno celé jádro systému), chceme většinou zjistit co se děje.

root@havel-machine:/tmp/strace# strace -c -p 3117
Process 3117 attached
Process 3117 detached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
 47.67 0.000143 2 80 78 recvmsg
 47.00 0.000141 4 40 poll
 3.00 0.000009 5 2 writev
 2.33 0.000007 7 1 restart_syscall
------ ----------- ----------- --------- --------- ----------------
100.00 0.000300 123 78 total

Parametrem (-p PID) jsme se připojili k běžícímu procesu, v tomto případě komunikátor pro IM, zajímá nás pouze statistika, vídíme, že proces neustále “polluje” deskriptor (v tomto případě síťový soket, ale opět je chování velmi podobné souboru) a přijímá zprávy ze socketu přes volání recvmsg, opět je možné si detailně zobrazit volání a přidat např. timestamp (-t), čítač instrukcí (-i) nebo filtrovat pomocí (-e) kategorie volání.

Toto chování s napojením na běžící proces je velmi užitečné, v případě zaseknutí procesu např. při otevírání souboru uvidíme jeho snadu o přístup, lze si tedy udělat představu co program očekává a případně mu trochu pomoci.

!!! Pozor !!!
 
Používání strace sebou nese značný výkonový overhead (penalizaci v podobě rychlosti vykonávání trasovaného programu), pro představu v ukázce použitý nástroj pwd se při trasování zpomalil ~ 10x, úplným extrémem trasování nástroje dd při dd if=/dev/zero of=/dev/null došlo k jeho zpolení více než 200x., intenzivní I/O operace jsou penalizovány razantně, dejte na to pozor.

Blížíme se k samotnému závěru, jak bylo v úvodu řečeno, unix (linux) disponuje značným množstvím diagnostických nástroju, je důležité používat spravným nástroj na správnou část jádra, následující obrázek pěkně ilustruje co a kde by mohlo Vám pomoci.

Viditelnost strace je především pro systémová volání.

linux_observability_tools

Zazvonil zvonec a debugu je konec, a tahle funguje strace, díky tomu, že porozumíte jaká systémová volání používá proces jste schopní odhadnout jak a proč se chová.

Až budete zase na něco v terminálu zdlouhavě čekat vzpomeňte si na strace, mimochodem teď už Vás asi nepřekvapí, že volání sleep je také samozdřejme syscall.

Pro fajnšmekry ukázka co se dá realitovat s ptrace volání, program retty od Petra Baudiše, aneb jak se dostat v terminálu programu (mutt) když jsem zapomělo pustit screen, slušný hack, nicméně asi již nefunkční, ale i tak respekt.

Abych nezapoměl man strace je jako vždy dobrý pomocník.

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

KICKSTARTER: Podpořte C.H.I.P. počítač za 9$ !

Čeká nás další zemětřesení na poli jednodeskových počítačů? Dost možná ano, představuji Vám CHIP.

C.H.I.P. počítač za 9$, open hardware, Debian.

  • 1Ghz R8 ARM processor
  • 512MB RAM
  • 4GB eMMC
  • WIFI 802.11 b/g/n , Bluetooth 4.0
Podpořte projekt C.H.I.P. na crowdfuningové platformě KICKSTARTER.

chip-computer

chip-computer-hardwarechip-computer-hardware-wifi

Co je to Kickstarter?

Kickstarter je internetová platforma pro crowdfundingové financování projektů, která podporuje kreativní projekty z oblasti filmu, her, hudby, umění či technologické inovace.

Základním předpokladem je, že lidé nemohou zakládat projekty kvůli finančnímu zisku, ale pouze proto, aby je spustili, poté už mohou z projektu získávat profit. Tato služba je založena na přímém financování ostatními lidmi, kteří svým přispěním rozhodují, zda daný projekt uspěje, či nikoli.

CHIP je kompletně opensource projekt, včetně myšlenek open hardware, ideální srdce pro Vaše projekty, z nízkou spotřebou, širokou paletou aplikací a vysokým edukačním potenciálem.

chip-computer-app

chip-computer-battery chip-computer-opensource

Podpořte projekt C.H.I.P., potřebujeme Vás!

František Havel

Projekt Geocaching slaví 15 let!

Projekt Geocaching slaví 15 let existence! V Česku je Geocaching velmi oblíbený, registrovaných jsou desetitisíce hráčů, celosvětově je položeno více jak 2 miliony schránek, jako jeden z hráčů oslavuji.

Zapojit se je tak snadné, geocaching můžete hrát kdykoliv a kdekoliv na světě, 3 kroky k zahájení dobrodružství!

1. Vytvoř si bezplatný účet.
Prozkoumej, najdi a zaloguj kešky kdekoliv na světě. Pomocí prémiového členství získáš přístup k řadě užitečných nástrojů.

2. Najdi kešku.
Pomocí webu geocaching.com nebo prostřednictvím volně dostupné mobilní aplikace pro iPhone a Android jednoduše vybereš kešku a necháš se navigat až k ní.

3. Sdílej své nadšení s ostatními.
Když kešku najdeš, zapiš do jejího logbooku datum nálezu a svoji přezdívku. Schránku zpět pečlivě ukryj přesně tak, jak původně byla. Nezapomeň se se svým nálezem pochlubit přátelům.

Geocaching je hra na pomezí sportu a turistiky, která spočívá v použití navigačního systému GPS při hledání skryté schránky nazývané cache (v češtině psáno i keš), o níž jsou známy její zeměpisné souřadnice (v systému WGS 84).

Při hledání se používají turistické přijímače GPS. Člověk zabývající se geocachingem bývá označován slovem geocacher, česky též geokačer nebo prostě kačer. Po objevení cache, zapsání se do logbooku a případné výměně obsahu ji nálezce opět uschová a zamaskuje.

Jednou ze základních myšlenek geocachingu je umisťování keší na místech, která jsou něčím zajímavá a přesto nejsou turisticky navštěvovaná. V popisu cache (listing) jsou pak uvedeny informace o místě s jeho zvláštnostmi a zajímavostmi. Cache se ale umisťují i do zajímavých míst velmi frekventovaných. V některých případech je zajímavým právě úkol, který je s nalezením cache spojen.

https://www.geocaching.com

František Havel