pular para o conteúdo
voltar ao mapa
técnica
etapa: foundations
2 min de leitura

Fundamentos de Linux e redes

Contêineres, nuvens e pipelines rodam em Linux e se comunicam por TCP/IP. Quando algo quebra às 3 da manhã, esses fundamentos são o que permite descobrir por quê.

systemd / journalctlss and curldigstracetcpdumpopenssl s_client

O que você precisa saber

  • Processos e sinais: todo programa é um processo com um usuário, um pai e um estado; SIGTERM pede que ele pare, SIGKILL o força.
  • Arquivos e permissões: dono, grupo e bits de modo decidem quem pode ler, escrever ou executar; o princípio do menor privilégio começa aqui.
  • Serviços: o systemd inicia, reinicia e registra em log programas de longa duração; o journalctl lê esses logs.
  • A pilha de rede: um endereço IP identifica um host, uma porta identifica um serviço, o TCP oferece streams confiáveis, o UDP oferece datagramas.
  • O DNS transforma nomes em endereços, e a maioria das quedas misteriosas é DNS, certificado ou horário.
  • O TLS envolve uma conexão para que ela seja criptografada e o servidor seja autenticado por uma cadeia de certificados.

Uma rotina de depuração

Vá de fora para dentro: o nome resolve, a porta está acessível, o serviço está escutando, o certificado é válido, o que dizem os logs.

triage.shbash
dig +short api.example.com                      # o nome resolve, e para quê?
curl -sv --max-time 5 https://api.example.com/health   # conexão, TLS e HTTP de uma vez
ss -ltnp | grep :8080                           # há algo escutando neste host?
systemctl status myapp --no-pager               # o serviço está rodando?
journalctl -u myapp --since "10 min ago" -n 100 # o que ele disse?
openssl s_client -connect api.example.com:443 -servername api.example.com </dev/null 2>/dev/null | openssl x509 -noout -dates

Permissões e uma unit de serviço

Um serviço deve rodar como seu próprio usuário sem privilégios, com apenas o acesso de que precisa. O systemd pode impor boa parte disso por você.

/etc/systemd/system/myapp.serviceini
[Unit]
Description=My app
After=network-online.target

[Service]
User=myapp
Group=myapp
ExecStart=/opt/myapp/bin/myapp
Restart=on-failure
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/myapp

[Install]
WantedBy=multi-user.target

Hábitos

  • Aprenda a ler antes de mudar: primeiro logs, status e métricas, depois as edições.
  • Nunca rode um serviço como root se ele não precisar.
  • Mantenha os relógios sincronizados (NTP): tokens e certificados expirados muitas vezes são problema de relógio.
  • Anote os comandos que funcionaram. Um runbook começa como um histórico do shell.

conexões no mapa

atualizado em 14/10/2026 · fontes para aprofundar · reportar erro

Desbloqueia

teste o que entendeu

Carregando perguntas…