Proteja sua rede contra intrusos e ataques não solicitados instalando e configurando o Snort IDS.

Se você leva a sério a segurança da rede, é necessário instalar uma solução IPS ou IDS para fortalecer o perímetro da rede e desviar o tráfego de rede potencialmente indesejado.

O Snort é uma solução IPS/IDS famosa, gratuita para uso pessoal e de código aberto. Vamos aprender como você pode instalar e configurar o Snort no Linux para defender sua rede de ataques cibernéticos.

O que é Snort?

O Snort é um software de código aberto Sistema de Detecção e Prevenção de Intrusão de Rede (NIDS/IPS) software que, como o nome sugere, ajuda a proteger o perímetro de sua rede, aplicando regras e filtros que detectam e descartam pacotes potencialmente maliciosos injetados em sua rede.

Com o Snort, você poderá realizar registro avançado de tráfego de rede, detecção e análise de pacotes e definir um forte sistema de prevenção de intrusões que defende sua rede contra ataques indesejados e potencialmente maliciosos tráfego.

Pré-requisitos para instalar o Snort

Antes de instalar o Snort, há algumas configurações preliminares a serem feitas. Isso inclui principalmente atualizar e atualizar seu sistema e instalar as dependências exigidas pelo Snort para funcionar corretamente.

Comece atualizando e atualizando seu sistema.

No Ubuntu- e Distribuições Linux baseadas em Debian:

sudo apt update && apt upgrade -y

No Arch Linux e seus derivados:

sudo pacman -Syu

No RHEL e Fedora:

atualização sudo dnf

Com seu sistema atualizado, continue a instalar as dependências exigidas pelo Snort. Aqui estão os comandos que você precisa executar:

No Ubuntu e Debian, execute:

sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev

No Arch Linux, execute:

sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pullporkxz zlib cmake pkgconf

Para RHEL e Fedora, emita o seguinte comando:

sudo dnf install gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y

Além disso, você também precisa instalar manualmente a biblioteca de aquisição de dados, LibDAQ para Snort funcionar corretamente e também gperftools para gerar os arquivos de construção.

Primeiro, baixe os arquivos de origem LibDAQ do site oficial usando o comando wget. Em seguida, extraia o arquivo e vá para o diretório usando cd. Dentro do diretório, execute o bootstrap e configurar scripts, em seguida, prepare os arquivos com make e instale-os com o fazer instalar comando.

wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
tar -xzvf lib*
cd lib*
./bootstrap
./configurar
fazer
sudo make install

Com o LibDAQ instalado, você precisa instalar uma última dependência: gperftools. Comece pegando os arquivos de origem do repositório do GitHub. Extraia os arquivos, vá para o diretório e execute o script de configuração. Finalmente, instale o pacote usando os comandos make e make install.

wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./configurar
fazer
sudo make install

Uma vez instaladas essas dependências, você pode passar para as próximas etapas para instalar o Snort.

Instale o Snort da fonte no Linux

Com a configuração preliminar concluída, agora você pode se concentrar na instalação do software real. Você o construirá a partir do código-fonte, portanto, primeiro pegue os arquivos de compilação necessários.

Use o comando wget ou baixe os arquivos manualmente na página de download oficial:

wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz

Download:bufar

Após o download do arquivo contendo os arquivos de compilação, extraia-o usando o comando tar:

tar -xzvf snort*

Vá para a pasta extraída, execute o script de configuração, use o comando make para preparar os arquivos e, finalmente, instale-os com fazer instalar:

ronco de cd*
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
construção de cd
fazer
sudo make install

O Snort agora será instalado com sucesso em seu sistema. No entanto, há apenas mais uma etapa que você precisa concluir. Quando um novo software é instalado manualmente, o diretório de instalação e as bibliotecas necessárias podem não ser incluídos automaticamente no caminho padrão do sistema. Portanto, você pode encontrar erros ao iniciar o aplicativo.

Para evitar esse problema, você precisa executar o comando ldconfig. Ele sincronizará o cache da biblioteca compartilhada do sistema com bibliotecas e binários recém-instalados. Execute o comando ldconfig a partir de um shell raiz ou use o prefixo sudo:

sudo ldconfig

Agora você cobriu todas as etapas importantes necessárias para instalar o Snort. Para verificar a instalação, execute o comando Snort com o -V sinalizador e você deverá ver uma saída retornando o nome da versão e outros dados.

bufar -V

Depois de verificar a instalação do Snort, passe para as próximas etapas para configurá-lo como um IDS/IPS completo.

Configuração inicial do Snort no Linux

A eficiência do Snort depende quase inteiramente da qualidade dos conjuntos de regras fornecidos.

No entanto, antes de começar a configurar as regras, você precisa configurar as placas de rede para funcionar com o Snort e também precisa testar como a configuração padrão está sendo tratada pelo Snort. Comece configurando as placas de rede.

Defina a interface de rede para o modo promíscuo:

sudo ip link set dev interface_name promisc on

Usando o ethtool, desative o Generic Receive Offload (GRO) e o Large Receive Offload (LRO) para evitar que pacotes de rede maiores sejam truncados:

sudo ethtool -K interface_name gro off lro off

Teste o desempenho do Snort com a configuração padrão:

snort -c /usr/local/etc/snort/snort.lua

Isso deve retornar uma sinalização de saída bem-sucedida de que você instalou e configurou o Snort corretamente em seu sistema. Agora você pode mexer com seus recursos e experimentar diferentes configurações para encontrar o melhor conjunto de regras para proteger sua rede.

Configure regras e aplique-as com o Snort

Com as configurações básicas definidas, o Snort agora está pronto para defender seu perímetro. Como você sabe, o Snort precisa de conjuntos de regras para determinar a validade do tráfego, vamos configurar alguns conjuntos de regras gratuitos feitos pela comunidade para o Snort.

O Snort lê conjuntos de regras e configurações de diretórios específicos. Então, primeiro, usando os comandos mkdir e touch, crie alguns diretórios importantes para armazenar regras e outros dados relevantes para o Snort:

sudo mkdir -p /usr/local/etc/{listas, so_rules, regras} 
sudo touch /usr/local/etc/rules/local.rules
sudo touch /usr/local/etc/lists/default.blocklist

Com esses diretórios criados, você pode baixar o conjunto de regras da comunidade no site oficial usando o comando wget:

wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz

Assim que o download do conjunto de regras terminar, extraia-o e copie-o para o /usr/local/etc/rules/ diretório.

tar -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/

Para executar o Snort com o conjunto de regras, execute este comando:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k nenhum

Divisão do comando:

  • -c define o caminho para o arquivo de configuração padrão
  • -R define o caminho para o conjunto de regras a ser aplicado
  • -eu define a interface
  • -s descarta o limite snaplen
  • -k ignora somas de verificação

Isso deve validar a configuração e impor todos os conjuntos de regras no Snort. Assim que detectar qualquer perturbação na rede, ele irá alertá-lo com uma mensagem de console.

Se você deseja criar e impor seu próprio conjunto de regras, pode aprender mais sobre isso no páginas de documentação oficial.

Configurar logs com o Snort

Por padrão, o Snort não gera nenhum log. Você precisa especificar com o -EU sinalizador para iniciar o Snort no modo de registro, definir o tipo de arquivo de registro e -eu sinalizador para definir o diretório de log para o Snort despejar os logs.

Aqui está o comando para iniciar o Snort com o registro ativado:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k nenhum -L file_type -l /var/log / bufar

Divisão do comando:

  • -c define o caminho para o arquivo de configuração padrão
  • -R define o caminho para o conjunto de regras a ser aplicado
  • -eu define a interface
  • -s descarta o limite snaplen
  • -k ignora somas de verificação
  • -EU ativa o modo de log e define o tipo de arquivo de log
  • -eu define o caminho para armazenar logs

Observe que no comando de exemplo, o diretório de registro é definido como /var/log/snort. Embora essa seja uma prática recomendada, você pode armazenar seus logs em outro lugar.

Você pode ler os arquivos de log do Snort a partir do diretório definido ou passá-los para o software SIEM como o Splunk para análise posterior.

Adicione o Snort como um daemon de inicialização do sistema

Embora você tenha instalado e configurado o Snort, você precisa ter certeza de que ele começa a ser executado na inicialização e como um daemon de segundo plano. Adicioná-lo como um serviço de sistema de inicialização automática garantirá que o Snort esteja ativo e defendendo seu sistema sempre que estiver online.

Veja como adicionar um daemon de inicialização Snort no Linux:

  1. Comece criando um novo arquivo de serviço systemd:
    toque em /lib/systemd/system/snort.service
  2. Abra o arquivo em um editor de texto de sua escolha e preencha-o com os seguintes dados. Você pode modificar os sinalizadores para atender às suas necessidades:
    [Unidade]
    Description=Snort Daemon
    After=syslog.target network.target
    [Serviço]
    Tipo=simples
    ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k nenhum -l /var /log/snort -D -L pcap -i ens33
    [Instalar]
    WantedBy=multi-user.target
  3. Salve e saia do arquivo. Então, usando o serviço e comandos systemctl, ative e inicie o script:
    sudo systemctl habilitar snort.service
    sudo snort start

O daemon de segundo plano do Snort agora deve estar funcionando. Você pode verificar o status do script usando o status systemctl snort comando. Deve retornar uma saída positiva.

Agora você sabe como proteger sua rede com Snort IDS

Embora a implementação do IDS seja uma boa prática, é uma medida passiva e não ativa. A melhor forma de melhorar e garantir a segurança da sua rede é testá-la continuamente e procurar falhas para corrigir.

O teste de penetração é uma ótima maneira de encontrar vulnerabilidades exploráveis ​​e corrigi-las.