Linux cs source установка

ramer

статью пишу для себя (в первую очередь), для друзей, которые интересуются, и для сочувствующих it-шников.

1. установка.
2. настройка.
3. безопасность.
4. моды.
5. возможные траблшуты.

1. установка.

1.1. создаём директорию для игры и заходим в неё:
# mkdir hlds
# cd hlds

1.2. скачиваем с официального сервера Steam бинарник для установки игры (~3.4 Mb):
# wget http://storefront.steampowered.com/download/hldsupdatetool.bin

1.3. даём скачанному файлу hldsupdatetool.bin права на запуск и запускаем его:
# chmod +x hldsupdatetool.bin
# ./hldsupdatetool.bin

1.4. соглашаемся в вывалившимся лицензионным соглашением:
yes

1.5. появилось два файла: steam и readme.txt. файлу steam даём права на запуск и запускаем его на обновление:
# chmod +x steam
# ./steam -command update

1.6. после обновления steam (несколько минут) мы начинаем закачивать файлы дистрибутива CS:Source (~1.01 Gb). это уже на долго:
# ./steam -command update -game «Counter-Strike Source» -dir .

2. настройка.

2.1. в файле server.cfg содержатся все настройки по работе сервера. по-умолчанию этот файл отсутствует. можно написать самому ручками или воспользоваться виндовой утилитой SRCDS CFG Creator.

если ручками, то примерно так:
# nano -w /hlds/cstrike/cfg/server.cfg
содержимое файла server.cfg:
// server name
hostname «название сервера»

// rcon passsword
rcon_password «пароль»

sv_rcon_maxfailures 10
sv_rcon_minfailures 5
sv_rcon_minfailuretime 30
mp_friendlyfire 0
mp_footsteps 1
mp_autoteambalance 1
mp_autokick 0
mp_flashlight 1
mp_tkpunish 1
mp_forcecamera 0
sv_alltalk 0
sv_pausable 1
sv_consistency 1
sv_cheats 0
sv_allowupload 1
sv_allowdownload 1
sv_maxspeed 320
mp_limitteams 2
mp_hostagepenalty 5
sv_voiceenable 1
mp_allowspectators 1
mp_timelimit 15
mp_chattime 2
sv_timeout 65

// round specific cvars
mp_freezetime 6
mp_roundtime 5
mp_startmoney 800
mp_c4timer 45
mp_fraglimit 0
mp_maxrounds 0
mp_winlimit 0
mp_playerid 0
mp_spawnprotectiontime 5

// bandwidth rates/settings
sv_minrate 0
sv_maxrate 0
decalfrequency 10
sv_maxupdaterate 60
sv_minupdaterate 10
log on
sv_logbans 0
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
sv_lan 0
sv_region 3
sv_contact ramer@jabber.ru
bot_quota 6
bot_quota_mode normal
bot_difficulty 1
bot_chatter normal
bot_auto_follow 1
bot_auto_vacate 1
bot_join_after_player 1
bot_defer_to_human 0
bot_allow_rogues 0
bot_walk 0
bot_join_team any
bot_eco_limit 2000
bot_all_weapons
bot_allow_grenades 1
bot_allow_pistols 1
bot_allow_sub_machine_guns 1
bot_allow_shotguns 1
bot_allow_rifles 1
bot_allow_snipers 1
bot_allow_machine_guns 1

// execute ban files
exec banned_user.cfg
exec banned_ip.cfg

2.2. создадим скрипт для более удобного запуска сервера игры:
# nano -w cs-s.sh
содержимое скрипта:
#!/bin/bash
cd /hlds
./srcds_run -autoupdate -game cstrike +maxplayers 16 +map de_dust

3. безопасность.

для предотвращения проникновения на сервер посторонних лиц, запускать игру будем не от рута, а от обычного пользователя с максимально ограниченными правами.

3.1. создадим пользователя и назначим пароль на вход в систему:
# useradd css1
# passwd css1

3.2. теперь создадим на «нейтральной территории» папку для скрипта на запуск нашего боевого игрового сервера, например в папке /home.
# cd /home
# mkdir games
# cd games
# mkdir cs-s

Читайте также:  Гта сан андреас linux

3.3. скопируем скрипт на запуск игры в нашу «безопасную» папку:
# cp /hlds/cs-s.sh /home/games/cs-s/cs-s.sh

3.4. дадим права на запуск скрипта:
# cd /home/games/cs-s
# chmod +x cs-s.sh

3.4. теперь отредактируем файл с правами /etc/sudoers, чтобы пользователь css1 ничего, кроме игрового сервера, запускать не мог. лучше всего для этого использовать visudo:
# visudo
содержимое файла sudoers
User_Alias STANDART_USERS = css1
# This file MUST be edited with the ‘visudo’ command as root.
#
# See the man page for details on how to write a sudoers file.
#
Cmnd_Alias MUSTBE = /home/games/cs-s/cs-s.sh
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
STANDART_USERS ALL = MUSTBE
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

[обратите внимание, что эта штука чертовски чувствительна к пробелам]

3.5. попробуем запустить игровой сервер от имени пользователя css1:
# login css1
$ cd /home/games/cs-s
$ sudo ./cs-s.sh

если всё гуд, то вы увидите лог загружающегося сервера.

3.6. в консоли запущенного сервера можно использовать команды:
version — версия сервера
stats — статистика игры (фпс, юзеры, аптайм. )
status — информация о сервере (ip, порт, хостнэйм, карта. )
exit — выход (рестарт сервера)
killserver — выключение сервера

4. metamod, sourcemod, моды, плагины

чтобы разнообразить игру, сделать её интересней и необычней, а также добавить админку (раз уж сервер ваш, то надо и быть на нём главным со всеми правами), надо ставить моды и плагины.
для начала необходимо поставить metamod. он позволяет запускать несколько модификаций для сервера, в том числе и sourcemod.
sourcemode, главным образом, предназначен для облегчения жизни админам сервера. это удобный, простой, и, вместе с тем, мощный инструмент. всем известная плюшка с наказаниями тимкиллеров всеми возможными способами, включая поджигание или превращение в ходячую бомбу, есть плагин к сурсмоду. конечно, только этим дело не ограничивается, в вашем распоряжении просто уйма стандартных команд и действий. более удобный кик, бан (чем встроенные, в которых вам нужно либо полностью указать ник игрока, либо его ID). вы также можете управлять правами доступа к серверу как различных игроков, так и целых кланов, объединенных одним тегом. создание плагинов является не очень сложной задачей, можно использовать как встроенный скриптовый язык, так и С++.

Читайте также:  Linux open console hotkey

4.1. ставим sourcemod. на момент написания поста версия была 1.2.4 (скачать). также вам понадобится скачать MetaMod. все эти разработки являются Open-Source и выпускаются под GPL.

4.2. настраиваем для работы. для начала надо настроить MetaMod. распаковывайте архив в папку с сервером, каталог /cstrike.
например, у меня это /opt/server/cs-s/cstrike.
должна появиться папка addons. в неё мы должны поместить файл metamod.vdf, сгенерированный на этой странице.
проделав данные манипуляции, запустим сервер и введем команду meta version, чтобы убедиться, что все сделано правильно.

если всё правильно сделали, вы увидите примерно это:
] meta version
Metamod:Source version 1.7.1
Build ID: 644:f526469efdeb
Loaded As: Valve Server Plugin
Compiled on: Feb 25 2009
Plugin interface version: 10:7
SourceHook version: 4:3
http://www.metamodsource.net/

теперь переходим непосредственно к SourceMod’y. распаковываем в ту же папку, перезапускаем сервер, пишем команду sm version.

если всё правильно сделали, вы увидите примерно это:
] sm version
SourceMod Version Information:
SourceMod Version: 1.2.1
SourcePawn Engine: SourcePawn 1.1, jit-x86 (build 1.2.1)
SourcePawn API: v1 = 4, v2 = 3
Compiled on: May 30 2009 23:59:05
Build ID: 2708:69195a250d70
http://www.sourcemod.net/

4.3. окончательная настройка.
сервер работает, метамод подключен, сурсмод тоже, осталось самое главное — настроить всё это добро под себя и свой сервер.

4.3.1. добавляем админа.
cервером должен кто-то управлять, верно? базовое средство для этого (через rcon) не очень удобно. SourceMod предоставляет следующую схему администрирования и выдачи прав игрокам: вы можете связать определенный набор прав на всевозможные стандартные действия либо с ником игрока (тогда ему придется завести пароль), либо с IP-адресом машины, либо со SteamID нужного нам человека.
для этого необходимо подредактировать файл admins_simple.ini по адресу /cstrike/addons/sourcemod/configs.
на мой взгляд, самым удобным и надёжным является привязка к SteamID (стимайди — ваш уникальный идентификатор в системе стим, узнать его можно открыв в игре консоль и выполнив команду status; это запись вида STEAM_0:1:1234567).
в этот файл (admins_simple.ini) каждый администратор задается отдельной строчкой.

добавьте себя:
# nano -w admins_simple.ini
«ВАШ_SteamID» «99:z»

здесь первое поле — ваш идентификатор (стимайди, айпи, ник), второе поле — уровень иммунитета и права. данная запись означает, что вы обладаете всеми правами (флаг z) и ваш иммунитет = 99. иммунитет — число, эдакая система иерархии между админами. люди с меньшим иммунитетом, чем у вас, не смогут с вами ничего сделать.

Читайте также:  Linux update java version

примеры строк:
«STEAM_0:1:16» «bce» // основные права, кик, разбан, иммунитета нет
«!127.0.0.1» «5:z» // полный доступ по ip, иммунитет = 5
«BAILOPAN» «abc» «Gab3n» // ник BAILOPAN, пароль»Gab3n»: резервация слота, базовые команды + кик

все возможные флаги доступа:
Описание Флаг Назначение (право на. )
reservation. a. Доступ к резервным слотам.
generic. b. Базовый уровень доступа; обязателен для админов.
kick. c. Кик игроков (выброс с сервера).
ban. d. Бан игроков (запрещение доступа к серверу)
unban. e. Снятие банов.
slay. f. Убить или ранить игроков.
changemap. g. Смена карты
cvar. h. Изменение серверных переменных.
config. i. Выполнять произвольные конфиги на сервере.
chat. j. Доп. действия с чатом.
vote. k. Устраивать голосования и управлять ими.
password. l. Установка пароля на сервер.
rcon. m. Использование команд rcon.
cheats. n. Менять значение sv_cheats и выполнять другие читерские команды.
root. z. Включает все флаги, перечисленные выше ( = полный доступ).

настройки резервации слотов:
sm_reserve_type 0|1|2
0: резервные слоты могут быть заняты только админами и только после заполнения всех свободных слотов. игрок в резервном слоте не может быть автоматически кикнут. при заполнении запасных мест сервер становится полным и для админов, и они тоже не могут приконнектиться. таким образом, на сервер всегда может зайти по крайней мере 1 админ.
1: если кто-то с доступом к резервным слотом пытается зайти на сервер и при этом все свободные слоты заполнены, то кикается игрок либо с самым высоким пингом, либо с самым долгим временем игры, либо случайно. таким образом, резервные слоты практически всегда пустуют, за исключением ситуации, при который сервер забит админами. используйте, если хотите, чтобы определенные люди всегда могли зайти на сервер.
2: аналогично 1, но с ограничением числа админов. как только оно достигнуто, сервер перестает кикать игроков для освобождения слотов и присоединиться к игре может любой.

sm_reserve_slots # количество зарезервированных слотов.

sm_hide_slots 0|1 скрывать или нет резервные слоты в окне поиска серверов. при установленной в 1 опции сервер на 24 человека, из которых 2 места зарезервированы в браузере будет показано, что сервер рассчитан на 22 человека.

sm_reserve_maxadmins # Максимальное число админов на сервере при sm_reserve_type = 2

sm_reserve_kicktype 0|1|2
0: кикается игрок с самым высоким пингом
1: дольше всего находящийся на сервере
2: случайным образом

Источник

Оцените статью
Adblock
detector