Instalar e configurar Tripwire Host-Based IDS no Ubuntu 16.04
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 tripwireDurante 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.

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

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”).


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


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

Repita a passphrase da site-key.

Defina e confirme 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 --initDigite 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
Edite o arquivo de política twpol.txt:
cd /etc/tripwire/
sudo vim twpol.txtObservaçã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.txtDigite a passphrase da site-key quando solicitado. Depois reinitialize a base:
sudo tripwire --initDigite a passphrase da local-key. Se tudo ocorrer sem erros, a policy foi aplicada.

Passo 3 — Verificar a integridade dos arquivos do sistema
Execute uma verificação completa:
sudo tripwire --checkResultado esperado: “No Violation” e “No Error” para um sistema sincronizado com a policy.

Teste prático: crie um arquivo em $HOME e execute nova checagem:
cd ~/
touch hakase-labs.txt
sudo tripwire --checkTripwire deve reportar a adição do arquivo e a modificação do diretório pai como violações.

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.txtAdicione 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.txtDigite a passphrase da site-key e reinitialize a base:
sudo tripwire --initDigite 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 --checkTripwire deve reportar violações com severidade alta.

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.

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 --initTeste um check com envio de relatório:
sudo tripwire --check --email-reportVocê deverá receber um relatório por e-mail sobre as violações detectadas.

Agende verificações diárias com cron (rodando como root):
sudo crontab -e -u rootAdicione a linha:
0 0 * * * tripwire --check --email-reportReinicie o serviço cron:
sudo systemctl restart cron
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
- Instalar Tripwire em uma instância de teste e ajustar a policy até reduzir falsos positivos.
- Gerar baseline inicial somente após hardening do sistema.
- Defender chaves (site-key/local-key) com permissões restritas e backup seguro.
- Habilitar e testar notificações por e-mail e registrar relogios/rotas de auditoria.
- Agendar checagens regulares e definir playbook de investigação.
Playbook curto de resposta a violações
- Recebe-se alerta por e-mail sobre violação em /var/www.
- Acesse o servidor via console seguro (não SSH público, se possível).
- Identifique hashes/atributos alterados no relatório Tripwire.
- Compare com backups recentes e logs de acesso (web, sistema, apt).
- 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
- Página do projeto: https://github.com/Tripwire/tripwire-open-source
- Documentação adicional: https://www-uxsup.csx.cam.ac.uk/
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.
Materiais semelhantes
Instalar e usar Podman no Debian 11
Apt‑pinning no Debian: guia prático
Injete FSR 4 com OptiScaler em qualquer jogo
DansGuardian e Squid com NTLM no Debian Etch
Corrigir erro de instalação no Android