Configurando um servidor de modificação do Garry

Você está aqui:
Tempo estimado de leitura: 7 min

As instruções são projetadas para o Ubuntu 14.04 32 bit, mas devem funcionar em todas as versões do Ubuntu. Este tutorial vai te ensinar como criar um servidor de jogo Garry’s Mod.

Faça o login através do terminal como root.

Em primeiro lugar, precisamos garantir que o firewall seja seguro para reduzir as chances de um problema de segurança. Assumindo que este servidor será dedicado ao Garry’s Mod, é seguro bloquear absolutamente todas as portas de entrada (incluindo ICMP) além das necessárias para o Garry’s Mod. O ICMP não é necessário para a operação do servidor, e bloqueá-lo completamente não terá nenhum efeito negativo no Garry’s Mod, no entanto, ele ajudará a reduzir os vetores de ataque de um ataque DDoS.

Para bloquear todas as portas não necessárias, os seguintes comandos são necessários:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP

Isso basicamente diz ao firewall para ignorar todos os pacotes ICMP que ele recebe e não toma nenhuma ação nele. Isso também significa que, se alguém tentar fazer ping no servidor, ele não receberá resposta. A segunda linha diz ao firewall para bloquear todos os pacotes ICMP de saída, isso é muito menos importante, mas apenas o dobro garante que não haverá nenhuma comunicação ICMP acontecendo.

Em seguida, precisamos especificamente permitir todas as portas necessárias para o Garry’s Mod (27005 – 27015 inclusive) com estes comandos:

iptables -I INPUT -p tcp --dport 27005:27015 -j ACCEPT
iptables -I INPUT -p udp --dport 27005:27015 -j ACCEPT

Isso diz que qualquer coisa nas portas entre 27005 e 27015 é permitida. O primeiro comando é para o TCP e o segundo é para o UDP. O segundo comando (UDP) é o mais importante aqui, pois quase toda a comunicação entre o servidor e os jogadores é feita com o UDP. Algumas pessoas relataram problemas com o TCP bloqueado, então, por essa razão, devemos permiti-lo.

Agora queremos dizer ao firewall para permitir conexões que nós mesmos abrimos (ou o software no servidor tem). Isso significa que, se entrarmos em contato com um servidor, poderemos ver uma resposta. Digite este comando para permitir isso:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Se você estiver usando o SSH para controlar seu servidor (em vez de usar o console em sua conta), esse comando é necessário para permitir que o SSH funcione na porta padrão. Se você não estiver usando o SSH, não execute isto:

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

E finalmente, o último comando para configurar o firewall. Este comando irá bloquear todas as conexões de entrada além das permitidas:

iptables -A INPUT -j REJECT

Essas configurações são aplicadas somente até que reinicie nosso servidor, o que significa que precisaremos reconfigurá-lo manualmente toda vez que o computador for reinicializado. Isso não é aceitável, portanto, há um pacote para instalar que salva as regras de firewall em um arquivo e, em seguida, carrega todas as vezes que o servidor é inicializado. Para instalar este pacote, digite o seguinte:

apt-get install iptables-persistent

Siga as instruções na tela. Quando perguntado se você deseja salvar as regras atuais do firewall, pressione sim.

Agora nosso firewall está configurado e nenhuma configuração a mais deve ser necessária em relação ao firewall.

Se você estiver usando o SSH, há um pacote que você deve instalar que bloqueará automaticamente a conexão das pessoas ao servidor se elas continuarem tentando a senha SSH incorreta. Isso é muito útil para evitar que sua senha do SSH seja forçada a bruta ”. Para instalar o pacote, use o seguinte comando:

apt-get install fail2ban

O Fail2ban já está configurado para bloquear o acesso das pessoas depois de algumas tentativas falhadas de senha, por isso não precisamos configurá-lo. Agora seu servidor é significativamente mais seguro do que quando começamos.

Em seguida, precisamos instalar a “tela”. Isso basicamente permite que você execute comandos continuamente, mesmo se você sair do servidor. Isso é vital para manter seu servidor Garry’s Mod em execução continuamente por longos períodos de tempo, especialmente quando você está controlando o servidor com o SSH. Para instalar a “tela”, digite o seguinte:

apt-get install screen

Após a conclusão da instalação, execute este comando:

screen

Um aviso legal será exibido na tela, basta pressionar enter para continuar. Digitando screenna tela de inicialização do console e permite que você trabalhe dentro de um console virtual, se você se desconectar do SSH, ou logout, este console virtual continuará rodando com seu comando na lateral dele (o servidor Garry’s Mod é executado como um comando Linux, então é aqui que precisamos usar a tela).

Agora, antes de instalar o Steam, o Garry’s Mod e os arquivos necessários, precisamos de uma conta dedicada a ele. Eu sugiro chamá-lo steam. Para criar uma nova conta, digite o seguinte:

adduser steam

Você precisa usar uma senha diferente da senha do root para manter tudo seguro. Você raramente usará essa senha. Serão feitas algumas perguntas sobre a conta, como nome completo, número de telefone, etc. Deixe todas em branco.

Agora queremos estar logados na conta “steam” enquanto baixamos todos os arquivos necessários. Isso significa que “vapor” obtém toda a propriedade desses arquivos e que as permissões do Linux estão definidas corretamente sem nenhuma configuração. É muito mais difícil obter as permissões corretas se você instalar o Steam como root e tentar alterar essas permissões. Para efetuar login como vapor, digite o seguinte:

su steam

Precisamos de um diretório (pasta) para salvar o software Steam. Para criar o diretório, use este comando:

mkdir ~/Steam

Agora, queremos estar dentro desse diretório. Para torná-lo seu diretório de trabalho atual, digite o seguinte:

cd ~/Steam

Agora precisamos baixar o software Steam digitando:

wget http://media.steampowered.com/client/steamcmd_linux.tar.gz

Agora precisamos descompactar e instalar, com o seguinte:

tar -xvzf steamcmd_linux.tar.gz

Se você estiver usando um sistema operacional de 64 bits, precisará instalar bibliotecas de 32 bits para executar o Steam.

apt-get install lib32stdc++6
apt-get install lib32gcc1

Execute o seguinte comando para abrir o Steam, diga para ele se logar como “anônimo” (uma conta Steam que qualquer um pode usar para baixar software livre de seus servidores) e diga para instalar o servidor Garry’s Mod na pasta gmodds (armazenado em diretório base da conta do Steam).

./steamcmd.sh +login anonymous +force_install_dir ../gmodds +app_update 4020 validate +quit

Podemos esperar que esse comando dure muito tempo, mas podemos observar o progresso dele. É possível que este comando falhe, os servidores do Steam muitas vezes têm pequenas dificuldades que fazem com que um download falhe (ou não comece de todo). Se isso acontecer, basta iniciá-lo novamente.

Uma vez que este comando esteja completo, teremos uma cópia de trabalho do servidor Garry’s Mod, no entanto, a maioria do conteúdo do Garry Mod requer que o CounterStrike: Source (CS: S para abreviar) seja instalado. Para instalar o CS: S, execute o seguinte comando:

./steamcmd.sh +login anonymous +force_install_dir ../cssds +app_update 232330 validate +quit

Este comando também demorará um pouco.

Uma vez que Garry’s Mod e CounterStrike estão instalados, eles precisam estar ligados usando um arquivo de configuração. Para fazer isso, precisamos editar o seguinte arquivo com este comando:

nano /home/steam/gmodds/garrysmod/cfg/mount.cfg

Na linha que contém “cstrike”, precisamos remover as duas barras (//) no início da linha e, em seguida, substituir a parte inteira do caminho da linha (começa com C:/). Essa parte da linha precisa ser substituída por:

/home/steam/cssds/cstrike

A linha inteira deve agora ficar assim:

"cstrike"       "/home/steam/cssds/cstrike"

Deve haver um espaço de tabulação no início antes da palavra cstrike e a linha não deve conter uma barra dupla (//) em qualquer lugar. Uma vez feito isso, você pode salvar este arquivo com Ctrl + X e Y. Isso diz ao Garry’s Mod onde encontrar CounterStrike para que ele possa ser usado.

Agora temos um servidor Garry’s Mod básico instalado. Para executá-lo, verifique se estamos no diretório correto com este comando:

cd /home/steam/gmodds/

Em seguida, execute o seguinte comando:

./srcds_run -game garrysmod +gamemode terrortown +maxplayers 16 +map cs_office

Uma vez iniciado, você poderá entrar digitando o seguinte no Console de Mod do Garry (NÃO no terminal do servidor):

connect IP_ADDRESS

Substitua IP_ADDRESSpelo endereço IP do servidor. Se você não souber o seu endereço IP, digitar o seguinte no terminal do servidor informará o que é:

url -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

Se você quiser alterar o número de jogadores permitidos em seu servidor, pare o servidor fazendo Ctrl + C e faça o comando start novamente, mas substitua maxplayers 16por maxplayers x(mude xpara o número de jogadores que você quer). Para alterar o mapa padrão (o primeiro mapa que é reproduzido), substitua cs_officepelo nome do mapa desejado. E finalmente, para mudar o modo de jogo, substitua terrortownpelo modo de jogo desejado. O Garry’s Mod só vem com terrortown(Short for Trouble in Terrorist Town) e Sandbox por padrão.

Para configurar ainda mais o servidor, existe um arquivo de configuração que pode ser editado. Cada linha neste arquivo é chamada de variável de configuração (cVar). Execute este comando para editar o arquivo:

nano /home/steam/gmodds/garrysmod/cfg/server.cfg

Os seguintes valores podem ser alterados, explicarei o que cada um faz em breve:

hostname "server name"
sv_downloadurl "http://example.com/files/"
sv_allowupload 1
sv_password "secret password"
sv_timeout 60

Alterar o valor do nome do host permite alterar o nome do seu servidor. Ele será chamado de “Garry’s Mod”, a menos que você o altere. Por exemplo, isso irá chamar seu servidor “My cool server”:

hostname "My cool server"

Você pode adicionar quantas variáveis ao arquivo quiser, cada nova variável precisa de uma nova linha.

sv_downloadurlvariável permite escolher de onde o conteúdo do servidor personalizado é baixado. Conteúdo personalizado inclui mapas mod, sons, addons e texturas de Garry. Por padrão, o Garry’s Mod permitirá que os dados sejam baixados do seu servidor a uma taxa extremamente lenta, e é por isso que precisamos fornecer um URL onde os dados possam ser baixados a toda velocidade. A URL que você fornece precisa ser um clone da sua pasta “garrysmod” para que todos os arquivos estejam disponíveis.

sv_allowuploadpode ter duas opções, 0 ou 1, isso especifica se você deseja permitir que as pessoas carreguem conteúdo para o servidor. Isso é usado apenas para sprays (gráficos que os jogadores podem borrifar nas paredes) e podem causar um problema de segurança. Geralmente, os sprays são solicitados, portanto, usar “1” deixará os jogadores felizes, mas “0” manterá seu servidor mais seguro.

sv passwordpermite que você escolha uma senha para o seu servidor. Sempre que alguém se inscrever, será solicitada a senha e ela não poderá participar se não a tiver.

sv_timeouté a quantidade de tempo em segundos que você deseja que o servidor aguarde antes de chutar alguém que perdeu a conexão. O servidor irá esperar automaticamente por eles para obter sua conexão de volta, mas enquanto isso está acontecendo, o jogador parecerá estar parado. É melhor ter isso em 60 segundos ou menos. Depois de alterar essas configurações, é necessário reiniciar o servidor.

Os addons também podem ser instalados para fornecer recursos adicionais ao jogo. Alguns addons precisam ser instalados de uma maneira específica, então você deve sempre ler as instruções no site deles, mas é assim que você baixaria e instalaria a maioria dos addons:

cd /home/steam/gmodds/garrysmod/addons/
wget http://example.com/addon.zip
unzip addon.zip

Substitua http://example.com/addon.zippela URL de onde o addon está localizado. Você também precisará mudar addon.zippara o nome do arquivo zip do addon. Agora o addon foi baixado e descompactado, você pode excluir o arquivo zip para economizar espaço, assim:

rm addon.zip

Novamente, substitua addon.zippelo nome real do arquivo zip.

Se o servidor estiver em execução no momento, será necessário reiniciá-lo com Ctrl + C e emitir novamente o comando start. Você pode pressionar a seta para cima no teclado para inserir automaticamente o último comando que você executou.

Se você perder sua conexão SSH, quando você se reconectar, precisará emitir o screen -r command, o que permite retomar a partir de onde você estava (o console do jogo).

Esse artigo foi útil?
Não Gostei 0
Visualizações: 636

Ainda não Têm uma Conta?

Então Cadastre-se

Nome de Usuário*
E-mail*
Senha*
Confirmar Senha*

Já têm Uma Conta? Click Aqui.

Já tem uma Conta?

Ainda não tem Conta?