Cómo instalar la herramienta de captura de paquetes Arkime Moloch en Ubuntu 22.04
Arkime es una herramienta de captura y búsqueda de paquetes indexada a gran escala, gratuita y de código abierto, que almacena e indexa el tráfico de red en formato PCAP. También se conoce como Moloch, que está diseñado para desplegarse en múltiples sistemas en clúster, proporcionando la capacidad de escalar para manejar múltiples gigabits por segundo de tráfico. Arkime tiene una interfaz de administración integrada que te ayuda a examinar, buscar y exportar PCAP. Puedes utilizar otras herramientas de ingesta de PCAP para analizar tu flujo de trabajo.
Este tutorial te mostrará cómo instalar la herramienta Arkime de Captura de Paquetes en Ubuntu 22.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, tendrás que actualizar los paquetes de tu sistema a la última versión. Puedes actualizarlos con el siguiente comando:
apt-get update -y
Una vez actualizados todos los paquetes, instala las dependencias necesarias con el siguiente comando:
apt-get install gnupg2 curl wget -y
A continuación, también tendrás que instalar las bibliotecas Libssl y Libffi en tu sistema. Puedes descargar e instalar ambas ejecutando el siguiente comando:
wget http://es.archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi7_3.3-4_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb dpkg -i libffi7_3.3-4_amd64.deb dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/local/lib/ ln -s /usr/lib/x86_64-linux-gnu/libffi.so.7 /usr/local/lib/
Una vez instalados todos los paquetes, puedes pasar al siguiente paso.
Instalar Elasticsearch
Arkime utiliza Elasticsearch para indexar y realizar búsquedas. Por tanto, Elasticsearch debe estar instalado en tu sistema. Por defecto, la última versión de Elasticsearch no está incluida en el repositorio por defecto de Ubuntu. Así que tendrás que añadir el repositorio de Elasticsearch a tu sistema.
Primero, añade la clave GPG con el siguiente comando:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch --no-check-certificate | apt-key add -
A continuación, añade el repositorio de Elasticsearch al APT con el siguiente comando:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
A continuación, actualiza el repositorio e instala el paquete Elasticsearch con el siguiente comando:
apt-get update -y apt-get install elasticsearch -y
Una vez instalado Elasticsearch, edita el archivo de configuración de Elasticsearch y configura la memoria Java:
nano /etc/elasticsearch/jvm.options
Cambia las siguientes líneas:
-Xms500m -Xmx500m
Guarda y cierra el archivo, luego habilita el servicio Elasticsearch para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl enable --now elasticsearch
Por defecto, Elasticsearch escucha en el puerto 9200. Puedes comprobarlo con el siguiente comando:
ss -antpl | grep 9200
Deberías obtener la siguiente salida:
LISTEN 0 4096 [::ffff:127.0.0.1]:9200 *:* users:(("java",pid=30581,fd=291)) LISTEN 0 4096 [::1]:9200 [::]:* users:(("java",pid=30581,fd=290))
También puedes comprobar Elasticsearch con el siguiente comando:
curl http://localhost:9200
Deberías obtener la siguiente salida:
{ "name" : "ubuntu2204", "cluster_name" : "elasticsearch", "cluster_uuid" : "6QiUfVa4Q9G8lxHjuVLjUQ", "version" : { "number" : "7.17.5", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "8d61b4f7ddf931f219e3745f295ed2bbc50c8e84", "build_date" : "2022-06-23T21:57:28.736740635Z", "build_snapshot" : false, "lucene_version" : "8.11.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
En este punto, Elasticsearch está instalado y en ejecución. Ahora puedes pasar al siguiente paso.
Instalar y configurar Arkime
En primer lugar, descarga la última versión de Arkime con el siguiente comando:
wget https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-20.04/arkime_3.4.2-1_amd64.deb
Una vez descargado el paquete, instala el paquete descargado con el siguiente comando:
apt install ./arkime_3.4.2-1_amd64.deb
Una vez instalado Arkime, ejecuta el siguiente comando para configurarlo:
/opt/arkime/bin/Configure
Se te pedirá que especifiques la interfaz de red como se muestra a continuación:
Found interfaces: lo;eth0;eth1 Semicolon ';' seperated list of interfaces to monitor [eth1] eth0
Escribe el nombre de tu interfaz de red y pulsa Intro para continuar. Una vez finalizada la configuración, deberías obtener la siguiente salida:
Install Elasticsearch server locally for demo, must have at least 3G of memory, NOT recommended for production use (yes or no) [no] no Elasticsearch server URL [http://localhost:9200] Password to encrypt S2S and other things, don't use spaces [no-default] password Arkime - Creating configuration files Installing systemd start files, use systemctl Arkime - Installing /etc/logrotate.d/arkime to rotate files after 7 days Arkime - Installing /etc/security/limits.d/99-arkime.conf to make core and memlock unlimited Download GEO files? You'll need a MaxMind account https://arkime.com/faq#maxmind (yes or no) [yes] no Arkime - NOT downloading GEO files Arkime - Configured - Now continue with step 4 in /opt/arkime/README.txt 4) The Configure script can install elasticsearch for you or you can install yourself systemctl start elasticsearch.service 5) Initialize/Upgrade Elasticsearch Arkime configuration a) If this is the first install, or want to delete all data /opt/arkime/db/db.pl http://ESHOST:9200 init b) If this is an update to a moloch/arkime package /opt/arkime/db/db.pl http://ESHOST:9200 upgrade 6) Add an admin user if a new install or after an init /opt/arkime/bin/arkime_add_user.sh admin "Admin User" THEPASSWORD --admin 7) Start everything systemctl start arkimecapture.service systemctl start arkimeviewer.service 8) Look at log files for errors /opt/arkime/logs/viewer.log /opt/arkime/logs/capture.log 9) Visit http://arkimeHOST:8005 with your favorite browser. user: admin password: THEPASSWORD from step #6 If you want IP -> Geo/ASN to work, you need to setup a maxmind account and the geoipupdate program. See https://arkime.com/faq#maxmind Any configuration changes can be made to /opt/arkime/etc/config.ini See https://arkime.com/faq#moloch-is-not-working for issues Additional information can be found at: * https://arkime.com/faq * https://arkime.com/settings
Una vez hayas terminado, puedes pasar al siguiente paso.
Inicializar la configuración de Elasticsearch Arkime
A continuación, tendrás que inicializar la configuración de Elasticsearch Arkime. Puedes hacerlo con el siguiente comando:
/opt/arkime/db/db.pl http://localhost:9200 init
A continuación, crea una cuenta de usuario admin para Arkime con el siguiente comando:
/opt/arkime/bin/arkime_add_user.sh admin "Moloch SuperAdmin" password --admin
A continuación, actualiza la base de datos Geo con el siguiente comando:
/opt/arkime/bin/arkime_update_geo.sh
Una vez que hayas terminado, puedes continuar con el siguiente paso.
Iniciar y gestionar los servicios de Arkime
Arkime está formado por tres componentes, captura, visor y elasticsearch. Por tanto, necesitarás iniciar el servicio de cada componente.
Puedes iniciar el servicio Arkimecapture y Arkimeviewer y habilitarlos para que se inicien al reiniciar el sistema con el siguiente comando:
systemctl enable --now arkimecapture systemctl enable --now arkimeviewer
Ahora puedes comprobar el estado de ambos servicios con el siguiente comando:
systemctl status arkimecapture arkimeviewer
Deberías obtener la siguiente salida:
? arkimecapture.service - Arkime Capture Loaded: loaded (/etc/systemd/system/arkimecapture.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-08-15 03:55:10 UTC; 1min 0s ago Process: 33704 ExecStartPre=/opt/arkime/bin/arkime_config_interfaces.sh -c /opt/arkime/etc/config.ini -n default (code=exited, status=0/S> Main PID: 33724 (sh) Tasks: 7 (limit: 2242) Memory: 213.2M CPU: 806ms CGroup: /system.slice/arkimecapture.service ??33724 /bin/sh -c "/opt/arkime/bin/capture -c /opt/arkime/etc/config.ini >> /opt/arkime/logs/capture.log 2>&1" ??33725 /opt/arkime/bin/capture -c /opt/arkime/etc/config.ini Aug 15 03:55:09 ubuntu2204 systemd[1]: Starting Arkime Capture... Aug 15 03:55:10 ubuntu2204 systemd[1]: Started Arkime Capture. ? arkimeviewer.service - Arkime Viewer Loaded: loaded (/etc/systemd/system/arkimeviewer.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-08-15 03:08:39 UTC; 47min ago Main PID: 31759 (sh) Tasks: 12 (limit: 2242) Memory: 56.7M CPU: 2.127s CGroup: /system.slice/arkimeviewer.service ??31759 /bin/sh -c "/opt/arkime/bin/node viewer.js -c /opt/arkime/etc/config.ini >> /opt/arkime/logs/viewer.log 2>&1" ??31760 /opt/arkime/bin/node viewer.js -c /opt/arkime/etc/config.ini Aug 15 03:08:39 ubuntu2204 systemd[1]: Started Arkime Viewer.
Puedes comprobar el registro del visor con el siguiente comando:
tail -f /opt/arkime/logs/viewer.log
Ahora puedes comprobar el registro de captura con el comando siguiente::
tail -f /opt/arkime/logs/capture.log
Deberías obtener la siguiente salida
Aug 15 03:57:20 http.c:389 moloch_http_curlm_check_multi_info(): 2/3 ASYNC 201 http://localhost:9200/arkime_dstats/_doc/ubuntu2204-1408-5 804/159 0ms 20ms Aug 15 03:57:20 http.c:389 moloch_http_curlm_check_multi_info(): 1/3 ASYNC 200 http://localhost:9200/arkime_stats/_doc/ubuntu2204?version_type=external&version=66 798/157 0ms 24ms Aug 15 03:57:22 http.c:389 moloch_http_curlm_check_multi_info(): 1/3 ASYNC 200 http://localhost:9200/_bulk 715/221 0ms 10ms Aug 15 03:57:22 http.c:389 moloch_http_curlm_check_multi_info(): 1/3 ASYNC 200 http://localhost:9200/arkime_stats/_doc/ubuntu2204?version_type=external&version=67 805/158 0ms 12ms Aug 15 03:57:24 http.c:389 moloch_http_curlm_check_multi_info(): 1/3 ASYNC 200 http://localhost:9200/_bulk 1471/253 0ms 24ms Aug 15 03:57:24 http.c:389 moloch_http_curlm_check_multi_info(): 1/3 ASYNC 200 http://localhost:9200/arkime_stats/_doc/ubuntu2204?version_type=external&version=68 806/157 0ms 18ms Aug 15 03:57:25 http.c:389 moloch_http_curlm_check_multi_info(): 1/3 ASYNC 201 http://localhost:9200/arkime_dstats/_doc/ubuntu2204-1409-5 808/159 0ms 10ms
Accede a la Interfaz Web de Arkime
En este punto, Arkime está iniciado y escuchando en el puerto 8005. Puedes comprobarlo con el siguiente comando
ss -antpl | grep 8005
Deberías obtener la siguiente salida:
LISTEN 0 511 *:8005 *:* users:(("node",pid=11362,fd=20))
Ahora, abre tu navegador web y accede a la interfaz web de Arkime utilizando la URL http://your-server-ip:8005. Se te pedirá que proporciones tu nombre de usuario y contraseña de administrador como se muestra a continuación:
Introduce tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de Arkime en la siguiente página:
Conclusión
Enhorabuena! has instalado y configurado con éxito la herramienta de captura de paquetes Arkime en el servidor Ubuntu 22.04. Ahora puedes explorar Arkime para obtener más funcionalidades y empezar a capturar paquetes. No dudes en preguntarme si tienes alguna duda.