Qual configuração automatizada de notificação / detecção de intrusões é adequada para o uso em desktops domésticos?

27

Estou usando o Linux há um bom tempo e sempre sinto a necessidade de ter uma configuração passiva de software / script que possa me alertar sobre qualquer atividade suspeita na rede, como verificações, tentativas de login com falha, etc. em tempo real, por e-mail ou por e-mail. notificações visuais / de áudio.

Sei como procurar em registros e outras coisas, mas na maioria das vezes é um processo manual e demorado. Estou procurando por algo que seja semi / totalmente automatizado, com alguns bons recursos de análise de log.

Estou ciente dos sistemas IDS para monitorar redes como o Snort etc., mas eles são um exagero para o usuário doméstico médio e um processo doloroso para começar a funcionar.

Qual é uma boa opção para mim como usuário doméstico?

irenicus09
fonte
Como você define 'passivo'? Como, algo que você executa de vez em quando para ver se algo estava acontecendo?
Nanne

Respostas:

15

Uma solução geral simples e eficaz é usar o logcheck .

sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]

o logcheck verifica periodicamente todos os logs com eficiência (começando de onde parou na última vez), filtra o que vê para eliminar qualquer coisa considerada normal e, opcionalmente, envia alertas por email com algo que não corresponda aos padrões normais / de rotina.

A idéia principal é observar a aparência de entradas sérias nos arquivos de log, todas elas, o tempo todo, para que você não precise.

logcheck é altamente configurável (man logcheck). Você pode configurar tudo, incluindo:

  • frequência de verificações
  • quais arquivos de log são verificados
  • o que é considerado normal vs não
  • para onde enviar os alertas (eventos anormais) para

e mais. Seus padrões de ignorar (normal / rotina) residem em vários arquivos em /etc/logcheck/ignore.d.* e você pode personalizá-los de acordo com suas necessidades; principalmente você pode querer adicionar seus próprios padrões para ignorar. O pacote padrão do Ubuntu já vem com um extenso conjunto de arquivos com padrões de ignorar para muitos serviços, então não há muito a acrescentar, a menos que seu sistema seja incomum no que é executado. Existem 3 conjuntos de perfis de arquivos ignorar pré-configurados: ignore.d.workstation , ignore.d.server e ignore.d.paranoid, dos quais você pode escolher.

A principal idéia por trás do logcheck é que os vários serviços executados em um sistema já registram eventos anormais. Por exemplo, sshd ou pam já registram falhas na autenticação. Portanto, os principais componentes ausentes são:

  • filtrando o que é normal
  • O serviço de alerta

Ambos são fornecidos por verificação de log em um pacote conveniente. Você pode combinar logcheck com qualquer outro registro. Por exemplo, o iptables pode ser configurado para syslog quaisquer tentativas de conexão de rede que não sejam explicitamente permitidas adicionando as regras:

 iptables -A input -j LOG
 iptables -A input -j DROP

imediatamente após todas as regras de permissão.

Acho que o logcheck é muito mais útil que o logwatch (sugerido em outras respostas) porque ele vem pré-empacotado com um número muito grande de regras para ignorar o que é considerado atividade normal. O resultado é uma relação sinal / ruído muito mais alta nos alertas que envia por e-mail. YMMV.

Outra vantagem do logcheck é que ele é ortogonal a qualquer serviço que faça logon, portanto não há duplicação de função. Sempre que você adiciona um novo serviço que usa syslogpara registrar eventos, anormais ou não, em qualquer arquivo em que /var/logvocê começa a receber alertas automaticamente.

COMO:

Como logcheckjá vem pré-configurado, duas linhas na parte superior desta resposta cobrem basicamente tudo o que você precisa para começar. Basta instalá-lo e passar por cima do arquivo de configuração superior: /etc/logcheck/logcheck.confpara alterar seu endereço de e-mail para que os logcheckalertas sejam enviados por e- mail .

Aqui está uma referência amigável, abordando o segundo passo com mais detalhes . Como o Ubuntu é baseado no Debian, essas instruções também devem funcionar no Ubuntu. Aqui está outra boa referência .

Após a instalação, o processo de melhoria contínua é iniciado. Com o tempo, você refina suas regras para ignorar tudo o que você já conhece e sente que não deveria ser motivo de preocupação. Esse processo de refinamento é tão simples quanto adicionar linhas de texto a um arquivo no seu editor de texto favorito.

Cada linha em um arquivo ignorar é uma expressão regular estendida (consulte man 7 regex), mas você pode usar cadeias simples, desde que correspondam à linha de log que deseja ignorar. Basta lembrar que personagens como *, ?'+', [], ()são especiais em uma expressão regular, por isso, se eles realmente aparecem nas linhas de log, você teria que escapar deles com uma barra invertida \na arquivos ignorar.

Em outras palavras: se você receber um alerta que não deseja receber, observe a linha de log que foi enviada por e-mail e adicione um padrão que corresponda a ele, como uma linha para qualquer arquivo de ignorância de sua escolha. Eu sugiro usar /etc/logcheck/ignore.d.<yourloglevel>/my-ignorescomo seu arquivo de ignorado pessoal. Onde <yourloglevel>está um dos paranoid,, serverou workstation(como você já selecionou no arquivo de configuração principal:) /etc/logcheck/logcheck.conf. Veja os exemplos em outros arquivos ignorados para ver como contabilizar o texto que muda o tempo todo, como IDs de processo ou carimbos de data / hora. Existem muitos exemplos existentes para aprender.

Uma última dica: logcheckvem com um pequeno utilitário útil chamado logcheck-testque é muito útil para testar novas regras. man logcheck-testpara detalhes.

arielf
fonte
Oi, eu gosto da idéia por trás do logcheck ... você pode me indicar um guia detalhado sobre isso? Obrigado :)
irenicus09
1
@ irenicus09: Acabei de adicionar a seção de instruções com um link opcional para referência.
Arielf 07/06
Parabéns por ganhar a recompensa, resposta muito bem escrita, cara. Obrigado :)
irenicus09
3

Se você não possui muitos sistemas em sua rede, a configuração de um IDS como o Snort provavelmente será um exagero (especialmente se você não tiver nenhum serviço de rede em sua máquina). Sugiro começar configurando o logwatch para enviar a si mesmo um relatório do que está acontecendo no seu sistema. Depois de configurá-lo, configure seu syslog para obter o máximo de informações relevantes possível.

AndrewX192
fonte
Olá, gosto da sua resposta ... mas você poderia compartilhar um pouco mais de detalhes sobre como fazer isso? Estragar as configurações pode ser bastante complicado, especialmente para um usuário inexperiente. Mas eu apreciaria se você pudesse me indicar um guia detalhado sobre isso. Obrigado.
precisa saber é o seguinte
@ irenicus09 Eu acho que isso deve ser suficiente: Como Logwatch configuração em sistemas baseados no Ubuntu
AndrewX192
obrigado pelo guia, eu configurei com sucesso o logwatch e gostei. Para varredura de porta monitorar Eu também tenho portsentry configuração e eu vou estar tentando outras ferramentas e outras coisas antes de eu finalizar qual deles é o melhor para mim :)
irenicus09
1

A detecção de intrusões é necessária quando você executa serviços (ftp, web, nfs, ssh etc.) em sua rede. Isso ocorre porque eles são expostos na internet e devido a:

  • falta de configuração
  • vulnerabilidades de software

eles precisam de monitoramento diário por um administrador de rede experiente. Se você executar esses serviços, provavelmente já possui o conhecimento mínimo de como evitar esses problemas.

Se você não executar nenhum desses serviços, o firewall do roteador da Internet já bloqueou qualquer conexão de entrada nas portas. Para verificar seu roteador de rede

Se você é todo verde, então é bom.

Por último, mas não menos importante, provavelmente o seu roteador possui um sistema interno de detecção de intrusões (porque 99% de todos os roteadores executam um servidor Linux listrado). Para isso, você deve verificar o manual do fabricante do seu roteador.

Salih Emin
fonte
Olá, obrigado pela sua resposta. É bastante esclarecedor e estou ciente de tudo o que você está falando. Mas o que quero dizer é que digamos que estou executando vários serviços no meu sistema, como exatamente acompanho as atividades da perspectiva da segurança. Eu preciso de um simples, fácil de usar a solução como um usuário doméstico e eu acho que você evitou que parte :)
irenicus09