Obnova dat z ext3/ext4 v Debianu

Před delším časem jsem se ocitl v dost nepříjemné situaci, kdy se mi omylem povedlo smazat asi 1TB dat na disku. Již hodně dříve se mi něco takového povedlo a věděl jsem, že obnovení dat z disku není zrovna triviální věc. Nicméně nyní již šlo o opravdu cenná data a velké množství, tak jsem začal usilovně googlovat a našel jsem řešení – jednoduché a účinné. Data se mi povedla kompletně obnovit.

Instalace programu Extundelete

Řešením je program extundelete. Pro chod programu je nutné mít nainstalované balíky e2fsprogs e2fslibs a e2fslibs-dev, jednoduše je nainstalujeme takto:

aptitude install e2fsprogs e2fslibs e2fslibs-dev

Program je možné stáhnout zde. Stažený soubor pak jednoduše rozbalíme:

tar -xjf extundelete-0.2.4.tar.bz2

Přesuneme se do rozbaleného adresáře:

cd extundelete-0.2.4

Zkompilujeme:

./configure && make

Přesuneme se do adresáře /src:

cd src

Obnova smazaných dat

A nyní již můžeme kompletně obnovit smazaný disk (dev/sda1 samozřejmě případně nahradíme označením disku, o který se nám jedná):

./extundelete /dev/sda1 --restore-all

Jakmile se proces obnovy dokončí, data najdeme v RECOVERED_FILES ve složce src.

Publikováno 23.8.2013 v 11:03 | Kategorie: Debian

Užitečná pravidla pro .htaccess

Možná se bude někomu hodit pár užitečných pravidel pro .htaccess, která používám. Níže uvedené situace lze samozřejmě řešit i jiným způsobem a použití pravidel závisí na konkrétním nastavení serveru.

Přesměrování nefunkčního odkazu

Pokud se Vám někdy stalo, že jste předělávali stránky a tím i měnili odkazy, které jste buď někde rozeslali či je zaindexoval nějaký vyhledávací robot (doporučuji v tomto směru používat Google nástroje pro webmastery, kde Vám to přímo vypíše jaké Google našel 403, 404 chyby apod.), tak se určitě hodí již neexistující odkaz přesměrovat na nějaký funkční odkaz, nejlépe tedy novější variantu příspěvku, která byla na původním odkaze. Jde to udělat takto:

redirect 301 /lokalni/adresa.xxx http://http.adresa/xxx

Přesměrování na konkrétní odkaz

Na konkrétní URL adresu provedeme přesměrování jednoduše takto:

RewriteCond %{HTTP_HOST} ^(www\.)?domena\.koncovka$
RewriteRule .* http://domena.koncovka/XXX [R=301,L]

Nasměrování domény s www na doménu bez www

Jestli máte raději adresy bez www, tj. přímo ve znění http://domena.koncovka, potom můžete použít toto:

RewriteCond %{HTTP_HOST} ^www.domena.koncovka
RewriteRule (.*) http://domena.koncovka/$1 [R=301,QSA,L]

Nasměrování domény s https s www na doménu bez www

Pro https se výše uvedené pravidlo nastavuje takto:

RewriteCond %{HTTP_HOST} ^www.vaclavambroz.cz$
RewriteCond %{SERVER_PORT} ^443
RewriteRule ^(.*)$ https://vaclavambroz.cz/$1 [R=301]

Povolení přístupu na stránky jen z určité IP adresy

Využíváte nějaké stránky pouze pro soukromé či firemní účely? Chcete tam mít přístup pouze z Vaší IP adresy? Mělo by postačit nastavit:

deny from all
allow from XX.XX.XX.XX

Obdobně se to dá nastavit pokud chcete jen zakázat přístup na Vaše stránky z konkrétní IP adresy:

deny from XX.XX.XX.XX XX.XX.XX.XX XX.XX.XX.XX
allow from all

Nasměrování domény do určitého adresáře webhostingu

Pro využívání více domén na jednom hostingu, kdy další domény se načítají z různých adresářů, lze použít:

RewriteCond %{HTTP_HOST} domena.koncovka$ [NC]
RewriteCond %{REQUEST_URI} !adresar/.*$
RewriteRule ^(.*)$ adresar/$1 [L]

Zaheslování stránek

Pro zaheslování stránek se dá jednoduše využít pravidel v .htaccess s přístupy uloženými v .htpasswd. Pravidla v tomto případě budou vypadat takto:

AuthType basic
AuthName "pro pristup je vyzadovana autorizace"
AuthUserFile /cesta/k/.htpasswd
Require valid-user

Než vložíte login a heslo do .htpasswd, je potřeba heslo zašifrovat. Učinit tak můžete např. zde. Obsah .htpasswd pak bude:

login:zasifrovane_heslo

Definování cest k 403 a 404

Pokud chcete využívat vlastní chybové stránky, je možné nadefinovat k nim cesty takto:

ErrorDocument 404 /cesta_k_souboru
ErrorDocument 403 /cesta_k_souboru

Přesměrování jakékoliv adresy v adresáři

Jakmile máte adresář, kde máte více adres a není zrovna ideální přesměrovávat každou z nich zvlášť, je možné přesměrovat vše v adresáři na konkrétní http adresu:

RewriteRule ^adresar/.*$ http://cokoliv/cokoliv/cokoliv [R=301,L]

Skrytí informace o verzi Apache a operačním systému

Z důvodu bezpečnosti se často doporučuje skrývat verzi Apache na serveru a operační systém na kterém server běží. Toho docílíme přidáním tohoto pravidla:

ServerSignature Off

Zakázání Directory Browsing

Pokud z nějakého důvodu chcete zakázat procházení složkami a soubory na serveru, tj. tzv. Directory Browsing, pak stačí přidat pravidlo:

Options All -Indexes

Zakázání konkrétního robota

Pokud chceme zakázat přístup nějakému robotovi, např. Semrush, lze to v rámci .htaccessu nastavit takto:

RewriteCond %{HTTP_USER_AGENT} "SemrushBot"
RewriteRule . - [F]

Zabezpečení WordPressu

V tomto směru jsem již doporučoval pravidla v tomto příspěvku, ale pro úplnost to uvádím i zde:

#user-agent
<IfModule mod_rewrite.c>
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</ifModule>

#utoky
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

#omezeni pristupu do administrace na IP
#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
#RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
#RewriteCond %{REMOTE_ADDR} !^XX\.XX\.XX\.XX$
#RewriteRule ^(.*)$ - [R=403,L]
#</IfModule>

Publikováno 23.8.2013 v 10:39 | Kategorie: .htaccess

Instalace unstable Debianu s GNOME3

Již dřívě jsem na tomto blogu uveřejnil návod na instalaci operačního systému Debian s grafickým prostředím Mate. Nyní přináším návod na instalaci s prostředím Gnome3 a níže pár návrhů na použití konkrétních rozšíření pro toto prostředí.

Kde stáhnout

Aktuální testing verzi, ze které budeme vycházet (unstable verzi není možné přímo stáhnout) je možné stáhnout zde.

Samotná instalace

Po vypálení CD/nahrání na flash disk a nabootování je instalace naprosto triviální záležitostí. V podstatě stačí jen v klikacím prostředí vybrat jazyk, rozdělit disky a doklikat se až do konce. Osobně si nenechávám instalačním programem nic předinstalovat, kromě úplného základu. Vše si instaluji pak sám, protože nemám rád v systému přebytečné balíky a mám rád vše pod kontrolou. Pro instalaci používám vlastní skript, asi v tomto znění (postup pro instalaci grafického ovladače samozřejmě musíte zvolit vlastní) :

#!/bin/bash

#/etc/apt/apt.conf
echo 'APT::Default-Release "unstable";' > /etc/apt/apt.conf

#/etc/apt/sources.list
echo 'deb http://ftp.cz.debian.org/debian unstable main non-free contrib' > /etc/apt/sources.list
echo 'deb http://ftp.cz.debian.org/debian testing main non-free contrib' >> /etc/apt/sources.list
echo 'deb http://ftp.cz.debian.org/debian experimental main non-free contrib' >> /etc/apt/sources.list
echo 'deb http://dl.google.com/linux/deb/ stable main' >> /etc/apt/sources.list

#keys
aptitude update
wget -O - http://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -

#packages
aptitude install -y "xorg" "gdm3" "gnome-core" "gnome-shell" "gedit" "nautilus" "gnome-terminal" \
"google-chrome-unstable" "gksu" "gnome-system-tools" "firmware-linux-free" "firmware-linux-nonfree"

#modules
aptitude install "module-assistant" -y
m-a update
m-a prepare -y

#nvidia
aptitude install "binutils" "gcc" "make"
wget "http://us.download.nvidia.com/XFree86/Linux-x86_64/325.15/NVIDIA-Linux-x86_64-325.15.run"
sh "NVIDIA-Linux-x86_64-325.15.run"

Po restartu již pak máme k dispozici základní grafické prostředí, kde můžeme již instalovat a nastavovat vše potřebné.

Vylepšení po instalaci

Nedílnou součástí pro vylepšení systému založeném na grafickém prostředí Gnome3 jsou rozšíření pro Gnome Shell (Gnome shell extensions). Na daných stránkách se stačí zaregistrovat a pak vždy jen kliknout na vybrané rozšíření a ihned se aktivuje i v systému. Já jsem používal a mohu doporučit tyto:

Název rozšíření Link ke stažení
Frippery Applications Menu odkaz
Frippery Panel Favorites odkaz
Window List odkaz
System-monitor odkaz
Alternative Status Menu odkaz
Put Windows odkaz
Media player indicator odkaz
Message Notifier odkaz
Remove User Name odkaz
Bluetooth icon remover odkaz
Remove Accessibility odkaz
Remove Activities Button odkaz
Impatience odkaz

Publikováno 8.8.2013 v 19:03 | Kategorie: Debian