_KaszpiR_ Administrator
![Administrator Administrator](images/avatars/gallery/buzka8.gif)
Dołączył: 23 Maj 2002 Klan: Nova Team (nieaktywny), ale i tak nie gram w cs...
|
Wysłany: Pią Wrz 23, 2005 10:15 am Temat postu: ssServer |
|
|
ssServer 3.0 Linux
by _KaszpiR_ 2005-09-24 18:09 http://nvt.prv.pl
UTF-8
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
1. ssServer - co to jest?
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
ssServer i ssClient służą do wykonywania zrzutów ekranu u graczy i umieszczania
ich na serwerze do wglądu.
Najczęściej ssServer jest uruchamiany na tej samej maszynie, na której jest
serwer gry. Co pewien czas ssSErver sprawdza status graczy na serwerze gry
oraz wykonuje komendy na ssClient'ach.
Gracz u siebie włącza ssClient'a, w nim wybiera serwer ssServer i się z nim łączy.
Następnie podłącza się do serwera gry - który jest kontrolowany przez ssServer do
którego się podłączył chwilę wcześniej.
ssServer wysyła rozkaz zrzutu ekranu do ssClient'a.
Zrzut po wykonaniu jest konwertowany na JPG i transportowany
do ssServer'a i tam przetwarzany.
Zrzut ekranu jest wykonywany w taki sposób ze jest on właściwie niezależny od
rodzaju gry - ssClient pobiera dane z bufora grafiki a nie z samej gry.
Teoretycznie nie potrzebuje on nawet uruchomionej gry do wykonania zrzutu.
W rzeczywistości to ssServer decyduje czy wykonać zrzut czy nie - ponieważ sprawdza
on czy gracz jest podłączony do odpowiedniego serwera ( z jednej strony do serwera
gry, z drugiej strony odpowiedniej gry obsługiwanej przez ssServer)
Rysunek poniżej wyjaśni najczęściej spotykana relacje ssServer - ssClient.
ssServer i ssClient działają z grami:
Half-Life (czyli wszsktie mody jak Counter-Strike, Day of Defeat, Condition Zero itp)
Half-Life 2 (tym Counter-Strike:Source)
Quake III Arena
RTCW: Enemy Teritory
Call Of Duty
Medal Of Honor Allied Assault
A poniższy rysunek przedtawia zasadę działania całości w sposób bardziej szczegółowy.
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
2. Wymagania
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Pod linuksa działające konto shell'owe (ssh dla niekumatych), nie postawisz go jeśli na serwer masz
tylko przez ftp albo WWW.
Opcjonalnie - program screen i crontab, serwer gry supportowanej przez ssServer.
Znajomość działania i użycia komend ps, kill, killall ;P
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
3. Pliki
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Zasysamy oryginalny plik z http://www.ufonurkka.mine.nu/ssclient/download.php
dla serwera - ssServer (zwany też ssReborn).
dla graczy - ssClient.
Możesz pobrać moje spolszczenie - ułatwi ci konfiguracje, bo nie chce mi się tu pisać 40 stron.
UWAGA - zawiera ono przekonfigurowane pliki tak aby działało to na mim testowym serwerze na lanie.
ssServer ssServer 3.0 beta PL
ssClient ssClient 3.0 beta (build 3.0019) PL
No, może nie do końca przetłumaczone ;P
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
4. Przygotowanie ssSerwer'a
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Wrzucamy spakowany ssServer na nasza maszynę docelowa, rozpakowujemy do wybranego katalogu,
zachowując strukturę podkatalogów.
Następnie idziemy do swieżo rozpakowanego katalogu, jeśli widzimy plik ssReborn.sh to ok,
inaczej szukamy dalej
Potem wykonujemy poniższe komendy (dzięki temu będziemy mogli uruchomić program bo zipy mają to
do siebie, że nie zapisują praw do plików.)
chmod u+x ssReborn ssReborn.sh
chmod u+x Tools/*
chmod u-x Tools/*.exe
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
5. Konfiguracja
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
I tu zaczyna się ciężki żywot człowieka!
Będziemy mieli dość dużo do zmiany w konfigach, ale po kolei.
Wejdź do katalogu config i zobacz co tam jest.
Tutaj podam tylko najważniejsze pliki które musisz zedytować i musisz zmienić w nich podane wartości.
----------------------------------------------------------------------------------------------------
a) loader.cfg
Jest to plik startowy który będziemy ładować przy starcie ssSerwer'a (o tym potem)
Kontroluje on które pliki cfg załadować, opisy są chyba dość jasne.
----------------------------------------------------------------------------------------------------
b) ssServer.cfg
servername - zmieniamy nazwę naszego ssServera na jakąś bardziej unikalna,
n.p. podobna do nazwy serwerów gier.
website - strona naszego ssServer'a, może być n.p. forum serwera gdzie można zgłaszać uwag na
temat gry itp.
jest to adres na jaki wejdziemy po kliknięciu na nazwę ssServera w ssCliencie
(w domyślnym skinie w lewym dolnym okienku)
PublicAddress - adres IP pod jakim będzie chodził nasz ssServer, trzeba też podać nr portu
(musi być mozliwosc jego otwarcia oraz nie może być zajęty)
nie wiem czy można podawać nazwę hosta (raczej na dynamicznych IP nie ma co stawiać ssServer'a)
bannerfile - logo naszego serwera, dla estetów. JPG, pobierany przez ssClient'a i
wyświetlany w domyślnym skinie w lewym dolnym okienku aplikacji.
(w efekcie prawie nie do uzyskania z powodu kompresji - zmiana wartości kolorów)
musi być w ścieżce odczytywalnej przez ssServer
bannerurl - adres na jaki wejdziemy po kliknięciu na banner.
pewnie chcecie aby był równy wartości website
----------------------------------------------------------------------------------------------------
c) screenshots.cfg
shotsperhour - wydaje mi się ze 15 to starczy, jak masz mało ludzi na serwerze możesz ustawić więcej
jednak wszystko zależy od transferów graczy, rozmiaru zrzutu ekranu i limitów łącza
shotfile - ścieżka gdzie mają być zapisywane zrzuty ekranu, domyślnie ssServer chce zapisywać je
do podkatalogu
/var/www/ssclient/shots
zobacz także punkt h) tego tutoriala
upewnij się ze:
- ta ścieżka istnieje (pewnie będziesz musiał stworzyć ten katalog
- ścieżka ma prawa do zapisu dla ssServer'a
( najlepiej dać mu ownera na katalog, albo chmod 777 /var/www/ssclient )
zmienne są zastępowane przez ssServer wartościami z gry, dzięki temu można bardzo ciekawie
skonfigurować zrzuty ekranu i nie babrać się w milionach nie wiadomo jakich plików
ShotWidth i ShotHeight - definiują maksymalny rozmiar zrzutu ekranu jaki będzie wykonany,
jeśli zrzut jest większy - zostanie przeskalowany do tego rozmiaru
możecie poeksperymentować np. z 800x600 albo 1024 x 768 ale pamiętajcie ze 1024x768 jest 4
razy większy niż 640, więc będzie raczej 4x większy i 4x dłużej się wrzucał na serwer.
jak ktoś gra w 640x480 i macie limity na 1024x768 to i tak zrzut będzie rozmiaru 640x480
ShotCompression - moc kompresji JPG, wartości powyżej 80 nie ma co stosować,
poniżej 40 za duże są zmiany w jakości,
może powodować ze źle odczytamy zrzut ekranu
shotuploadrate - transfer uploadu od gracza do serwera, pamiętajcie żeby ustawić parametry
według możliwości łącza serwera jak i graczy
jak dacie za dużo to serwer będzie lagowal (i wszyscy gracze), a jak serwer
będzie wyrabiał to gracze każdy oddzielnie
mogą lagować bo upload obrazka zapcha łącze i nie będzie miejsca na pakiety gry.
----------------------------------------------------------------------------------------------------
d) ftpupload.cfg
Rozwiązanie dla osób które serwer WWW/FTP mają na innej maszynie niż serwer ssServer
(albo np. w innym katalogu, niedostępnym normalnie dla ssServer'a)
W pliku konfiguracyjnym opisałem wszystko, ale nie testowałem.
Zwracam uwagę na parametry passive/active (jak nie działa z jednym, spróbuj z drugim)
----------------------------------------------------------------------------------------------------
e) gameservers.cfg
Kontroluje konfiguracje ogólne dla serwerów gir kontrolowanych przez ssServer.
Przeważnie komunikaty itp.
Zmiennych z liniami .authed i .unauthed radzę nie odkomentowywac (strasznie spamują),
ale dobre przy testach czy ssServer działa.
----------------------------------------------------------------------------------------------------
f) shotsphp.cfg
Aby używać wymagane :
serwer www ;P
mysql 3.23 albo nowsze
php 4.3 lub nowsze z biblioteka gd2, i lepiej mieć magic_quotes aktywne w php.ini
Opcja raczej dla osób wiedzących co to jest mysql i potrafi się tym posługiwać.
Zwracam uwagę, że najpierw trzeba (jeśli trzeba) stworzyć bazę danych, user'a z hasłem z dostępem do
tej bazy (z odpowiedniego hosta)
Następnie stworzyć tabele wg projektu w pliku .cfg
Oczywiście wtedy trzeba też pogrzebać w pliku php/shots.php - ustawić dane do mysql jak i
ścieżki gdzie są przechowywane zrzuty ekranu
Plik php współpracuje z systemem PHP-NUKE ale też działa sam z siebie.
Potem plik .php trzeba umieścić w odpowiednim miejscu na serwerze www.
Na koniec warto podmienić dane w ssServer.cfg aby adresy url z ssClient'a kierowały np. na ten właśnie
plik na necie (aby można było wejść bezpośrednio na zrzuty ekranu, ale to tylko taka sugestia )
Osobiście radze tego systemu nie używać - php jest napisany w sposób dość karkołomny i niebezpieczny,
nie spełnia też zabezpieczeń na błędne wprowadzenie danych od user'a
(i przez to wykonanie błędnych kwerend) - możecie potracić dane w bazie,
albo przynajmniej włączcie magic_quotes w php.ini
----------------------------------------------------------------------------------------------------
g) hookscan_updater.cfg
http://www.ufonurkka.mine.nu/ssclient/processes.txt
[powyższy tekst w pliku .cfg musisz zmienić na adres dość często aktualizowanych informacji o cheatach
adres www na forum ssServera albo może podam potem tutaj
----------------------------------------------------------------------------------------------------
h) exampleserver.cfg
Wreszcie doszliśmy do pliku gdzie definiujemy nasz serwer gry
Przykład dla serwera CS
ip - nr IP naszego serwera HLDS
port - no zagnij, port serwera HLDS
rconpassword - ustawiasz hasło rcon do serwera HLDS
(dlatego się używa długich haseł i się ich nie zmienia i nikomu nie daje, tylkos stosuje np amx_rcon)
gametype - ustaw rodzaj gry, mod nie ważny (tzn. cs czy dod czy natural selection to tutaj to samo)
servermod - ustaw to czego używasz na serwerze (tylko hl albo hl2), ciekawe, nie ma adminmod'a
(no ale przeważnie działa on ze statsme)
hlg - HL Guard
sm - StatsMe
amx - AMX Mod
amxx - AMX Mod X
mani - Mani Admin plugin dla HL2
OnPlayerAuthed - radze zmienić adres WWW ;P
shotfile - gdzie mają być zrzuty ekranu dla tego serwera (aby się nie pomieszały.
Poczytaj zakomentowane linie.
----------------------------------------------------------------------------------------------------
i) sandbox.cfg
Piaskownica, czyli miejsce zabaw dla małych dzieci.
W rzeczywistości dostęp do serwera gry poprzez ssServer
O tym później, wygląda zawile ale za to bardzo ciekawie
Dzięki temu nie musisz więcej dawać adminom hasła rcon do serwera HLDS
(prawdę mówiąc od momentu jak zaczniesz stosować ssServer będzie to niewygodne bo ssServer
po zmianie hasła przestanie działać i trzeba go rekonfigurować)
Wreszcie tunel ssh do serwera z gry cs ;P
----------------------------------------------------------------------------------------------------
j) heartbeat.cfg
Podobnie jak normalny hearbeat w grze, dzięki temu twój serwer będzie widoczny w liście serwerów
internetowych, będzie rejestrowany w master servers ale dla ssServerów.
Bezużyteczne na lanie.
----------------------------------------------------------------------------------------------------
k) nameprefix.cfg
Aktywuje zmianę imion graczy z ssClient'em lub bez.
Coś w rodzaju Cheating-Death mediator.
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
6. Uruchomienie programu
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
W konsoli serwera jeśli jesteśmy zalogowani na użytkownika na ssh
Najpierw test czyli wpisujemy
./ssReborn
Powinien się odpalić program i parę linii pokazać i tyle.
Jeśli są jakieś błędy, najpierw postaraj się zrozumieć komunikat błędu, poszukać na google.
W przypadku kompletnego fiaska w szukaniu proszę postować na boardzie
Zamykamy aplikacje klikając ctrl+c
(kilka razy, aż zobaczymy normalną konsolę taką jak była przed startem ssServer'a)
Jeśli to działa, można załadować ssServer z pełną konfiguracja:
./ssReborn.sh +load config/loader.cfg
To uruchomi program w konsoli i na starcie załaduje przerobione przez nas skrupulatnie konfigi.
Lepiej jest jednak uruchomić ssServer na screen'ie
screen -S s ./ssReborn.sh +load config/loader.cfg
A potem odłączyć się od screen'a
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
7. Zakonczenie
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
ssServer jak widać jest programem który wypełnia pewną lukę na rynku programów antycziterskich.
Pomaga złapać cziterów ze specyficznej grupy - tych których korzystają z graficznych modyfikacji
obrazu w grze, takich jak podmiana modeli, podmiana tekstur, rozjaśnienie modeli i elemetów map,
przezroczystość ścian, rysowanie elementów na ekranie jak położenie przeciwników czy przedmiotów itp,
usuwanie przyciemnionego ekranu (fade to black) jak i oślepienia granatem, usuwanie dymu...
Raczej nie wykryje on pluginów takich jak aimbot czy norecoil, (no chyba, że trafimy na moment jak
gracz strzelał serią i widzimy jak się trafienia układają na ścianach)
Tak czy siak część jego zrzutów ekranu na pewno będzie pomocna przy przynajmniej sprawdzeniu czy
gracz używa danych czitów czy nie, szczególnie jak się ma jescze demo.
Dodatkowo utrudni oszukującym życie poprzez kolejny program antycziterski
Z tego co wiem ssClient jak i ssServer nie mają problemów z współpracą z Cheating-Death czy VAC 1 czy 2.
Prawdę mówiąc tylko dotknąłem tematu ssServer'a, jego moc objawia się dopiero w momencie gdy
przyjrzymy się komendzie help w konsoli, oraz podkomendom z wykorzystaniem help, np gs.help
Możemy ustawiać zmienne globalne, dla danego ssServera, dla danego serwera gry,
a nawet dla wybranych klientów.
Dzięki wykorzystaniu języka Pascal można pisać całkiem zaawansowane skrypty - można je traktować jak
konfigi do AMX razem z pluginami, ale bez potrzeby kompilacji kodu (bo ssReborn zrobi to za nas)
Podstawowy pakiet serwera przychodzi z żałosnym jak na taki projekt zestawem dokumentacji -
więcej można wywnioskować z samych plików konfiguracyjnych niż czytając pomoc .
Trochę dodałem od siebie w help.txt (pare linii), ale nie na tyle dużo abyście wiedzieli wystarczająco
dużo o programie, bo sam o nim nie wiem zbyt wiele i nadal go rozgryzam.
Czas na zajrzenie na forum ssServera - myślę ze tam znajdziemy najwięcej informacji,
niestety po angielsku albo po fińsku.
Forum http://www.ufonurkka.mine.nu/forum/index.php
Więcej informacji pewnie pojawi się w tym tutorialu po jakimś czasie.
Mile widziane wszelkiego rodzaju komentarze i uwagi odnośnie ssServer'a i ssClient'a,
oraz wasze konfiguracje i rozwiązania.
by _KaszpiR_
----------------------------------------------------------------------------------------------------
8. Changelog
----------------------------------------------------------------------------------------------------
0.3
- poprawiłem część tekstu, szczególnie zakończenie.
- polskie znaki
- obrazek
0.2
- ten tutorial
- test na linuksie
0.1
- tłumaczenie .cfg _________________
![](http://hlds.pl/static/rs.php/300x70/fake.gif)
Ostatnio zmieniony przez _KaszpiR_ dnia Wto Paź 25, 2005 9:31 pm, w całości zmieniany 1 raz |
|