Guia de instalação do Snort 3 baseado no ambiente do sistema CentOS 8

O. Requisitos de leitura
Este tutorial não é adequado para iniciantes.Antes de ler este artigo, você precisa ter experiência de instalação bem-sucedida do CentOS 8 Linux e Snort 2.9. Esta instalação depende muito da rede, portanto, você deve ajustar o status da rede.O conteúdo apresentado neste guia é usado apenas em um ambiente de teste.

1. Meio Ambiente

Máquina virtual: VMware Workstation V15

Imagem de instalação: CentOS 8 (CentOS-8.2.2004-x86_64-minimal.iso)

Método de instalação: com base em considerações de segurança de rede, este experimento usa uma instalação mínima do CentOS 8, memória (4G +), CPU (4 núcleos) e espaço em disco (20G +).

Localização do código-fonte: armazene vários pacotes de código-fonte de instalação em / root / sources /. No início do experimento, o pacote pode ser clonado do github.

Dois, inicialização do mini sistema CentOS8

Quando o CentOS8 foi instalado pela primeira vez, o sistema ainda estava inutilizável. Primeiro temos que configurar a rede. Aqui, configuramos um endereço IP estático para a placa de rede. Ao instalar o sistema, selecione apenas Instalação mínima para minimizar a instalação, nenhuma outra opção precisa ser verificada.
Guia de instalação do Snort 3 baseado no ambiente do sistema CentOS 8

3. Ative a fonte de software EPEL e PowerTools

Alguns pacotes de desenvolvimento necessários para o processo de compilação do Snort não estão disponíveis no repositório padrão do CentOS 8, então precisamos adicionar repositórios EPEL e PowerTools ao sistema.

[root @ localhost ~] #dnf config-manager --add-repo /etc/yum.repos.d/CentOS-PowerTools.repo

[root @ localhost ~] # dnf config-manager --set-enabled PowerTools

[root @ localhost ~] # dnf install epel-release

Dica: Centos7 também pode executar este comando se dnf estiver instalado.

Instale o repositório PowerTools

Depois de ativar os dois repositórios, use o seguinte comando para atualizar todos os pacotes:

#dnf upgrade

Resumo transação

=================================== Instalar 13 pacotes

Atualizar 259 Pacotes

Tamanho total do download: 291 milhões

Isso está ok [s / N]:

Provavelmente, o conteúdo atualizado é 291 M. Após a atualização, reinicie o sistema.

Após a conclusão da tarefa, efetue login no sistema novamente e crie um arquivo de configuração local.conf no diretório /etc/ld.so.conf.d/

#vi /etc/ld.so.conf.d/local.conf

Adicione o seguinte conteúdo:

/ usr / local / lib

/ usr / local / lib64

Salvar e sair

#ldconfig

Quarto, instale pacotes dependentes

O link de instalação de pacotes dependentes é muito importante. Existem muitas dependências de instalação, vamos desmontar e instalar primeiro

[root @ localhost ~] # dnf install flex bison gcc gcc-c ++ make cmake automake autoconf libtool

[root @ localhost ~] # dnf install libpcap-devel pcre-devel libdnet-devel hwloc-devel openssl-devel zlib-devel luajit-devel pkgconfig libmnl-devel

[root @ localhost ~] # dnf install libnfnetlink-devel libnetfilter_queue-devel

Este comando deve ser executado antes de instalar o DAQ.

Depois de instalar todos os pacotes, você precisa baixar LibDAQ do repositório Git e compilá-lo do código-fonte baixado.

Cinco, instale o libDAQ

#cd sources

#git clone snort3 / libdaq

#cd libdaq /

#. / bootstrap // O arquivo de configuração é gerado após o comando ser executado

#. / configure

O resultado da execução deste comando é mostrado na figura abaixo.Se eles forem consistentes, a operação pode ser continuada.

#make // make é um único núcleo, make j $ (nproc) pode ser trocado.

#make install

Instale DAQ (biblioteca de aquisição de dados) aqui. Snort 3 e Snort 2.9.xx series usam DAQ diferente.

Seis, instale o Hyperscan

O Snort3 usará a correspondência de padrões rápida Hyperscan. O Hyperscan requer arquivos de cabeçalho Ragel e Boost, portanto, não podemos instalar o Hyperscan diretamente. Para instalar o Hyperscan de uma vez, ele é dividido nas 10 etapas a seguir:

1. 安装 LZMA e UUID

#dnf install xz-devel libuuid-devel

2. Instale Python e Sqlite

#dnf install python3 sqlite-devel

3. Instale a coluna

[fontes root @ localhost] # pwd

/ root / sources

#tar zxvf colm-0.13.0.7.tar.gz && cd colm-0.13.0.7

#. / configure

#make -j $ (nproc)

#make -j $ (nproc) install

#ldconfig

4. Instale o ragel

Se o pacote ragel for instalado incorretamente, ele causará diretamente a falha na compilação do hyperscan.

curl -LO http://www.colm.net/files/ragel/ragel-7.0.0.12.tar.gz

#tar zxvf ragel-7.0.0.12.tar.gz && cd ragel-7.0.0.12

./configure

Se você encontrar um erro, configure: erro: verifique a coluna: versão esperada 0.13.0.7, mas está instalada

Pode ser que o colm não esteja instalado corretamente, mas pode ser consertado por um comando de "dnf install colm". Continue a compilar o ragel abaixo

#make -j $ (nproc) // A velocidade de compilação multi-core é muito mais rápida do que single-core

#make -j $ (nproc) install

#ldconfig

5. Instale o boost

Como o Hyperscan requer Bibliotecas Boost C ++, para instalar o Hyperscan, você também precisa da biblioteca boost versão 1.58 ou superior. Abaixo, baixamos v1.72 (este pacote não precisa ser instalado).

[root @ localhost sources] # // O diretório atual está em / root / sources /

Baixe e descompacte bootst

#tar xf boost_1_72_0.tar.gz

Apenas descompacte o bootst para o diretório atual.

6. Instale o hiperscan

Depois de se preparar para as 5 etapas acima, aqui está a aparência oficial do hiperscan.

#tar xf hyperscan-5.2.1.tar.gz

#mkdir hs-build && cd hs-build

Criar arquivo de soft link

[root @ localhost hs-build] # ln -s ~ / sources / boost_1_72_0 / boost ~ / sources / hyperscan-5.2.1 / include / boost

Certifique-se de que o diretório atual seja / root / sources / hs-build / e digite os seguintes comandos.

[root @ localhost hs-build] # cmake -DCMAKE_BUILD_TYPE = Release -DCMAKE_INSTALL_PREFIX = / usr / local / ../hyperscan-5.2.1

Quando instalamos o Hyperscan 5.1.1, precisamos do caminho do diretório de origem referenciado pelo arquivo de cabeçalho Boost.

Durante o processo de instalação e compilação, o seguinte conteúdo de exibição aparece, indicando a instalação bem-sucedida:

Configuração feita

- Geração feita

- Os arquivos de compilação foram gravados em: / root / sources / hs-build

Continue a compilar o Hyperscan abaixo (o processo é mais lento)

[root @ localhost hs-build] # make -j $ (nproc) // nproc é o número de núcleos para ler a CPU

Veja o conteúdo a seguir, o que significa sucesso.

Varredura de dependências do alvo simplegrep

[99%] Exemplos de objetos de construção C / CMakeFiles / simplegrep.dir / simplegrep.co

[100%] Vinculando executável CXX ../bin/simplegrep

[100%] Alvo construído simplegrep

Se esta etapa for alcançada, significa que a compilação foi concluída e a instalação é muito simples.

#make -j $ (nproc) install

Veja o seguinte conteúdo para indicar que a instalação está completa

- Instalar configuração: "RELEASE"

- Instalando: /usr/local/lib64/pkgconfig/libhs.pc

- Instalando: /usr/local/include/hs/hs.h

- Instalando: /usr/local/include/hs/hs_common.h

- Instalando: /usr/local/include/hs/hs_compile.h

- Instalando: /usr/local/include/hs/hs_runtime.h

- Instalando: /usr/local/lib64/libhs_runtime.a

- Instalando: /usr/local/lib64/libhs.a

- Instalando: /usr/local/share/doc/hyperscan/examples/simplegrep.c

- Instalando: / usr / local / share / doc / hyperscan / examples / http://pcapscan.cc

- Instalando: / usr / local / share / doc / hyperscan / examples / http://patbench.cc

- Instalando: /usr/local/share/doc/hyperscan/examples/README.md

Depois de executar o comando acima, 7 arquivos serão gerados no diretório bin

[root @ localhost bin] # pwd

/ root / sources / hs-build / bin

[root @ localhost bin] # ls

hsbench hscheck hscollider patbench pcapscan simplegrep unit-hyperscan

7. Teste o Hyperscan

Quer a instalação seja boa ou não, o teste tem a palavra final. Vamos testar os resultados da instalação do Hyperscan.

[root @ localhost bin] # ./unit-hyperscan

[==========] Executando 3746 testes de 33 casos de teste.

[----------] Configuração do ambiente de teste global.

[----------] 9 testes de CustomAllocator

[RUN] CustomAllocator.DatabaseInfoBadAlloc

[OK] CustomAllocator.DatabaseInfoBadAlloc (0 ms)

8. Instale flatbuffers

Primeiro, olhe para o diretório atual

[fontes root @ localhost] # pwd

/ root / sources

#curl -Lo flatbuffers-1.12.tar.gz https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz

#tar xf flatbuffers-1.12.tar.gz

#mkdir fb-build && cd fb-build

[root @ localhost fb-build] #cmake ../flatbuffers-1.12.0

Veja o seguinte conteúdo para indicar o sucesso

- Configuração feita

- Geração feita

- Os arquivos de compilação foram gravados em: / root / sources / fb-build

#make -j $ (nproc) // O tempo de compilação é relativamente longo

[100%] Banco de planos alvo construído

#make -j $ (nproc) install // Adicione quatro arquivos ao diretório / usr / local / lib64.

#ldconfig

#cd ../

9. Instale o Safec

Existem duas formas de instalar o safec, podemos escolher uma delas:

Método 1:

#dnf install libsafec libsafec-devel

#ln -s /usr/lib64/pkgconfig/safec-3.3.pc /usr/local/lib64/pkgconfig/libsafec.pc

Observe que o comando acima só pode ser executado após o Hyperscan ser instalado corretamente.

Método 2:

Se você preferir instalar a partir da fonte, as etapas a seguir

#curl -LO https://github.com/rurban/safeclib/releases/download/v08112019/libsafec-08112019.0-gad76c7.tar.gz :

#tar xf libsafec-08112019.0-gad76c7.tar.gz

#cd libsafec-08112019.0-gad76c7

[root @ localhost libsafec-08112019.0-gad76c7] # ./configure

#faço

faça instalar

cd ../

10. Instale o Tcmalloc

#wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.8/gperftools-2.8.tar.gz

Após descompactar, execute o seguinte comando

#. / configure

#faço

#make install

Sete, instale o Snort3

As 10 subetapas da sexta etapa são as mais difíceis. Somente quando instaladas corretamente é que a instalação desta etapa pode ser realizada.

[root @ localhost sources] #tar xvf snort3.tar.gz cd snort3

[root @ localhost sources] # export PKG_CONFIG_PATH = / usr / local / lib / pkgconfig: $ PKG_CONFIG_PATH

[root @ localhost sources] # export PKG_CONFIG_PATH = / usr / local / lib64 / pkgconfig: $ PKG_CONFIG_PATH

[root @ localhost sources] # echo $ PKG_CONFIG_PATH // Ver variáveis ​​de ambiente

O Snort 3 precisa configurar várias variáveis ​​de ambiente para funcionar corretamente. Armazenamos temporariamente essas variáveis ​​na sessão atual e as salvamos permanentemente no arquivo .bashrc local. Adicione-as diretamente ao arquivo .bashrc. Por exemplo:

#sh -c "echo 'export SNORT_LUA_PATH = / opt / snort / etc / snort' >> ~ / .bashrc"

#. / configure_cmake.sh --prefix = / usr / local / snort --enable-tcmalloc

Entre eles, / usr / local / snort é o caminho de instalação do snort3.

--prefix = / usr / local / snort

O parâmetro acima significa que o snort instalará o arquivo no diretório / usr / local / snort.

#tree / usr / local / snort / -Ld 3 // Visualize o diretório de três níveis

Comece a compilar o snort3

[root @ localhost snort3] # cd build /

[root @ localhost snort3] #make -j $ (nproc)

[root @ localhost snort3] make -j $ (nproc) install

[root @ localhost snort3] cd ../../

Erro típico de compilação:

Varredura de dependências de rna alvo

[80%] Construindo objeto CXX src / network_inspectors / rna / CMakeFiles / rna.dir / rna_event_handler.cc.o

[80%] Construindo objeto CXX src / network_inspectors / rna / CMakeFiles / rna.dir / rna_fingerprint_tcp.cc.o

No arquivo incluído em /root/sources/snort3/src/network_inspectors/rna/rna_fingerprint_tcp.h:30,

de /root/sources/snort3/src/network_inspectors/rna/rna_fingerprint_tcp.cc:25:

/root/sources/snort3/src/network_inspectors/rna/rna_fingerprint.h:24:10: erro fatal: uuid / uuid.h: Esse arquivo ou diretório não existe

#include <uuid / uuid.h>

^~~~~

compilação terminada.

make [2]: *** [src / network_inspectors / rna / CMakeFiles / rna.dir / build.make: 76: src / network_inspectors / rna / CMakeFiles / rna.dir / rna_fingerprint_tcp.cc.o] Erro 1

make [1]: *** [CMakeFiles / Makefile2: 5293: src / network_inspectors / rna / CMakeFiles / rna.dir / all] Erro 2

make: *** [Makefile: 152: all] Erro 2

[root @ localhost build] #

Experiência: Se a compilação falhar em 80%, recompile após a depuração, a primeira parte 0 ~ 80% será muito rápida.

Oito, comece snort3

[root @ localhost ~] # / usr / local / snort / bin / snort -V

,, _ - > Snort ++ < -

o ") ~ Versão 3.0.2 (Build 5)

'' '' Por Martin Roesch & The Snort Team

Snort - Contato

Copyright (C) 2014-2020 Cisco e / ou suas afiliadas. Todos os direitos reservados.

Copyright (C) 1998-2013 Sourcefire, Inc., et al.

Usando DAQ versão 3.0.0

Usando LuaJIT versão 2.0.4

Usando OpenSSL 1.1.1c FIPS 28 de maio de 2019

Usando libpcap versão 1.9.0-PRE-GIT (com TPACKET_V3)

Usando PCRE versão 8.42 20/03/2018

Usando ZLIB versão 1.2.11

Usando FlatBuffers 1.12.0

Usando Hyperscan versão 5.2.1 2020-08-16

Usando LZMA versão 5.2.4

Nove, instale o snort3 Extra

[root @ localhost sources] # git clone https://github.com/snort3/snort_extra.git

Clonando em 'snort_extra' ...

Nome de usuário para 'GitHub: Onde o mundo constrói software': ossimuser

Senha para 'GitHub: Onde o mundo constrói software':

[root @ 192 ~] # git clone snort3 / snort3_extra

Clonando em'snort3_extra '...

remoto: enumerando objetos: 545, concluído.

remoto: Contando objetos: 100% (545/545), pronto.

remoto: Compactando objetos: 100% (316/316), pronto.

remoto: Total 3724 (delta 322), reutilizado 433 (delta 227), embalagem reutilizada 3179

Entre os destinatários: 100% (3724/3724), 713,88 KiB | 650,00 KiB / s, completo.

Delta de processamento: 100% (2490/2490), concluído.

Se você baixar o código-fonte online para este experimento, você deve se registrar para uma conta no github.

Antes de construir plug-ins adicionais, a variável de ambiente PKG_CONFIG_PATH deve ser definida. Você pode verificar o caminho listando o diretório de instalação do Snort.

[root @ 192 tmp] # cd snort3_extra /

[root @ 192 snort3_extra] # export PKG_CONFIG_PATH = / usr / local / snort / lib64 / pkgconfig: $ PKG_CONFIG_PATH

[root @ 192 snort3_extra] #

[root @ 192 snort3_extra] # ./configure_cmake.sh --prefix = / usr / local / snort / extra

Veja as informações de saída abaixo, indicando sucesso

snort_extra versão 1.0.0

Opções de instalação:

prefixo: / usr / local / snort / extra

Opções do compilador:

CC: / usr / bin / cc

CXX: / usr / bin / c ++

EXE_LDFLAGS:

MODULE_LDFLAGS:

- Configuração feita

- Geração feita

- Os arquivos de compilação foram gravados em: / root / snort3_extra / build

A instalação do Snort3.0 apresentada acima é expandida como uma opção, e a instalação principal é basicamente para isso. Haverá muitos tópicos sobre a configuração do Snort3 no período posterior. Vamos falar sobre isso na próxima edição.

Acho que você gosta

Origin blog.51cto.com/chenguang/2550178
Recomendado
Clasificación