VPS od freecast.pl

04 października 2011

Trochę mi głupio, że to drugi wpis na blogu o firmie hostingowej i drugi z negatywną oceną. Ktoś w końcu dojdzie do wniosku, że potrafię tylko narzekać.

Z drugiej strony, gdy sam wybieram hosting, to szukam w Internecie rzetelnych recenzji. Szczególnie biorę pod uwagę opinie blogerów bo ktoś kto prowadzi swój blog od kilku lat, raczej nie będzie kłamał i koloryzował faktów. Nie jest już taki anonimowy i nie da się też ukryć, że jest się jakoś powiązanym z daną firmą.

Podsumowując: nie chcę narzekać ale trzeba ludzi informować jak wygląda sytuacja. Każdy sam wyciągnie wnioski.

Od kilku miesięcy, z przerwami, posiadam serwer VPS zarejestrowany na freecast.pl. Nigdy nie stało na nim nic poważnego, służy mi do rozrywki i nauki zarządzania LAMP. Nie jestem w stanie obiektywnie ocenić jego wydajności bo nigdy nie wygenerowałem na nim ruchu, który dostarczyłby mi jakichś miarodajnych danych. Zdążyłem sobie jednak już wyrobić opinię o tej firmie i jej usługach.

Spotkały mnie dwie nieprzyjemne sytuacje. Pierwsza, ewidentnie z mojej winy. Skasowałem sobie pliki. Żeby było śmieszniej, zrobiłem to podczas próby stworzenia backupu… :D Wszystko wydarzyło się w niedzielę około godziny 16 lub 17. Napisałem do BOK zapytanie czy mają backup mojego serwera ale nie liczyłem na pozytywną odpowiedź i zabrałem się od razu za odtwarzanie (czytaj: robienie od nowa..) straconych danych.

Odpowiedź od freecast.pl nadeszła w poniedziałek około południa. Oto ona:

Witam

kopie tworzone są o godzinie 22 każdego dnia

Kosztem niedzielnego wieczoru odzyskałem już wszystko co straciłem ale ta odpowiedź mnie zaintrygowała więc dopytałem czy to oznacza, że kopie są nadpisywane. Musiałem czekać aż do środy do godziny 11 aby dostać niezwykle rozbudowaną odpowiedź, która brzmiała: „Tak”.

Wnioski? Backup na VPS’ach od freecast.pl niby jest ale trzeba mieć trochę szczęścia żeby z jego dobrodziejstw skorzystać. Jeżeli będziesz chciał coś z niego przywrócić to masz czas do godziny 22:00 tego samego dnia. W weekend się raczej nie doprosisz. W dni powszednie jest pewnie lepiej ale też trzeba się modlić aby usterka nie wystąpiła tuż przed godziną 22:00 i aby ktoś po drugiej stronie kabla przeczytał Twój e-mail na czas.

Oczywiście należy być obiektywnym. To ja sobie skasowałem pliki i to moja wina, że nie miałem ich kopii zapasowych. W ofercie VPS’ów na freecast.pl nie ma wzmianki o backupach więc nie mogę mieć do nich pretensji, że nie zabezpieczyli moich danych. Mimo to, skoro robią te backup’y to mogliby je już tak robić aby były użyteczne dla ich klientów. To by z pewnością poprawiło wizerunek firmy w moich oczach. Ta bezsilność jest okropna gdy podejrzewasz/wiesz, że Twoje dane jednak gdzieś się zachowały ale i tak wkrótce zostaną skasowane i nie masz na to żadnego wpływu.

To jednak nic w porównaniu z drugą sytuacją, która wydarzyła się kilka dni temu. Oto treść maila jaki otrzymałem 29 września o godzinę 18:15 (formatowanie oryginalne):

W dniu 28.09.2011 około godziny 19.40 doszło do ingerencji osób trzecich na główny serwer odpowiadający za usługi VPS . W wyniku tego doszło do wykasowania danych z dysku serwera , dane osobowe nie zostały naruszone .Cała sprawa jest w toku dochodzenia przez organy ścigania .

Za zaistniałą sytuacje firma Marcin Kostrzewa S.M.pl

Bardzo Przeprasza

P.S.

W ramach rekompensaty nasza firma zobowiązuje się dla osób poszkodowanych udzieleniem 30 dniowego korzystania z usług za darmo , tym samym informujemy że usługi VPS zostaną na nowo aktywowane .

Poczuwamy się do odpowiedzialności

Administracja

Domyślałem się odpowiedzi, dopytałem jednak jeszcze czy backup’y także zostały skasowane. Odpowiedź była twierdząca. Klientom po jakimś czasie przywrócono czyste instalacje ich serwerów VPS.

Padli ofiarą przestępstwa i z pewnością nie są zadowoleni z takiego obrotu spraw. Mimo to, trudno ocenić całą sytuację inaczej niż totalną katastrofę. Czy na pewno wszystko było należycie zabezpieczone? Czy backup’y były na tej samej maszynie czy na osobnej? Czy żaden pracownik nie popełnił błędów, które przyczyniły się/spowodowały ten armagedon? Nie mam pojęcia i pewnie nigdy się nie dowiem.

Sam nie ucierpiałem w tym jakoś strasznie. Serwer i usługi trzeba skonfigurować od nowa, przepadły też niektóre dane ale z rozmysłem ich nie kopiowałem, nie były mi już niezbędne. Natomiast wszystko to co ważne, mam skopiowane i trzymam w bezpiecznym miejscu. Obawiam się jednak, że inni klienci freecast.pl nie są w takiej dobrej sytuacji.

Próby (czasami udane) ataków/włamań na serwery to codzienność administratorów. Bez względu na przyczyny takich zdarzeń, klient ma prawo oczekiwać, że nawet w najczarniejszym scenariuszu jego dane przetrwają. Chociażby kopie sprzed kliku dni ale żeby coś zostało. Freecast.pl nie zdało egzaminu.

Życzę podniesienia się z tej klęski. Dostałem „gwarancje ze taka sytuacja się nie powtórzy”. Mam nadzieję, że będą w stanie dotrzymać słowa i znajdą się jeszcze klienci, którzy im zaufają.

PS
Oby sprawcy zostali wykryci. Trzeba być naprawdę łajdakiem żeby robić takie rzeczy!

EDIT 2011-10-18
Byłem wyjątkowo wyrozumiały dla freecast.pl ale bałagan jaki tam mają skutecznie mnie do nich zniechęca. Mimo obiecanych 30 dni zadośćuczynienia za to, że przepadły moje dane, nadal automat kazał mi opłacić rachunek za następny miesiąc. Gdy nie opłaciłem, konto wygasło i przez weekend nie działało. Po mojej interwencji przywrócili je w poniedziałek. Na szczęście ze wszystkimi danymi.

EDIT 2011-10-25
Warto pisać o nieprawidłowościach! Ktoś z freecast.pl czytał mój wpis bo link podano w dyskusji o hostingu na webhostingtalk.pl i doczekaliśmy się nawet odpowiedzi na moje zarzuty. A przed chwilą w mojej skrzynce pojawił się taki oto e-mail:

Witamy

mamy dla Państwa miłą informacje z dniem dzisiejszym wszystkie serwery VPS naszych klientów będą posiadały kopie bezpieczeństwa , która będzie wykonywana codziennie o 5 rano na osobny serwer .Dziękujemy za uwagę.

Chyba można zaryzykować stwierdzenie, że miałem na to jakiś wpływ :) Cieszy mnie taki obrót spraw, nie wszystko jeszcze stracone! :)

EDIT 2011-11-02
Nie mogę sobie odmówić kolejnego dopisku :D Otóż dostałem dzisiaj rano informację od freecast.pl o konieczności opłacenia faktury bo za dwa tygodnie mój VPS wygasa. Taki zwykły komunikat, nic specjalnego. Problem w tym, że od godziny 5:00 do godziny 5:59 włącznie takich maili dostałem… 61! Oni to jednak mają talent :D


Instalacja serwera Minecraft

28 kwietnia 2011

Gry Minecraft nie muszę chyba nikomu przedstawiać. A jeżeli ktoś jej naprawdę nie zna to w sieci jest o niej zatrzęsienie materiałów i nie ma sensu ich tutaj powielać. Jakiś czas temu postanowiłem połączyć przyjemne z pożytecznym i w ramach podnoszenia swoich umiejętności obsługi systemów Linux postawiłem serwer Minecraft na serwerze VPS z systemem Debian.

Minecraft ma swoje własne oficjalne oprogramowanie do serwerów multiplayer ale serwery budowane przez społeczność* są lepsze, bardziej rozbudowane, dają większe możliwości konfiguracji i rozszerzania itd. Zgaduję, że w tej chwili najpopularniejszy jest Bukkit**. Właśnie jego wybrałem i na nim się teraz skupimy.

Tak naprawdę instalacja jest banalna ale zauważyłem, że wiele osób szuka informacji i chyba przyda się taka mała ściągawka. Dodam w tym miejscu tylko tyle, że nie chcę się tutaj przesadnie skupiać na obsłudze samego Debiana. Musisz sobie z tym poradzić sam ale wskazówek w sieci jest pod dostatkiem.

Niektóre elementy poniższej listy zostały napisane pod osoby, które swój serwer VPS/dedykowany zakupiły trzy minuty temu. Jeżeli administrujesz serwerem już jakiś czas to nie wszystko musisz robić ale pewnie sam zdajesz sobie z tego sprawę ;)

Robiłem wszystko z poziomu root’a.

Jedziemy:

  • Przeczytaj to http://wiki.bukkit.org/Setting_up_a_server. Zrobimy trochę inaczej ale przeczytanie oficjalnych zaleceń nikomu nie zaszkodzi :)
  • Połącz się z serwerem. Nie wiesz jak? Skorzystaj z PuTTY i tym tropem podążaj w google :) Przy okazji dodam, że najprawdopodobniej możesz się także połączyć ze swoim serwerem za pomocą klienta SFTP. Ja polecam WinSCP. Jeżeli trudno Ci się poruszać po serwerze za pomocą konsoli to klient SFTP będzie dla Ciebie bardzo pomocny.
  • Przejdź do pliku /etc/apt/sources.list. Znajdują się tu adresy skąd Twój system powinien pobierać paczki oprogramowania. Ja mam tam wpisane następujące adresy:

    Debian 5

    deb http://ftp.de.debian.org/debian/ lenny main non-free contrib
    deb-src http://ftp.de.debian.org/debian/ lenny main non-free contrib
    deb http://security.debian.org/ lenny/updates main contrib non-free
    deb-src http://security.debian.org/ lenny/updates main contrib non-free
    
    deb http://www.backports.org/debian etch-backports main contrib non-free
    

    Debian 6

    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.debian.org/ squeeze/updates main contrib non-free
    deb-src http://security.debian.org/ squeeze/updates main contrib non-free
    deb http://ftp.pl.debian.org/debian/ squeeze-updates main non-free contrib
    deb-src http://ftp.pl.debian.org/debian/ squeeze-updates main non-free contrib
    
    deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
  • Dokonaj aktualizacji wszystkich paczek. Zrobisz to za pomocą następującej komendy:
    apt-get update
  • Sprawdź czy masz zainstalowaną Jave (polecenie java -version powinno zwrócić jakieś informacje o Javie). Wyczytałem, że Bukkit nie zadziała z Javą w wersji OpenJDK (kiedyś chyba działał). Jeżeli nie masz Javy to uruchom następujący kod:
    apt-get install sun-java6-jre

    Teraz wypadałoby napisać czym różni się Java w wersji JRE od JDK. Ten cytat z Wikipedii wyjaśnia wszystko:

    JRE (Java Runtime Environment) – udostępnia kod bajtowy wszystkich klas standardowych i wirtualną maszynę do ich uruchamiania, zaś JDK (Java Development Kit) dodatkowo udostępnia źródła tych klas oraz dodatkowe narzędzia takie jak kompilator, paker czy debuger. Podział ten wprowadzono dlatego, że użytkownik Javy do uruchamiania programów potrzebuje tylko JRE, natomiast do programowania działających aplikacji potrzeba już JDK.

    Administrując serwerem Minecraft nigdy nie miałem potrzeby czegokolwiek kompilować więc moim oczywistym wyborem jest JRE. Jeżeli jednak z jakiegoś powodu chcesz mieć JDK to pakiet ten instaluje się identycznie, wystarczy zmienić literki na końcu polecenia.

    Wskazówka: podczas instalacji Javy pojawią się dwa „okienka” z informacjami o licencji. Aby w pierwszym „kliknąć” na Ok a w drugim zgodzić się na warunki licencji używaj klawisza Tab.

  • W /opt/ stwórz katalog o nazwie craftbukkit.
  • Do /opt/craftbukkit/ wgraj plik o nazwie start.sh o następującej zawartości:
    #!/bin/sh
    
    if [ $# -eq 1 ]
    then
    
        if [ $1 = 'l' -o $1 = '-l' ]
        then
    
            echo "Pobieranie ostatniej wersji Bukkit"
    
            wget http://ci.bukkit.org/job/dev-CraftBukkit/lastBuild/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar
            mv -T craftbukkit.jar craftbukkit-last.jar
            mv -T craftbukkit-0.0.1-SNAPSHOT.jar craftbukkit.jar
    
        elif [ $1 = 'r' -o $1 = '-r' ]
        then
    
            echo "Pobieranie ostatniej rekomendowanej wersji Bukkit"
    
            wget http://ci.bukkit.org/job/dev-CraftBukkit/promotion/latest/Recommended/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar
            mv -T craftbukkit.jar craftbukkit-last.jar
            mv -T craftbukkit-0.0.1-SNAPSHOT.jar craftbukkit.jar
    
        fi
    
    fi
    
    java -d32 -Xincgc -Xmx768M -jar craftbukkit.jar nogui
    

    W ostatniej linijce masz taki ciąg znaków: -d32. Jeżeli Twój system jest 32-bitowy to zostawiasz tak jak jest. Jeżeli system jest 64-bitowy to zamieniasz na -d64. W tej samej linijce masz ciąg znaków: 768M. Musisz tu wpisać ile RAM’u Twojego serwera chcesz przeznaczyć na Minecrafta. Niestety gra jest napisana w Javie i zżera ogromne zasoby :/ Wydajność to wielki problem tej gry.

  • Uruchom poniższą komendę aby umożliwić uruchamianie stworzonego przed chwilą pliku:
    chmod +x start.sh
  • Uruchom nasz skrypt z wymuszeniem ściągnięcia serwera (./start.sh -r o ile jesteśmy w katalogu /opt/craftbukkit/)
  • Olej wszystkie błędy :) Serwer na razie tworzy pliki konfiguracyjne etc.
  • Gdy serwer się uruchomił napisz stop i naciśnij Enter.
  • Teraz czeka nas konfiguracja serwera. Opiszę ją bardzo krótko, każdy powinien się bardziej w to zagłębić bo każdy ma inne potrzeby.
    • Najpierw plik ops.txt. Wpisujemy tu linijka pod linijką kolejne nicki operatorów serwera. Wpisuj wszystko małymi literami.
    • Następnie przechodzimy do pliku server.propeties. Tu jest kilka ustawień:
      level-name – nazwa Twojego świata. Może pozostać domyślna wartość.
      hellworld – decydujesz czy ma być dostępne tzw. piekło w Minecraft. Proponuję ustawić na false a dodatkowe światy obsługiwać za pomocą odpowiedniego pluginu np. MultiVerse.
      spawn-monsters – mają się pojawiać potwory?
      online-mode – podczas logowania użytkownika serwer ma sprawdzać czy posiada on oryginalną wersję gry?
      spawn-animals – mają się pojawiać zwierzęta?
      max-players – maksymalna ilość graczy jednocześnie
      server-ip – zostaw puste
      pvp – czy gracze mogą ze sobą walczyć i zadawać sobie rany?
      level-seed – seed mapy***. Można pozostawić puste, wtedy seed wylosuje się sam.
      server-port – port pod jakim ma być dostępny serwer. Można zostawić domyślną wartość.
      allow-flight – czy dozwolone jest latanie?
      white-list – wpuszczać tylko tych użytkowników, którzy są na białej liście?
      spawn-protection – nie jestem pewien do końca za co odpowiada to ustawienie. Nie chce mi się szukać ;) Domyślam się, że określa ilość kratek od punktu startu gry (tzw. spawn) w obrębie których to klatek nie działa np. PVP, bez względu na ustawienia serwera.
    • Plik white-list.txt wypełniamy tylko gdy w server.propeties ustawiliśmy opcję white-list na true. W pliku tym wpisujemy nicki osób, jeden pod drugim. Tylko osoby z tej listy będą wpuszczane na serwer.
  • Na tym konfiguracja serwera się kończy. Możemy ponownie go uruchomić (./start.sh). Nie powinno być już żadnych błędów. Wszystko co „wypluwa” serwer do konsoli możesz przeglądać w pliku server.log.

Serwer działa ale przestanie działać gdy tylko wyłączysz PuTTY. Jak temu zaradzić? Najprościej za pomocą pakietu screen. Najpierw instalacja (wcześniej wyłącz serwer Minecrafta poprzez polecenie stop):
apt-get install screen

Następnie w katalogu /opt/craftbukkit/ wpisujemy to:
screen -dR minecraft

Teraz uruchamiamy serwer:
./start.sh

Działa tak jak zawsze z tym, że teraz spokojnie możemy zamknąć PuTTY a serwer dalej działa. Jeżeli po wyłączeniu konsoli zapragniemy wrócić do naszego serwera to po zalogowaniu na swoje konto serwerowe wystarczy wpisać ponownie screen -dR minecraft i włączy nam się w konsoli nasz serwer. Aby z niego wyjść (oczywiście bez jego wyłączania) naciśnij kombinację przycisków Ctrl+a, puść je i naciśnij literkę d. W ten sposób wrócisz do konsoli ale serwer dalej będzie działał.

Bukkit jest aktualizowany praktycznie codziennie, czasami kilka razy na dzień. Część aktualizacji jest ustawiana jako rekomendowane, część to tylko drobne lub niepełne zmiany. Wszystkie buildy znajdziesz na stronie www.ci.bukkit.org/job/dev-CraftBukkit/. Swój serwer możesz łatwo zaktualizować dzięki tym komendom (najpierw oczywiście zatrzymaj serwer):
./start.sh -r
Zaktualizuje serwer do najnowszej rekomendowanej paczki
./start.sh -l
Zaktualizuje serwer do najnowszej paczki, niekoniecznie rekomendowanej

Po każdej aktualizacji automatycznie uruchamiany jest serwer. Jeżeli po aktualizacji coś jest nie tak (serwer się nie uruchamia, są jakieś błędy etc.) to Twoja ostatnia wersja serwera jest pod nazwą craftbukkit-last.jar.

Gratuluję, Twój serwer powinien już działać. Możesz się na niego zalogować jako gracz podając w kliencie Minecraft adres IP swojego serwera oraz port w postaci IP:port. Jeżeli port zostawiłeś domyślny (25565) to możesz go pominąć i podać tylko IP. Oczywiście można również ustawić to w taki sposób aby nie wpisywać IP a jakąś domenę ale to już sprawa na inny wpis… :)

Prawdziwą siłą Bukkita jest duża baza pluginów, które ułatwiają pracę administratorom/moderatorom, dodają nowe funkcjonalności itd. Namawiam do regularnego sprawdzania bazy pluginów.

Ciekawe artykuły o instalacji/uruchomieniu/obsłudze serwera Bukkit: [1], [2], [3]. Czytaj je jednak z głową bo nie wszystko tam jest prawidłowe… Na przykład zachęta do instalacji OpenJDK lub gorszy sposób uruchomienia serwera (komenda java -Xmx2048M -Xms2048M -jar minecraft_server.jar, która jest odradzana na oficjalnym forum Bukkita).

EDIT 09.05.2011
Gorąco namawiam do przeczytania mojego drugiego wpisu na temat serwera Minecraft. Znajdziesz tam kilka bardzo pomocnych skryptów do zarządzania Craftbukkit.

Przypisy
* – Nigdy nie sprawdzałem jak to wygląda od strony technicznej ale wyczytałem, że CraftBukkit to nakładka na oficjalny serwer, która udostępnia nowe możliwości/ulepszoną komunikację z oficjalnym serwerem. A więc nie jestem pewien czy można tu mówić o samodzielnym serwerze. Dla mnie to nie ma znaczenia ale wyjaśniam żeby ktoś mnie nie posądził, że podaję błędne informacje ;)

** – Tak naprawdę to serwer nazywa się CraftBukkit a Bukkit to API dla deweloperów dzięki któremu łatwiej im się komunikować w ich pluginach z serwerem Minecrafta. Dla uproszczenia będę nazywał serwer jako Bukkit. Sami twórcy tak postępują :)

*** – Każda mapa w Minecraft ma tzw. seed czyli ciąg znaków na podstawie którego generator terenu generuje kolejne porcje mapy. Dla graczy oznacza to ważną informację: jeżeli sami podamy seed to ilekroć będzie on taki sam tyle razy wygeneruje nam się identyczna mapa.

EDIT 29.02.2012
Z nieukrywaną przyjemnością chciałbym zaprosić wszystkich na mój serwer Minecraft czyli na craftlandia.pl. Miłej zabawy!