Mapa da trilha
Conteudo detalhado
🖥️ VPS
Um VPS e o seu PC na nuvem: uma maquina Linux que fica ligada 24 horas por dia, acessivel de qualquer lugar do mundo. Aqui voce contrata, acessa e cuida da sua primeira.
VPS quer dizer Virtual Private Server, um servidor virtual privado. E um pedaco de um computador potente, num data center, que fica so para voce e roda dia e noite.
Com um VPS voce hospeda sites, bots, bancos de dados e APIs sem depender de servicos prontos. E o seu computador na nuvem, sob o seu controle total.
O VPS tem IP publico fixo, roda Linux e fica sempre ligado. Diferente do seu notebook, ele nao desliga quando voce fecha a tampa.
Provedores sao as empresas que alugam VPS por mes. DigitalOcean e simples e cheio de tutoriais, Hetzner tem otimo custo-beneficio, Contabo entrega muito recurso barato.
Escolher o provedor certo evita pagar caro ou ficar preso. Para comecar, qualquer um dos tres serve; o que muda e preco, local do data center e suporte.
Compare por preco mensal, RAM, vCPU e regiao. Escolha um data center perto dos seus usuarios para o site responder mais rapido.
O passo a passo de criar conta, escolher o plano mais barato (o "droplet" ou "servidor"), selecionar Ubuntu e clicar para criar a maquina.
E o momento em que a maquina passa a existir. Em poucos minutos voce recebe um IP publico e uma senha de acesso prontos para usar.
Escolha Ubuntu LTS, o plano de menor preco e uma regiao proxima. Anote o IP e a senha de root que o provedor mostra ao final.
Todo provedor oferece um console web: um terminal que abre dentro do navegador e te conecta ao servidor sem precisar de programa nenhum.
E o jeito mais rapido de entrar no servidor pela primeira vez, antes mesmo de configurar o SSH. Funciona ate quando o acesso normal quebra.
Faca login como root com a senha que o provedor enviou. O console web e o seu plano B de emergencia: guarde esse caminho.
Uma visao geral de como o Linux do servidor funciona: o usuario root (chefe), usuarios comuns, a arvore de pastas e as permissoes de arquivo.
O servidor nao tem janelas nem cliques: tudo e comando. Entender usuarios e permissoes evita que voce quebre o sistema ou abra brechas.
Crie um usuario comum e use sudo em vez de viver como root. whoami mostra quem voce e; permissoes controlam quem pode ler e escrever.
Os comandos de cuidado do servidor: apt update e apt upgrade para atualizar programas, e checagens de espaco em disco e memoria.
Servidor desatualizado e porta aberta para invasores. Atualizar com frequencia fecha falhas de seguranca e mantem tudo funcionando.
Rode apt update && apt upgrade toda semana. Use df -h para ver disco e free -h para ver memoria.
🔐 SSH
O SSH e o tunel secreto entre o seu computador e o servidor: tudo que passa por ele e criptografado. Com chaves, voce entra sem digitar senha e com muito mais seguranca.
SSH (Secure Shell) e um protocolo que cria um tunel criptografado entre o seu computador e o servidor. Tudo que voce digita viaja protegido.
E a forma padrao de controlar qualquer servidor Linux do mundo. Sem SSH, voce nao opera maquinas remotas com seguranca.
Pense num tunel blindado: ninguem no caminho consegue ler o que passa. O servidor escuta SSH na porta 22 por padrao.
O comando ssh-keygen cria um par de chaves: uma privada (fica so com voce) e uma publica (vai para o servidor). Juntas, provam quem voce e.
Chaves sao mais seguras que senhas: nao tem como adivinhar e nao trafegam pela rede. E a base do acesso sem senha.
A privada (id_ed25519) nunca sai do seu PC; a publica (.pub) pode ser distribuida. Proteja a privada com uma passphrase.
O passo de levar a sua chave publica ate o servidor, normalmente com ssh-copy-id, que a coloca no arquivo authorized_keys.
Sem a chave publica no servidor, ele nao reconhece a sua chave privada. Esse passo e o que liga as duas pontas do tunel.
ssh-copy-id usuario@ip faz tudo de uma vez. A chave fica em ~/.ssh/authorized_keys dentro do servidor.
O comando ssh usuario@ip abre a conexao com o servidor. Se as chaves estiverem certas, voce entra direto, sem digitar senha.
E a porta de entrada do seu dia a dia no servidor. A partir daqui, todo comando que voce roda acontece la, na nuvem.
Na primeira conexao ele pergunta sobre a "fingerprint": digite yes. Use exit para sair e voltar ao seu PC.
O arquivo ~/.ssh/config guarda apelidos para seus servidores, com IP, usuario e chave. Assim voce digita ssh meuserver em vez do comando inteiro.
Decorar IPs e flags e cansativo e propenso a erro. Um apelido bem feito deixa o acesso instantaneo e organiza varias maquinas.
Cada bloco comeca com Host apelido e lista HostName, User e IdentityFile. Um arquivo, varios servidores.
Uma configuracao no servidor que proibe login por senha e exige chave SSH. Editar sshd_config fecha a porta para quem nao tem a chave.
Senhas podem ser quebradas por forca bruta; chaves nao. Desligar a senha elimina de uma vez a maior fonte de invasoes em servidores.
Defina PasswordAuthentication no e reinicie o SSH. Teste a chave antes de fechar a senha, para nao se trancar para fora.
🛡️ Firewall
O firewall e o porteiro do servidor: decide quais portas ficam abertas e quem pode entrar. Com ele, voce expoe so o necessario e bloqueia o resto do mundo.
Um firewall e um filtro que decide qual trafego entra e qual sai do servidor, porta por porta. E o porteiro que olha cada conexao antes de deixar passar.
Sem firewall, todo servico fica exposto na internet. Com ele, voce abre so o que precisa e fecha o resto, reduzindo muito o risco de invasao.
Servicos escutam em "portas" numeradas. O firewall trabalha com regras de permitir (allow) e negar (deny) por porta e origem.
UFW (Uncomplicated Firewall) e a forma facil de gerenciar o firewall no Ubuntu. Com poucos comandos voce permite ou nega portas inteiras.
O firewall do Linux puro e complexo. O UFW traduz tudo em comandos simples e legiveis, ideais para quem esta comecando.
ufw allow 22 abre, ufw deny fecha e ufw enable liga. ufw status mostra as regras ativas.
As tres portas que quase todo servidor web precisa: 22 para SSH, 80 para HTTP e 443 para HTTPS.
Saber para que serve cada porta evita dois erros classicos: deixar tudo aberto ou fechar a porta do SSH e perder o acesso.
Abra 22 (acesso), 80 e 443 (site) e feche o resto. Nunca bloqueie a 22 sem outro caminho de entrada garantido.
Fail2ban e um programa que vigia os logs e bane automaticamente qualquer IP que erra a senha muitas vezes seguidas, bloqueando ataques de forca bruta.
Servidores na internet recebem milhares de tentativas de invasao por dia. O Fail2ban responde sozinho, sem voce precisar ficar olhando.
Ele cria "jails" (cadeias) que observam servicos como o SSH. Apos X tentativas erradas, o IP fica banido por um tempo definido.
Let's Encrypt e uma autoridade que emite certificados SSL gratuitos. Com a ferramenta certbot, seu site passa a usar HTTPS com o cadeado.
HTTPS criptografa o trafego do seu site e e exigido pelos navegadores. Sem cadeado, os usuarios veem avisos de "site nao seguro".
O certbot emite e renova o certificado sozinho. O HTTPS usa a porta 443 (lembre de abri-la no firewall).
Uma lista de verificacao que reune as protecoes da trilha: usuario comum, chave SSH, senha desligada, firewall ligado, Fail2ban e HTTPS.
Seguranca e a soma de varias camadas. Um checklist garante que voce nao esqueceu nenhuma e que o servidor saiu blindado.
Passe item por item antes de colocar algo importante no ar. Repita o checklist sempre que criar um servidor novo.
🎫 Tokens e Acesso
Tokens sao as chaves do reino: liberam acesso a APIs e servicos. Aqui voce aprende a guarda-los, troca-los e auditar quem entra, sem nunca expor um segredo.
Um panorama dos principais tipos de credencial: API key (chave simples), JWT (token assinado com dados), PAT (token pessoal do GitHub) e OAuth (acesso delegado).
Cada servico usa um tipo de token. Saber distinguir evita confundir credenciais e usar a errada no lugar errado.
API key e a mais simples; JWT carrega informacao dentro; OAuth e o "Entrar com Google". Todos provam quem voce e para o servico.
A pratica de guardar tokens em variaveis de ambiente, geralmente num arquivo .env que fica fora do codigo e fora do Git.
Token escrito direto no codigo vaza facil para o GitHub e para a internet. O .env separa o segredo do programa.
Adicione .env ao .gitignore sempre. Ajuste as permissoes do arquivo para que so o dono consiga le-lo.
Rotacao e o habito de trocar tokens de tempos em tempos; expiracao e definir uma data de validade para que eles deixem de funcionar sozinhos.
Token que dura para sempre e perigoso: se vazar, o estrago e eterno. Rotacionar limita o tempo que um vazamento pode causar dano.
Prefira tokens com expiracao curta. Ao trocar, revogue o antigo. Se suspeitar de vazamento, rotacione na hora.
Secrets managers sao cofres digitais que guardam tokens e senhas de forma segura, controlam o acesso e registram quem usou cada segredo.
Quando o projeto cresce, espalhar arquivos .env vira bagunca e risco. Um cofre central organiza e protege todos os segredos.
Exemplos: Vault, AWS Secrets Manager, Doppler. A ideia central e: o segredo nunca fica no codigo, sempre vem do cofre na hora de usar.
Auditoria e olhar os registros (logs) do servidor para saber quem entrou, quando e o que fez. No Linux, comandos como last e os logs de autenticacao mostram isso.
Se algo der errado, os logs contam a historia. Acompanhar acessos ajuda a perceber cedo uma invasao ou um uso indevido.
last lista os ultimos logins; /var/log/auth.log guarda as tentativas. Tentativas estranhas e sinal de ataque.
Um conjunto de regras de ouro para lidar com tokens e acessos: menor privilegio possivel, nunca versionar segredo e separar ambientes (teste e producao).
A maioria dos vazamentos vem de descuido, nao de hackers geniais. Seguir boas praticas elimina os erros mais comuns e perigosos.
De a cada token so o acesso minimo necessario. Nunca cole segredo no codigo nem no chat. Tokens de teste e de producao sempre separados.