Rcon
Spis treści |
Opis
Ten artykuł jest niepełny i wymaga uzupełnienia. Jeżeli jesteś w stanie - postaraj się go uzupełnić.. Pamiętaj, że nawet najmniejsza zmiana jest cenna i pomocna :) |
Co to jest rcon?
Nazwa rcon jest skrótem słów remote console i oznacza konsolę zdalną, podobną do takiej jaką masz w grze Half-Life, jednakże bez auto uzupełnienia (jak naciśniesz tab to ci nie uzupełni początku komendy do rozpoznawalnej nazwy, przynajmniej tak było w Counter-Strike 1.6
Do czego służy rcon?
Rcon służy do zdalnej administracji serwerem gry, np Half-Life, czyli HLDS, albo gry Source czyli SRCDS, ale jest też spotykany w większości gier FPP, takich jak Quake 3, Unreal Tournament itd. Moze to byc serwer na lanie (tzn Listen Server) czy też najczęściej serwer dedykowany Dedicated Server albo serwer HLTV, czy innej, podobnej usługi, np w QW serwer Proxy.
Jak to skonfigurowac na serwerze?
Aby dostęp do rcon'a był możliwy serwer musi mieć zdefiniowaną zmienną, najczęściej rcon_password np dla serwerów HLDS mamy
rcon_password "TwojeUlubioneHaslo"
Najlepiej w linii startowej hlds jest umieścić rcon_password np
hlds_run -ip 123.45.67.89 -port 27015 +exec server.cfg +map de_dust +rcon_password "zupa_jarzynowa"
Można także w pliku konfiguracyjnym takim jak server.cfg (czy listenserver.cfg) - tam po prostu dodajemy kolejną linijkę typu:
rcon_password "zupa_jarzynowa"
ale odradzamy to rozwiązanie z przyczyn bezpieczeństwa.
Rcon może być także ładowany z bazy danych SQL jeśli mamy odpowiedni plugin do AMX Moda (czy inne narzędzie do komunikacji z bazą danych pod serwer gry).
Hasło może być dowolne ale radze ustawić w miarę długie, nie może zawierać znaków zakazanych przez silnik gry - czyli żadnych polskich itp, najlepiej pisać prostymi literkami.
Najlepiej aby rcon_password był unikalny na serwer, szczególnie jak jest kilka serwerów na tym samym numerze ip ale na różnych portach.
Rcon jest bardzo potężną komendą - można nią zdziałać bardzo wiele. Osoby, które nie znają się na serwerze gry mogą tylko zaszkodzić na serwerze, jeśli będą bezmyślnie korzystać z komend i przestawiać zmienne. Jedynie wybrane zaufane osoby powinny mieć dostęp do rcon'a. Co więcej istnieją przypadki gdzie rcon nie powinien być kompletnie znany jedynie przez Head Admina w związku z innymi działającymi programami na serwerze gry (korzystającymi z rcon;a do komunikacji z serwerem, jego zmiana może spowodować, ze te aplikacje przestaną działać).
Wiele pluginów daje możliwość nadawania adminom prawa dostępu do rcon'a ale bez znajomości hasła rcon_password - np cm_rcon, amx_rcon, admin_rcon. Jednakże ma to swoje ograniczenia np działa to w jednym kierunku - serwer może otrzymać komendę od admina, ale czasem serwer nie zwraca nic do admina - np z potwierdzeniem o ustawieniu zmiennej itp.
Jak tego używać będąc w grze?
Musisz najpierw znać kilka rzeczy:
- rcon_address - ip serwera do którego chcesz się podłączyć rcon'em,
jeśli puste - domyślnie numer ip do którego jesteś podłączony aktualnie w czasie gry, inaczej trzeba podać
- rcon_port - port serwera do którego się chcesz podłączyć rconem,
jeśli puste domyślnie port na którym jesteś podłączony do serwera gry, inaczej trzeba wpisać. trzeba uważać jak jest klika serwerów na tym samym numerze ip ale na rożnych portach - lepiej precyzować port często wtedy serwery są na tym samym ip ale różnych portach i mają rożne hasła na serwery
- rcon_password - hasło do rcona, takie jakie jest na serwerze (patrz punkt 4.)
Przeważnie starczy, ze podczas gry znasz tylko rcon_password - bo reszta będzie uznawana za domyślna i będzie przypisana do aktualnie podłączanego serwera.
Podczas gry na danym serwerze do którego mamy rcon_password, w konsoli gracza (przeważnie u siebie) wpisujemy
rcon_password "zupa_jarzynowa"
Następnie należy się upewnić ze podane hasło jest prawidłowe - przeprowadzamy mały test
rcon say Test raz dwa trzy
powinien się pojawić w części chat na ekranie tekst wypowiedziany przez serwer (jako imię gracza będzie nazwa hostname serwera)
Jeśli to działa możemy śmiało operować rconem dalej. Jeśli nie to nie próbujmy na siłę bo zostaniemy zbanowani na serwerze! Trzeba się upewnić, ze mamy poprawny host, port, no i oczywiście hasło.
Komendy wstukiwane przy użyciu rcon'a sa dokładnie takie same jakbyśmy je wstukiwali bezpośrednio do konsoli serwera gry - jedyna różnica polega na tym ze trzeba dodać magiczne słowo rcon na początku. Jednakże nie wszystkie komendy w serwerze hlds są dostępne w serwerach listen albo z komend u klienta.
Komendy
Najczęściej używane komendy poprzez rcon dla serwera HLDS
- lista graczy (zobacz także SteamID)
rcon status rcon users
(users powinien chyba dzialc nawet bez rcon'a)
- restart rundy
rcon sv_restartround 1
- zmiana mapy
rcon changelevel de_dust
- zmiana mapy z wykopaniem graczy
rcon map de_dust
- zmiana zmiennych (przyklad trzech)
rcon mp_timelimit 0 rcon mp_winlimit 12 rcon hostname "Serwer zajety!" rcon sv_lan 1
- zmian hasla na serwerze np na mecz
rcon sv_password "haslo_na_cw"
- czyszczenie hasla na serwerze po meczu
rcon sv_password ""
- kopanie/banowanie (zobacz także SteamID)
wpisujemy
status
(albo users, zalezy od przyzwyczajenia) patrzymy na liste jaka sie pojawi w konsoli patrzymy na uid (unique id gracza) i steamid (ew zastap steamnid wonid'em)
i piszemy
rcon banid 1440 # uniqueid kick //ban z wykopem rcon writeid //zapisanie banow rcon writeip //zapisanie banow na ip
rcon banid 0.0 # uniqueid //permanent ban rcon kick # uid //wykopanie gracza
- gadanie
rcon say Nie biegac!!
Oczywiscie mozemy wykonac inne komendy dostepne, np z pluginow
rcon cm_say @g "Muahaha Wasz Pan Wrocil!" rcon amx_nextmap de_dust
Radze korzystac z programow typu HLSW ktore lepiej sie nadaja do zdalenej administracji serwerem via rcon
FAQ
Nie chce mi się pisać w konsoli, można podpisać pod klawisz komendy ?
A: Tak, tylko zanim naciśniesz klawisz upewnij się, że masz poprawnie wpisane rcon_password
przyklad
bind "[" "rcon say Restart !;rcon sv_restartround 3" bind "'" "rcon say GL & HF !;" bind "]" "rcon mp_timelimit 0;rcon mp_winlimit 12;rcon servercfgfile 'clanbase.cfg';rcon mapcyclefile ;rcon sv_password clanwar;rcon Ustawienia na mecz zaladowane;rcon exec clanbase.cfg;" bind "/" "rcon mp_winlimit 0;rcon servercfgfile 'server.cfg';rcon mapcyclefile 'mapcycle.txt';rcon sv_password ;rcon say Ustawienia normalne zaladowane;rcon exec server.cfg"
Ban
Mialem zbindowany klawisz na restart, pare razy wcisnalem a zapomnialem ze nie wpisalem hasla! Zbanowalo mnie i nie moge wejsc na serwer!!
A: Musisz sprawdzic swoje ip z którego grałeś albo łączyłeś sie rconem do serwera. Następnie musisz wykonac komendę
removeip writeip
Na przykład łączyłeś się z 192.169.10.2 to z innego numeru ip przez rcon albo bezpośrednio w konsoli serwera (na screenie) musisz wpisać
removeip 192.169.10.2 writeip
Ewentualnie jak to nie wchodzi w grę to wyłącz serwer i uruchom ponownie.
Zobacz także kopanie i banowanie.
Jak się zabezpieczyć przed przejęciem hasła do rcon'a?
A: Kilka metod:
- CS 1.5 - Zainstaluj update x.1.1.1e, natomiast na serwery typu listen nie ma i nie będzie łatki
- Steam - Do tej pory expolity istnieją na stare wersje (te sprzed 2006 roku)
Nie trzymaj rcon_password w pliku server.cfg (bo plik może być ściągnięty)
- sv_allowdownload 0
Jak używasz sv_downloadurl nie zamieszczaj tam plików konfiguracyjnych z aktualnie chodzącego serwera bez przejrzenia i wycięcia ważnych informacji.
Sposób, który nie zabezpiecza do końca możliwości ściągnięcia rcona, ale generalnie na kid-hackierów wystarczy:
- Haslo rcon'a trzymajcie w jakimś dziwnym pliku, typu: mam2leweN0gi.cfg
Niestety, pozostają jeszcze hasła adminów w plikach, których nazwy są ogólnie znane, ale to też można zmienić.
Kolejnym sposobem zabezpieczenia jest dodanie zmiennej rcon_password do linii poleceń odpalanego serwera.
Jak się zabezpieczyć przed złamaniem hasła do rcon'a ?
Na serwerze HLDS albo SRCDS w server.cfg wpisz:
sv_rcon_minfailures 2 // # of failures needed before ban // Liczba nie udanych prob potrzebnych do zbanowania sv_rcon_minfailuretime 600 // amount of time (seconds) failed rcon attempts must occur within for the ban to be applied sv_rcon_banpenalty 300 // minutes to ban. 300 = 5 hours. // Ile ma trwac czasu ban. 300 minut = 5 godzin. sv_rcon_maxfailures 3 // similar to sv_rcon_minfailures, except this setting doesn't rely on sv_rcon_minfailuretime. // Any IP address that fails 3 rcon authentications (during a server uptime session) will be banned for the banpenalty.
Dodatkowo odradzamy dawanie rcon'a osobom do których nie mamy pełnego zaufania, albo jeśli nie mamy możliwości wyłączenia serwera czy innego rodzaju kontroli nad nim.
Informacja pochodzi z Forum UnitedAdmins z sekcji Half-Life Support / HLDS.
Podziękowania
- Pawels
- vib