Mostrando las entradas con la etiqueta centos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta centos. Mostrar todas las entradas

martes, 31 de octubre de 2023

Instalación de Wazuh : Monitorear Agentes

Hace unos días intente probar el SIEM open sources, y me llamo mucho la atención WAZUH, como sabrán me puse manos a la obra y me dedique a instalarlo, pues la instalación no es muy compleja, me decidí integrarlo con Elastic Stack, siguiendo este enlace:


Lo interesante posterior a la instalación, es que Wazuh Agent es un potente EDR (detección y respuesta de endpoints) complementandolo con dos servicios adicionales, de forma predeterminada, el agente Wazuh recopila registros de Windows y del sistema, pero no proporciona información suficiente sobre nuestra actividad en los end points. Una solución EDR debe recopilar conexiones de red, generar procesos, ejecutar comandos, etc, para que podamos detectar con precisión cualquier actividad maliciosa.

Instalación de Sysmon
Instalemos Sysmon en nuestros end points de Windows. Sysmon es nuestro registro de Windows con potenciado y es muy recomendado aplicarlo en Windows, proporciona su propio archivo Sysmon Config, pero en esta demostración usaré olafhartong GitRepo: Sysmon Modular

¡Vea el script de PowerShell a continuación para instalar Sysmon fácilmente en sus propios puntos finales!


Sysmon ahora escribe eventos lo podemos revisar en el visor de eventos, Registro de Aplicaciones y Servicios / Microsoft / Windows / Sysmon/Operational:



Solos nos resta agregar el bloque de configuración <localfile> al grupo de nuestro Agente Wazuh le indicamos al Agente Wazuh que recopile nuestros eventos Sysmon.

<localfile>
<location>Microsoft-Windows-Sysmon/Operational</location>
<log_format>eventchannel</log_format>
</localfile>

Packetbeat Install

Usaremos Packetbeat para analizar el tráfico de la red en tiempo real, la implementación de Packetbeat en nuestros end points Linux (Sysmon para Windows ya recopila el tráfico de red) nos permite analizar el tráfico de red que viaja hacia y desde nuestros terminales.

Este script bash a continuación para instalar Packetbeat rápidamente


Ahora Packetbeat está escribiendo sus registros en

/tmp/packetbeat/packetbeat.

Finalmente Agregamos el bloque de configuración <localfile> al grupo de nuestro Agente Wazuh para que recopile nuestros eventos Packetbeat.

<localfile>
<log_format>json</log_format>
<location>/tmp/packetbeat/packetbeat</location>
</localfile>

Ok con esto ya nuestros end points usando Wazuh Agent con Sysmon y Packetbeat brinda una visión completa de los puntos finales. Espero que les haya gustado esta integración nos vemos en la proxima y espero que los pueda defender de los malos.


Referencias:


jueves, 31 de agosto de 2023

Nagvis integración con LDAP con acceso de invitado

En entradas anteriores detalle los pasos para instalar y configurar NAGIOS con varios componentes entre ellos NAGVIS, hasta ahí todo bien, pero resulta que una vez terminados los mapas y ya en producción, era necesario dar acceso a ciertos mapas y un grupo de usuarios. Como sabrán no es buena práctica asignar credenciales diferentes para cada aplicación, así que intenté integrarlo con LDAP de Directorio activo.

Como habrán visto, NAGVIS, utiliza de forma predeterminada su base de datos sqlite para el proceso de autenticación, por lo que no es práctico crear usuarios para que puedan acceder a la herramienta.

Uno de los temas que complicaba, era que cada usuario que se autentica mediante directorio activo solo tenga permisos de invitado y de ser el caso poder asignarle otro rol en la herramienta.

Así que si tienes una necesidad parecida, pongámonos manos a la obra.

Importante debes tener iniciado sesión con la cuenta admin antes de hacer cualquier cambio.

1.- Editar el archivo nagvis.ini.php, si has usado la entrada anterior debería estar en esta ubicación: /usr/local/nagvis/etc/nagvis.ini.php, en el archivo detallan varios modulos de inicio de sesión LogonMixed, LogonDialog, LogonEnv, LogonMultisite) por lo que en la linea 148 aproximadamente hay que descomentar las siguientes o agregarlas:

                logonmodule="LogonMixed"
                logonenvvar="REMOTE_USER"
                logonenvcreateuser="1"
                logonenvcreaterole="Guests"

Explicaremos un poco estas lineas, opción logonmodule NagVis utilizará- el modulo LogonMixed, esto significa que hará uso de la variable de entorno de Apache "REMOTE_USER" como nombre de usuario. Si la variable REMOTE_USER no contiene datos o esta vacía, seguirá con el mensaje de inicio de sesión de NagVis. La opción logonenvcreateuser al estar establecida en "1" le estamos indicando que cree automáticamente el usuario con el dato de la variable REMOTE_USER enviada por el navegador, en la base de datos del usuario de NagVis si no existe. Finalmente la opción logonenvcreaterole le indicamos que asigne automáticamente el rol de "Guests" a los nuevos usuarios creados.

2.- Modificar la configuración de Apache para NagVis (nagvis.conf) . En mi caso el archivo se encuentra en /etc/httpd/conf.d/nagvis.conf , en la linea modificar o cambiar, AllowOverride  establecerlo en All, esto permitirá que el archivo .htaccess anule la configuración, como el mecanismo de autenticación.

3.- crear o ver si este archivo .htaccess se creó en la carpeta compartida de NagVis (/usr/local/nagvis/share/.htaccess) y agregamos estas lineas, tener en cuenta que para autenticación se establece ldap y file y colocamos la ruta del archivo de nagios:

AuthType Basic
 AuthName "LDAP Authentication"
 AuthBasicProvider ldap file
 AuthUserFile /usr/local/nagios/etc/htpasswd.users
 AuthLDAPURL "ldap://servidorldap.com.ec servidorladap2.com.ec/dc=com,dc=ec?sAMAccountName?sub?(objectClass=*)"
 AuthLDAPBindDN "CN=cuenta nagios,OU=CuentasGenéricas,OU=Usuarios,DC=com,DC=ec"
 AuthLDAPBindPassword contraseñadela cuenta
 Require valid-user

4.- Acceder a la URL de NagVis, aparecerá la típica ventana de autenticación:


El usuario puede iniciar sesión con sus credenciales de Active Directory y luego podrá ver todos los mapas a los que tiene acceso el rol "Invitados". ¿Recuerdas que todavía estás conectado como administrador? Ahora puede ver los usuarios creados automáticamente en "Menú de usuario" -> "Administrar usuarios", por lo que puedes dar acceso de "Administradores" a mi usuario personal de AD. y también puedes empezar a asignar roles a otros usuarios de AD.

Nota: confirmar que tengas instalado el modulo ldap (yum install mod_ldap).

Espero que haya sido útil. si de pronto no encuentras mucha información sobre este tema, seguro te servirá de mucho.

Nos vemos en la próxima!!!.

domingo, 14 de junio de 2020

Centos Interfaz en modo promiscuo

Como están?

Les comento que por esas cosas de la vida, en un servidor Centos me tocó colocar la interfaz en modo promiscuo, pero la sorpresa que de la forma anterior /etc/sysconfig/network-scripts/ifcfg-xxx ya no funciona debido a que está depreciada, tal como lo muestra el archivo:

grep PROMISC -B 1 /usr/share/doc/initscripts-9.49.49/sysconfig.txt

No longer supported:
         PROMISC=yes|no (enable or disable promiscuous mode)  


Entonces para habilitarlo de forma temporal lo puedes hacer ejecutando el comando para la interfaz eth0:

ip link set eth0 promisc on

 Pero lo que se necesita es dejarlo de forma permanente, es decir que arranque con el sistema, entonces debemos crear un archivo para que se inicie como un servicio, usaremos vi o nano, para hacerlo dinámico por cada interfaz agregamos el @ como variable:

vi /etc/systemd/system/promisc@.service


Agregamos las siguientes lineas:

[Unit]
Description=Control promiscuous mode for interface %i
After=network.target
[Service]
Type=oneshot
ExecStart=/sbin/ip link set %i promisc on
ExecStop=/sbin/ip link set %i promisc off
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target


Para deshabilitar y habilitar el servicio en modo promiscuo en alguna interfaz ejecutaremos para el caso de eth0:

systemctl start promisc@eth0systemctl stop promisc@eth0 

Para habilitar lo que inicie con el sistema

systemctl enable promisc@eth0 

Espero que les sirva de ayuda dado que para la versión de Centos 7 ha cambiado.

Nos vemos en la próxima!!

Referencia:
https://alias454.com/using-a-systemd-service-file-to-control-promiscuous-mode-automatically-at-boot/ 
https://www.thegeekdiary.com/how-to-configure-interfaces-in-promiscuous-mode-on-centos-rhel-7-persistently/ 

lunes, 18 de junio de 2018

RENOVAR CERTIFICADO EN LINUX CENTOS

Volviendo con un nueva entrada, esta vez se me presento la necesidad de renovar un certificado SSL en un servidor LAMP (LINUX, APACHE, MYSQL y PHP).

Bueno les explico, el servidor tenia el certificado SSL expirado, y la idea era renovarlo, y me puse manos a la obra:

Lo primero que hice fue eliminar o renombrar los certificados actuales expirados, que se encuentran en la siguiente ubicacion:

/etc/pki/tls/certs/localhost.crt
/etc/pki/tls/private/localhost.key

opte por renombrarlos, una vez renombrados hay que solicitar la generacion de unos nuevos, pero por defecto al solicitarlos el tiempo es de 365 dias, pero si deseamos que el certificado dure por mas tiempo usamos el parametro days, quedando de la siguiente forma

genkey localhost --days 650 localhost

Si lo deseas generar por 10 anos, seria modificar el parametro de days de tal forma

genkey localhost --days 3650

La nueva clave se almacenarán en la siguiente ruta:
/etc/pki/tls/private/localhost.key

El nuevo certificado sera almacenado en la siguiente ruta:
/etc/pki/tls/certs/localhost.crt

Damos clik en SIGUIENTE, donde nos preguntara sobre el tamaño del certificado, el cual es directamente proporcional a la seguridad y tiempo de las claves (parámetro --days), en nuestro caso es suficiente seleccionar 2048 y luego damos clik en SIGUIENTE. Luego se tomara un tiempo en generar los bits aleatorios (dependiendo de la longitud seleccionada).

Al ejecutarlo mostrara una pantalla con la siguiente informacion que se generara un nuevo par de claves que se utilizarán para cifrar todo el tráfico SSL con el servidor llamado localhost

Opcionalmente también puede crear .csr Certificado de Solicitud de Firma y envíelo a una Autoridad de Certificación (CA) para la firma.para este caso seleccionamos NO.

Despues nos pregunta si queremos encriptar la clave privada (localhost.key), en nuestro seleccionamos NO.

Finalmente ingresamos los datos para nuestro certificado, como el código del país, la localidad el nombre de la empresa, etc. y luego damos clik en Siguiente, y habremos terminado de generar los certificados.

Espero que les sirva de ayuda, nos vemos en la proxima entrada.

martes, 23 de abril de 2013

Instalar NTOP en CentOS 6

Buscando un buen manual para instalar NTOP en centos me encontre conuno muy bueno solo le hice unas modificaciones ya que al instalarlo medio problemas y detallo la solución realizada.

######Instalamos dependencias necesarias########

yum install cairo-devel libxml2-devel pango-devel pango libpng-devel
yum install freetype freetype-devel libart_lgpl-devel wget gcc make
yum install perl-ExtUtils-MakeMaker

cd /opt
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
tar -zxvf rrdtool-1.4.5.tar.gz
cd rrdtool-1.4.5
./configure -prefix=/usr/local/rrdtool
make
make install

cd ..
yum install libpcap libpcap-devel gdbm gdbm-devel
yum install libevent libevent-devel
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz
tar -zxvf GeoIP-1.4.8.tar.gz
cd GeoIP-1.4.8
./configure
make
make install

cd ..
###### Instalamos NTOP#####
yum install libtool automake autoconf
wget http://sourceforge.net/projects/ntop/files/latest/download?source=files
tar zxvf ntop-5.0.1.tar.gz
cd ntop-5.0.1
./autogen.sh -prefix=/usr/local/ntop
make
make install

cd ..
 ####Creamos el usuario Ntop y damos permisos###
useradd -M -s /sbin/nologin -r ntop
chown ntop:root /usr/local/ntop
chown ntop:ntop /usr/local/ntop/share/ntop

###esto es para generar el password ######
/usr/local/ntop/bin/ntop -A

###Para correr la apliccion de ntop en demonio#####
/usr/local/ntop/bin/ntop -d -L -u ntop -P /usr/local/ntop –skip-version-check –use-syslog=daemon

###Para cargar la interfaz####
http://ip-del-servidor:3000/

###Abrir puerto IPTABLES###
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT

service iptables restart

###Configurar Ntop con el arranque
vi /etc/rc.local
/usr/local/bin/ntop -i "eth0,eth1" -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon

Detalle de los parametros:
    -i "eth0,eth1" : Specifies the network interface or interfaces to be used by ntop for network monitoring. Here you are monitoring eth0 and eth1.
    -d : Run ntop as a daemon.
    -L : Send all log messages to the system log (/var/log/messages) instead of screen.
    -u ntop : Start ntop as ntop user
    -P /usr/local/var/ntop : Specify where ntop stores database files. You may need to backup database as part of your disaster recovery program.
    --skip-version-check : By default, ntop accesses a remote file to periodically check if the most current version is running. This option disables that check.
    --use-syslog=daemon : Use syslog daemon.

Referencias:
http://ryanwoon.wordpress.com/2011/08/20/install-ntop-in-centos-6/
http://www.cyberciti.biz/faq/howto-install-ntop-on-rhel-centos-fedora-linux/