Instalar Snort en una Raspberry Pi (I)

En este post voy a mostrar la instalación del IDS Snort en una Raspberry Pi. Snort es un IDS de red (NIDS) que captura los paquetes que circulan en la red y sobre la base de una heurística programada por reglas, para cada tipo de intrusión, es capaz de disparar alertas.

En concreto, para este ejercicio, voy a emplear una Raspberry Pi 2B. Voy a partir de una instalación fresca de Raspbian Stretch Lite. El proceso de instalación del Sistema Operativo es exactamente el mismo que el descrito aquí. Por hacer un resumen rápido del proceso:

  1. Descargo la imagen de Raspbian al PC de sobremesa.
  2. Grabo la imagen descargada, empleando el programa Win32DiskImager.
  3. Creo, en la partición de boot, un fichero vacío con nombre ssh, para habilitar el servidor SSH en el arranque.
  4. Conecto la Raspberry Pi a la red a través del switch que tengo.
  5. Arranco la Raspberry y averiguo (conectándome) al router de banda ancha, la dirección IP que le asigna por DHCP.
  6. Me conecto por SSH empleando Putty a la Raspberry para continuar con la configuración inicial.

Una vez conectado por SSH realizo los siguientes pasos de configuración inicial:

1. Cambio la password por defecto:

pi@raspberrypi:~ $ passwd
Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

2. Actualizo los paquetes instalados:

pi@raspberrypi:~ $ sudo apt update
pi@raspberrypi:~ $ sudo apt upgrade

3. Mediante el programa raspi-config configuro el teclado.

4. Adapto el fichero dhcpcd.conf para realizar la configuración de la dirección IP estática de la Raspberry.

# dhcpcd.conf

# Static IP configuration

interface eth0
        ipv4only
        static ip_address=192.168.1.28/24
        static routers=192.168.1.1
        static domain_name_servers=10.1.4.2 208.67.222.222 208.67.220.220

5. Creo el fichero dhcpcd.exit-hook para configurar las rutas a las redes del entorno de lab:

pi@raspberrypi:/etc $ cat dhcpcd.exit-hook
ip route add 10.1.2.0/24 via 192.168.1.4
ip route add 10.1.3.0/24 via 192.168.1.4
ip route add 10.1.4.0/24 via 192.168.1.4
pi@raspberrypi:/etc $

6. Rearranco y verifico que la dirección IP correcta y las rutas están establecidas.

pi@raspberrypi:~ $ ifconfig -a
eth0: flags=4163  mtu 1500
        inet 192.168.1.28  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ba27:ebff:fec2:4299  prefixlen 64  scopeid 0x20
        ether b8:27:eb:c2:42:99  txqueuelen 1000  (Ethernet)
        RX packets 179  bytes 13849 (13.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 129  bytes 18433 (18.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pi@raspberrypi:~ $ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
10.1.2.0        192.168.1.4     255.255.255.0   UG    0      0        0 eth0
10.1.3.0        192.168.1.4     255.255.255.0   UG    0      0        0 eth0
10.1.4.0        192.168.1.4     255.255.255.0   UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0

7. Creo, en el servidor SVN el repositorio para los ficheros de configuración de la Raspi.

8. Instalo subversion para mantener la configuración de la máquina alojada en el repositorio SVN del entorno lab.

pi@raspberrypi:~ $ sudo apt install subversion

9. Creo, desde la Raspi, un directorio en el repositorio SVN para mantener los ficheros de configuración existentes bajo /etc. La operación va a avisar que los certificados que uso no son de una autoridad reconocida y me va a solicitar la autenticación

pi@raspberrypi:~ $ sudo svn mkdir https://svnrepo.tcantos.com/svn/rpisnort/etc -m ""

10. Hago un checkout inicial en el directorio /etc y añado al repositorio SVN los ficheros de configuración:

pi@raspberrypi:/ $ cd /etc
pi@raspberrypi:/etc $ sudo svn add hosts issue dhcpcd.conf dhcpcd.exit-hook hostname
A         issue
A         dhcpcd.conf
A         dhcpcd.exit-hook
A         hostname
A         hosts
pi@raspberrypi:/etc $ sudo svn commit -m ""
Adding         dhcpcd.conf
Adding         dhcpcd.exit-hook
Adding         hostname
Adding         hosts
Adding         issue
Transmitting file data .....done
Committing transaction...
Committed revision 2.

11. En el PC de sobremesa, creo el directorio para la copia local y hago un checkout. A partir de este momento puedo trabajar con los ficheros de configuración en el PC.

12. Añado las entradas correspondientes al nuevo equipo en la base de datos de mi servidor DNS y rearranco el servidor.

13. Por último, configuro que la Raspi sincronice tiempos con el servidor de tiempos del lab.

Con esto queda configurada la Raspberry Pi para los pasos siguientes.

 

Autor: dotorqantico

Químico y escéptico, me gusta la ciencia, la lectura, el golf y el ciclismo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s