RSS Feed

Wrzesień, 2012

  1. [UPDATED do Debiana Wheezy] Hetzner, instalacja Debiana, partycja bios_grub, LVM i RAID

    Wrzesień 27, 2012 by 0verlord

    UPDATE: debian wheezy wymaga trochę więcej miejsca na partycji /boot niż 200M – inaczej image nie bardzo chce się wypakować. Dałem 512M i poszło.
    Czyli:
    PART /boot reiserfs 512M

    (oczywiście filesystem wg własnych upodobań)

    Automatyczny instalator Debiana w Hetznerze pozwala stworzyć w zasadzie dowolną konfigurację partycji pod system. Pomijając te oczywiste konfiguracje z kilkoma partycjami na krzyż, można także wykonać dowolnie skomplikowany zestaw. Np. LVM na SOFT RAIDzie 1 czy też dodanie partycji typu bios_grub.
    Być może moje odkrycia są opisane w hetznerowym wiki, ale nie dałem rady przez nie przebrnąć. Jest zrobione za bardzo „po niemiecku”.

    W każdym razie, należy zacząć od klikania w panel https://robot.your-server.de i wybrania opcji „rescue system”. Potem tylko zapisać wygenerowane hasło i kliknąć w zakładkę „reset”.

    Po zalogowaniu się na system reanimacyjny, wydajemy mroczne polecenie
    installimage

    Uruchamia się instalator w trybie interaktywnym, od razu wrzucając nas do jedynej potrzebnej i sensownej opcji – partycjonera dysku.

    Moje założenie było takie: stworzyć 3 partycje: 1. bios_grub, 2. /boot i macierz RAID 1 pod LVMa.

    NA LVMie miały być partycje wg schematu:

    1. / (root), 20GB
    2. swap, 2x ram
    3. /tmp, 10GB
    4. /var, 20GB
    5. /home reszta

    Jak to teraz poustawiać? Ano tak:

    opcje obowiązkowe w pliku to:

    SWRAID 1
    SWRAIDLEVEL 1

    Pierwsza włącza raid, druga włącza go w trybie mirror. Jeżeli ktoś chce inaczej, można też wybrać stripping (0).

    można też ustawić HOSTNAME.

    Potem konfiguracja partycji, wg schematu:

    PART mountpoint/lvm filesystem/VG rozmiar

    A potem już konfiguracja właściwa:

    #PART /plumk reiserfs 100M
    PART /boot reiserfs 200M
    PART lvm wolumen all

    Dlaczego tak? Ano dlatego, że instalator po stworzeniu partycji, próbuje je wszystkie zamontować, ignorując podstępnie dyrektywy punktu montowania ustawione na „none” (które przechodzi kontrolę składni). Potem partycję odmontujemy, zmienimy jej typ i wszystko będzie dobrze.

    UPDATE: hm hetzner okazał się mądrzejszy, i sam taką partycję zakłada, bez ingerencji usera. Więc można spokojnie olać dodawanie tej partycji na własną rękę. Czyli ostatecznie z wpisu powyżej trzeba uwalić dodawanie dodatkowej partycji z mountpointem /blah.

    W takiej konfiguracji musimy nazwać niżej nasz VG „wolumen”.

    LV wolumen root / reiserfs 20G
    LV wolumen swap swap swap 8G
    LV wolumen tmp /tmp reiserfs 10G
    LV wolumen var /var reiserfs 20G
    LV wolumen home /home reiserfs all

    F10, yes i instalator sobie walczy, a potem robi jak chcemy. 🙂

    Jak mi się wydaje, instalator jest oparty na czymś takim jak Fully Automated Debian Install, kiedyś z niego dość mocno korzystałem, polecam.


  2. Debian Squeeze Apache i moduł suphp, który jednak działa

    Wrzesień 6, 2012 by 0verlord

    SuPHP to taki ładny wrapper poprawiający bezpieczeństwo serwera www, jeżeli gościmy na nim bandę dzikich skryptów a jeszcze dzikszych userów. Pozwala na uruchamianie skyptów php z takim uidem jak ma owner plików na serwerze. Proste, skuteczne. Oczywiście mniej wydajne niż php bez tego wynalazku, ale jak to zwykle bywa, jest to odwieczna walna: bezpieczeństwo kontra funcjonalność/wydajność.

    Jeżeli po instalacji modułu, skrypty dalej wykonują się z prawami usera www (np. w defaultowej instalacji: www-data) trzeba wyłączyć, powtarzam wyłączyć moduł php5. Restart apacza i działa.
    Niby to jest w dokumentacji i niby o tym czytałem, ale na działającym wcześniej serwerze, to mi już drugi raz umknęło i debugowałem jak ostatni baran :-/

    Zainstalować moduł:
    aptitude install libapache2-mod-suphp
    a2dismod php5
    a2enmod suphp
    /etc/init.d/apache2 restart

    A reszta to już manipulacja w konfigu:

    /etc/suphp/suphp.conf

    i czytanie loga w domyślnej lokalizacji:

    /var/log/suphp/suphp.log

    Sprawdzamy, umieszczając w katalogu, np. domowym public_html, np.taki „skrypt”.

    <?php system('/usr/bin/id'); ?>

    Efekt w przeglądarce powinien wyglądać jakoś tak:

    uid=1002(miszcz) gid=100(users) groups=1003(miszcz),4(mrocznaadministracja)

    Ku pamięci.

    EDIT: i oczywiście, jak już popełniłem posta, to znalazłem setkę tutoriali które mówią dokładnie to samo co ja teraz ;-). Odpowiedzią na źle zadane pytanie jest milczenie, po prostu.