Configuração de um VPS no Google Cloud

Parte 1 – Criação da Instância

escrevo depois

Parte 2 – Configuração da Instância

Nesse ponto, quando o Google disser “OK”, o que nós temos? Uma instãncia Linux já executando, mas sem nada de útil ainda. A primeira coisa que precisamos é torná-la pública, através da vinculação de um IP externo estático, através do qual vamos acessá-la, primeiro por SSH, depois pelos serviços que ela vier a presta (site, por exemplo). Claro, você pode fazer toda a configuração sem o IP externo, usando o cliente SSH do próprio Google Cloud ou mesmo acessando pelo IP temporário que ele atribui a toda máquina. mas o IP estático tem lá suas vantagens, e a primeira delas tem a ver com DNS, sendo muito mais prático atribuir um domínio ao IP e vice-versa.

A segunda coisa que precisamos fazer é nos dar acesso ao servidor. A máquina já vem com um usuário “ubuntu” padrão, e o Google Cloud ainda cria um segundo usuário com o nome da conta Google, que ele usa para os acessos SSH via sua interface (console fornecido pelo Cloud). O que eu recomendo fazer é, se você usa Linux como máquina de trabalho, pegar a sua chave pessoal pública em ~/.ssh/id_rsa.pub e incluí-la na lista de chaves permitidas. Isso vai liberar o acesso à sua máquina com o seu nome de usuário local (é possível ajustar, caso precise, desde que antes de confirmar). Todos os usuários criados até agora são super-administradores (poder de sudo). Mais usuários podem ser criados e gerenciados pelo Linux normalmente. Lembrando que por default o SSH da instância não permite acesso por senha, somente por Chave Pública (liberar é possível, mas reduz a segurança do sistema).

A terceira coisa a se fazer é atualizar o sistema. Isso pode ser feito com um único mega-comando, no caso abaixo pensando numa pilha LAMP básica sem muita frescura:

sudo add-apt-repository ppa:certbot/certbot -y && sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y language-pack-pt && sudo locale-gen && sudo dpkg-reconfigure tzdata && sudo apt-get install -y apache2 php mysql-server mysql-client php-cli php-gd phpmyadmin software-properties-common python-certbot-apache ssh vim zip unzip rar unrar wget curl nmap git subversion libapache2-mod-php php-mcrypt php-mysqlnd molly-guard

Alguns pontos sobre o comando acima:

  • CertBOT é o gerador automático e gratuito de certificados SSL. Para o Ubuntu a melhor forma de instalar é via um repositório PPA, que é seguro.
  • Atualizar a lista de pacotes e atualizar os existentes é um primeiro passo bem sensato.
  • Instalar o idioma português e configurar o fuso-horário do servidor, além de facilitar nosso uso, ainda elimina algumas possíveis mensagens chatas e confusões mais tarde.
  • A lista de programas inclui Apache (2.4) com PHP (7.0), MySQL (5.6), phpMyAdmin, versionadores de código e alguns utilitários que de vez em quando são úteis.
  • No processo, você deverá responder algumas perguntas, incluindo seu fuso-horário, senha de root para o MySQL, e configuração do phpMyAdmin, entre outros possivelmente.

Tem um passo nessa hora que eu gosto de executar, embora não afete em nada o servidor, mas facilita (pra mim) o uso dele. Editando o arquivo ~/.bash_profile podemos configurar um prompt colorido e talvez mais informativo, além de definir alguns atalhos úteis. Pode ser feito a nível de sistema via /etc/profile.d também, se quiser aplicar a todos os usuários.

#!/bin/bash
alias dir=’/bin/ls -lahF –color=auto’
alias grep=’/bin/grep –exclude-dir=.svn –exclude-dir=.git –color=auto’
alias grepi=’/bin/grep –exclude-dir=.svn –exclude-dir=.git –color=auto -i’
alias ls=’/bin/ls –color=auto’
alias dir=’/bin/ls -lhF –color=auto’
alias rm=’/bin/rm -i’
alias cp=’/bin/cp -i’
alias mv=’/bin/mv -i’
export PS1=”\[\e[35m\]\u\[\e[m\]@\h:[\W]\$ “

Agora a configuração passa para os dados hospedados e especificidades de serviços. Vai variar conforme a função do servidor. Outras coisas comuns que podem ser feitas:

  • Definir a senha do root (sudo passwd), já que a padrão aleatória (gestão orientada à sudo). Recomendo a mesma do root do MySQL.
  • Definir a senha do seu usuário (sudo passwd `whoami`), pelo mesmo motivo
  • Esconder, restringir ou mudar o ponto de acesso do phpMyAdmin, para aumentar a segurança
  • Instalar PHP-FPM ou suphp se o servidor tiver sites de mais de um cliente

Uma recomendação legal é criar 1 arquivo de configuração do Apache para cada domínio que tem ligação com o servidor. Inclusive para domínios de simples redirecionamento, que podemos gerar com um script simples:

export from=”dominio.com.br”; export to=”https://www.dominio.com.br/”; echo -e “<VirtualHost *:80>\n\tServerName $from\n\tDocumentRoot /var/www/html\n\tRedirectPermanent / $to\n</VirtualHost>” > /tmp/tmpdom && sudo mv /tmp/tmpdom /etc/apache2/sites-available/$from.conf && sudo a2ensite $from && sudo apachectl configtest && sudo service apache2 reload && sudo certbot –apache -d $from

O último comando da sequência acima usa o CertBOT para gerar um SSL, sendo que na primeira vez que é executado ele pede um e-mail e aceitação dos termos de uso. Sendo redirecionamentos, ao final escolha a opção (1) para não redirecionar, assim o destino final é alcançado sem hops intermediários. Para configurar domínios de uso real, é melhor ver com a sua aplicação.

Reinstalando o Windows sem mídia e ativando legalmente

No último fim de semana meu amigo me entregou um notebook Dell Inspiron N4050 e pediu para eu ver o que estava acontecendo, já que ele não ligava nem a pau.

Primeira coisa que fiz foi ligar o note, óbvio, e solicitar um teste diagnóstico pré-boot, coisa que a Dell fornece em alguns modelos. O teste rodou por alguns minutos e não acusou nada demais (só alguma coisa com o drive óptico, mas deve ser porque não tinha disco lá, e também não me importei com isso). O hardware dizendo que estava tudo OK, fui ver a queixa propriamente dita. Liguei, apareceu o boot do Windows 10 (primeiro mau sinal), e em seguida, nada. A luzinha de disco acusou alguma atividade por uns minutos, imaginei que seria alguma atualização ou coisa do tipo… mas nada apareceria, mesmo quando parou.

A luzinha começou a brincar comigo: ela ficava parada, e se eu apertasse o botão Power ela piscava, uma vez para cada aperto… Ah! luzinha safada!

Como nada mais acontecia, parti para o Modo de Segurança. Sendo um notebook com HD tradicional, e não um Ultrabook SSD, eu ainda podia usar o Shift-F8 no boot, para ver as opções de recuperação do Windows. Entrei no Modo de Segurança básico e pareceu tudo OK. Mas também, não esperava nada diferente dele, já que minha suspeita era o driver de vídeo e no Modo de Segurança ele nem carrega.

Como meu amigo fez o favor de arrumar um Windows 10 Pro pirata em inglês e instalar por cima do original do Notebook (a etiquetinha dizia ser um Windows 7 Home Basic), inclusive matando as partições de recuperação, e ainda me disse que não tinha nenhum arquivo útil no disco, eu resolvi eliminar qualquer suspeita e resetar o Windows. Isso ele fez até bem, e fiquei com o Windows 10 Pro funcionando razoavelmente bem. Só que em inglês, um tanto lento, sem atualizações e com uma certeza de que dali a algum tempo ele iria perceber a ativação falsa e reclamar. Além disso, no site da Dell dizia que o N4050 não se dava muito bem com o Windows 10 (o que poderia explicar o problema no começo da história toda).

Então, tive a ideia de conseguir recuperar o Windows 7 original. Afinal, eu tinha a licença, o que poderia me impedir? Continuar leitura