Actualizar automáticamente un servidor

updateÚltimamente he estado leyendo sobre cómo y cuando actualizar un servidor Linux (Fedora/CentOS/Red Hat en mi caso), de cara a aplicar los últimos parches de seguridad y mantener el sistema actualizado. Resulta que no soy el único que se pregunta sobre si hay algún tipo de guía, recomendaciones, o mejores prácticas para updatear sistemas.

Después de leer y leer, y ver las numerosas razones tanto a favor como en contra de los updates automáticos, la siguiente frase en la documentación oficial de Fedora resume cuándo habilitar las actualizaciones automáticas, por lo general:

«If the machine is a critical server, for which unplanned downtime of a service on the machine can not be tolerated, then you should not use automatic updates. Otherwise, you may choose to use them

Es decir, por norma general sería una buena idea habilitar las actualizaciones automáticas en todo servidor que no sea crítico, siempre y cuando tengamos la posibilidad de deshacer los updates instalados, o revertir los cambios, en caso de error.

Continuar leyendo «Actualizar automáticamente un servidor»

Gitolite: gestión de permisos en Git

gitEs muy posible que queramos tener un control de usuarios y permisos en nuestro repositorio git centralizado, si por ejemplo, tenemos a varios equipos de varios desarrolladores trabajando cada uno con un repositorio diferente. Afortunadamente, existen varias soluciones a este problema pero yo me he quedado con gitolite, por su facilidad de gestión y sus posibilidades.

NOTA: En este post se irá cambiando del servidor (miServer) a mi PC local (miPC). Se irá comentando a lo largo del post a qué entorno se hace referencia, pero si te pierdes, fíjate en el inicio de cada comando ejecutado (ej: [root@miServer ~] vs [adri@miPC])

Instalación

Añadimos el repositorio EPEL para nuestro servidor con el repositorio central, un CentOS 6:

[root@miServer ~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@miServer ~]# rpm -Uvh epel-release-6-8.noarch.rpm

Instalamos git y a posteriori gitolite, que en mi caso, me ha instalado y/o actualizado bastantes paquetes, la mayoría relacionados con perl:

[root@miServer ~]# yum install git gitolite3.noarch

A continuación, crearemos un usuario de sistema, para gitolite, al que en el ejemplo hemos llamado «git», y que será el usuario de sistema con el que interactuarán los usuarios con el repo:

[root@miServer ~]# useradd --system --shell /bin/bash --home /home/git git

Continuar leyendo «Gitolite: gestión de permisos en Git»

Maldet – Linux Malware Detect

virusMaldet (también conocido como LMD de las iniciales de Linux Malware Detect) es un detector de malware para entornos Linux compartidos, bajo licencia GNU GPLv2, que funciona desde el terminal.

Instalación

Podemos instalar Maldet de la siguiente manera:

1. Bajaremos el tarball de la página oficial:

[root@miServer tmp]# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz

2. Descomprimiremos e instalaremos

[root@miServer tmp]# tar -zxcvf maldetect-current.tar.gz
[root@miServer tmp]# cd maldetect-1.4.2/
[root@miServer tmp]# ./install.sh

3. Ya estaremos listos para usar Maldet

Continuar leyendo «Maldet – Linux Malware Detect»

Mostrar el autor en las búsquedas de Google

Google-SearchA raíz del estudio «Eye Tracking Study» que vi publicado en Twitter, donde se mostraba el impacto de tener Google Authorship configurado para aparecer junto a tus resultados de búsqueda en Google, me decidí a implementarlo en el blog. Desafortunadamente a los dos meses de implementarlo, Google decidió reducir el número de resultados con foto de autor. Aun así, me he decidido a publicar los pasos para configurar el Google Authorship en los resultados de búsqueda, en mi caso, para un WordPress.

Configuración de Google Authorship

Para ello, tuve que seguir una serie de pasos (la verdad, parecía más sencillo de lo que finalmente fué).

  1. En primer lugar, descargué e instalé el plugin para WordPress Google Plus Authorship. Para configurarlo, bastará con indicar el enlace a tu perfil de G+.
  2. Desde G+, tuve que crear un enlace en la sección «Contributor» hacia helloit.es (el blog en el que creo el contenido).
  3. Después, en el blog, tuve que añadir un «by <nombre>» en cada post. El nombre ha de coincidir con el nombre del perfil de G+. Ésto puede hacerse de varias formas. La más sencilla es que tu tema lo permita, pero si no (como fué mi caso) deberás modificar el código de single.php y el loop.php para añadir algo parecido a lo siguiente (ésto dependerá del tema y los plugins que tengas instalados):

by <?php the_author(); ?>

Fuente: http://wordpress.org/support/topic/trying-to-add-author-to-post

Continuar leyendo «Mostrar el autor en las búsquedas de Google»

RDNS PTR IPv6 en AWS Route53

Cloud Amazon Route53Título duro y críptico donde los haya, pero si estás aquí es por una razón: quieres saber cómo configurar una zona Reverse DNS donde crear tus registros PTR de tus direcciones IPv6 con Amazon Route 53.

Primero de todo, para poder gestionar tú mismo los registros PTR, deberás confirmar que te pueden delegar la gestión del RDNS. Para ello, deberás confirmar con tu ISP que efectivamente, te puede delegar la gestión de los RDNS de tu rango de IPs públicas, ya que en otro caso, no podrás auto-gestionarte el RDNS.

Reverse Zone Name

Tras confirmar que el ISP nos podrá delegar la gestión del RDNS, lo primero que haremos, será pedirle a nuestro ISP que nos dé el nombre de la reverse zone que deberemos crear. El nombre de la zona, será la parte fija de nuestra IP pública, al revés, acabada en «.ip6.arpa». Ejemplo:

IPv6 range: 1234:5678:9ABC::/48
Reverse zone name: C.B.A.9.8.7.6.5.4.3.2.1.ip6.arpa

Con estos datos ya podremos entrar en el panel de AWS para la gestión de Route53.

Continuar leyendo «RDNS PTR IPv6 en AWS Route53»

Configuración de IPv6 en CentOS

IPv6Vamos a ver cómo configurar un servidor para trabajar tanto con ipv4 como con ipv6, en Linux, sin entrar en detalle de lo que es ipv6, pero repasando algún que otro concepto.

Formato de una dirección IPv6

Lo primero, una ipv6 es una ip formada por 8 grupos de 4 dígitos hexadecimales cada uno, tal que así:

AAAA:AAAA:00BB:AAAA:0000:0000:0000:0000

Se pueden omitir los 0’s de inicio de cada grupo. Así, la IP anterior, quedaría así:

AAAA:AAAA:BB:AAAA:0000:0000:0000:0000

También se puede dejar de incluir los grupos que sean todo 0s, símplemente indicándolo con «::». Hay que tener en cuenta, que únicamente podremos usar una vez el «::» puesto que en otro caso, no sería posible saber a cuantos grupos de ceros se refiere el «::». En nuestro caso, la ipv6 quedaría así:

AAAA:AAAA:BB:AAAA::

Decir que podemos usar cualquiera de éstos formatos para indicarle una ipv6 a nuestro servidor.

Continuar leyendo «Configuración de IPv6 en CentOS»

Sustituir texto en múltiples ficheros en Linux

ReemplazarBueno, aquí un post que empecé a escribir a principios del 2012, con algunos comandos útiles para sustituir texto en Linux, que siempre viene bien tener a mano. Hay que tener en cuenta, que la sustitución de texto en Linux se puede hacer de muchas formas diferentes. A continuación explico uno de los posibles métodos para sustituir texto.

Sustitución múltiple en un único fichero con vi

Si se quiere reemplazar tanto BUG como bug como cualquier combinación de mayúsculas y minúsculas de BUG por ISSUE, bastará con abrir el fichero con «vi» y ejecutar lo siguiente:

:%s/BUG/ISSUE/gi

Es importante notar que para ejecutar el comando, deberemos estar fuera del modo de inserción, para poder introducir los dos puntos del inicio del comando. La «i» del final es la que hace que el texto a buscar sea case insensitive.

Continuar leyendo «Sustituir texto en múltiples ficheros en Linux»

Entradas más vistas del 2013

trofeos

Ya estamos en 2014, así que aprovecho para publicar estadísticas del 2013 y compararlas con las de 2012, para ver si este blog le es útil a alguien, además de a mi mismo 🙂 A continuación las estadísticas de 2013 vs 2012:

  • Visitas 34,527 vs 15,434
  • Visitantes únicos 28,916 vs 12,909
  • Páginas vistas 41,971 vs 19,914
  • Tiempo medio por visita 00:00:54 vs 00:00:51
  • Páginas por visita 1.22 vs 1.29
Parece que ha habido un crecimiento bastante importante, respecto al año anterior. Cabe destacar que a finales de año, incorporé Google Autorship a las búsquedas de Google, sobre lo cual tengo un post pendiente, en el que intentaré ver si ha habido un incremento en la relación del número de clicks respecto a las impresiones. Decir también que durante 2013, decidí quitar el plugin de entradas relacionadas, lo cual puede haber influido en la pequeña caída del número de páginas por visita.

Añadir un disco a un servidor con RAID1 existente

hard diskEn este post se pretende explicar cómo usar la herramienta HP Array Configuration Utility CLI for Linux «hpacucli» para añadir un tercer disco a un servidor HP que ya cuenta con dos discos SAS en RAID1. Nos interesa añadir el tercer disco sin que forme parte del RAID, es decir, queremos añadir el tercer disco como si fuera un disco sin RAID, un disco normal. Ya hablamos de la herramienta hpacucli hace un tiempo aquí.

Entorno

El problema que nos encontramos es que por defecto, los discos los reconoce la controladora del RAID y no aparecen en el fdisk. Así pues, tras añadir físicamente el disco al servidor y tras el reinicio reglamentario para verificar que efectivamente el disco se ha reconocido, nos encontraríamos con que el disco continúa sin aparecer con el fdisk:

[root@myserver]# fdisk -l
Disco /dev/cciss/c0d0: 300.0 GB, 299966445568 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/cciss/c0d0p1 * 1 126 512000 83 Linux
/dev/cciss/c0d0p2 126 71798 292422656 8e Linux LVM

Disco /dev/dm-0: 234.9 GB, 234881024000 bytes
Disco /dev/dm-1: 10.5 GB, 10536091648 bytes
Disco /dev/dm-2: 21.0 GB, 20971520000 bytes
Disco /dev/dm-3: 31.5 GB, 31474057216 bytes
Disco /dev/dm-4: 1577 MB, 1577058304 bytes

Como se puede ver, únicamente aparece un disco en RAID físico, que sabemos que corresponde con los dos discos de sistema en RAID1. Ni rastro del nuevo disco.

Continuar leyendo «Añadir un disco a un servidor con RAID1 existente»

Configurar SFTP con OpenSSH

seguridadHoy toca ver cómo configurar openSSH (como siempre, en entornos Red Hat) para aceptar únicamente peticiones SFTP enjaulando a los usuarios sftp en sus homes. Para añadirle contenido, además, configuraremos este servicio en un segundo proceso que correrá en la máquina de forma independiente al proceso openssh habitual, para evitar tener problemas con nuestras conexiones SSH, y por tanto, se configurará un puerto de escucha diferente al habitual, en el ejemplo, el 12022.

Fichero de configuración

En primer lugar copiaremos el fichero de configuración de openssh para adaptar la copia a nuestras necesidades:

[root@myserver]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_12022
Lo abriremos con vi, y nos aseguraremos de cambiar el puerto de escucha por el nuevo puerto. Además, cambiaremos el «Subsystem sftp» por defecto y añadiremos al final las líneas correspondientes al enjaulado de usuarios:
# Cambiamos el puerto
Port 12022

# Modificamos el Subsystem original
#Subsystem sftp /usr/libexec/openssh/sftp-server 
Subsystem sftp internal-sftp 

# Añadimos el enjaulado 
Match Group sftp12022 
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp 
  AllowTcpForwarding no
Desde este momento, trabajaremos con el nuevo fichero de configuración sshd_config_12022, asegurándonos así de no intervenir en el servicio de openssh de la máquina que ofrece el servicio de SSH. Además de decirle a openssh que a partir de ahora usaremos el puerto 12022 para las coneciones SFTP, habremos definido que se enjaulará a todos los usuarios de sistema cuyo grupo principal sea el grupo «sftp12022». Además, estaremos enjaulando a todos estos usuarios en el directorio /sftp/nombreusuario.