PrettyPrint
streda 23. decembra 2015
Niečo pre prevádzkovateľov e-shopov
streda 10. septembra 2014
Affiliate marketing
Reklama na internete
Internet ponúka, na rozdiel od klasických médií, veľkú variabilitu a merateľnosť. Nejde tu len o prieskumy a peoplemetre, ako pri televízii či rozhlase. Online prostredie technicky umožňuje merať všetko. Od zobrazenia reklamy, cez klik, až po cieľ, ktorý chcete dosiahnuť - konverziu.
Efektivita pre klienta
Aj firma predávajúca či prezentujúca sa online má hlavný cieľ - predávať. To je to, čo potrebuje - nie kliky, nie zobrazenia, nie fanúšikov na Facebooku. Potrebuje čísla, potrebuje predajnosť. Už od nepamäti najlepšie funguje model, kedy obchodník odmení toho, kto mu “kšeft” dohodil. Ide o reálny biznis. Predaj zobrazení a klikov je ako platiť si za to, že o vás niekto hovorí resp. niekoho, kto nosí ľudí do predajne. Mať tam veľa ľudí je síce fajn, ale ak nikto nenakúpi, je to na nič. Sú to vyhodené peniaze.
Affiliate marketing
Preto sa už aj náš trh orientuje na affiliate marketing a model CPA. Už nejde o kliky, ani o zobrazenia. Ide o predaj. Celé kampane sa plánujú tak, že pre majiteľa média plynie provízia z predaja resp. akcie, ktorú jeho návštevník urobil. Može to byť vyplnenie formulára, stiahnutie brožúry alebo aj priamo nákup na eshope. Je to najférovejší model. Obchodník sa vzdá zisku a dá ho svojmu partnerovi za to, že mu dohodil klienta. Jednoduché. Ak sa zaujímate o affiliate kampane, u nás v reklamnej sieti .dognet ich už máme okolo 40. Stačí sa registrovať a vybrať si.
Autor článku:
Štefan Polgári
CEO Lead Media
www.leadmedia.sk
sk.linkedin.com/in/polgari/
+421 911 122 199
polgari@leadmedia.sk
pondelok 12. mája 2014
Ako účinne bojovať proti zneužitiu zariadenia na DDoS útok NTP
V našom predošlom blogu sme sa venovali rozsiahlemu DDoS útoku, ktorý vo februári zasiahol Európu silou 400Gbps. Počas tohto útoku boli zneužité aj zákaznícke servery v našej sieti. Viac o tom, ako sme zneužité servery odhaľovali, a aký vplyv malo na ne takéto zneužitie, si prečítate v našom predošlom blogu. V tomto blogu sa budeme ďalej venovať analýze nezabezpečených zariadení a ich následnému zabezpečeniu, ako spôsobu ochrany voči zneužitiu. Táto téma je aj vďaka novým 800Gbps silným útokom, stále viac než aktuálna.
pondelok 16. septembra 2013
Základy práce s SSH
SSH, alebo Secure Shell, je nástroj, ktorý umožňuje pripojiť sa na iný stroj a vykonávať na ňom príkazy. Pre používateľov Linuxu je SSH celkom bežné a umožňuje vzdialenú správu strojov, či prácu na nich. Nedávno sme SSH prístup zaviedli aj na Elbiahostingu a v tomto článku, vhodnom predovšetkým pre začiatočníkov, si predstavíme jeho možnosti.
Výhody a použitie
Vďaka možnosti spúšťať príkazy je SSH silným nástrojom. Priamo na strane servera umožňuje prácu so súbormi zahŕňajúcu manipuláciu s nimi, ich zálohovanie alebo obnovovanie, a to všetko ako keby sme mali stroj fyzicky pri sebe. Ďalej môžete napríklad priamo pristupovať k databáze a upravovať tabuľky. Tiež si pomocou neho môžete stiahnuť, rozbaliť a nastaviť CMS systém ako WordPress – to všetko na strane servera.
Ako sa pripojiť
Informácie potrebné pre pripojenie sa ku svojmu účtu na Elbiahostingu nájdete v ElbiaAdmine, v sekcii Pomoc - InfoCentrum - SSH.
Pokiaľ používate Windows, najznámejším nástrojom umožňujúcim pripojenie cez SSH je PuTTY. Po jeho spustení sa zobrazí grafické rozhranie, v ktorom je potrebné zadať názov stroja (host), na ktorý sa chcete pripojiť, a jeho SSH port. Po kliknutí na tlačidlo Open sa zobrazí terminál, v ktorom je potrebné zadať login a heslo.
Ak používate Linux alebo Mac OS, pripojenie je možné realizovať príkazom ssh, ktorý býva štandardnou súčasťou Linuxových distribúcií a Mac OS. Tento príkaz je potrebné spustiť v termináli/konzole. Parametre pripojenia sa špecifikujú pri spustení príkazu ako argumenty v nasledovnom tvare: ssh -p PORT LOGIN@HOST.
Nasledovné rozhranie, ktoré sa po prihlásení sprístupní, je v oboch prípadoch rovnaké. Po úvodnej správe systému sa na začiatku riadka zobrazí reťazec tvaru "SERVER:~$ ", nazývaný prompt. Prompt signalizuje, že systém na druhej strane je pripravený prijať príkaz od používateľa.
Tipy pre PuTTY
U PuTTY môžete odstrániť nutnosť opakovaného zadávania údajov vytvorením profilu – v rozhraní vyplníte všetky údaje a namiesto kliknutia na Open zvolíte do políčka "Saved Sessions" názov profilu, uložíte ho pomocou "Save" a následne stačí pri najbližšom pripojení pomocou "Load" zvoliť vybraný profil.
Pri práci s PuTTY sa môže stať, že slovensky vypisovaný text obsahuje pokazené znaky. Problémom je iné kódovanie textu a môžete ho opraviť nastavením v sekcii Window - Translation a z rolovacieho zoznamu vyberte UTF-8. Toto nastavenie môžete uplatniť natrvalo uložením do profilu podľa predchádzajúceho tipu.
Všeobecné informácie o shelli
V tejto časti si okrem samotných príkazov uvedieme a vysvetlíme niektoré potrebné všeobecné myšlienky práce v shelli.
Cesty k súborom
Veľmi častou operáciou je manipulácia so súbormi a pri nej samozrejme potrebujeme vedieť popísať, s ktorým súborom/adresárom zamýšľame pracovať. Táto špecifikácia, cesta k súboru, môže byť v podstate troch druhov:
- priamy názov súboru:
subor.txt, obrazky/ - relatívna cesta:
obrazky/2012/obalka.jpg, .., ., ../index.html - absolútna cesta:
/home/LOGIN/public_html/index.html
Priamy názov súboru je vlastne špeciálnym prípadom relatívnej cesty, kedy sa odkazujeme na súbor v aktuálnom adresári. Relatívna cesta špecifikuje umiestnenie súboru vzhľadom na aktuálny adresár. Ako špeciálne prípady môžeme v ceste špecifikovať aktuálny adresár (.) alebo nadradený adresár (..). Posledný prípad je absolútna cesta, kedy špecifikujeme umiestnenie súboru začínajúc od koreňového adresára (/). Na záver spomeňme cestu ~, čo je to isté ako cesta k domovskému adresáru, teda /home/LOGIN/.
Dostupné príkazy
Vo všeobecnosti existuje pomerne veľké množstvo príkazov; z bezpečnostných dôvodov je však na Elbiahostingu dostupná obmedzená množina príkazov zahŕňajúca tie, ktoré môžete bežne potrebovať pri SSH prístupe na Elbiahosting. Podľa účelu ich môžeme rámcovo rozdeliť na niekoľko skupín uvedených v nasledovnom prehľade.
| príkaz | funkcia | použitie |
|---|---|---|
| Základné príkazy | ||
| cd | zmení aktuálny adresár | cd obrazky |
| ls | vypíše obsah adresára,
| ls -l ls -a ../obrazky |
| cat | vypíše obsah súboru | cat .htaccess |
| less | umožňuje prezerať súbor, ukončuje sa klávesou q | less .htaccess |
| mv | presúva súbory a adresáre | mv subor .. |
| cp | kopíruje súbory a adresáre; u adresárov treba použiť prepínač -r | cp -r img/ img_bak/ |
| rm | maže súbory, prípadne adresáre,
| rm subor rm -r adresar |
| mkdir/rmdir | vytvára/maže adresár | mkdir test rmdir test |
| exit | ukončí prihlásenie | |
| echo | vypíše zadaný text | echo abc def echo "textovy vypis" |
| chmod | mení prístupové práva | chmod o+r favicon.ico |
| Všeobecné príkazy na prácu so súbormi | ||
| tar | archivačný nástroj s možnosťou kompresie; c vytvára archív, x ho rozbaľuje; z použije kompresiu gzip, j použije kompresiu bzip2 | tar cvjf archiv.tar.bz2 subor1 subor2 tar xvjf archiv.tar.bz2 |
| bzip2/bunzip2 | práca s bz2 archívmi | bzip2 subor.txt bunzip2 subor.txt.gz |
| gzip/gunzip | práca s gz archívmi | gzip subor.txt gunzip subor.txt.gz |
| zip/unzip | práca so zip archívmi | zip vystup.zip subor1 subor2 unzip vystup.zip |
| grep | filtrovanie riadkov obsahujúcich výraz | grep Deny .htaccess |
| find | vyhľadávanie súborov | find ~/data -name 'stat*.csv' |
| diff | rozdiely medzi súbormi; -u = tzv. unifikovaný formát | diff -u verzia1 verzia2 |
| md5sum | určovanie kontrolného súčtu | md5sum wp.zip |
| mc | dvojpanelový správca súborov | |
| vim | pokročilý editor | vim subor.txt |
| Iné príkazy | ||
| mysql | interaktívna práca s databázou | mysql LOGIN_DB -u LOGIN_USER -p |
| mysqldump | zálohovanie databázy | mysqldump LOGIN_DB -u LOGIN_USER -p |
| wget | nástroj na sťahovanie z webu | wget http://google.com -O index.htm |
| curl | nástroj na sťahovanie z webu | curl http://google.com -o index.htm |
| ps | výpis bežiacich procesov | |
Bližšie informácie o vyššieuvedených príkazoch môžete získať zadaním man prikaz. Zobrazí sa nápoveda, v ktorej je možné pohybovať sa zvyčajnými navigačnými klávesami a zatvoriť ju klávesou q.
Užitočnou možnosťou je ešte prerušenie vykonávania príkazu, napríklad ak trvá príliš dlho – slúži na to klávesová skratka Ctrl-C.
Presmerovania
Presmerovania umožňujú významným spôsobom rozšíriť možnosti príkazov. Presmerovania menia to, odkiaľ príkaz prijíma vstup alebo kam zasiela svoj výstup. Medzi tri základné presmerovania patria:
- presmerovanie vstupu:
prikaz < vstupny_subor
u príkazov vyžadujúcich vstup od užívateľa umožní namiesto toho načítať tento vstup zo súboru - presmerovanie výstupu:
prikaz > vystupny_subor
umožní uložiť výstup príkazu do súboru pre neskoršie použitie - zreťazenie príkazov:
prikaz1 | príkaz2
vykoná príkaz
prikaz1 a jeho výstup nasmeruje ako vstup do príkazu prikaz2, napríklad ls | grep abc vypíše zoznam súborov v aktuálnom adresári, ktoré obsahujú v názve abc
Záverom
Svet príkazového riadka je celkom rozsiahly. Okrem tu uvedených príkazov existuje veľké množstvo interných príkazov a možností shellu. Ich úplný prehľad nájdete v dokumentácii.
piatok 13. septembra 2013
Prečo je lokalita dátového centra jedným z najdôležitejších faktorov pri jeho výbere?
Pri výbere akejkoľvek nehnuteľnosti treba vyhodnotiť tri najdôležitejšie parametre: 1.lokalita, 2.lokalita, 3.lokalita. Je to trochu nadnesené, ale pre výber dátového centra je zameranie na lokalitu kľúčové, keďže tá ovplyvňuje jeho najdôležitejšie parametre.
Dostupnosť telekomunikačnej / optickej infraštruktúry
Pre zabezpečenie zálohovaného dátového pripojenia je nutné, aby do dátového centra viedli minimálne dve a viac fyzicky nezávislých optických trás, podľa možností od viacerých telekomunikačných operátorov. V prípade požiadavky na pripojenie vlastnej internej telekomunikačnej siete užívateľa je lokalita nemenej dôležitá. Čím centrálnejšie v meste je dátové centrum umiestnené, tým lepšie sú možnosti pripojenia. Telekomunikačná infraštruktúra je najrozvinutejšia spravidla v komerčne husto obsadených lokalitách. Dobrým príkladom je mapa dátových centier v New Yorku., z ktorej je zrejmé, že väčšina DC je priamo na Manhattane.
utorok 13. augusta 2013
Plánovač udalostí v MySQL
MySQL patrí medzi najznámejšie databázové systémy založené na SQL a postupom času bol rozšírený o rôzne zaujímavé vlastnosti, ktoré síce priamo nesúvisia s databázami, ale napriek tomu rozširujú potenciál MySQL. V tomto článku si predstavíme možnosti jeho plánovača udalostí, pomocou ktorého je možné plánovať vykonávanie SQL príkazov.
Výhody plánovača udalostí v MySQL
Plánovač udalostí MySQL (MySQL Event Scheduler) umožňuje nastaviť pravidelné alebo jednorázové spustenie SQL príkazov, tzv. udalostí, v zadanom čase. Z tohto hľadiska sa podobá na obdobné mechanizmy v operačných systémoch, konkrétne cron v linuxových OS, či Task Scheduler vo Windows. Narozdiel od nich je však popisované plánovanie priamo súčasťou databázového servera. To v prípade SQL príkazov prináša viaceré výhody – na spúšťanie takýchto úloh nie je potrebné mať prístup k shellu nutnému na konfiguráciu cronu, ani prístup k samotnému cronu. Tiež nie je potrebné vytvárať jednoduché obaľovacie (wrapper) skripty, ktoré by sa museli pripájať k databáze a následne vykonávať požadované SQL príkazy. Okrem toho sú takto plánované udalosti súčasťou databázy, a teda ich zálohovanie alebo export nie je potrebné riešiť osobitne.
Príkazy na manipuláciu s udalosťami
Na prácu s udalosťami poskytuje MySQL nasledujúce príkazy, ktoré si bližšie predstavíme:
CREATE EVENT– vytvára udalosť,ALTER EVENT– upravuje vlastnosti udalosti,DROP EVENT– ruší udalosť,SHOW EVENTS– zobrazuje existujúce udalosti.
CREATE EVENT
Pri vytváraní udalosti príkazom CREATE EVENT potrebujeme špecifikovať názov udalosti, ktorým ju budeme identifikovať, ďalej časové parametre určujúce jej spúšťanie a samozrejme príkaz(y), ktoré chceme spúšťať. Jednoduchý príkaz na vytvorenie udalosti môže vyzerať nasledovne:
CREATE EVENT precisti_log
ON SCHEDULE EVERY 1 DAY
DO
DELETE FROM log_pristupov
WHERE cas_pristupu < DATE_SUB(CURDATE(), INTERVAL 1 WEEK)
Vytvorenie tejto udalosti zabezpečí, že príkaz DELETE, ktorý z logu prístupov zmaže záznamy staršie ako týždeň, sa bude vykonávať pravidelne s frekvenciou jedenkrát denne, pričom prvýkrát sa vykoná v okamihu definovania udalosti.
Frekvenciu spúšťania udalosti špecifikujeme pomocou čísla alebo výrazu, ktorý sa vyhodnotí na číslo, nasledovaného časovou jednotkou (napríklad SECOND, MINUTE, HOUR, DAY, WEEK; vždy v jednotnom čísle).
V uvedenom príklade je použitý iba jeden príkaz, avšak pomocou BEGIN ... END notácie je možné zadať viacero príkazov oddelených bodkočiarkami:
CREATE EVENT updatuj_statistiku
ON SCHEDULE EVERY 15 MINUTE
DO
BEGIN
INSERT INTO statistika_prihlaseni (cas, pocet)
VALUES (CURRENT_TIMESTAMP(),
SELECT COUNT(*) FROM prihlaseni_uzivatelia);
UPDATE stav SET atribut = atribut + 2 WHERE typ = 9;
END
Túto udalosť by sme mohli upraviť tak, aby sa príkazy začali vykonávať až od určitého okamihu v budúcnosti, alebo by sme mohli určiť, že udalosť sa bude pravidelne vykonávať iba do určitého okamihu. To je možné dosiahnuť doplnením klauzúl STARTS alebo ENDS, u ktorých je potrebné uviesť buď iba časový okamih (timestamp) alebo časový okamih plus nejaký časový interval (timestamp + INTERVAL pocet casova_jednotka; vhodné napríklad na špecifikovanie času o hodinu neskôr):
CREATE EVENT updatuj_statistiku
ON SCHEDULE
EVERY 15 MINUTE
STARTS CURRENT_TIMESTAMP() + INTERVAL 1 HOUR
ENDS '2013-10-01'
DO ...
Okrem pravidelných udalostí môžeme definovať udalosť, ktorá sa vykoná jednorázovo, a to tak, že namiesto EVERY použijeme AT a špecifikujeme časový okamih (prípadne aj plus interval), podobne ako u STARTS/ENDS:
CREATE EVENT jednorazova_udalost
ON SCHEDULE AT CURRENT_TIMESTAMP() + INTERVAL 6 HOUR
DO ...
Na záver ešte doplníme, že ak udalosť "vyprší", automaticky sa zmaže. Vypršanie u jednorázových udalostí predstavuje ich vykonanie a u pravidelných udalostí so špecifikovaným koncovým časom je to posledné plánované vykonanie.
ALTER EVENT
U vytvorenej udalosti je možné upravovať jej špecifikáciu príkazom ALTER EVENT. Tento príkaz vyžaduje ako argument identifikátor udalosti a jednu alebo viacero zo špecifikačných klauzúl, podobných ako u CREATE EVENT:
ON SCHEDULE schedule– úprava časových aspektov vykonávania udalosti (EVERY, AT), prípadne môže meniť jednorázovú udalosť na pravidelnú a naopak,RENAME TO novy_nazov– premenovanie udalosti,DISABLE– zakázanie vykonávania udalosti,ENABLE– povolenie vykonávania udalosti,DO prikaz– nahradenie vykonávaných príkazov inými.
Nasledovným príkazom upravíme interval spúšťania udalosti updatuj_statistiku a dočasne ju zakážeme:
ALTER EVENT updatuj_statistiku
ON SCHEDULE EVERY 1 HOUR
DISABLE
DROP EVENT, SHOW EVENTS
Zostávajúce dva príkazy sú už celkom jednoduché. Príkaz DROP EVENT nazov_udalosti zmaže špecifikovanú udalosť, takže v budúcnosti sa už nebude vykonávať. Príkaz SHOW EVENTS zas zobrazuje zoznam udalostí definovaných v aktuálnej databáze a základné informácie o nich.
Ďalšie informácie
Tento článok predstavil základné informácie potrebné pre používanie udalostí v MySQL, ktoré môžete používať na Elbia Hostingu. Podrobnejšie informácie môžete nájsť v oficiálnej dokumentácii.
piatok 12. júla 2013
Geolokácia pomocou GeoIP
Globalita Internetu so sebou prináša návštevníkov potenciálne z celého sveta. A či už ide o lokálnejšie alebo globálnejšie zameraný web, informácia o tom, odkiaľ návštevníci prichádzajú, sa môže hodiť. Napríklad, pokiaľ vieme, že návštevník webu prichádza z Českej republiky, môžeme mu poskytnúť údaje a informácie, ktoré sú preňho relevantnejšie – môže ísť napríklad o kontakty alebo aktuality. Tiež môžeme určité informácie sprístupniť alebo naopak zneprístupniť návštevníkom z určitého štátu. Ďalšou možnosťou, ako využiť znalosť takejto lokalizácie, je získanie prehľadu o tom, odkiaľ najčastejšie pochádzajú prístupy a na základe toho môžeme prípadne upraviť a optimalizovať obsah webu.Spôsob získavania týchto informácií sa nazýva geolokácia. Na tieto účely je, de facto, najpoužívanejším systémom GeoIP od spoločnosti MaxMind. Jadrom GeoIP je obyčajná databáza obsahujúca informácie o tom, v ktorom štáte sa nachádzajú jednotlivé rozsahy IP adries. Možnosť používania geolokácie je podporovaná v mnohých programovacích jazykoch avšak v tomto príspevku sa zameriame na jej použitie na webových stránkach písaných v PHP a postavených na web serveri Apache.
Ako vlastne funguje geolokácia v spojení s Apache? Funkcionalitu sprístupňuje Apache modul s názvom
mod_geoip2, ktorý umožňuje u prichádzajúcich požiadaviek na stránky zistiť na základe návštevníkovej IP adresy jeho štát, či mesto a podľa toho nastaviť premenné prostredia (na Elbia Hostingu je zatiaľ dostupné iba zisťovanie štátu). Tieto premenné prostredia sú potom štandardným spôsobom dostupné napríklad v PHP skripte alebo v .htaccess súboroch a na základe nich je možné rozhodovať sa, čo alebo ako zobraziť.Použitie geolokácie
Ukážme si jednoduchý príklad, akým môžete na Elbia Hostingu sprístupniť tieto informácie. Vytvoríme si PHP skript, ktorý bude obsahovať tento fragment kódu:<?php
$country = getenv('GEOIP_COUNTRY_NAME');
if ($country == "A1") {
echo "Momentálne pristupujete s využitím anonymného proxy.\n";
} else {
echo "Momentálne pristupujete zo štátu $country.\n";
}
?>
Ako vidieť už z príkladu, zaujímavosťou je, že v premennej GEOIP_COUNTRY_CODE môžeme nájsť aj kód A1, ktorý zodpovedá známym adresám anonymných proxy serverov. V tomto zozname nájdete prehľad všetkých možných kódov štátov a iných špeciálnych kódov, na ktoré môžete naraziť.Takýmto spôsobom môžete použiť premenné uvedené nižšie (alebo premenné z úplného zoznamu):
- GEOIP_CONTINENT_CODE – dvojpísmenový kód kontinentu (EU, AS, AF, NA, SA, OC)
- GEOIP_COUNTRY_NAME – anglický názov štátu podľa ISO 3166
- GEOIP_COUNTRY_CODE – dvojpísmenový kód štátu
Pokiaľ by ste chceli určitým návštevníkom celkovo zneprístupniť nejakú časť webu (neprístupné by boli všetky súbory, nielen PHP skripty), môžete využiť
.htaccess súbor, ktorý cez FTP umiestnite do adresára, na ktorý sa má obmedzenie vzťahovať. Napríklad, ak by sme chceli zakázať prístup návštevníkom z Číny a Ruska, buď si vytvoríme nový .htaccess súbor alebo do existujúceho pridáme nasledovné direktívy:<IfModule mod_geoip.c>
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry
</IfModule>
V prípade pokusu o prístup zo zablokovaných lokácií sa návštevníkovi zobrazí chyba 403 Prístup zamietnutý.O niečo komplikovanejší príklad je, keď by sme chceli na základe lokácie presmerovať návštevníka na jazykovo odlišné verzie súborov. Podobným spôsobom doplníme do
.htaccess súboru nasledovné:RewriteEngine On
RewriteBase /
# ak je GEOIP_COUNTRY_CODE nastavene na EN
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} EN
# a pristupuje sa k htm alebo txt strankam
RewriteCond %{REQUEST_URI} .(htm|txt)$
# pridame prefix /en/
RewriteRule ^(.*)$ /en/$0 [L]
# obdobne pre CZ
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} CZ
RewriteCond %{REQUEST_URI} .(htm|txt)$
RewriteRule ^(.*)$ /cz/$0 [L]
Záver
Na záver ešte pár poznámok k používaniu a možnostiam tejto realizácie geolokácie. Takto popísaným spôsobom je možné získať iba informácie o IP adrese, z ktorej príde požiadavka – nie je teda možné zisťovať, napríklad, štát ľubovoľne zvolenej IP adresy. Pokiaľ ide o postupne sa rozširujúce IPv6, pozitívnou správou je, že modulmod_geoip2 podporuje zisťovanie štátu na základe IPv6 adresy, čo môžete využiť aj v našom hostingu. Tiež je ešte potrebné dodať, že niekedy môžu byť takto získané geolokačné údaje nie úplne presné alebo aktuálne; hlavne pokiaľ sa snažíme zistiť polohu veľmi presne. Preto je vhodné používať ich skôr ako užitočné vodítko a nie ako zaručenú informáciu.

