Que configuração automatizada de notificação / detecção de invasões é boa para uso em computadores 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 atividades de rede suspeitas, como verificações, tentativas de login malsucedidas, etc. e-mail ou por notificações visuais / de áudio.

Eu sei procurar por logs e outras coisas, mas na maioria das vezes é um processo manual e demorado. Eu estou procurando por algo que é semi / totalmente automatizado com alguns bons recursos de análise de log.

Estou ciente dos sistemas IDS para monitoramento de 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.

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

    
por irenicus09 13.04.2013 / 08:53

3 respostas

15

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

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

logcheck varre periodicamente todos os logs de forma eficiente (começando de onde parou da última vez), filtra o que vê para eliminar qualquer coisa considerada normal e, opcionalmente, envia e-mails com qualquer coisa que não corresponde aos padrões normais / de rotina.

A idéia principal é observar a aparência de qualquer entrada séria em seus arquivos de log, todos eles, o tempo todo, então você não tem para.

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

  • frequência de cheques
  • quais arquivos de log estão marcados
  • o que é considerado normal vs não
  • para onde enviar os alertas por e-mail (eventos anormais) para

e mais. Seus padrões de ignorados (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 vem com um extenso conjunto de arquivos com padrões de ignorar para muitos serviços já, então não há muito a adicionar a menos que seu sistema seja incomum no que é executado. Existem 3 conjuntos de perfis de arquivos ignorados pré-configurados: ignore.d.workstation , ignore.d.server e ignore.d.paranoid que você pode escolher.

A ideia principal 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á registra falhas de autenticação. Portanto, os principais componentes ausentes são:

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

Ambos são fornecidos por logcheck em um pacote conveniente. Você pode combinar logcheck com qualquer outro registro. Por exemplo, iptables pode ser configurado para syslog qualquer tentativa de conexão de rede que não seja explicitamente permitida pela adição das regras:

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

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

Eu acho que logcheck é muito mais útil do que logwatch (sugerido em outras respostas) porque é pré-embalados 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 ele envia por e-mail. YMMV.

Outra vantagem do logcheck é que ele é ortogonal para qualquer serviço que registra, portanto não há duplicação de função. Sempre que você adicionar um novo serviço que use syslog para registrar eventos, anormais ou não, em qualquer arquivo em /var/log , você começará a receber alertas automaticamente.

HOWTO:

Since logcheck already comes preconfigured, two lines at the top of this answer essentially cover all you need to get started. Just install it, and go over the top configuration file: /etc/logcheck/logcheck.conf to change your email address so logcheck emails alerts to you.

Here's a friendly reference going over the second step in more detail. Since Ubuntu is based on Debian, these instructions should work on Ubuntu too. Here is another good reference.

Once you install, the continuous improvement process starts. Over time, you refine your rules to ignore anything that you already know about and feel shouldn't be of concern. This refinement process is as simple as adding text lines to a file in your favorite text editor.

Each line in an ignore file is an extended regular expression (see man 7 regex), but you may use simple strings as long as they match the log line you want to ignore. Just remember that characters like *, ?, '+', [], () are special in a regular expression, so if they actually appear in the log lines, you would have to escape them with a backslash \ in the ignore files.

In other words: if you get an alert you don't want to get, look at the log line that was emailed to you, and add a pattern that matches it, as one line to any ignore file of your choice. I suggest using /etc/logcheck/ignore.d.<yourloglevel>/my-ignores as your personal ignore file. Where <yourloglevel> is one of paranoid, server, or workstation (as you've already selected in the main config file: /etc/logcheck/logcheck.conf). Look at the examples in other ignore files to see how to account for text that changes all the time like process-IDs, or time-stamps. There are lots of existing examples to learn from.

Uma última dica: logcheck vem com um pequeno utilitário útil chamado logcheck-test , que é muito útil para testar novas regras. man logcheck-test para detalhes.

    
por arielf 19.04.2013 / 21:56
3

Se você não tem muitos sistemas em sua rede, configurar um IDS como o Snort é provavelmente 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 um relatório do que está acontecendo no seu sistema. Depois disso, configure seu syslog para obter o máximo possível de informações relevantes.

    
por AndrewX192 15.04.2013 / 07:31
1

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

  • miss-configuration
  • vulnerabilidades de software

eles precisam de monitoramento diário por um administrador de rede experiente. Se você executar esses serviços, provavelmente já tem 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 escanear seu roteador de rede

  • basta visitar o link
  • clique em "prosseguir"
  • selecione "Todas as portas" para verificar as portas abertas

Se você é todo verde, então está tudo bem.

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

    
por Salih Emin 16.04.2013 / 23:10