Crear Nueva Instancia/Cluster BD Postgresql

EL presente instructivo tiene como finalidad, presentar los comandos básicos necesarios para crear una nueva instancia de BD en postgresql instalado sobre debian.

En el siguiente ejemplo se creará una instancia (cluster) de postgresql versión 9.3 (aunque ha sido probado con 9.4 y 9.6) con el nombre de webapi y que se ejecutará en el puerto 5433. Actualmente se encuentra corriendo una instancia de BD, la misma es instalada por defecto por Debian en el momento de la instalación de postgresql, los datos de la instancia (cluster) son: versión 9.3 con el nombre de main, en el puerto 5432.

Comandos:
1. Listar las instancias o cluster creados (por defecto debian crea el cluster 9.3 main):

root@database:/home/operador# pg_lsclusters
Ver Cluster    Port Status Owner    Data directory                     Log file
9.3 main       5432 online postgres /var/lib/postgresql/9.3/main       /var/log/postgresql/postgresql-9.3-main.log

Leer más »

Anuncios

Primeros Pasos con Ansible

El presente instructivo tiene como finalidad suministrar los pasos necesarios para la instalación y configuración básica de la aplicación Ansible en equipo con la distribución GNU/Linux Debian.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Se debe contar con (02) equipos con ssh instalado

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.1 (actualmente estable)

Aplicaciones:

  • Ansible -> 2.2.1.0-2
  • openssh-server -> 1:7.4p1-10+deb9u1
  • openssh-client -> 1:7.4p1-10+deb9u1

Para la configuración de la solución se utilizarán dos (02) maquinas con debian 9.1:

– Un (01) Equipo para instalación y configuración de la maquina de administración:

  • Hostname: admin
  • IP Interna: 192.168.1.2

– Un (01) equipos para la instalación y configuración de nodo

  • Hostname: nodo1
  • IP Interna: 192.168.1.3

– Usuario a utilizar: operador
Leer más »

Instalación de kubernetes en Linux con Kubeadm

El presente instructivo tiene como finalidad, presentar los pasos básicos de instalación de Kubernetes en distribución GNU/Linux Debian 9.1

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Se debe virtualbox instalado
  • Se debe contar con (03) maquinas virtuales corriendo en virtualbox instalado

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.1 (actualmente estable)

Aplicaciones:

  • docker-ce -> 17.06.1-ce
  • kubelet -> v1.7.4
  • kubeadm -> v1.7.4
  • kubectl -> v1.7.4
  • kubernetes-cni -> 0.5.1-00

Para la configuración de la solución se utilizarán tres (03) maquinas virtuales en virtualbox con debian 9.1:

– Un (01) Equipo para instalación y configuración del Master:

  • Hostname: k8s1
  • IP Interna: 192.168.100.52

– Dos (02) equipos para la instalación y configuración de nodos

  • Hostname: k8s2
  • IP Interna: 192.168.100.53
  • Hostname: k8s3
  • IP Interna: 192.168.100.54

Dominio: k8s
Todos los equipos deben tener acceso a la Internet
Leer más »

Tips Seguridad Servidor WEB – Hardening Secure Apache Web Server

El presente instructivo tiene como finalidad mostrar algunas recomendaciones de configuraciones que pueden ser aplicadas en servidor web apache2 para su protección.

El presente instructivo ha sido actualizado y es aplicado perfectamente a servidor Web Apache versión 2.4

Aplicaciones o configuraciones complementarias:

Recomendaciones a nivel de sistema operativo:

1. Cambiar el directorio por defecto donde es alojada los website en apache. Por defecto Apache 2.4 crea un directorio “/var/www/html” en el cual es colocado los website o páginas a servir, es recomendable cambiarlos o crear uno nuevo, ejemplo /opt/www/html o /srv/www/html.

admin@servidor:/$ sudo mkdir -p /opt/www/html

2. Se recomienda efectuar cambios a nivel de fstab de las opciones de montaje del directorio “/srv”, habilitando las siguientes opciones:

  • -nodev: Impide la interpretación de los dispositivos especiales o de bloques del sistema de archivos
  • -nosuid: Bloquea el funcionamiento de suid, y sgid bits. suid permite a los usuarios comunes ejecutar binarios con privilegios concedidos temporalmente
  • -noexec: No permite la ejecución de binarios que se encuentren en el sistema de archivos. Muy pendiente con el código o aplicativo que se utilizará con el servidor apache, ya que si tienen un binario, el mismo no podrá ser ejecutada

Ejemplo de una entrada en fstab:

/dev/mapper/VolGroup-lvsrv /opt   ext4   nodev,nosuid,noexec   0    2

Recomendaciones a nivel de aplicativo Apache 2.4
Configuración

Evita la búsquedas de DNS para que los nombres de host se pueden registrar
1. Editar archivo de configuración de apache2:

admin@servidor:/$ sudo nano /etc/apache2/apache2.conf

Leer más »

Configuración de interfaces de red VLAN 802.1q RedHat – Debian

El presente instructivo tiene como finalidad mostrar el procedimiento de configuración de VLAN en dos (02) interfeces de red ethernet, en la distribución Linux RedHat 4 y Debian 9

Premisas del ejemplo:

Teniendo las siguientes direcciones IP fijas, privadas:

– Vlan 90 configurar IP 192.168.0.10/24
– Vlan 91 configurar IP 10.70.21.15/24

Correspondiente cada una a una VLAN (90 y 91), se desea la configuración en las interfaces de red ethernet (eth0 y eth1):

RedHat 4
Configuración:

1. Activar modulo 802.1q

root@server:/# modprobe --first-time 8021q

Leer más »

Dimensionamiento (Tunning) Apache2 prefork (+PHP5) Maxclients

La presente tiene como finalidad presentar un ejemplo práctico de como calcular el valor de Maxclients en Apache2 Prefork con PHP5.

Aplicaciones o configuraciones complementarias:

Documentación oficial de Apache2

La directiva MaxClients establece el límite en el número de solicitudes (peticiones) simultáneas que se servirán. Cualquier intento de conexión sobre el valor de MaxClients, se colocará en cola, hasta un número basado en la directiva ListenBacklog. Una vez que un proceso hijo se libera al final de una solicitud diferente, entonces será atendida la conexión.

Para los servidores prefork(que es nuestro caso de ejemplo), MaxClients se traduce en el número máximo de procesos secundarios que serán lanzadas para servir peticiones. El valor por defecto es 256; para aumentarlo se hace necesario incrementar ServerLimit.

Análisis servidor básico Debian + Apache2 + PHP5

Para efectuar los calculos de la directiva maxclients, se deben conocer los siguientes parámetros:
El el consumo de memoria RAM de Apache2 y PHP5, el consumo de memoria RAM del aplicativo (página web), la cantidad de memoria RAM consumido por el sistema operativo y la cantidad de memoria RAM a reservar

1. Consumo memoria RAM Apache2 + PHP5
2. Consumo memoria RAM aplicativo(página web)
3. Consumo memoria RAM sistema operativo
4. Cantidad memoria RAM a Reservar
Leer más »

Reducir el Tiempo, Reciclar y Reusar el Estado TIME_WAIT en conexión TCP

El presente instructivo tiene como finalidad presentar los pasos básicos necesarios para la configuración en el kernel de Linux del estado TIME_WAIT de conexión TCP.
Ésta configuración puede ser utilizada para optimizar las conexiones de servicios Web o Base de Datos, aunque es recomendado configurar una aplicación para el agrupamiento de conexiones (connection pooling) o en el caso del servidor WEB el Keep-Alive.

El agrupamiento de conexiones (connection pooling) permite entre otras cosas, el manejo de una colección de conexiones abiertas a una base de datos de manera que puedan ser reutilizadas al realizar múltiples consultas o actualizaciones. En el caso de los serviodres WEB (Apache), el “Keep-Alive”, permite “mantener viva” la conexión de un cliente durante algún periodo corto de tiempo.

En aplicaciones como Mysql, PostgreSQL, Oracle, entre otros entre otros suelen aperturar y cerrar conexiones a cada instante y dependiendo del número de usuarios y la demanda (peticiones por segundo), aumenta la posibilidad de sufrir degradación del servicio.

Cuando una conexión TCP se cierra activamente, el puerto DEBE permanecer en el estado de TIME-WAIT durante un tiempo de 2xMSL (Maximum Segment Lifetime), es decir 2 minutos, tiempo en el cual la conexión esta ocupada y no puede ser reutilizado inmediatamente.

A continuación esquema(Según Protocolo de Control de Transmisión RFC: 793) secuencia normal de cierre de una conexión TCP:

       TCP A                                                TCP B

  1.  ESTABLISHED                                          ESTABLISHED

  2.  (Close)
      FIN-WAIT-1  --> <SEQ=100><ACK=300><CTL=FIN,ACK>  --> CLOSE-WAIT

  3.  FIN-WAIT-2  <-- <SEQ=300><ACK=101><CTL=ACK>      <-- CLOSE-WAIT

  4.                                                       (Close)
      TIME-WAIT   <--  <SEQ=300><ACK=101><CTL=FIN,ACK> <-- LAST-ASK

  5.  TIME-WAIT   --> <SEQ=101><ACK=301><CTL=ACK>      --> CLOSED

  6.  (2 MSL)
      CLOSED

RFC 793. TRANSMISSION CONTROL PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION. 3.5. Closing a Connection. Secuencia de cierre normal. Figura 13
Leer más »