Olá pessoal hoje venho trazer para o Fórum um passo a passo de como montar um servidor completo na VPN da Google Cloud.
1- Criação de Maquina Virtual (Instância)
Já dentro do Google Cloud - Acesse o Menu Compute Engine e logo em seguida Instâncias de VMS, depois clique em CRIAR INSTÂNCIA.
1.1:
Será carregado uma página como esta:
1.2: Abrirá uma página de criação como a imagem abaixo:
Preenchimento dos Campos:
Nome: Coloque o nome que desejar para sua instancia.
Região: tenha em mente que quanto menor a distancia do ponto de acesso do usuário com o servidor menor será o delay e portanto menor o lag.
Tipo de Maquina: Estou utilizando uma com 2 vCPUS e 8 GB de RAM, o que é o mínimo para um servidor novo (11+).
Disco de Inicialização: Utilizaremos a imagem do Debian9 com um disco padrão de 10gb ssd ou hd (SSD melhora a velocidade de processamento de dados, consequentemente diminui a latência do servidor.
Escopo de Acesso: Permitir Acesso Completo a todas as APIs do Cloud
Firewall: Permitir Trafego HTTP e HTTPS
Clique em Criar.
Pronto a Instância Será Criada.
2 - Configuração de Rede e Domínio (Endereço de IP Externo, DNS e Firewall)
Acesse o serviço de REDE VPC e vá até o item Endereços IP Externos.
Passo 2.1 - Localize a instancia que esta com o Tipo de Endereço como Temporário.
2.1: Altere o tipo de Ip clicando sobre o nome Temporário, altere para Estático.
Passo 2.2 - Siga o Passo a Passo Para Liberação de Portas no Item Firewall
2.2: Acesse o menu Rede VPC, item Regras de Firewall e clique em Criar Regra de Firewall
Passo 2.3 - Dentro do painel de Firewall Crie as Seguintes Regras:
Após a criação das regras de entrada e saída as portas de rede estão abertas.
3 - Apontamento de Domínio e Configuração de DNS
3.1 Procure por Serviços de Rede, Cloud DNS e Clique em Criar Zona
Faça o preenchimento da Seguinte Forma:
Tipo de Zona: Particular (Ninguem que consultar seus dados terá acesso a eles, pública os dados são livres para consulta)
Nome da Zona: Coleque algo que facilite a identificação para você (Pode ser qualquer coisa, o nome você escolhe)
Nome do DNS: Coloque o nome do Domínio que você registrou, Exemplo (www.meuservidor.com.br)
Em Redes selecione a Default.
Clique em Criar.
Após crie as seguintes Zonas:
Zona: www. Dominio
Zona: .Dominio
E aponte ambas para o IP externo da Instância Criada Anteriormente.
Agora vá até seu provedor de Domínios e realize o apontamento de NameServer para os dois endereços destacados na imagem abaixo.
3.2 - Adicionar Conjunto de Registros DNS
Pronto Instância já esta criada, com IP estático, portas liberadas e domínio apontado.
4 - Configuração Interna do Servidor
Volte para sua instância (Compute Engine -> Instâncias de VMs)
4.1 - Acesso ao Terminal via SSH - Clique em SSH para acessar o terminal do servidor.
4.2 - Liberando acesso SSHD
Já Dentro do Terminal iremos alterar a senha do usuário ROOT.
Digite o seguinte comando
sudo su root
passwd root
Digite a senha do novo usuário e confirme (PS: ANOTE A SENHA!!)
Agora iremos liberar o acesso remoto via FTP, para tanto digite o seguinte comando no terminal:
nano /etc/ssh/sshd_config
Dentro do arquivo Localize e altere:
Antes:
PermitRootLogin no
PasswordAuthentication no
Depois:
PermitRootLogin yes
PasswordAuthentication yes
aperte Ctrl + X tecle Y para confirmar as alterações e Enter para salvar o arquivo.
Digite o comando abaixo para dar restart no serviço alterado.
service sshd restart
Realize o Download de algum softwar de FTP
Exemplos:
WinSCP: Download
FileZilla: Download
4.2.1 - Realize o acesso Direto da seguinte forma:
Protocolo de arquivo: SFTP
Host: Ip externo da instância
Porta: 22
Usuário: Root
Senha: "aquela que cadastro pelo terminal"
Clique em salvar e depois em login (Caso apareça alguma confirmação, apenas confirme)
Excelente, agora já temos acesso direto ao servidor.
Obs: O acesso via FTP permite a edição de arquivos e transferência de arquivos de maneira visual (sem a necessidade utilização do terminal).
4.3 Instalação de pacote Web ( MySQL-SERVER, Apache, PHP, PHPMyadmin)
Volte ao terminal, certifique-se de estar logado com o usuário root
Comando:
$ sudo su
Agora digite os seguintes comandos:
apt-get install apache2
apt-get install mysql-server php7.0-mysql
Nas confirmações sempre tecle "Y"
sudo mysql_install_db
sudo mysql_secure_installation
apt-get install php7.0 libapache2-mod-php7.0 php7.0-mcrypt
Quando solicitado para selecionar o Apache, utilize a tecla Espaço para marcar a caixa de seleção e após tecle Enter.
Agora iremos realizar uma alteração no arquivo dir.conf para tanto utilize o comando abaixo:
Citarnano /etc/apache2/mods-enabled/dir.conf
Substitua o conteúdo do arquivo com exceção da ultima linha para o conteúdo abaixo:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule>
Salve o arquivo: Ctrl + X; Y; Enter
Reinicie o serviço:
$ sudo service apache2 restart
Agora instalaremos o PHPMyadmin
$ apt-get install phpmyadmin
Será utilizado o mesmo processo, porém ao perguntar se deseja alterar a senha do root, marque "N" do restante tudo será "Y"
Pronto, Pacote Web Instalado com sucesso!
4.4 Configurando o PHPMyadmin
Faça login no MySQL, utilize da senha do root.
$ sudo mysql -u root
Criaremos o usuário de acesso, no caso 2 o usuário otserv e o usuário forgottenserver, o primeiro usuário pode ser editado conforme o seu gosto, o segundo é necessário, porém a senha pode ser alterada de "123456" para qualquer outra.
CREATE USER 'otserv'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'otserv'@'localhost';
FLUSH PRIVILEGES;
CREATE USER 'forgottenserver'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'forgottenserver'@'localhost';
FLUSH PRIVILEGES;
$ exit
Pronto Usuário Configurados, para ter acesso ao PHPMyadmin, digite na barra de endereço o ip externo da instância seguido por /phpmyadmin. Exemplo: http://35.247.219.73/phpmyadmin
4.5 Compilando uma distro em Debian9
Primeiro atualize o sistema e instale as bibliotecas:
$ apt-get update && apt-get upgrade
$ apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmariadbclient-dev libboost-system-dev libboost-iostreams-dev libpugixml-dev libcrypto++-dev
Escolha um Distro de sua preferencia, utilizaremos a seguinte:
Ombra - Pack 10x +11
Para fazer o download digite em seu terminal os seguintes comandos:
$ wget https://gitlab.com/otbr/ombra-pack10x/-/archive/master/ombra-pack10x-master.zip
Depois de finalizado descompacte o arquivo:
$ Unzip ombra-pack10x-master.zip
Acesse a pasta da distro com o comando:
$ cd ombra-pack10x-master
Agora que já estamos dentro da distro iremos realizar a compilação (Esse processo pode demorar um pouco...):
$ mkdir build && cd build && cmake .. && make
$ mv tfs cd ../
$ cd ../
Pronto Servidor compilado em Debian9
4.6 Instalando um Website
Vá para o terminal e localize a para a pasta HTML
/var/www/html
$ cd /var/www/html
Remova todo o conteúdo dela:
$ rm -rf /var/www/html/*
Agora faça o download de alguma Gesior, utilizaremos a versão a seguir:
Gesior THe Ral Ferobra
Para realizar o download utilize o comando abaixo:
$ wget https://github.com/Riicksouzaa/TheRealGesiorFerobra/archive/master.zip
Descompacte o arquivo e mova o conteúdo:
$ Unzip master.zip
$ cd master
$ mv /master ../
$ cd ../
Agora acessaremos o Config.php
$ nano /var/www/html/config/config.php
Dentro do arquivo altere:
$config['site']['sqlHost'] = "127.0.0.1"; <-- Mantenha assim
$config['site']['sqlUser'] = "otserv"; <-- coloque o nome de usuário criado anteriormente
$config['site']['sqlPass'] = "123456"; <-- colque a senha cadastrada para o usuário também anteriormente
$config['site']['sqlBD'] = "tutorial"; <-- coloque o nome da database que foi cadastrada no PhpMyadmin
Ainda no mesmo arquivo localize o local de castro do arquivo config.lua e coloque o destino do arquivo.
Exemplo de caminho
$config['site']['serverPath'] = "/home/tutorialotserv/ombra-pack10x-master//";
Pronto agora salve o arquivo (Ctrl + x, Y + Enter)
Agora vamos configurar o arquivo Config.lua
$ cd /home/tutorialotserv/ombra-pack10x-master/
$ nano /home/tutorialotserv/ombra-pack10x-master/config.lua
Já dentro do Config.lua
Localize os campos abaixo:
-- Connection Config
-- NOTE: maxPlayers set to 0 means no limit
ip = "35.247.219.73" <-- altere para o endereço de IP externo da instância
-- MySQL
mysqlHost = "127.0.0.1" <-- mantenha este padrão
mysqlUser = "otserv" <-- coloque o mesmo usuário do arquivo config.php
mysqlPass = "123456" <-- coloque a mesma senha do arquivo config.php
mysqlDatabase = "tutorialotserv" coloque a mesma database do arquivo config.php
Salve o arquivo (Ctrl + X, Y + Enter)
Copie o arquivo login.php para a pasta do site utilizando o comando abaixo:
$ cp /home/tutorialotserv/ombra-pack10x-master/login.php /var/www/html/
Pronto Servidor e WebSite Pronto.
5 - Instalação de protocolo HTTPS / Certificado Digital SSL
Ainda dentro do terminal utilize o seguinte comando:
$ sudo apt-get install python-certbot-apache -t stretch-backports
$ sudo certbot --apache
Marque o Redirecionamento HTTPs automático
$ sudo certbot -a dns-plugin -i apache -d "*.example.com" -d example.com --server https://acme-v02.api.letsencrypt.org/directory
Substitua .example.com pelo seu dominio ficando assim:
$ sudo certbot -a dns-plugin -i apache -d "*.tutorialotserv.ml" -d www.tutorialotserv.ml --server https://acme-v02.api.letsencrypt.org/directory
E para Renovação automática do certificado de forma totalmente gratuita utilize:
$ sudo certbot renew --dry-run
Pronto Servidor, Domínio e SSL configurados com sucesso!
Para ligar o servidor utilize o comando:
Ainda dentro do terminal utilize o seguinte comando:
$ sudo apt-get install python-certbot-apache -t stretch-backports
$ sudo certbot --apache
Marque o Redirecionamento HTTPs automático
$ sudo certbot -a dns-plugin -i apache -d "*.example.com" -d example.com --server https://acme-v02.api.letsencrypt.org/directory
Substitua .example.com pelo seu dominio ficando assim:
$ sudo certbot -a dns-plugin -i apache -d "*.tutorialotserv.ml" -d www.tutorialotserv.ml --server https://acme-v02.api.letsencrypt.org/directory
E para Renovação automática do certificado de forma totalmente gratuita utilize:
$ sudo certbot renew --dry-run
Pronto Servidor, Domínio e SSL configurados com sucesso!
Funciona em versões 11+ e 10-
Se te ajudei deixa um comentário e um +REP