Guia de tecnologias

Instalar e configurar Tripwire Host-Based IDS no Ubuntu 16.04

8 min read Segurança Atualizado 21 Oct 2025
Tripwire no Ubuntu 16.04 — Instalação e Configuração
Tripwire no Ubuntu 16.04 — Instalação e Configuração

Tripwire é um IDS (Sistema de Detecção de Intrusão) open source para monitoramento de integridade de arquivos. Este tutorial mostra como instalar Tripwire no Ubuntu 16.04, inicializar e ajustar a política, adicionar regras para diretórios (por exemplo /var/www), testar violações, configurar notificações por e-mail e agendar verificações por cron. Ao final você terá verificações diárias automatizadas e alertas por e-mail para alterações não autorizadas.

Introdução

Tripwire monitora alterações em arquivos e diretórios críticos do sistema, comparando o estado atual com uma base de referência assinada. Quando algo muda (adição, exclusão, modificação), Tripwire registra violações e pode enviar relatórios por e-mail. É indicado para servidores web, hosts críticos e ambientes onde auditoria de integridade é obrigatória.

Termo chave: IDS — sistema que detecta alterações ou atividades suspeitas em um host; não bloqueia por si só (é detectivo).

O que faremos

  • Instalar Tripwire a partir dos repositórios do Ubuntu
  • Configurar a política padrão para Ubuntu 16.04 e adaptar regras
  • Inicializar e verificar a base de dados de integridade
  • Adicionar uma regra específica para sites (WordPress)
  • Habilitar notificações por e-mail e agendar verificações com cron

Variantes de intenção (SEO)

Objetivo primário: instalar e configurar Tripwire no Ubuntu 16.04 Termos relacionados: Tripwire Ubuntu, Tripwire policy, IDS host-based, monitoramento de integridade, Tripwire email, cron Tripwire

Pré-requisitos

  • Servidor com Ubuntu 16.04 LTS
  • Acesso root ou sudo
  • Conexão de rede para instalar pacotes

Importante: mantenha cópias seguras das passphrases geradas para site-key e local-key; sem elas você não poderá regenerar ou reimportar as chaves.

Passo 1 — Instalar Tripwire

Atualize repositórios e instale o pacote tripwire:

sudo apt update
sudo apt install -y tripwire

Durante a instalação, o instalador pedirá a configuração do Postfix (SMTP). Escolha “Internet Site” e confirme com “OK” para que o sistema possa enviar e-mails locais.

Tela de configuração do Postfix durante instalação

Para o nome do sistema de e-mail, aceite o padrão e confirme com “OK”.

Tela solicitando o nome do sistema de correio

Em seguida o instalador perguntará sobre a criação das chaves do Tripwire. Crie a site-key e a local-key quando solicitado (responda “Yes”).

Prompt para criar site-key do Tripwire

Prompt para criar local-key do Tripwire

Escolha reconstruir a configuração e a policy quando perguntado (opções Rebuild). Confirme ambas com “Yes”.

Opção Rebuild da configuração do Tripwire

Opção Rebuild da policy do Tripwire

Quando solicitado, defina uma passphrase para a site-key e confirme.

Prompt para definir passphrase da site-key

Repita a passphrase da site-key.

Repita a passphrase da site-key

Defina e confirme a passphrase da local-key.

Prompt para definir passphrase da local-key

Repita a passphrase da local-key

Ao fim dessa etapa Tripwire estará instalado e com chaves geradas.

Passo 2 — Configurar a policy do Tripwire para Ubuntu

Arquivos principais de configuração ficam em /etc/tripwire. Após instalar, inicialize a base de dados com:

sudo tripwire --init

Digite a passphrase da local-key quando solicitado.

Possível erro: “No such directory”. Isso indica que a policy referencia caminhos que não existem no sistema. Para identificar os itens ausentes, gere uma lista com:

sudo sh -c "tripwire --check | grep Filename > no-directory.txt"
cat no-directory.txt

Lista de diretórios inexistentes identificados

Edite o arquivo de política twpol.txt:

cd /etc/tripwire/
sudo vim twpol.txt

Observação: use seu editor preferido (vim, nano). Faça apenas as alterações necessárias para que a policy não tente monitorar pseudo-filesystems efêmeros ou paths inexistentes.

Trechos recomendados para comentar/ajustar na policy:

  • ‘Boot Scripts’ — comente entradas de /etc/rc.boot que não existam.
(
  rulename = "Boot Scripts",
  severity = $(SIG_HI)
)
{
        /etc/init.d             -> $(SEC_BIN) ;
        #/etc/rc.boot           -> $(SEC_BIN) ;
        /etc/rcS.d              -> $(SEC_BIN) ;
  • ‘System boot changes’ — comente diretórios voláteis como /var/run se necessário.
(
  rulename = "System boot changes",
  severity = $(SIG_HI)
)
{
        #/var/lock               -> $(SEC_CONFIG) ;
        #/var/run                -> $(SEC_CONFIG) ; # daemon PIDs
        /var/log                -> $(SEC_CONFIG) ;
  • ‘Root config files’ — mantenha arquivos relevantes e comente entradas desnecessárias.
(
  rulename = "Root config files",
  severity = 100
)
{
        /root                           -> $(SEC_CRIT) ; # Catch all additions to /root
        #/root/mail                     -> $(SEC_CONFIG) ;
        /root/.bashrc                   -> $(SEC_CONFIG) ;
        /root/.bash_history             -> $(SEC_CONFIG) ;
  • ‘Devices & Kernel information’ — remova monitoramento de /proc inteiro e deixe apenas arquivos estáticos.
(
  rulename = "Devices & Kernel information",
  severity = $(SIG_HI),
)
{
        /dev            -> $(Device) ;
        /dev/pts        -> $(Device) ;
        /dev/shm        -> $(Device) ;
        /dev/hugepages  -> $(Device) ;
        /dev/mqueue     -> $(Device) ;
        #/proc          -> $(Device) ;
        /proc/devices           -> $(Device) ;
        /proc/net               -> $(Device) ;
        /proc/cpuinfo           -> $(Device) ;
        /proc/modules           -> $(Device) ;
        /proc/mounts            -> $(Device) ;
        /proc/meminfo           -> $(Device) ;
}

Salve e saia do editor.

Agora regenere o arquivo de política criptografado com twadmin:

sudo twadmin -m P /etc/tripwire/twpol.txt

Digite a passphrase da site-key quando solicitado. Depois reinitialize a base:

sudo tripwire --init

Digite a passphrase da local-key. Se tudo ocorrer sem erros, a policy foi aplicada.

Reinicialização da base de dados do Tripwire sem erros

Passo 3 — Verificar a integridade dos arquivos do sistema

Execute uma verificação completa:

sudo tripwire --check

Resultado esperado: “No Violation” e “No Error” para um sistema sincronizado com a policy.

Resultado de uma verificação Tripwire sem alterações

Teste prático: crie um arquivo em $HOME e execute nova checagem:

cd ~/
touch hakase-labs.txt
sudo tripwire --check

Tripwire deve reportar a adição do arquivo e a modificação do diretório pai como violações.

Resultado de verificação mostrando adição de arquivo

Nota: adições e exclusões intencionais podem ser aceitadas com políticas de exceção ou atualização da baseline (re-init) após investigação.

Passo 4 — Adicionar nova regra à policy do Tripwire

Exemplo: proteger conteúdo web (WordPress) marcando /var/www como crítico.

Edite a policy de novo:

cd /etc/tripwire/
sudo vim twpol.txt

Adicione o bloco de regra ao final do arquivo:

# Ruleset for Wordpress
(
  rulename = "Wordpress Ruleset",
  severity= $(SIG_HI)
)
{
        /var/www        -> $(SEC_CRIT);
}

Salve e regenere a policy:

sudo twadmin -m P /etc/tripwire/twpol.txt

Digite a passphrase da site-key e reinitialize a base:

sudo tripwire --init

Digite a passphrase da local-key.

Teste criando e modificando arquivos em /var/www:

cd /var/www/
touch hakase-labs.txt
echo "

Hakase-labs Tutorial

" > html/index.nginx-debian.html sudo tripwire --check

Tripwire deve reportar violações com severidade alta.

Verificação mostrando violações na pasta web

Passo 5 — Notificações por e-mail e agendamento com cron

Tripwire pode enviar relatórios por e-mail usando a diretiva emailto na policy. Primeiro, teste envio manual:

tripwire --test --email [email protected]

Verifique sua caixa de entrada para a mensagem de teste enviada pelo servidor.

Captura mostrando e-mail de teste do Tripwire

Edite a regra (por exemplo a do WordPress) e adicione emailto:

# Rules for Web-app
(
  rulename = "Wordpress Rule",
  severity = $(SIG_HI),
  emailto = [email protected]
)

Regenerere a policy e reinitialize:

sudo twadmin -m P /etc/tripwire/twpol.txt
sudo tripwire --init

Teste um check com envio de relatório:

sudo tripwire --check --email-report

Você deverá receber um relatório por e-mail sobre as violações detectadas.

Exemplo de relatório por e-mail enviado pelo Tripwire

Agende verificações diárias com cron (rodando como root):

sudo crontab -e -u root

Adicione a linha:

0 0 * * * tripwire --check --email-report

Reinicie o serviço cron:

sudo systemctl restart cron

Exemplo de edição do crontab para Tripwire

Agora o servidor fará checagens diárias à meia-noite e enviará relatórios por e-mail quando houver violações.

Verificação e manutenção contínua

  • Revise relatórios de violação diariamente. Toda alteração siginificativa precisa ser investigada.
  • Se mudanças forem legítimas, atualize a baseline com cuidado: gerar nova policy / reinit só após confirmação.
  • Mantenha chaves (site-key e local-key) em local seguro, preferencialmente em cofre (vault) e com backup offline.

Important: não execute tripwire –init sem entender o impacto: reinit recria a baseline atual como estado “saudável” e pode tornar legítimas mudanças maliciosas se utilizadas inadvertidamente.

Quando o Tripwire pode falhar (limitações e contramedidas)

  • Sistemas com muitos arquivos efêmeros (/proc, /sys): policy padrão pode gerar falsos positivos. Mitigue comentando entradas voláteis ou usando regras que ignorem inode/mtime.
  • Arquivos encriptados ou armazenados em sistemas remotos: se o agente não vê o conteúdo real, a verificação de integridade é limitada.
  • Mudanças em massa por processos legítimos (atualizações automáticas): planeje janelas de manutenção e atualize a baseline após validação.
  • Se um atacante obtiver acesso root e as chaves locais, pode modificar a configuração e suprimir alertas. Mitigação: proteger chaves, usar HSM/vault e monitorar logs do próprio Tripwire.

Abordagens alternativas e complementares

  • AIDE (Advanced Intrusion Detection Environment): similar ao Tripwire, facilita comparação de atributos e é mantido ativamente por algumas distribuições.
  • OSSEC/ Wazuh: IDS baseado em host com capacidades de log e análise centralizada (boa opção para múltiplos hosts).
  • Ferramentas de EDR/antimalware comerciais: oferecem bloqueio e resposta, além de detecção.

Escolha: Tripwire é leve e indicado quando o foco é auditoria de integridade; para resposta automática combine com EDR/IPS.

Mini-metodologia para implantação segura em produção

  1. Instalar Tripwire em uma instância de teste e ajustar a policy até reduzir falsos positivos.
  2. Gerar baseline inicial somente após hardening do sistema.
  3. Defender chaves (site-key/local-key) com permissões restritas e backup seguro.
  4. Habilitar e testar notificações por e-mail e registrar relogios/rotas de auditoria.
  5. Agendar checagens regulares e definir playbook de investigação.

Playbook curto de resposta a violações

  1. Recebe-se alerta por e-mail sobre violação em /var/www.
  2. Acesse o servidor via console seguro (não SSH público, se possível).
  3. Identifique hashes/atributos alterados no relatório Tripwire.
  4. Compare com backups recentes e logs de acesso (web, sistema, apt).
  5. Se for mudança legítima, documente e atualize a baseline; se for maliciosa, isole o host e iniciar investigação forense.

Testes e critérios de aceitação

  • Teste 1: Criação de arquivo em /var/www deve gerar violação com severity alta. Aceitação: e-mail recebido e tripwire –check lista a alteração.
  • Teste 2: Modificação de /etc/hosts deve aparecer como violação na categoria de configs. Aceitação: tripwire –check lista alteração e gravidade adequada.
  • Teste 3: Sistema com pseudo-filesystems referenciados comentados não deve produzir “No such directory”. Aceitação: sudo tripwire –init conclui sem erro.

Checklist por função

Administrador de Sistema

  • Garantir backup seguro das passphrases
  • Atualizar twpol.txt com regras específicas da infraestrutura
  • Agendar cron e validar envios de e-mail

Equipe de Segurança

  • Definir severidades aceitáveis e playbook de resposta
  • Validar logs e investigação em caso de violação

Operações Web

  • Informar mudanças planejadas em /var/www
  • Confirmar alterações antes de atualizar baseline

Dicas de segurança e hardening

  • Permissões: /etc/tripwire e arquivos de chaves devem ser legíveis apenas por root.
  • Auditoria: registre operações twadmin e tripwire –init em um sistema de logs central.
  • Isolamento das chaves: manter backups off-line e, se possível, usar um cofre de segredos.
  • Integração: envie relatórios para um servidor de correio interno protegido ou para SIEM.

Glossário (uma linha)

  • site-key: chave mestra usada para assinar a policy criptografada;
  • local-key: chave local para operações no host (inicialização / check);
  • policy (twpol.txt): conjunto de regras que define arquivos e checagens;
  • twadmin: utilitário para administrar e gerar policy criptografada;
  • tripwire –check: comando que compara estado atual com a baseline assinada.

Referências úteis

Resumo final

Tripwire fornece uma camada importante de detecção de integridade de arquivos para hosts críticos. Com a policy ajustada para o seu ambiente e notificações por e-mail, você terá monitoramento contínuo e alertas para mudanças não autorizadas. Proteja as chaves, verifique relatórios regularmente e integre Tripwire com seus processos de manutenção para reduzir falsos positivos.

Extras

  • Comandos essenciais: sudo tripwire –init, sudo tripwire –check, sudo twadmin -m P /etc/tripwire/twpol.txt
  • Local dos arquivos: /etc/tripwire/twpol.txt (policy), /var/lib/tripwire (database), /etc/tripwire/twcfg.txt (config runtime)

Fim do tutorial.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE