Comandos utiles para gestion de VPN IPSec Firewall Huawei Eudemon1000E-N

Comandos utiles para gestion de VPN IPSec Firewall Huawei Eudemon1000E-N

Mostrar estado de los tuneles VPN IPSec configurados

display ike sa

Listar los peers de VPN IPSec configurados

display ike peer brief

Mostrar informacion especifica de un peer IKE, ejemplo peer14

display ike peer name peer14

Mostrar las policas de phase2 configuradas para cada peer IKE

En este comando tambien tenemos la ACL asociada a cada politica

display ipsec policy brief

Mostrar informacion de una politica de phase2 en especifico

display ipsec policy name pol4

Mostrar los contadores de la ACL de una VPN IPsec

Para mostrar los contadores primero debemos identificar a que vsys esta asociada la VPN

Para eso debemos identificar el nombre del peer que estamos buscando con el comando:

display ike peer brief

Una vez identificado tenemos que mostrar la configuracion de dicho peer y buscar el campo VPN instance bound to the SA

display ike peer name peer1

Luego debemos de identificar la ACL configurada para dicho peer (el nombre de la ACL normalmente es un numero mayor a 3000)

display ipsec policy brief

Luego accedemos a vsys en cuestion

system-view
switch vsys vsys_name

Finalmente dentro de la vsys ejecutamos

display acl 3001

Mostrar las estadisticas de un tunel VPN

El siguiente comando nos muestra informacion detallada del tunnel asociado a un remote peer y ademas tambien muestra las estadisticas de trafico

dis ipsec sa remote 2.2.2.2
ipsec sa information:

===============================
Interface: Tunnel1
===============================

  -----------------------------
  IPSec policy name: "pol1"
  Sequence number  : 1
  Acl group        : 3001
  Acl rule         : 1
  Mode             : ISAKMP
  -----------------------------
    Connection ID     : 100730486
    Encapsulation mode: Tunnel
    Tunnel local      : 1.1.1.1
    Tunnel remote     : 2.2.2.2
    Flow source       : 192.168.1.0/255.255.255.240 0/0
    Flow destination  : 192.168.2.0/255.255.255.0 0/0
    Flow vpn          : vsys_vsysname

    [Outbound ESP SAs]
      SPI: 2881076090 (0xabb9bb7a)
      Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA2-256-128
      SA remaining key duration (kilobytes/sec): 4608000/3518
      Max sent sequence-number: 1
      UDP encapsulation used for NAT traversal: N
      SA encrypted packets (number/bytes): 0/0

    [Inbound ESP SAs]
      SPI: 259043964 (0xf70b27c)
      Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA2-256-128
      SA remaining key duration (kilobytes/sec): 4608000/3518
      Max received sequence-number: 1
      UDP encapsulation used for NAT traversal: N
      SA decrypted packets (number/bytes): 0/0
      Anti-replay : Enable
      Anti-replay window size: 1024

Creacion de dominio Active directory con Samba4-DC sobre CentOS/RHEL/SL 7

Creacion de dominio Active directory con Samba4-DC sobre CentOS/RHEL/SL 7

Introduccion

Samba4-DC nos permite correr controladores de dominios de Active Directory sobre equipos linux, esto sin eliminar todas las opciones y caracteristicas que tiene el Active Directory, pero sin costo de licenciamiento.

En este documento veremos como instalar Samba4-DC en CentOS/RHEL 7

Escenario

En este documento se creara un domino nuevo de example.com, el escenario es el siguiente:
Nombre del DC CentOS 7: LINUXDC.example.com
Dominio a crear: example.com
IP del DC CentOS 7: 192.168.2.3

Descargar e instalar

Samba4-DC debe ser compilado, para lo que necesitaremos instalar previamente los paquetes necesarios para poder compilarlo, esto lo haremos con el comando yum:

yum install -y make glibc gcc perl python-devel gnutls-devel libacl-devel openldap-devel bind-utils net-tools wget pam-devel krb5-workstation bind policycoreutils-python ntp

Una vez que instalamos las dependencias, podemos descargar la ultima version disponible de Samba de la siguiente URL https://download.samba.org/pub/samba/stable

Este documento esta basado en la version 4.7.4, que la podemos descagar con el siguiente comando

cd /opt
wget https://download.samba.org/pub/samba/stable/samba-4.7.4.tar.gz

Luego descomprimimos y accedemos a la carpeta del instalador

tar xvfp samba-4.7.4.tar.gz
cd /opt/samba-4.7.4

Preparamos todo lo necesario para compilar

./configure

Finalmente compilamos y ejecutamos make install para que nos copie todos los binarios necesarios y nos cree los directorios que utilizar Samba

make
make install

Hecha la instalacion debemos configurar el PATH para que sea mas facil utilizar los comandos de Samba

echo "export PATH=\$PATH:/usr/local/samba/bin:/usr/local/samba/sbin" >> /root/.bashrc
source /root/.bashrc

Creacion del dominio

Una vez que tenemos instalado Samba podemos proceder a crear nuestro domminio example.com, para esto usaremos la herramienta samba-tool, con la opcion --interactive lo cual hace que la herramienta nos vaya preguntando los parametros de nuestro nuevo dominio.

samba-tool domain provision example.com --interactive

Luego de crear nuestro dominio, debemos crear el servicio samba de forma a que el mismo se maneje por systemctl como cualquier otro servicio

cat <<EOF > /etc/systemd/system/smb.service
[Unit]
Description=Samba
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/samba/sbin/samba

[Install]
WantedBy=multi-user.target
EOF

Recargamos las configuracioens de systemctl

systemctl daemon-reload

HAbilitamos e iniciamos el servicio

systemctl start smb ntpd
systemctl enable smb ntpd

En caso de tener firewall activo debemos agregar las siguientes reglas para que el servicio funcione de forma correcta

firewall-cmd --add-service=ldap --add-service=dns --add-service=ldaps --permanent 
firewall-cmd --add-port=135/tcp --add-port=135/udp --permanent 
firewall-cmd --add-port=953/udp --add-port=953/tcp --permanent
firewall-cmd --add-port=464/tcp --add-port=464/udp --permanent
firewall-cmd --add-port=88/tcp --add-port=88/udp  --permanent
firewall-cmd --add-port=636/tcp --add-port=636/udp --permanent
firewall-cmd --add-port=49152/tcp --add-port=49152-49500/udp --permanent
firewall-cmd --add-port=3268/tcp --add-port=3268/udp --permanent
firewall-cmd --add-port=3269/tcp --add-port=3269/udp --permanent
firewall-cmd --add-port=135/tcp --add-port=135/udp --permanent
firewall-cmd --add-port=137/tcp --add-port=137/udp --permanent
firewall-cmd --add-port=138/tcp --add-port=138/udp --permanent
firewall-cmd --add-port=139/tcp --add-port=139/udp --permanent
firewall-cmd --add-port=445/tcp --add-port=445/udp --permanent
firewall-cmd --add-port=50000-60000/tcp --add-port=50000-60000/udp --permanent
firewall-cmd --reload 

Con esto ya tenemos nuestro controlador de dominio samba, ahora podemos comenzar a registrar equipos a este dominio, nada mas se debe tener en cuenta de que los mismos deben utilizar a nuestro controlador de dominio como servidor DNS

Instalar drivers nvidia en Fedora 28

Instalar drivers nvidia en Fedora 28

En versiones anteriores de Fedora, instalar los driver de las tarjetas de video nvidia era bastante complicado, en la ultima version de Fedora es mas que sencillo (siempre y cuando nuestra tarjeta de video este en la lista de tarjetas compatibles), la lista de chips compatibles la pueden ver en el siguiente enlace: Lista de chips compatibles

En caso de que nuestro chip este en la lista anterior que hacer es entrar al Centro de Software de Fedora, para acceder al mismo, nos vamos al inicio y buscamos Software y deberíamos encontrar un icono parecido al siguiente:

Software

Una vez que ingresamos al Centro de Software de Fedora veremos un mensaje que pregunta si deseamos habilitar repositorios de software de terceros, esto nos habilita el repositorio de rpmfusion, el mismo contiene los drivers de nvidia, por lo tanto hacemos click en Activar

Enable external_repo

Una vez activados los repositorios de terceros hacemos click en el simbolo de buscar y escribimos nvidia

Search_driver

Hacemos click donde dice NVIDIA Linux Graphics Driver y luego le damos instalar

Install_driver

Confirmamos la instalación y con esto ya tendríamos instalados los drivers, bastaría con reiniciar nuestro equipo de culminar la instalación para que los cambios se vean reflejados.

Configurar BIND como DNS de SAMBA 4 Domain Controller

Configurar BIND como DNS de SAMBA 4 Domain Controller

Samba 4 tiene la opcion de utilizar como backend DNS a bind, esto es recomendable en ambientes con gran cantidad de clientes

Para esto se deben seguir los siguientes pasos:

Definir BIND como backend DNS

# samba_upgradedns --dns-backend=BIND9_DLZ
Reading domain information
DNS accounts already exist
No zone file /usr/local/samba/private/dns/EXAMPLE.COM.zone
DNS records will be automatically created
DNS partitions already exist
Adding dns-linuxdc account
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/samba/private/named.txt for further documentation required for secure DNS updates
Finished upgrading DNS
You have switched to using BIND9_DLZ as your dns backend, but still have the internal dns starting. Please make sure you add '-dns' to your server services line in your smb.conf.

Deshabilitar el servicio DNS en samba

Editar la configuracion del samba y agregar server services = -dns en la seccion global

# vi /usr/local/samba/etc/smb.conf
# Global parameters
[global]
    netbios name = LINUXDC
    realm = EXAMPLE.COM
    workgroup = EXAMPLE
    server role = active directory domain controller
    server services = -dns

[netlogon]
    path = /usr/local/samba/var/locks/sysvol/example.com/scripts
    read only = No

[sysvol]
    path = /usr/local/samba/var/locks/sysvol
    read only = No
# systemctl daemon-reload

En caso de utilizar SeLinux debemos cambiar las etiquetas de los archivos generados por samba para que el servicio named pueda acceder a los mismos

semanage fcontext -a -t named_conf_t "/usr/local/samba/share/setup/named.conf.dlz"

semanage fcontext -a -t named_conf_t "/usr/local/samba/private/dns.keytab"

semanage fcontext -a -t named_cache_t "/usr/local/samba/private/dns/(.*)?"

restorecon -Rv /usr/local/samba/

En caso de que tengamos samba version superior a 4.8, también sera necesario correr los siguientes comandos

semanage fcontext -a -t named_cache_t "/usr/local/samba/bind-dns/dns/(.*)?"
restorecon -Rv /usr/local/samba/

Configurar bind

# cat <<EOF > /etc/named.conf
// named.conf
options {
    listen-on port 53   { any; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file     "/var/named/data/named_stats.txt";
    memstatistics-file  "/var/named/data/named_mem_stats.txt";
    allow-query         { any; };
    recursion yes;
    forwarders          { 8.8.8.8; 8.8.4.4; };
    allow-recursion     { 10.100.1.0/24; 192.168.1.0/24; };

    dnssec-enable       yes;
    dnssec-validation   yes;

    bindkeys-file       "/etc/named.iscdlv.key";

    managed-keys-directory  "/var/named/dynamic";

    pid-file            "/run/named/named.pid";
    session-keyfile     "/run/named/session.key";
    // Samba DNS key
    tkey-gssapi-keytab  "/usr/local/samba/private/dns.keytab";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
    type hint;
    file "named.ca";
};

// Samba DNS zones
dlz "AD DNS Zone" {
    # For BIND 9.8.x
    # database "dlopen /usr/lib64/samba/bind9/dlz_bind9.so";
    # For BIND 9.9.x
    database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so";
    # For BIND 9.10.x
    # database "dlopen /usr/lib64/samba/bind9/dlz_bind9_10.so";
};
EOF

Habilitamos los servicios para que inicien cada vez que se prende el equipo

systemctl enable smb named ntpd

En caso de tener el firewall habilitado se deben abrir los puertos necesarios para el DNS

firewall-cmd --add-service=dns --permanent 
firewall-cmd --reload 

Iniciar y habilitar los servicios

Para que los cambios sean efectivos es necesario reiniciar el servicio de SAMBA

systemctl restart smb

Luego iniciamos el named

systemctl start named

IP flotante con BGP en CentOS/RHEL/SL 7

ip_flotante_bgp

Configurar una direccion IP flotante entre 2 equipos en redes diferentes

Introduccion

Las direcciones IP flotantes son muy utiles para ofrecer alta disponibilidad a servicios dentro de un mismo rango de red, esto lo podemos
implementar haciendo uso de keepalived, pero cuando los nodos no estan en el mismo rango de red no podemos utilizar keepalived debido a que este
utilizar el protocolo VRRP que funciona sobre L2
En caso de que necesitemos configurar una IP flotante entre equipos que estan en redes diferentes, es decir en rangos de red diferentes, lo podemos
utilizar haciendo uso del protocolo de ruteo BGP
La forma en la que esto funciona es la siguiente:

  • Ambos nodos tienen la direccion IP flotante configurada en una interfaz dummy
  • Ambos nodos publican rutas por BGP para llegar a IP flotante
  • El router de la red debe aprender esas rutas de forma a que cuando un cliente quiera conectarse a la IP flotante, este direccionara el trafico
    hacia nuestros nodos
  • En caso de que uno de los nodos caiga, el router dejara de aprender rutas de el por lo tanto el trafico se dirige al nodo activo

Esta implementacion nos ofrece alta disponibilidad entre nodos ademas de balanceo de carga
En este documento mostraremos paso a paso lo necesario para implementar la IP Flotante utilizando BGP entre 2 nodos CentOS 7 y
un tercer nodo CentOS 7 que actuara de router
Para esto utilizaremos BIRD tanto en los nodos que tendran la IP flotante como en el router para que aprenda las rutas por BGP
El entorno en el que esta basado este documento es el siguiente:

  • nodo1:

    • hostname: ha-bgp1
    • SO: CentOS 7
    • IP: 10.100.1.151
    • BGP AS: 64513
  • nodo2:

    • hostname: ha-bgp2
    • SO: CentOS 7
    • IP: 10.100.2.151
    • BGP AS: 64514
  • router:

    • hostname: rt1
    • SO: CentOS 7
    • IP eth0: 10.100.1.150
    • IP eth0: 10.100.2.150
    • BGP AS: 64515
  • IP Flotante: 10.155.155.1/32

Instalacion de BIRD

Utilizaremos BIRD tanto para publicar las rutas como para aprenderlas, por lo tanto debemos instalarlo tanto en los nodos, como en el router
El paquete BIRD se encuentra dentro del repositorio epel, el cual podemos configurar/habilitar con el siguiente comando:

yum install -y epel-release

Una vez que tenemos configurado el repositorio epel procedemos a instalar BIRD

yum install -y bird

Configurar IP flotante en una interfaz dummy

Como comentamos en la introduccion, la IP flotante en realidad seria una IP configurada en el equipo sobre una interfaz dummy

Que es una interfaz dummy?

Una interfaz dummy es un interfaz logica que no tiene conexion alguna con el mundo fisico, es decir, una interfaz que solo puede ser vista por el
mismo equipo donde esta configurado
Configuramos la interfaz en el nodo1, en nuestro caso ha-bgp1, esto lo haremos creando un servicio de systemd que se encargue de levantar la IP
ha-bgp1

[root@ha-bgp1 ~]# cat <<EOF > /etc/systemd/system/dummy0.service
[Unit]
Description=Dummy network interface
After=network.target
[Service]
Type=simple
ExecStartPre=-/sbin/ip link add dev dummy0 type dummy
ExecStartPre=/sbin/ip link set dummy0 up
ExecStartPre=/sbin/ip addr add dev dummy0 10.155.155.1/32
ExecStart=/usr/bin/sleep infinity
ExecStop=/sbin/ip link del dummy0
[Install]
WantedBy=multi-user.target
EOF

Luego habilitamos y levantamos dicho servicio

[root@ha-bgp1 ]# systemctl daemon-reload
[root@ha-bgp1 ]# systemctl start dummy0
[root@ha-bgp1 ]# systemctl enable dummy0

ha-bgp2
Luego debemos hacer lo mismo en ha-bgp2

[root@ha-bgp2 ~]# cat <<EOF > /etc/systemd/system/dummy0.service
[Unit]
Description=Dummy network interface
After=network.target
[Service]
Type=simple
ExecStartPre=-/sbin/ip link add dev dummy0 type dummy
ExecStartPre=/sbin/ip link set dummy0 up
ExecStartPre=/sbin/ip addr add dev dummy0 10.155.155.1/32
ExecStart=/usr/bin/sleep infinity
ExecStop=/sbin/ip link del dummy0
[Install]
WantedBy=multi-user.target
EOF

Habilitamos y levantamos el servicio

[root@ha-bgp2 ]# systemctl daemon-reload
[root@ha-bgp2 ]# systemctl start dummy0
[root@ha-bgp2 ]# systemctl enable dummy0

Instalar y configurar BIRD

Una vez que tenemos nuestra IP flotante configurada en la interfaz dummy de cada nodo, debemos configurar BIRD para que publique rutas para llegar a dicha IP utilizando el protocolo BGP
Movemos la configuracion de ejemplo para crear un archivo de configuracion vacio
ha-bgp1

[root@ha-bgp1 ~]# mv /etc/bird.conf /etc/bird.conf_original

ha-bgp2

[root@ha-bgp2 ~]# mv /etc/bird.conf /etc/bird.conf_original

Configuramos BIRD en el nodo1

Editamos el archivo de configuracion del servicio

[root@ha-bgp1 ~]# vi /etc/bird.conf

Y agregamos lo siguiente

log "/var/log/bird" all;
router id 10.100.1.151;
protocol device {
    scan time 60;
}
protocol direct {
    interface "dummy0";
}
protocol bgp router1 {
    local as 64513;
    source address 10.100.1.151;
    import none;
    export all;
    graceful restart on;
    next hop self;
    multihop 2;
    neighbor 10.100.1.150 as 64515;
}

Configuramos BIRD en el nodo2

Editamos el archivo de configuracion del servicio

[root@ha-bgp2 ~]# vi /etc/bird.conf

Y agregamos lo siguiente

log "/var/log/bird" all;
router id 10.100.2.151;
protocol device
{
    scan time 60;
}
protocol direct {
    interface "dummy0";
}
protocol bgp floatingip {
    local as 64514;
    source address 10.100.2.151;
    import none;
    export all;
    graceful restart on;
    next hop self;
    multihop 2;
    neighbor 10.100.2.150 as 64515;
}

Configuramos el firewall para que permita conexiones BGP

En caso de que tengamos habilitado el firewall del equipo debemos habilitar el puerto 179 tanto TCP como UDP
ha-bgp1

[root@ha-bgp1 ~]# firewall-cmd --permanent --add-port=179/tcp --add-port=179/udp
[root@ha-bgp1 ~]# firewall-cmd --reload

ha-bgp2

[root@ha-bgp2 ~]# firewall-cmd --permanent --add-port=179/tcp --add-port=179/udp
[root@ha-bgp2 ~]# firewall-cmd --reload

Iniciamos y habilitamos el servicio en ambos nodos

ha-bgp1

[root@ha-bgp1 ~]# systemctl start bird
[root@ha-bgp1 ~]# systemctl enable bird

ha-bgp2

[root@ha-bgp2 ~]# systemctl start bird
[root@ha-bgp2 ~]# systemctl enable bird

Configuracion de BIRD en el router

Finalmente debemos configurar el router para que aprenda las rutas publicadas por los nodos

[root@rt1 ~]# vi /etc/bird.conf

Agregamos lo siguiente:

filter floatingip {
  if net = 10.155.155.1/32 then accept;
}
router id 10.100.1.150;
protocol direct {
  interface "*";
}
protocol kernel {
  persist;      # No elimina las rutas cuando se baja el servicio
  scan time 20; # Escanea la tabla de ruteo del kernel cada 20 segundos
  export all;   # Carga todas las rutas a la tabla de rutas del kernel
}
protocol device {
  scan time 10; # Escanea las interfaces cada 10 segundos
}
protocol bgp nodo1 {
  import filter floatingip;
  hold time 10;
  local as 64515;
  neighbor 10.100.1.151 as 64513;
}
protocol bgp nodo2 {
  import filter floatingip;
  hold time 10;
  local as 64515;
  neighbor 10.100.2.151 as 64514;
}

En caso de que tengamos habilitado el firewall debemos crear las reglas correspondientes para permitir BGP

[root@rt1 ~]# firewall-cmd --permanent --add-port=179/tcp --add-port=179/udp
[root@rt1 ~]# firewall-cmd --reload

Finalmente iniciamos y habilitamos el servicio bird

[root@rt1 ~]# systemctl start bird
[root@rt1 ~]# systemctl enable bird

Podemos comprobar las rutas importadas por nuestro router de la siguiente manera

[root@rt1 ~]# birdc show route
BIRD 1.4.5 ready.
10.100.2.0/24      dev eth0 [direct1 11:54:43] * (240)
10.100.1.0/24      dev eth0 [direct1 11:54:43] * (240)
10.155.155.1/32    via 10.100.1.151 on eth0 [nodo1 11:54:47] * (100) [AS64513i]
                   via 10.100.2.151 on eth0 [nodo2 11:54:48] (100) [AS64514i]

Con esto tenemos configurada nuestra IP flotante entre equipos que no estan en la misma subnet. Esta configuracion la podemos utilizar con cualquier router que soporte el protocolo BGP

Instalar y configurar cliente Openstack en RHEL/CentOS/SL 7

instalar_cliente_openstack

Instalar y configurar cliente Openstack en RHEL/CentOS/SL 7

Instalar pre-requisitos

Para instalar las herramientas de cliente de openstack necesitaremos el comando pip, el cual es proveido por el paquete python-pip:

yum install -y python-pip

Instalar cliente openstack

Para instalar utilizaremos el comando pip e instalaremos los paquetes:
– python-openstackclient

pip install python-openstackclient

– python-neutronclient

pip install python-neutronclient

Configurar las variales de entorno

Los clientes de openstack permiten utilizar variables de entorno para no tener que estar especificando los parametros de conexion con cada comando que utilicemos
Estas variables las podemos cargar en el archivo .bashrc del usuario con el que utilizaremos los clientes de openstack

vi .bashrc
# Nombre de la region de Openstack
export OS_REGION_NAME=dc
# Usuario para conectarse a la API
export OS_USERNAME=dca_admin
# Pasword del usuario a utilizar
export OS_PASSWORD=password
# URL del keystone 
export OS_AUTH_URL="https://identity.example.com:443/identity-admin/v2.0"
# Nombre del tenant
export OS_TENANT_NAME=example
# Definicion de los endpoint
export OS_ENDPOINT_TYPE=publicURL
export NOVA_ENDPOINT_TYPE=publicURL
export NETWORK_ENDPOINT_TYPE=publicURL
export VOLUME_ENDPOINT_TYPE=publicURL

# Se definen los alias para agregar el --insecure, 
# la opcion permite conectarnos sin necesidad de que el certificado de nuestro openstack sea valido
alias nova="nova --insecure"
alias neutron="neutron --insecure"
alias cinder="cinder --insecure"

Finalmente para probar podemos ejecutar los siguientes comandos

source .bashrc

nova list
+--------------------------------------+---------------------+--------+------------+-------------+----------------------------------------------------------------------------------+
| ID                                   | Name                | Status | Task State | Power State | Networks                                                                         |
+--------------------------------------+---------------------+--------+------------+-------------+----------------------------------------------------------------------------------+
| cbba125c-96b3-4601-ba8e-341231211211 | COMPUTE1            | ACTIVE | -          | Running     | external_om=172.21.1.1                                                           |
....
+--------------------------------------+---------------------+--------+------------+-------------+----------------------------------------------------------------------------------+

Lista de comandos equivalentes entre apt-get, yum y zypper

Lista de comandos equivalentes entre apt-get,yum y zypper

En muchos casos estamos acostumbrados a un solo gestor de paquetes, ya sea yum, apt-get o zypper, en esos casos es util tener una tabla de equivalencias entre los distintos gestores de paquetes, abajo la tabla de los comandos basicos que podriamos necesitar para manejar los paquetes, ya sea en entornos Debian, RedHat o Suse

Comandos Basicos

Debian RedHat Suse
apt-get update yum makecache zypper refresh
apt-get install yum install zypper install
apt-get remove yum remove zypper remove
apt-get upgrade/dist-upgrade yum update/upgrade zypper up
apt-cache search yum search zypper search
apt-get clean yum clean all
apt-file search yum whatprovides zypper se –provides
apt-get -reinstall install yum reinstall zypper in -f

Configurar acceso remoto para multiples usuarios a libvirt

Configurar acceso remoto para multiples usuarios a libvirt

Debemos editar archivo /etc/libvirt/libvirtd.conf, modificando los siguientes parametros

listen_tls = 0
listen_tcp = 1

Luego se debe reiniciar el servicio libvirtd para que tome los cambios

service libvirtd restart

Luego podemos crear los usuarios que queremos que accedan a nuestro KVM con el comando saslpasswd2 de la siguiente manera:

saslpasswd2 usuario -a libvirt

Esto nos pedira el nuevo password para dicho usuario.

Tambien podemos listar los usuarios existentes en caso de que ya hayamos agregado usuarios con el comando:

sasldblistusers2 /etc/libvirt/passwd.db

Una vez creados los usuarios, los mismos se pueden conectar utilizando virt-manager o virsh, utilizando la siguiente URL:

qemu+tcp://usuario@ip_del_host/system

Ejemplo con virsh:

virsh -c qemu+tcp://usuario@192.168.12.1/system

Que son los GROK pattern en logstash

Que son los GROK pattern en logstash

Como funciona

Los groks pattern nos permiten separar u organizar un conjunto de datos mediante metodos de analisis gramatical, en pocas palabaras parseando.

En un grok pattern se define el tipo de dato que se deberia de recibir y con esto se asignan los valores a los diferentes campos que vayamos creando. La sintaxis del grok para separar algun dato es la siguiente :

%{PATTERN:nombre_del_campo}

Donde el PATTERN podria ser uno de los tantos patterns predefinidos en logstash o podriamos inclusive crear nuestros propios patterns en caso de necesitarlo

Para mas informaciones sobre todos los patterns podemos consultar la siguiente URL:
Documentacion de grok – logstash

Los GROK patterna tambien permiten expreciones regulaes del tipo UNIX/Linux, por ejemplo podriamos establecer dentro del pattern cadenas estaticas, por ejemplo:

Cantidad de transacciones = 32423

En el ejemplo anterior el unico campo que queremos separar es el campo numerico, esto lo podriamos hacer con el siguiente GROK pattern:

^Cantidad de transacciones = %{NUMBER:cantidad_transacciones}$

Ejemplos

Como ejemplo de GROK pattern, podriamos extraer los diferentes datos de una entrada de rsyslog de un equipo linux:

Oct  9 16:06:10 nodo1232 auditd[1041]: Audit daemon rotating log files

con el siguiente GROK pattern:

^%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(%{NUMBER:syslog_pid}): %{GREEDYDATA:syslog_message}$

Esto nos crearia un documento con los siguientes campos

syslog_timestamp: "Oct  9 16:06:10"
syslog_hostname: "nodo1232"
syslog_program: "auditd"
syslog_pid: "1041"
syslog_message: "Audit daemon rotating log files"

Dicho documento luego puede ser insertado a cualquiera de los outputs que soporta logstash, normalmente puede ser elasticsearch, para mas informacion sobre elasticsearch y logstash pueden consultar el siguiente HOW TO

Creando nuestro GROK pattern

Al momento de crear nuestros primer GROK patterns, todo sera prueba y error por lo que es tremendamente util utilizar una herramienta donde podamos probar de forma rapida. Para este proposito podemos utilizar la siguiente herramienta:

En dicha herramienta en el primer campo debemos agregar nuestros logos y en el siguiente campo ponemos nuestro GROK pattern

Utilizando GROK en logstash

Una vez que tenemos definido y probado nuestro GROK pattern podemos agregarlo a logstash como filter.

Para ejemplo utilizaremos el mismo ejemplo de rsyslog, el campo que queremos separar o filtrar es el campo message para luego insertarlo en elasticsearch, por lo tanto nuestro filtro de logstash deberia verse de la siguiente manera

filter {

  grok{
    match => { "message" => "^%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(%{NUMBER:syslog_pid}): %{GREEDYDATA:syslog_message}$" }
  }
  date {
    timezone => "America/Asuncion"
    match => ["timestamp", "YYYY-MM-dd HH:mm:ss"]
    target => "@timestamp"
  }
 }
}

Por ultimo, la seccion date que agregamos en el filter es para que tome como campo de tiempo el tiempo extraido del log, si no hacemos esto, se tomara como tiempo del log el horario en el que se inserto al elasticsearch

Reducir o aumentar memoria RAM a una vpar en HPE SuperDome 2

Reducir o aumentar memoria RAM a una vpar en HPE SuperDome 2

HPE SuperDome permite agregar o sacar memoria del tipo ILM a las vpars que tenemos definidas, ambas tareas las hacemos con el comando vparmodify, con las opciones -d y -a respectivamente dentro de la consola OA del equipo.

Las limitaciones son las siguientes:
Para agregar memoria:

  • Debemos tener memoria libre en la Npar
  • La memoria libre debe ser del tipo ILM

Para quitar memoria:

  • La Vpar debe estar apagada
  • La memoria a quitar debe ser del tipo ILM

Consultar estado de nuestras Vpars

Para consultar el estado de las vpars podemos utilizar el comando vparstatus dentro del OA al cual nos debemos conectar utilizando telnet

# vparstatus -N 1 
[Virtual Partition]
Num Name                        RunState      State
=== ==========================  ============  =========
1   nodoA                         UP            Active
2   nodoC                         UP            Active
3   nodoE                         UP            Active
4   nodoG                         UP            Active

[Virtual Partition Resource Summary]
Virtual Partition               CPU      Num   Num   Granularity       Total MB
Num Name                        Min/Max  CPUs  IO     ILM   SLM      ILM       SLM
=== ==========================  =======  ====  ====  ===== =====  ========= =========
1   nodoA                           0/128   101    14   1024  1024     408576         0
2   nodoC                           0/128     6    10   1024  1024      92160         0
3   nodoE                           0/128     5     9   1024  1024      40960         0
4   nodoG                           0/128    16    10   1024  1024     111616         0

Quitar memoria al nodoG

En este ejemplo quitaremos 30GB de memoria ILM al nodoG, para esto debemos apagar dicha Vpar.

Una vez apagada la misma desde el OA ejecutamos:

# vparmodify -N 1 -p nodoG -d mem::30720

Consultamos el estado de nuestras Vpars

# vparstatus -N 1
[Virtual Partition]
Num Name                        RunState      State
=== ==========================  ============  =========
1   nodoA                         UP            Active
2   nodoC                         UP            Active
3   nodoE                         UP            Active
4   nodoG                         UP            Active

[Virtual Partition Resource Summary]
Virtual Partition               CPU      Num   Num   Granularity       Total MB
Num Name                        Min/Max  CPUs  IO     ILM   SLM      ILM       SLM
=== ==========================  =======  ====  ====  ===== =====  ========= =========
1   nodoA                           0/128   101    14   1024  1024     408576         0
2   nodoC                           0/128     6    10   1024  1024      92160         0
3   nodoE                           0/128     5     9   1024  1024      40960         0
4   nodoG                           0/128    16    10   1024  1024      80896         0

Finalmente prendemos la Vpar en cuestion

# vparboot -N 1 -p nodoG

Agregar memoria al nodoA

En este ejemplo agregaremos 10GB a la Vpar de nombre nodoA, para esto dicha Vpar debe estar apagada

# vparmodify -N 1 -p nodoA -a mem::10240
# vparstatus -N 1
[Virtual Partition]
Num Name                        RunState      State
=== ==========================  ============  =========
1   nodoA                         UP            Active
2   nodoC                         UP            Active
3   nodoE                         UP            Active
4   nodoG                         UP            Active

[Virtual Partition Resource Summary]
Virtual Partition               CPU      Num   Num   Granularity       Total MB
Num Name                        Min/Max  CPUs  IO     ILM   SLM      ILM       SLM
=== ==========================  =======  ====  ====  ===== =====  ========= =========
1   nodoA                           0/128   101    14   1024  1024     418816         0
2   nodoC                           0/128     6    10   1024  1024      92160         0
3   nodoE                           0/128     5     9   1024  1024      40960         0
4   nodoG                           0/128    16    10   1024  1024      80896         0
# vparboot -N 1 -p nodoA