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:
- Comece criando um novo arquivo de serviço systemd:
toque em /lib/systemd/system/snort.service
- 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 - 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.