Mostrando postagens com marcador Infraestrutura. Mostrar todas as postagens
Mostrando postagens com marcador Infraestrutura. Mostrar todas as postagens

sexta-feira, 2 de maio de 2025

Boas práticas para uso de Alias em DNS (e armadilhas a evitar) | Sysadmin Urbano 2025

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Representação gráfica de domínios interligados no DNS, com cubos luminosos conectados por linhas em um fundo tecnológico escuro

Boas práticas para uso de Alias em DNS (e armadilhas a evitar)

Alias em DNS — normalmente implementados via registros CNAME — são ferramentas extremamente úteis para a gestão de domínios e subdomínios. No entanto, seu uso inadequado pode gerar atrasos, falhas de resolução e até vulnerabilidades operacionais.

Neste artigo, vamos falar sobre boas práticas no uso de alias em DNS e, tão importante quanto, sobre o que **não** se deve fazer.

1. Entendendo o que é um Alias no DNS

Um alias, geralmente configurado como um registro do tipo CNAME, é uma maneira de dizer: "este nome de domínio é apenas um apelido para outro nome existente".

Exemplo típico:

app.example.com → www.example.com

O objetivo é simplificar a manutenção de domínios. Atualizando o destino do CNAME, todos os aliases apontam corretamente sem precisar alterar múltiplos registros A.

2. Quando usar um Alias é uma boa ideia

  • 🔹 Para subdomínios que dependem de serviços externos (ex: plataformas SaaS, clouds públicas).
  • 🔹 Para criar "atalhos" internos em ambientes complexos de múltiplos servidores.
  • 🔹 Para abstrair o endereço real de serviços que podem mudar de IP frequentemente.

Ao usar alias estrategicamente, você reduz erros operacionais e torna a gestão de DNS mais sustentável a longo prazo.

3. O que NÃO fazer com Alias em DNS

  • ⚠️ Não use CNAME no domínio raiz (example.com) — a maioria dos provedores e a RFC 1034 desencorajam isso.
  • ⚠️ Não empilhe CNAMEs em sequência longa (chaining) — cada salto aumenta a latência de resolução DNS.
  • ⚠️ Não aponte para domínios instáveis ou temporários — se o destino cair, seu alias também falha.
  • ⚠️ Não use CNAME para serviços críticos internos — preferir IPs fixos ou registros A/AAAA diretos.

Aliases mal utilizados podem tornar seus sistemas vulneráveis a falhas de terceiros, gerar lentidão e aumentar a complexidade desnecessariamente.

4. Alternativas e soluções modernas

Hoje, alguns provedores oferecem registros do tipo "ALIAS" ou "ANAME", que permitem comportamento similar a CNAME no domínio raiz. Vale verificar se sua infraestrutura suporta.

Além disso, integrar DNS dinâmico (DDNS) para IPs variáveis ou usar balanceadores de carga com registros A pode ser mais eficiente em alguns cenários.

Conclusão

Alias em DNS são aliados poderosos — mas precisam ser usados com inteligência.

Evite cadeias de CNAMEs, proteja o domínio raiz e avalie o impacto de dependências externas antes de definir um alias. Boas práticas simples podem salvar horas de troubleshooting e garantir maior estabilidade para seus ambientes.

Sobre o Sysadmin Urbano

O Sysadmin Urbano nasceu da vivência real no front das operações de infraestrutura moderna. Aqui falamos de servidores, containers, automação, boas práticas e também dos desafios invisíveis da rotina de quem mantém sistemas vivos. Sem fórmulas mágicas, sem tutoriais pela metade — apenas conteúdo prático, direto e feito para quem sabe que a TI é tanto técnica quanto sobrevivência.

🔗 Confira mais artigos ou volte para a página inicial.

Gostou deste conteúdo?

Siga o Sysadmin Urbano para mais artigos técnicos sobre Infraestrutura, SysOps e DevOps.

Voltar para a página inicial

quinta-feira, 1 de maio de 2025

O que é DevOps de verdade (e o que não é) – Guia Sysadmin Urbano 2025

Representação simbólica de DevOps: mãos conectando servidores em ambiente tecnológico escuro

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

O que é DevOps de verdade (e o que não é)

DevOps é, provavelmente, uma das palavras mais mal interpretadas da TI moderna. Entre slogans de marketing e confusões internas, a essência de DevOps muitas vezes se perde.

Hoje, vamos esclarecer o que DevOps realmente significa — e, tão importante quanto, o que ele definitivamente não é.

1. DevOps é Cultura, Não Cargo

DevOps é um conjunto de práticas que une desenvolvimento e operações, com o objetivo de acelerar entregas de software de forma segura e confiável. Ele é, antes de tudo, uma mudança de mentalidade organizacional.

DevOps não é um "cargo de DevOps Engineer" que trabalha isoladamente. Se apenas uma pessoa carrega o "peso do DevOps", a empresa não entendeu o conceito. DevOps é **cultura compartilhada** — times inteiros operando com responsabilidade mútua pelo ciclo de vida das aplicações.

2. DevOps Não é Ferramenta

Ferramentas são parte da implementação de práticas DevOps — mas elas, por si só, **não são DevOps**.

Jenkins, Kubernetes, Terraform, GitLab CI — todas são ferramentas que ajudam a praticar automação, integração contínua e entrega contínua. Porém, adotar essas tecnologias sem mudanças de processo, comunicação e mentalidade é apenas modernizar o caos.

3. DevOps é Comunicação Eficiente

Se um pipeline automatizado gera uma falha, mas ninguém da equipe de desenvolvimento e operações conversa sobre isso, o DevOps morreu ali.

Comunicação aberta, rápida e objetiva entre times é a fundação para que o ciclo DevOps realmente funcione: planejar, construir, testar, lançar, operar, monitorar e aprender continuamente.

4. DevOps Exige Confiança Mútua

Uma organização que pune experimentação e erro não está pronta para DevOps. Cultura de confiança significa permitir que times falhem rapidamente, aprendam rapidamente e melhorem continuamente sem medo de retaliação.

Quando um sysadmin não confia nos testes automatizados, ou quando o desenvolvedor não confia no time de operações, o ciclo quebra.

5. DevOps Não Substitui o SysOps

Outro mito comum: "Com DevOps, não precisamos mais de times de operações." Errado.

DevOps aumenta a colaboração, mas a necessidade de especialistas em infraestrutura, segurança, redes e sistemas operacionais **não desaparece** — apenas muda de formato.

Infraestrutura continua sendo a base invisível que sustenta o delivery de software. Sem uma base sólida, a automação não salva ninguém.

Conclusão

DevOps não é mágica. Não é apenas ferramenta. Não é título de LinkedIn.

DevOps é prática contínua, é cultura de responsabilidade conjunta, é automação com propósito, é comunicação real entre pessoas técnicas.

Se você quer "fazer DevOps", comece mudando como seus times colaboram — antes de sair instalando novas ferramentas.

DevOps de verdade é humano, difícil, mas profundamente transformador.

Sobre o Sysadmin Urbano

O Sysadmin Urbano nasceu da vivência real no front das operações de infraestrutura moderna. Aqui falamos de servidores, containers, automação, boas práticas e também dos desafios invisíveis da rotina de quem mantém sistemas vivos. Sem fórmulas mágicas, sem tutoriais pela metade — apenas conteúdo prático, direto e feito para quem sabe que a TI é tanto técnica quanto sobrevivência.

🔗 Confira mais artigos ou volte para a página inicial.

Gostou deste conteúdo?

Siga o Sysadmin Urbano para mais artigos técnicos sobre Infraestrutura, SysOps e DevOps.

Voltar para a página inicial

quarta-feira, 30 de abril de 2025

Instalando o Docker em Linux - 2025

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Guia atualizado para instalar Docker em Linux Ubuntu e CentOS 2025

Instalando o Docker em Linux – Guia Atualizado 2025

O Docker continua sendo uma ferramenta central para ambientes de containers, mesmo em 2025. Apesar da concorrência crescente de alternativas como Podman, o Docker mantém sua força devido à simplicidade e vasta documentação.

Este guia é objetivo: vamos instalar o Docker em sistemas baseados em Debian/Ubuntu e também cobrir a instalação em distribuições RHEL/CentOS/Oracle Linux.

1. Pré-requisitos

  • Distribuição Linux atualizada
  • Acesso root ou sudo
  • Conexão com a internet

2. Instalando Docker em Debian/Ubuntu

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Após a instalação, verifique o serviço:

sudo systemctl status docker

3. Instalando Docker em RHEL/CentOS/Oracle Linux

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

Confirme a instalação com:

docker --version

4. Pós-instalação (Opcional)

Para evitar usar sudo em cada comando Docker:

sudo usermod -aG docker $USER
newgrp docker

Agora você pode rodar comandos Docker diretamente sem precisar de sudo.

5. Considerações Finais

O Docker evoluiu, mas a base da instalação continua muito similar. Manter o ambiente atualizado e seguro é crucial para projetos sérios de infraestrutura.

Nos próximos artigos, vamos aprofundar o uso de Dockerfiles, Volumes, Redes e práticas seguras em ambientes de containers.

Sobre o Sysadmin Urbano

O Sysadmin Urbano nasceu da vivência real no front das operações de infraestrutura moderna. Aqui falamos de servidores, containers, automação, boas práticas e também dos desafios invisíveis da rotina de quem mantém sistemas vivos. Sem fórmulas mágicas, sem tutoriais pela metade — apenas conteúdo prático, direto e feito para quem sabe que a TI é tanto técnica quanto sobrevivência.

🔗 Confira mais artigos ou volte para a página inicial.

Gostou deste conteúdo?

Siga o Sysadmin Urbano para mais artigos técnicos sobre Infraestrutura, SysOps e DevOps.

Voltar para a página inicial

terça-feira, 29 de abril de 2025

Waiting for confirmation of MySQL service startup...

Docker travado em “Waiting for confirmation of MySQL service startup”

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Docker travado em “Waiting for confirmation of MySQL service startup”

Esse erro, apesar de simples à primeira vista, é um dos travamentos mais silenciosos e frustrantes ao tentar migrar containers MySQL. Logo após o primeiro docker run, o container trava antes mesmo de subir:

Waiting for confirmation of MySQL service startup

Esse tipo de erro normalmente indica que algo no volume de dados está impedindo a inicialização do banco, e o entrypoint padrão do container está preso esperando algo que não virá.

🔍 Possíveis causas

  • Volume com dados parcialmente migrados ou corrompidos
  • Permissões erradas nos arquivos do MySQL
  • Arquivos de instalação (como ibdata1, auto.cnf) presentes mas inválidos
  • Configuração personalizada my.cnf quebrada ou incompatível

🛠️ Como resolver

1️⃣ Testar sem volume

Rode o container limpo, sem montar volume. Se funcionar, o problema está nos dados:

docker run -e MYSQL_ROOT_PASSWORD=test --rm mysql:5.7

2️⃣ Verificar estrutura do volume

Confira se o volume está realmente com os arquivos corretos do MySQL:

ls -la /var/lib/mysql

Se necessário, corrija permissões:

chown -R mysql:mysql /var/lib/mysql

3️⃣ Apagar arquivos de PID ou socket

Se você migrou arquivos com o banco ligado, talvez arquivos "fantasmas" estejam bloqueando o start:

rm -f /var/run/mysqld/mysqld.pid
rm -f /var/run/mysqld/mysqld.sock

4️⃣ Ver logs detalhados

Use essas variáveis para visualizar o que está acontecendo:

-e MYSQL_LOG_CONSOLE=true
--log-error-verbosity=3

5️⃣ Teste interativo

Entre no container antes do daemon tentar iniciar:

docker run -it --rm -e MYSQL_ROOT_PASSWORD=test mysql:5.7 bash
mysqld --initialize --user=mysql
mysqld
  

Isso revelará erros internos antes que o script padrão tente inicializar o banco e trave.

"Nem sempre o MySQL trava por estar corrompido. Às vezes ele só está perdido em um novo lugar, tentando achar o caminho de casa."

Ao migrar um container MySQL, certifique-se de que os dados estão íntegros, as permissões corretas e o ambiente limpo. Um banco de dados exige cuidado — mesmo em um mundo de containers descartáveis.

segunda-feira, 28 de abril de 2025

Migrando Containers

Como Migrar um Container Docker para Outro Servidor

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Como Migrar um Container Docker para Outro Servidor

Saiba como transportar containers e volumes com segurança entre máquinas diferentes usando comandos simples.

📦 Método 1: Exportar container e volumes manualmente

1. Crie a imagem a partir do container

docker commit meu_container minha_imagem:latest

2. Exporte a imagem para um arquivo

docker save minha_imagem:latest -o minha_imagem.tar

3. Exporte dados do volume (se aplicável)

tar czf meus_dados.tar.gz /caminho/do/volume

4. Transfira para o novo servidor

scp minha_imagem.tar meus_dados.tar.gz usuario@servidor:/caminho/destino

5. Importe a imagem e os dados no novo host

docker load -i minha_imagem.tar
tar xzf meus_dados.tar.gz -C /caminho/destino

6. Suba novamente o container

docker run -d -v /caminho/destino:/dados minha_imagem

🧩 Método 2: Usando Docker Compose (ideal para múltiplos serviços)

1. Copie o arquivo docker-compose.yml e os volumes

Garanta que os dados estejam compactados ou montados via diretórios locais.

2. No novo servidor, execute:

docker-compose up -d

Essa abordagem é mais prática para aplicações complexas ou multi-containers.

"Containers são passageiros, mas dados são valiosos. Cuide da migração de ambos."

Sobre o Sysadmin Urbano

O Sysadmin Urbano nasceu da vivência real no front das operações de infraestrutura moderna. Aqui falamos de servidores, containers, automação, boas práticas e também dos desafios invisíveis da rotina de quem mantém sistemas vivos. Sem fórmulas mágicas, sem tutoriais pela metade — apenas conteúdo prático, direto e feito para quem sabe que a TI é tanto técnica quanto sobrevivência.

🔗 Confira mais artigos ou volte para a página inicial.

Gostou deste conteúdo?

Siga o Sysadmin Urbano para mais artigos técnicos sobre Infraestrutura, SysOps e DevOps.

Voltar para a página inicial

domingo, 27 de abril de 2025

Como expurgar binlogs do MySQL

Como expurgar binlogs do MySQL com a partição cheia

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Como expurgar binlogs do MySQL quando a partição está 100% cheia

O que fazer quando o disco enche e o MySQL trava por conta dos binlogs acumulados.

📦 O problema

Quando a partição do servidor MySQL atinge 100% de uso, o banco de dados não consegue mais gravar novos arquivos binários nem atualizar o index (mysql-bin.index), impedindo o expurgo automático dos binlogs antigos.

🔧 Solução recomendada (com MySQL parado)

1. Pare o MySQL

sudo systemctl stop mysql

2. Acesse a pasta dos binlogs

cd /var/lib/mysql

3. Liste os arquivos e remova os antigos manualmente

ls -lh mysql-bin.*
sudo rm mysql-bin.000001 mysql-bin.000002

4. Edite o index mysql-bin.index

Remova as linhas que apontam para os arquivos deletados:

sudo nano mysql-bin.index

5. Inicie novamente o MySQL

sudo systemctl start mysql

💡 Alternativa com o MySQL em execução

Caso o MySQL ainda esteja rodando (com algum espaço livre):

PURGE BINARY LOGS TO 'mysql-bin.000010';

ou:

PURGE BINARY LOGS BEFORE NOW() - INTERVAL 7 DAY;

✅ Dica de prevenção

Adicione ao seu my.cnf:

expire_logs_days = 7
max_binlog_size = 100M
"Às vezes, apagar com cuidado é a melhor forma de manter o controle."

sexta-feira, 25 de abril de 2025

Como inicializar o Oracle Linux 8 em modo de segurança (rescue ou single-user mode)

Modo de Segurança no Oracle Linux 8

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Como inicializar o Oracle Linux 8 em modo de segurança

GRUB com parâmetro rescue.target

O modo de segurança (rescue mode ou single-user) é útil para recuperar o sistema após falhas críticas, redefinir senhas, corrigir falhas no fstab ou desabilitar serviços que impedem a inicialização.

🛠️ Passo a passo para entrar no modo de segurança

  1. Reinicie o servidor
  2. Na tela do GRUB, selecione a entrada padrão e pressione e para editar
  3. Localize a linha que começa com linux ou linuxefi
  4. Adicione ao final da linha:
    systemd.unit=rescue.target
  5. Pressione Ctrl + X ou F10 para iniciar

🔒 Senha de root

Você será levado a um prompt com acesso root (após digitar a senha). Se não lembrar a senha de root, use o modo de emergência para redefinir.

🆘 Alternativa: Modo de emergência

Substitua rescue.target por emergency.target no passo 4 para um modo ainda mais restrito (sem montar partições adicionais).

⚠️ Importante

  • Evite editar arquivos críticos sem backup
  • Use journalctl para verificar erros recentes
  • Use mount -o remount,rw / se o sistema estiver montado como somente leitura

“No modo mais silencioso do sistema, ouvimos o que realmente falhou.”

quarta-feira, 23 de abril de 2025

Como verificar a limitação de threads em um container Docker quando não existe a pasta /sys/fs/cgroup/docker (ou cgroups padrão)

Verificando limite de threads em container Docker

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Como verificar limitação de threads em container Docker

Verificando limites com cat /proc/self/limits no Docker

Se você está tentando identificar quantas threads ou processos um container pode criar, mas não encontrou a pasta /sys/fs/cgroup/docker, saiba que é possível obter essa informação por outros meios.

🔧 Por que a pasta pode não existir?

  • O sistema está usando cgroups v2, que tem um layout diferente
  • O container está em um ambiente minimalista, sem montar o cgroup completo
  • O Docker foi configurado com outro caminho de cgroup

✅ Método alternativo: /proc/self/limits

Dentro do container, execute:

cat /proc/self/limits

Procure pela linha:

Max processes    4096    4096    processes

Esse número indica quantos processos (e portanto, threads) você pode criar dentro do container.

📦 Usando docker inspect

Do host, verifique o container:

docker inspect --format='{{.HostConfig.PidsLimit}}' nome_ou_id

Se estiver em branco, o limite está herdando do sistema (normalmente ilimitado).

🧠 Dica avançada (cgroup v2)

Se estiver usando cgroups v2, verifique o caminho:

cat /sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/pids.max

Ou use:

systemd-cgls
systemctl status docker

“Nem toda limitação está visível — mas os processos sempre revelam suas fronteiras.”

domingo, 20 de abril de 2025

SERVFAIL no Unbound com uma única interface

SERVFAIL no Unbound com uma interface – Diagnóstico

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

SERVFAIL no Unbound com uma interface: O que pode ser?

Se você configurou o Unbound como servidor DNS local e ao tentar uma consulta está recebendo o erro SERVFAIL, especialmente quando o Unbound está configurado para ouvir em apenas uma interface, há algumas possíveis causas para investigar.

🔎 Entendendo o erro

SERVFAIL indica que o servidor não conseguiu resolver a requisição, mesmo sendo tecnicamente funcional. O problema pode estar em:

  • Falta de acesso externo (internet/firewall)
  • Restrições no arquivo de configuração
  • Escopo de rede limitado pela diretiva interface:
  • Restrições no access-control

📄 Verifique o arquivo de configuração (unbound.conf)

Se o Unbound está ouvindo apenas em 127.0.0.1, ele não poderá atender clientes externos. Exemplo de problema:

interface: 127.0.0.1
access-control: 192.168.0.0/16 deny

Para permitir requisições externas, adicione:

interface: 0.0.0.0
access-control: 192.168.0.0/16 allow

🧪 Testes úteis

Use ferramentas como:

  • dig @127.0.0.1 google.com
  • dig @localhost -p 53 google.com
  • unbound-checkconf – verifica erros de sintaxe
  • journalctl -u unbound – veja os logs

📌 Outras dicas

  • Habilite logs com verbosity: 2 ou superior para depurar
  • Verifique se o servidor tem acesso à internet para consultas externas (forwarding ou root hints)
  • Use local-zone e stub-zone apenas quando necessário

“Um servidor DNS só é útil quando sabe escutar — e quando está no canal certo.”

sábado, 19 de abril de 2025

É possível desativar o auditd via GRUB?

Como desativar o auditd via GRUB no Linux

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Como desativar o auditd via GRUB no Linux

O auditd é o serviço de auditoria do Linux, responsável por registrar eventos críticos no sistema. No entanto, em alguns casos (como falhas de boot ou sistemas de baixo desempenho), pode ser necessário desativá-lo temporariamente.

🛠️ Como desativar temporariamente pelo GRUB

  1. Reinicie o sistema.
  2. Na tela do GRUB, selecione a entrada de boot e pressione e.
  3. Encontre a linha que começa com linux.
  4. Adicione ao final da linha:
    audit=0
  5. Pressione Ctrl + X ou F10 para iniciar.

🔧 Como desativar permanentemente

Para tornar essa configuração persistente:

  1. Abra o terminal como root.
  2. Edite o arquivo:
    /etc/default/grub
  3. Na linha:
    GRUB_CMDLINE_LINUX=
    adicione audit=0 dentro das aspas.
  4. Atualize o GRUB com:
    grub2-mkconfig -o /boot/grub2/grub.cfg
    ou update-grub dependendo da distribuição.
  5. Reinicie o sistema.

⚠️ Considerações de segurança

  • Desativar o auditd pode afetar conformidade com normas de segurança.
  • Se o sistema exige logs de auditoria (como em servidores de produção), use essa solução apenas para diagnóstico.

“Nem todo log precisa ser registrado, mas todo erro precisa ser resolvido.”

quinta-feira, 17 de abril de 2025

O que fazer quando um sistema Linux não me deixa logar por causa de "auditd: backlog limit exceeded"?

Erro "auditd: backlog limit exceeded" no Linux

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Erro "auditd: backlog limit exceeded" no Linux

Ao tentar iniciar ou acessar um sistema Linux, especialmente em ambientes como Oracle Linux, RHEL ou CentOS, você pode se deparar com a seguinte mensagem:

auditd: backlog limit exceeded

Esse erro pode impedir o sistema de inicializar corretamente ou bloquear o login em modo gráfico ou console.

🧠 O que significa esse erro?

O auditd é o daemon responsável pelo sistema de auditoria do Linux. Ele monitora e registra eventos importantes para segurança e conformidade.

Quando muitos eventos acontecem em sequência e o sistema não consegue processar todos, o backlog (fila de eventos) estoura o limite definido — e o kernel considera isso uma falha de segurança.

🛠️ Soluções temporárias

  • Reinicie o sistema e entre no modo de emergência ou rescue.
  • Edite o GRUB temporariamente durante o boot:
    • Pressione e na entrada do GRUB.
    • Adicione o seguinte ao final da linha linux:
      audit=0
    • Pressione Ctrl + X ou F10 para iniciar com essa opção.
  • Isso desativa o audit temporariamente e pode permitir o login.

⚙️ Correção permanente

Se for seguro desabilitar o auditd no seu caso, você pode editar a configuração do GRUB:

  1. Abra o arquivo /etc/default/grub como root.
  2. Adicione audit=0 à variável GRUB_CMDLINE_LINUX
  3. Atualize o GRUB com:
    grub2-mkconfig -o /boot/grub2/grub.cfg
    (ou equivalente na sua distro)
  4. Reinicie o sistema.

📌 Alternativas

  • Aumentar o limite de backlog com:
    audit_backlog_limit=8192
    no GRUB
  • Corrigir travamentos causados por excesso de logs ou configurações excessivas do auditd

“Em sistemas auditáveis, o silêncio também pode ser interpretado como falha.”

quarta-feira, 16 de abril de 2025

Existe algum problema em fazer uma subzona de uma subzona em DNS?

É problemático criar subzonas de subzonas no DNS?

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

É problemático criar subzonas de subzonas no DNS?

No gerenciamento de DNS, é comum lidar com domínios e subdomínios. Mas uma dúvida frequente surge quando falamos de delegar zonas aninhadas, como por exemplo:

exemplo.com → ti.exemplo.com → dev.ti.exemplo.com

Será que criar uma subzona dentro de outra subzona é um problema?

🔍 A resposta curta: Não necessariamente

O DNS foi projetado como uma estrutura hierárquica. É totalmente possível — e tecnicamente válido — delegar subzonas de subzonas.

No exemplo acima, dev.ti.exemplo.com pode ter seu próprio servidor autoritativo, independente de ti.exemplo.com, se houver delegação correta com registros NS e glue records (se necessário).

🧠 Quando isso pode ser útil?

  • Divisão de responsabilidade entre equipes (ex: devops, segurança, TI).
  • Ambientes isolados para projetos, clusters ou serviços.
  • Separação de zonas por ambientes (ex: prod, dev, qa).

⚠️ Mas fique atento a:

  • Delegações mal feitas podem gerar falhas de resolução (SERVFAIL).
  • Dependências entre servidores autoritativos diferentes tornam o sistema mais complexo.
  • Manter documentação clara de quem gerencia o quê é essencial.

✅ Boas práticas

  • Use subzonas de subzonas apenas quando houver justificativa administrativa ou técnica.
  • Garanta que cada zona tenha servidores NS consistentes.
  • Teste a resolução com ferramentas como dig, host ou nslookup.

“O DNS é como um mapa de responsabilidades — e quanto mais complexas forem as rotas, maior deve ser o cuidado ao desenhá-las.”

sábado, 5 de abril de 2025

IPv6 em Datacenters – Parte 3

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

IPv6 em Datacenters – Parte 3: Alta Disponibilidade, Failover e Continuidade

Adotar IPv6 em um ambiente corporativo não significa apenas substituir endereços. Significa repensar a forma como tratamos a disponibilidade de serviços. Nessa terceira parte, exploramos o uso do IPv6 em estruturas de alta disponibilidade (HA), focando em clusters, balanceadores, firewalls e testes de failover — sempre com um olhar técnico e prático.

🌐 Balanceadores e IPs flutuantes

Diferente do IPv4, no IPv6 não há NAT tradicional. Assim, o uso de endereços IPs globais diretos demanda novos cuidados.

  • Utilize VRRPv3 com ferramentas como keepalived, que suporta endereços IPv6 nativamente.
  • IP flutuante pode ser definido em /128 para vincular a apenas um nó por vez.
vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 50
  priority 100
  advert_int 1
  virtual_ipaddress {
    2001:db8::100/128
  }
}

🧱 HAProxy e NGINX com IPv6

Ambos suportam IPv6 diretamente e podem atuar como ponto único de entrada para clusters:

  • bind [::]:443 ssl para escutar em IPv6;
  • Backends podem ser definidos por IP ou DNS com registros AAAA;
  • Para failover ativo/passivo, combine com keepalived ou Pacemaker.

🔁 Clusters com IPv6

Banco de Dados (PostgreSQL, MariaDB)

  • Ambos suportam IPv6 nativamente;
  • Em postgresql.conf, use listen_addresses = '*' e valide que o sistema escuta em IPv6.
  • Utilize VIPs via Pacemaker para failover entre nós.

Servidores Web ou Aplicações

  • Usar DNS com TTL baixo para atualização rápida em falhas;
  • Considere IPv6-only para redes internas e dual-stack na borda.

🔐 Firewalls e segurança no failover

  • As regras devem permitir tráfego de anúncios de VRRPv3 (protocol 112);
  • Se usar nftables, crie conjuntos para os IPs flutuantes;
  • Evite regras fixas por interface: use por endereço, garantindo portabilidade entre nós.

🧪 Testes e observabilidade

  • Simule falhas desligando serviços e valide failover do VIP;
  • Use tcpdump -i eth0 ip6 and vrrp para analisar pacotes de failover;
  • Prometheus com blackbox_exporter permite pingar endpoints IPv6 e medir latência.

📌 Dica prática

Use scripts automáticos (Ansible, Bash) para verificar se o IP flutuante foi realocado após falha. Uma simples checagem com ip -6 addr já mostra a transição.

🔚 Conclusão

Alta disponibilidade com IPv6 é um passo além da adaptação de endereços. Envolve um novo entendimento da conectividade direta, da ausência de NAT e da transparência de rede. Com testes adequados e validação, seu datacenter pode ter um ambiente resiliente, moderno e alinhado com o futuro da internet.

sexta-feira, 4 de abril de 2025

IPv6 em Datacenters – Parte 2

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

IPv6 em Datacenters – Parte 2: Integração com Monitoramento, Automação e Segurança

Após estruturar a arquitetura de endereçamento com IPv6 em um datacenter, o próximo passo é integrar esse ecossistema com as ferramentas de gestão, automação e segurança já utilizadas no ambiente. Essa etapa é essencial para garantir visibilidade, controle e estabilidade operacional.

📊 Integração com ferramentas de monitoramento

Zabbix

  • O Zabbix suporta IPv6 nativamente, tanto para agentes quanto servidores.
  • No zabbix_agentd.conf, use ListenIP=:: para aceitar conexões IPv6.
  • No frontend, cadastre os hosts com IPs IPv6 diretamente ou use DNS AAAA.
# Exemplo de item com IPv6
zabbix_get -s fd00:abcd::1001 -k system.uptime

Prometheus

  • Configure os targets com IPs IPv6 dentro de colchetes: [fd00::2001]:9100
  • Certifique-se de que os node_exporters estão escutando em [::]:9100

Grafana e InfluxDB

  • Suporte total a conexões em IPv6 se as ferramentas forem configuradas para escutar em [::]
  • Use proxies reversos (como Nginx) para centralizar acessos IPv6/IPv4.

⚙️ Automação com Ansible e Shell

  • Adicione hosts em IPv6 no inventário: [meus_servers]
    [fd00::1001]
  • Use o parâmetro ansible_ssh_extra_args='-6' para forçar IPv6.
  • Evite dependência de DNS se usar endereços diretos.
[web_ipv6]
fd00:abcd::10 ansible_user=admin ansible_ssh_extra_args='-6'

🛡️ Segurança e firewalls para IPv6

  • Use nftables ou ip6tables separadamente do IPv4.
  • Habilite ICMPv6 essencial para funcionamento correto da rede (RA, ND).
  • Crie regras por prefixo e não apenas por IP direto, ex: fd00::/8
  • Bloqueie endereços de escopo global para tráfego interno não autorizado.

🔐 Validações e auditoria

  • ping6 e traceroute6 para diagnóstico de latência e roteamento
  • nmap -6 para varredura de portas e validação de exposição de serviços
  • Ferramentas como tcpdump -i eth0 ip6 são vitais para depuração

📌 Dica importante

Evite misturar stacks duplas mal configuradas (dual-stack desbalanceado) em serviços críticos. Priorize ambientes 100% IPv6 ou 100% IPv4 onde for possível.

🧭 Conclusão

Integrar IPv6 não é apenas configurar IPs. Envolve ajustar toda a cadeia de operações — do monitoramento à automação, da segurança à validação. Com isso, o datacenter se torna mais escalável, moderno e pronto para o futuro.

quinta-feira, 3 de abril de 2025

IPv6 para Datacenters - parte 1

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Implementação Completa de IPv6 para Datacenters

No universo moderno de redes, o suporte ao IPv6 deixou de ser uma opção e passou a ser uma necessidade real para ambientes de datacenter, especialmente com a escassez de IPv4 e o crescimento de ambientes escaláveis em cloud e bare metal.

📌 Divisão lógica: Pública e Privada

Ao contrário do IPv4, o IPv6 não possui faixas NAT privadas clássicas. Mas é possível utilizar as faixas fd00::/8 para simular redes internas privadas (ULA – Unique Local Address).

  • Rede pública: usada para frontend, acesso externo, APIs abertas.
  • Rede ULA (fd00): usada para comunicação entre bancos de dados, aplicações, serviços internos e recursivos (como DNS).

🔧 Configuração típica de componentes internos

  • Servidores e VMs: Defina endereços ULA por interface, ex: fd00:abcd:1234::10
  • Bancos de Dados: Vincule ao IP ULA e restrinja conexões com bind-address ou listen_address
  • DNS Recursivo (ex: Unbound): Use somente ULA como origem permitida e configure escopo local
  • Hypervisores e switches virtuais: Separe VLANs ou bridges por finalidade (pública / interna)
  • Firewalls: Permita ICMPv6 e controle com precisão os escopos de IP

🧪 Exemplo de configuração prática

# Interface interna
iface eth1 inet6 static
  address fd00:abcd:1234::1
  netmask 64

# Exemplo de configuração no Postgres
listen_addresses = 'fd00:abcd:1234::10'

🛡️ Segurança e performance

  • Utilize ip6tables ou nftables com políticas explícitas.
  • Monitore tráfego com tcpdump -i eth0 ip6 ou iftop.
  • Prefira endereços estáticos para facilitar debugging e regras claras.

📐 Diagramas e hierarquia

Uma estrutura bem pensada facilita a escalabilidade e troubleshooting. Exemplo:

  • Hypervisor: fd00:1000::1
  • VM Web: fd00:1000::10
  • DB: fd00:1000::20
  • DNS interno: fd00:1000::53

✅ Validação da estrutura

  • Ping ULA entre serviços: ping6 fd00:abcd:1234::10
  • Valide com traceroute6, nmap -6, e testes de aplicação
  • Documente rotas e relacionamentos lógicos (topologias simples ajudam muito)

📌 Conclusão

O uso de IPv6 vai além da camada de acesso externo. Integrá-lo de forma completa no ambiente interno — com camadas de segurança e isolamento — é o próximo passo na evolução de um datacenter moderno.

IPv6 pode parecer complexo no início, mas ao entender seus conceitos fundamentais, ele se torna um aliado poderoso em ambientes escaláveis e limpos.

quarta-feira, 2 de abril de 2025

IPv6 DC

Boas Práticas de IPv6 para Datacenters

Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps

Um guia prático para quem vive na linha de frente da operação de sistemas.

Boas Práticas de IPv6 para Datacenters

Com a progressiva adoção do IPv6 em ambientes corporativos e datacenters, torna-se essencial compreender como planejar e aplicar boas práticas tanto na estrutura de rede externa quanto internamente — entre servidores, aplicações e sistemas de suporte.

🌐 Rede externa: visibilidade e roteabilidade

Diferente do IPv4, onde comumente usamos blocos privados (como 10.0.0.0/8 ou 192.168.0.0/16), o IPv6 não utiliza o conceito de IPs não roteáveis da mesma forma. Cada datacenter deve provisionar um bloco de endereços globais válidos e usar políticas de roteamento e firewall bem definidas para isolar segmentos.

🏗️ Segmentação interna: como substituir a NAT

No lugar da NAT, utiliza-se o controle de acesso por ACLs, firewalls e roteamento segmentado. Internamente, recomenda-se usar sub-redes /64 para cada rede lógica (ex: servidores de aplicação, banco de dados, infraestrutura).

🗄️ Aplicações e banco de dados

As aplicações devem ser preparadas para aceitar e registrar endereços IPv6. Evite hardcoding de IPs e utilize DNS sempre que possível. Para bancos de dados, certifique-se de configurar corretamente o listener IPv6 e as permissões de acesso baseadas no endereço.

🔁 DNS recursivo e IPv6

Em ambientes IPv4, é comum usar um IP privado fixo (como 10.0.0.53) para o DNS interno. Com IPv6, recomenda-se usar endereços ULA (Unique Local Address) do prefixo fd00::/8 para serviços internos como DNS recursivo, mantendo a segmentação segura e não roteável externamente.

“IPv6 não é apenas uma substituição. É uma reestruturação da forma como pensamos redes internas e segurança.” — Adaptado

🔐 Considerações finais

IPv6 elimina muitas das gambiarras que criamos com NAT e endereços privados. Porém, ele exige maturidade: seus controles de acesso, roteamento e segmentação precisam ser muito mais bem planejados. A migração para IPv6 em um datacenter deve vir acompanhada de uma revisão conceitual — e não apenas de uma troca de IP.

SysadminUrbano • Guia Técnico: Migração Windows 10 -> Windows 11 com Backup Completo

Migração Windows 10 → Windows 11: Backup completo e restauração sem perdas Checklist técnico com comandos, exportações e reaproveit...