Eu trabalho muito no projeto OSSEC e sei que isso pode resolver seus problemas. Não fora da caixa, mas com um pouco de sintonia vai funcionar.
Seção 1: Gerar um md5sum de tabelas ip
Sobre os novos recursos do OSSEC está relatando a diferença de saída de comando para fazer isso, basta adicionar o seguinte em seu etc / ossec.conf
<ossec_config>
<localfile>
<log_format>command</log_format>
<command>iptables -L -n</command>
</localfile>
</ossec_config>
Em seguida, crie uma regra local como a seguinte
<rule id="98989" level="10">
<if_sid>530</if_sid>
<match>ossec: output: iptables -L -n</match>
<check_diff />
<description>Change made to iptables</description>
</rule>
Mais detalhes podem ser encontrados link
Seção 2: tenha certos pontos de montagem que são somente de leitura
Atualmente, o rootcheck faz algumas verificações simples para isso, mas adicionar as suas próprias é fácil.
Primeiro, crie um arquivo de diretiva de verificação de raiz em etc/shared/
para este exemplo. Eu nomearei unix_mount_policy.txt
com o seguinte conteúdo.
# This will make sure that the OS this file is used for pilicy is running redhat
# and it should be changed for your environment
[Policy - Check OS] [any required] [http://intranet.example.com/location/of/policy]
f:/etc/redhat-release -> r:^Red Hat Enterprise Linux \S+ release 5;
f:/etc/redhat-release -> r:^CentOS && r:release 5.2;
# First real rule
# This will alert if /usr does not have ro on the same line
[Policy - Mounts read only] [any] [http://intranet.example.com/location/of/policy/readonly]
f:/etc/fstab -> !r:^# && r:/usr && !r:ro
Seção 3: Monitora a saída do netstat apenas para serviços de escuta
rootcheck já preforma esta função, mas se você quiser ver se alguma coisa muda usando o loggin de saída comum da minha resposta na seção 1 deve ser muito simples de configurar.