Introducción

Los sistemas de detección de intrusos son software que se utilizan para monitorear el tráfico de la red en busca de actividad sospechosa y para enviar alertas o tomar medidas si se detectan.

Con los ataques cada vez más sofisticados, los firewalls y la seguridad del perímetro de la red no son suficientes porque necesitamos identificar las amenazas antes de que puedan tener un impacto significativo.

Desafortunadamente, algunos de los sistemas de detección de intrusos como el IDS de Cisco son demasiado costosos para algunas empresas.

Afortunadamente, Snort vino al rescate como posiblemente uno de los mejores sistemas de detección de intrusos de código abierto que existen, que se ejecuta en casi todas las plataformas Linux, Unix y Mac OS.

Algunas de las características que ofrece Snort incluyen:

  • Sistema de detección de intrusiones en la red
  • Analizador de paquetes
  • Registrador de paquetes

requisitos

  • Un servidor VPS / dedicado que ejecuta Ubuntu 18.04
  • Un usuario no root con privilegios sudo

pasos

Actualizar paquetes del sistema

$ sudo apt update && sudo apt upgrade

Vamos a instalar varios archivos de origen, por lo que querrá crear una carpeta para contener estos paquetes.

$ mkdir snort_src && cd snort_src

Instalar dependencias de Snort

Instale los requisitos previos de Snort en la carpeta que creó

$ sudo sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev 
> libpcre3-dev zlib1g-dev pkg-config libhwloc-dev

Instalar la biblioteca cmake

$ sudo apt install -y cmake

Luego, querremos instalar algunas bibliotecas opcionales, pero muy recomendadas.

$ sudo apt install -y liblzma-dev openssl libssl-dev cpputest libsqlite3-dev uuid-dev

Dado que snort está instalado por Github, definitivamente queremos tener las herramientas para trabajar con él.

$ apt install -y libtool git autoconf

En la biblioteca de recopilación de datos de Snort, las dependencias deben estar instaladas:

$ sudo apt install -y bison flex

Instale la biblioteca Safe C para evitar verificaciones de desbordamiento del búfer en tiempo de ejecución (causadas por llamadas de biblioteca C más antiguas)

$ wget  >https://downloads.sourceforge.net/project/safeclib/libsafec-10052013.tar.gz
$ tar -xzvf libsafec-10052013.tar.gz
$ cd libsafec-10052013
$ ./configure
$ make
$ sudo make install

Para optimizar el rendimiento con un alto uso de memoria, instalaremos Google Performance Tools (gfpertools):

$ cd ~/snort_src/
$ wget  >https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz
$ tar xzvf gperftools-2.7.tar.gz
$ cd gperftools-2.7
$ ./configure
$ make
$ sudo make install

Para una coincidencia de patrones más rápida, instalaremos Ragel y Boost, que son dependencias de Hyperscan que nos ayudan a hacer coincidir varias expresiones regulares más rápido durante el escaneo.

Descargue e instale la biblioteca Ragel:

$ cd ~/snort_src/ 
$ wget http://www.colm.net/files/ragel/ragel-6.10.tar.gz
$ tar -xzvf ragel-6.10.tar.gz
$ cd ragel-6.10
$ ./configure
$ make
$ sudo make install

Descargue pero no instale las bibliotecas de Boost C ++.

$ cd  ~/snort_src/
$ wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz
$ tar -xvzf boost_1_67_0.tar.gz

Descargue e instale Hyper-Scan mientras apunta a la ubicación de origen de los encabezados de Boost:

$ ~/snort_src/
$ wget https://github.com/intel/hyperscan/archive/v4.7.0.tar.gz
$ tar -xvzf v4.7.0.tar.gz 
$ mkdir ~/snort_src/hyperscan-4.7.0-build 
$ cd hyperscan-4.7.0-build/
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local  >-DBOOST_ROOT=~/snort_src/boost_1_67_0/ ../hyperscan-4.7.0
$ make 
$ sudo make install

Para probar que Hyper-Scan está funcionando:

$ cd ~/snort_src/hyperscan-4.7.0-build/
$ ./bin/unit-hyperscan

Luego, necesitamos instalar una biblioteca de serialización de memoria llamada flatbuffers que es más eficiente:

$ cd ~/snort_src
$ wget https://github.com/google/flatbuffers/archive/v1.9.0.tar.gz -O flatbuffers-v1.9.0.tar.gz
$ tar -xzvf flatbuffers-1.9.0.tar.gz
$ mkdir flatbuffers-build && cd flatbuffers-build
$ cmake ../flatbuffers-1.9.0
$ make
$ sudo make install

Instalar Snort

Primero debemos instalar la biblioteca de adquisición de datos (DAQ) del sitio web de snort:

$ cd ~/snort_src
$ wget https://www.snort.org/downloads/snortplus/daq-2.2.2.tar.gz
$ tar -xzvf  daq-2.2.2.tar.gz
$ cd daq-2.2.2
$ ./configure
$ make
$ sudo make install

Actualizar las bibliotecas compartidas

$ sudo ldconfig

Finalmente, descargue e instale el código fuente de Snort:

$ cd ~/snort_src
$ git clone git://github.com/snortadmin/snort3.git
$ cd snort3
$ ./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
$ cd build
$ make
$ sudo make install

Puede comprobar si se ha instalado snort:

$ /usr/local/bin/snort -V

Conclusión

Si obtuvo el mismo resultado que el anterior, significa que ha instalado con éxito snort en su VPS / Host Dedicado. El siguiente paso sería configurar permanentemente las variables globales necesarias para ejecutar snort.