Apache: ograniczenie dostępu dla zalogowanych użytkowników z mod_rewrite i mod_auth_basic

Niedawno trafiłem na ciekawy problem w mod_rewrite - by przekierowywać użytkowników logujących się jednym z modułów mod_auth_basic do dedykowanych im katalogów, równocześnie blokując dostęp do katalogów innych użytkowników. Nie brzmi to jakoś strasznie ale problem okazał się być całkiem nietrywialnym. Teoretyczne rozwiązanie sprowadzało się do wyszukania loginu użytkownika ze ścieżki URI i porównania z nazwą użytkownika ze zmiennej %{REMOTE_USER} - jeśli wartości się różnią to Forbidden. Ale szybko okazało się że w RewriteCond zmienne z dopasowań można podstawiać tylko w pierwszym parametrze i że o ile można RewriteCond’y połączyć wyrażeniami logicznymi typu AND/OR to nie ma możliwości porównania czy dopasowania z kolejnych RewriteCond’ów są identyczne....

2012-09-09 · 3 min · timor

Wymuszenie fsck po restarcie

Jeżeli chcemy by po ponownym uruchomieniu w czasie startu zostały sprawdzone wszystkie dyski narzędziem to można to osiągnąć na dwa sposoby. Zawsze gdy tego potrzebuję zastanawiam się tylko jaki plik trzeba było utworzyć… forcefsck, fsck, fsckforce… więc notuję 😉 Utworzenie pliku /forcefsck Pierwsza metoda polega na utworzeniu pliku forcefsck w głównym katalog, robimy to poniższym poleceniem: sudo touch /forcefsck Polecenie shutdown Druga metoda wykorzystuje parametr -F polecenia shutdown ale nie działa na wszystkich dystrybucjach (w takiej sytuacji patrz pierwsza metoda):...

2012-09-08 · 1 min · timor

Xen - Konfiguracja interfejsu sieciowego Dom0 jako brdige’a dla VLAN’ów

VLAN’y są prostą metodą na separację sieci. Gdy mamy wiele sieci może zajść potrzeba by poszczególne DomU miały dostęp do różnych VLAN’ów (czasem nawet wielu równocześnie). Jeżeli serwer z Dom0 posiada minimum giga-bitową kartę sieciową (a najlepiej kilka) to powinniśmy być w stanie z godziwą jakością udostępnić systemom DomU różne VLAN’y z interfejsów gospodarza. Zaprezentowane poniżej skrypty zapożyczyłem z tej strony: http://renial.net/weblog/2007/02/27/xen-vlan  external link Na początek musimy zainstalować pakiet vlan:...

2012-06-18 · 2 min · timor

CouchDB - Instalacja i wstępna konfiguracja

Gdy tworzymy pierwszą aplikację webową, która umożliwia upload plików przeważnie lądują one lokalnie w pewniej lokalizacji. Gdy druga aplikacja potrzebuje dostępu do tych plików wystarczy podać ścieżkę. Problemy zaczynają się gdy aplikacji jest kilka i rozmieszczonych na kilku serwerach. Można korzystać z sieciowych systemów plików ale to często nie jest zbyt wygodne - ciężko odpowiednio ustawić uprawnienia by pewne aplikacje miały dostęp do zapisu plików a inne nie, trzeba skonfigurować dany katalog w kilku miejscach w konfiguracji serwera WWW aby serwować pliki itp…...

2012-06-08 · 4 min · timor

Ponowne wygenerowanie kluczy serwera OpenSSH

Czasami odpalam klona jakiegoś systemu by później po drobnych zmianach uczynić go osobnym bytem. Jednym z kroków po odtworzeniu systemu jest wygenerowanie nowego zestawu kluczy dla serwera OpenSSH (by mój klient ssh nie siał warning’ami). Można to wykonać tak: Najpierw kasujemy obecne klucze: rm /etc/ssh/ssh_host_* Teraz generujemy nowe: dpkg-reconfigure openssh-server I na koniec restartujemy usługę by załadować nowy zestaw kluczy (nie powinno to zerwać obecnej sesji, ale dla pewności lepiej zadanie odpalić w screen’ie):...

2012-02-27 · 1 min · timor

Xen na Squeeze - Instalowanie i konfiguracja hostów gości (DomU)

Ostatnio pisałem o konfiguracji Dom0  external link - dzisiaj napiszę o uruchamianiu DomU. Do instalacji DomU wykorzystuję skrypty z pakietu xen-tools, można go zainstalować poleceniem: apt-get install xen-tools Oczywiście aby wszystko działało fajnie musimy ustawić kilka domyślnych opcji, robimy to edytując plik /etc/xen-tools/xen-tools.conf. Lecimy po kolei: # Virtual machine disks are created as logical volumes in # volume group 'universe' (hint: LVM storage is much faster # than file) lvm = universe Osobiście korzystam z LVM’a który zgodnie z hint’em jest znacznie szybszy od plików obrazów....

2012-02-24 · 6 min · timor

Xen na Squeeze - instalacja i konfiguracja hypervisor’a

Po co mi to? Wiele razy miałem do czynienia z serwerami na których działało kilka/kilkanaście usług równocześnie, np. Apache (kilka stronek, webmail, phpmyadmin, itp), Postfix/Exim (poczta i żeby było fajnie to na kontach systemowych), Samba (jakieś zasoby dla pracowników), MySQL (baza dla stronek), PostgreSQL (bo jedna stronka potrzebowała), itd…. Przy takiej konfiguracji pomijane są kwestie separacji usług zewnętrznych/wewnętrznych - no ale firma/instytucja mała nie ma sensu kasy na 3 kolejne serwery wydawać skoro działa…....

2012-02-23 · 5 min · timor

Wstępne ładowanie programów przy starcie z ureadahead

Jakiś czas temu korzystałem z preload’a  external link który sam uczył się jakie aplikacje odpalam i te programy ładował już podczas startu - przeważnie nieco spowalnia to start systemu ale gdy już się załaduje to programy, które uruchamiam jako pierwsze startują “z kopa”. Od jakiegoś czasu popularniejszy jest instalowany domyślnie w Ubuntu ureadahead - pełni on podobną funkcję jak preload. Można zmusić ureadahead do ponownego wygenerowania nowej listy programów wczytywanych przy starcie do cache a oto jak zrobić:...

2012-01-24 · 1 min · timor

Apache mod_expires konfiguracja

Aby umożliwić odwiedzającym nasze strony cachowanie obrazków (tak by nie musieli pobierać ich każdorazowo bo przecież nie zmieniają się aż tak często) konieczne jest ustawienie nagłówków: Cache-Control, Expires dla odpowiednich typów plików. W Apachem jest do tego dedykowany moduł - mod_expires. W Debianie dostarczany jest on bez domyślnej globalnej konfiguracji - a ja lubię gdy cacheuje mi się większość statyki. Zawsze można dostosować czas cachowania pod siebie względem określonego typu pliku, np....

2012-01-23 · 2 min · timor

Upgrade Debian Lenny do Squeeze

Co jakiś czas powtarza się sytuacja, gdy muszę zaktualizować jakiś serwerek z Lennym do Squeeze’a i za każdym razem muszę googlać za odpowiednimi źródłami, które paczki najpierw, etc… Więc sobie zebrałem wszystko w poniższym poście. W razie wątpliwości patrz tutaj: http://www.debian.org/releases/squeeze/releasenotes Zrób backup konfiguracji. Trzeba zaktualizować źródła by wskazywały na squeeze’a (poniższe polecenie nadpisze Twoje obecne repozytoria): cat > /etc/apt/sources.list <<SRC deb http://ftp.pl.debian.org/debian/ squeeze main non-free contrib deb-src http://ftp.pl.debian.org/debian/ squeeze main non-free contrib deb http://security....

2012-01-13 · 1 min · timor