Instalar GitLab – Git Privado

¡Hola!

Estaba buscando una alternativa donde poder gestionar todo lo relacionado con GIT a través de una interfaz amigable (GUI) y me encontré con GITLAB en su versión Community.

Lo que vamos hacer será montar una instancia VPS para nuestro cometido y los primeros pasos de configuración + algo de seguridad según nos convenga.

Especificaciones/Requeriments

  • OS: Ubuntu 18.04 LTS
  • CPU: Mínimo 1 y admite hasta 100 usuarios.
  • Memoria: 2 GB es recomendado.

En el caso de no llegar a los 2 GB siempre se puede crear SWAP (ya que en VPS no suelen venir con dicha partición).

Requisitos Gitlab – Web Oficial

Leer más

¿Qué tipo de virtualización usa mi VPS?

¡Hola!

Buscando soluciones para uno de los clientes hemos intentado buscar la forma de encontrar un patrón de cómo nos pueden ver los demás … En este caso las cabeceras estaban siendo correctas y se nos ocurrió ver el tipo de virtualización.

El comando que vamos a usar para detectar esta información:

hostnamectl status

Para ello vamos a poner las salidas de los 3 proveedores que estábamos probando:

Proveedor#1

Static hostname: xxxcensuradoxxx
Icon name: computer-vm
Chassis: vm
Machine ID: 8ba9808bec076f6a12ec3ed45b199c83
Boot ID: 255de4d96da841eda3e96d5d29a90376
Virtualization: qemu
Operating System: Ubuntu 16.04.5 LTS
Kernel: Linux 4.4.0-138-generic
Architecture: x86-64

Proveedor#2

Static hostname: xxxcensuradoxxx
Icon name: computer-vm
Chassis: vm
Machine ID: beb217fbb4324b7d9959f78c279e6599
Boot ID: 5561a56373f84d8bb1f4e703830da4f5
Virtualization: qemu
Operating System: Ubuntu 16.04.5 LTS
Kernel: Linux 4.18.8-x86_64-linode117
Architecture: x86-64

Proveedor#3

Static hostname: xxxcensuradoxxx
Icon name: computer-vm
Chassis: vm
Machine ID: 0e8e38f3017e44ad7ce0f1585bd31d69
Boot ID: d8eb099e4ff248b496806e2e5f87ce1f
Virtualization: kvm
Operating System: Ubuntu 16.04.5 LTS
Kernel: Linux 4.4.0-138-generic
Architecture: x86-64

El proveedor que al final nos resultó útil y que por el momento aguanta (no es baneado en el destino) es el que usa la tecnología KVM.

Andaba pensando si el tipo de tecnología influye a la hora de llegar ante un Firewall, IDS o similar…

Por el momento parece que si ya que los otros servidores no aguantaban más de 2 horas.

Cambiar el editor de texto por defecto

Hoy debe ser un día especial ya que he actualizado 2 post de seguido, así que a ver si lo hago más a menudo con nuevos manuales para todos.

Esta vez es un pequeño comando que a veces se nos olvida y es bueno tenerlo a mano.

Imaginad que habéis hecho una instalación y por no prestar atención os habéis quedado con nano en vez del vim (yo uso la parte de vim-nox). Ahora cada vez que editamos un fichero siempre nos sale el mismo editor de texto y lo queremos cambiar.

Pues bien en Ubuntu (cualquier sistema Debian valdrá) lo tenemos muy fácil, tan solo tenemos que ejecutar el siguiente comando:

update-alternatives --config editor
There are 5 choices for the alternative editor (providing /usr/bin/editor).

Selection Path Priority Status
0            /bin/nano            40        auto mode
1            /bin/ed             -100       manual mode
2            /bin/nano            40        manual mode
3            /usr/bin/vim.basic   30        manual mode
4            /usr/bin/vim.nox     40        manual mode
5            /usr/bin/vim.tiny    10        manual mode
Press  to keep the current choice[*], or type selection number:

Una vez elegida la opción (en mi caso la 4) ya se quedará configurado.

Ahora bien si eso no funciona podemos usar el siguiente comando:

select-editor

Con este comando nos cambiará el editor de los cron por ejemplo el cual para mi gusto es más cómodo el vim.

Habilitando HTTP2

He estado leyendo aquí y allá sobre las diferencias entre el protocolo acutal HTTP/1.1 y HTTP2 y me decidí lanzarme a la aventura para ponerlo en producción.

Actualmente, según he leído, lo tenían en pruebas aunque ya lleva bastante tiempo y la gente lo está pidiendo. Es decir, que lo están poniendo en servicios en producción.

La principal razón de ello es por la velocidad de carga en las webs, lo cual para el SEO viene estupendamente.

Nosotros lo vamos a implantar en un entorno Ubuntu 16.04 + Webmin.

Leer más

Palabras que jamás debemos usar

Este artículo será un poco fuera de lo normal ya que no hablaremos directamente ni de un problema, ni de un software determinado.

En este caso vamos hablar de las palabras que jamás debemos usar a la hora de instalar scripts generalmente del tipo CMS.

Este análisis lo hemos hecho usando la herramienta LogWatch, la cual nos envía un resumen cada semana.

PALABRAS QUE NO DEBEMOS USAR (Variaciones de mayúsculas y minúsculas)

  • mysql
  • manager
  • pma
  • sql
  • phpmyadmin
  • admin
  • administrator
  • database
  • db
  • dbadmin
  • msd
  • myadmin
  • mysql-admin
  • mysql

Debemos recordar que esto es una lista genérica de lo que suelen buscar para intentar explotar algún tipo de vulnerabilidad. Pero lo que si hemos aprendido con ello es:

  • Si podemos evitar el nombre de la aplicación que queremos usar (pongamos de ejemplo phpmyadmin) debemos evitarlo. Ya que suelen buscar variaciones que suelan usar las personas.
  • En el caso de no poder lo ideal es siempre tener algún tipo de protección con contraseña.

Se tiene que pensar en el tema de la seguridad en nuestras aplicaciones para no tener más de un dolor de cabeza.

Un saludo

Instalar WkhtmltoPDF en Centos 7

Instalar WkhtmltoPDF en Centos 7 de manera fácil

Un cliente nos solicitó instalar esta librería para poder generar PDF a partir de una web HTML o lo que devuelva una web.

Para ello probamos con instalar el librería que nos viene por defecto en el sistema, pero parece ser que requiere la instalación de un sistema de LastX.

Indagando un poco nos hemos dado cuenta de que no hace falta y que hay gente que compila sin esta necesidad.

Pasos a seguir

Instalamos las siguientes fuentes en el sistema:

yum install xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi

Instalamos el paquete necesario en el sistema:

wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm && rpm -Uvh wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm

Ahora solo nos queda realizar una prueba:

wkhtmltopdf http://www.google.com google.pdf

Si no funciona el enlace

Hemos seguido este procedimiento: https://www.tecmint.com/wkhtmltopdf-convert-website-html-page-to-pdf-linux/

Descargamos de 32 bits: wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz

Descargamos de 64 bits: wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

Descomprimimos la versión de tar.gz, en nuestro caso hemos usado la de 64 bits.

tar -xvf wkhtmltox-0.12.4_linux-generic-i386.tar.xz

Copiamos el ejecutable en /usr/local/bin/wkhtmltopdf y /usr/bin/

Con esto dejaremos funcionando la generación de PDF sin tener que instalar una «X».

Notas a tener en cuenta

La última versión hoy en día es la 0.12 y dentro de dicha rama hay versiones más actuales, lo que pasa que hemos usado la 0.12.2.1 porque tenía un RPM hecho. Si queremos ver otras versiones podemos acceder a:

http://download.gna.org/wkhtmltopdf/0.12/

Esta info se ha obtenido de:

How To Install wkhtmltopdf In CentOS 7.0

Cambiar varios registros DNS en Cpanel a la vez

Buenas,

Nos hemos encontrado con un cliente que por problemas de SPAM ha tenido que usar otra IP para sacar el correo por ahí.

El problema de la nueva IP es que era «virgen», es decir:

  • No tenía entrada PTR correctamente configurada.
  • No estaba configurada para que el SPF sea válido en los servidores de correo.

El primer punto lo hicimos y el segundo lo tuvimos que realizar en la SHELL ya que hasta lo que hemos visto no se puede hacer directamente con CPANEL.

Los pasos que hemos seguido son los siguientes:

#Realizar una copia del directorio donde guarda Cpanel los ficheros de DNS.

cp -a /var/named /var/named-backup

# Modificar el registro deseado.

sed -i 's/ip4:xx.xx.xx.xx/+ip4:xx.xx.xx.xx +ip4:yy.yy.yy.yy/g' /var/named/*.db

# Modificar el serial de cada fichero.

find /var/named/*.db -mtime -1 -exec perl -pi -e 'if (/^\s+(\d{10})\s+;\s+serial/i) { my $i = $1+1; s/$1/$i/;}' '{}' \;

# Reiniciar el servicio de nombres.

service named restart

Después de realizar todos estos pasos lo que hicimos fue comprobar la entrada con los dns de Google. Por ejemplo

dig txt dominio.tld @8.8.8.8

Al darnos las entradas deseadas dimos el problema por solventado.

Un saludo

Securizar Mysql / MariadDB

En esta ocasión os traemos algunos consejos para securizar MySQL o MariaDB (Forks en general de Mysql) de forma algo más segura.

# Ejecutar mysql_secure_installation

Este script nos hace pasar por varios pasos:

  1. Cambiar la password de root si procede.
  2. Eliminar las bases de datos de test.
  3. Eliminar el acceso de root desde remoto (direcciones IP externas al servidor).

Es decir que solo con este script que viene en las instalaciones nos permite generar un alto grado de seguridad.

Deshabilitar el histórico de mysql

En el caso de que queramos deshabilitar este log, recordamos que se guarda todo lo realizado en el cliente de mysql, podemos eliminar el contenido o apuntarlo a null para que no guarde nada.

cd /root && ln -s .mysql_history /dev/null

Cambiar el usuario root por otro nombre

Podemos cambiar el usuario por defecto de root por otro usuario que nos convenga. Esto lo hacemos para que no se tenga acceso a través del mismo.

RENAME USER ‘root’@’localhost’ TO ‘foobar’@’localhost’;

FLUSH PRIVILEGES;

Cada base de datos debe tener su usuario/host/permisos

Por temas de seguridad es recomendable seguir los siguientes pasos por cada base de datos:

  1. Crear un usuario por cada base de datos.
  2. Crear el origen desde el cual se va a conectar.
  3. Darle los permisos que va a utilizar.

Securizando PHP a nivel servidor

Introducción

Hoy en día los administradores de sistemas nos solemos centrar mucho en el tema de seguridad. Como es evidente tratamos de cerrar los posibles caminos que puedan venir los ataques para curarnos ante el cliente. Como muchas veces no podemos controlar los scripts/programaciones de cada cliente tenemos que buscar ciertas formas que nos ayuden.

Recordamos que la mayor parte de las intrusiones o defacement en las webs suelen venir por CMS desactualizados. Así que siempre recomendamos que se actualice siempre que se pueda porque suelen tener correcciones de seguridad.

En nuestro caso vamos a trabajar con un poco de seguridad sobre nuestro php a nivel de servidor.

Las normas que vamos a seguir son:

1) Otorgar la menor información posible al atacante.

2) Deshabilitar funciones en PHP que permitan la ejecución de comandos o procesos en el servidor.

Actualizaciones:

27/04/2017: Añadido open_basedir, Securizar Sesiones, Nuevas funciones a deshabilitar.

Leer más

Seguridad en Apache

Introducción

La seguridad en Apache hoy en día es algo muy importante ya que es uno de los servidores web más conocidos y usados habitualmente.

Hemos querido realizar un conjunto de medidas que nos pueda ayudar a todos ser un poco menos vulnerable en el mundo de Internet.

Aparte de ello quería reunir las distintas prácticas que hace la gente y tenerlo centralizado para aquellos que quieran aprender.

Leer más