Reiniciar/Parar/Iniciar servicio de DHCP en Fedora

Llevaba tiempo sin usar Fedora, y no es que cambie excesivamente respecto a otras distros pero a la hora de gestionar los servicios del sistema la cosa varía un poco.

dhcp-ip_linux_hispano

Si de lo que hablamos es de un servicio DHCP, recordaros que el protocolo DHCP (Dynamic Host Configuration Protocol) nos permite que los dispositivos individuales en una red IP obtener su propia información de configuración de red. Bien, veamos cómo Iniciar, parar o reiniciar nuestro servicio.

Para las versiones de Fedora por encima de 15 (la versión actual es la 19 que salió apenas hace un mes) la forma de hacerlo es: read more

Leer más » 1 Comentario

Activar compresión GZIP en servidores Apache para aumentar la velocidad de nuestros sitios web

Logo servidor web ApacheA día de hoy, prácticamente todos nuestros potenciales usuarios soportarán a través de sus navegadores páginas web servidas de forma comprimida. ¿Por qué es importante comprimir el código HTML resultante que enviamos? Para mejorar el rendimiento del sitio.

Ya hemos comentado otros métodos que tenemos a nuestro alcance para optimizar la velocidad de nuestro sitio como el uso de Minify, en concreto hablamos en el caso particular de WordPress y su plugin WP-Minify.

Hoy os traemos una optimización de la parte del servidor. La idea es enviar comprimido las partes que mejor ratio de compresión obtienen. La estructura central de una página, sea cual sea la tecnología del lado del servidor que usemos (PHP, Python, Ruby, etc) va a ser siempre código HTML. Este código al comprimirse reducirá su peso enormemente, en unas ratios que fácilmente llegan y superan al 90%. Igual ocurre con otros ficheros tipo texto: CSS y JavaScript por ejemplo.

Otro tipo de contenido que servimos desde nuestro sitio no obtiene ratios tan favorable y es hasta contraproducente comprimirlo por el coste en recursos que se tiene para luego no obtener un beneficio. Hablo de imágenes, ficheros PDF, contenido multimedia…

Por lo tanto, veamos rápidamente cómo activar la compresión usando gzip en nuestro servidor Apache y a la vez configurarlo, de forma que tengamos el rendimiento óptimo.

Leer más » 15 Comentarios

Configurar red de forma básica en Red Hat y derivadas

La arquitectura de servidores que mantengo en el trabajo, está basada en su parte Linux en máquinas virtuales con Scientific Linux (distribución derivada de Red Hat) sobre las que gracias a Xen, paravirtualizo otras máquinas que son las que finalmente dan el servicio.

En distribuciones del tipo de Red Hat, como puedan ser esta misma Scientific Linux u otras como CentOS o Fedora, la configuración básica de la red es como sigue. read more

Leer más » 3 Comentarios

Buscar paquetes en Fedora

En relación con la entrada de ayer de Carazo sobre Dónde instalan APT y Synaptic los paquetes, hoy veremos si tenemos un paquete en distribuciones basadas en Red Hat. Es decir, veremos que paquete tenemos instalado atendiendo a una búsqueda, en Fedora, CentOS, Red Hat o Suse Linux.

Bien, si e.g. buscamos que paquetes tenemos que usen (han de contenerlo en el nombre del paquete) SSH. Usaremos el comando RPM con los argumentos qa tunelando la salida y filtrando las filas que contienen la palabra clave ‘ssh’. read more

Leer más » 1 Comentario

Instalar cliente Oracle y librerías OCI para PHP

Ahora mismo estoy poniendo un producción un servidor en mi centro de trabajo, en el que además de tener que dar servicio para la base de datos PostgreSQL (explique hace poco cómo permitir conexiones entrantes a esta BBDD), debe hacer conexiones externas a una base de datos Oracle.

Estas conexiones las hará un script en PHP por lo que además, deberemos instalar OCI (Oracle Call Interface) para PHP. Suponemos que está ya instalado el servidor web Apache 2 y los componentes básicos de PHP.

read more

Leer más » 8 Comentarios

Configurar soporte HTTPS en Apache

Este tutorial describe cómo poner en marcha un servidor web con soporte HTTPS. El procedimiento lo he utilizado en un equipo con Scientific Linux, distribución derivada de Red Hat, por lo que en esta distribución y en otras derivadas como Fedora o CentOS debería ser el mismo. En Ubuntu, Debian y compañía será muy similar pero cambiarán algunas rutas y el sistema de paquetería.

El certificado utilizado es autogenerado y suponemos que tenemos ya instalado Apache.

Instalación de OpenSSL y mod_ssl

Lo primero que necesitamos es tener instalado el software necesario, para ello a través de yum hacemos lo siguiente:

yum install mod_ssl openssl

Generación del certificado

Primero generamos la clave privada, elegimos algoritmo RSA y 1024 bits:

openssl genrsa -out ca.key 1024

Ahora generamos el CSR (Certificate Signing Request), un fichero que crea una entidad para pedirle a una tercera que lo firme, verificando así que los datos de la primera entidad son correctos. De esta forma unas entidades van certificando a otras creando una cadena de certificación, donde la primera entidad de llama la raí­z de certificación.

openssl req -new -key ca.key -out ca.csr

Finalmente, nos autofirmamos el certificado:

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Le hemos puesto un período de validez de un año, pero podéis cambiar a vuestro gusto este tiempo. OpenSSL os pedirá una serie de datos sobre el certificado y su entidad emisora (vosotros): correo electrónico, ciudad, país… a través de un interfaz en texto.

Cambio de rutas

El siguiente paso es mover los ficheros de la firma que acabamos de generar a la ruta correcta.

mv ca.crt /etc/pki/tls/certs
mv ca.key /etc/pki/tls/private/ca.key
mv ca.csr /etc/pki/tls/private/ca.csr

Configuración de Apache

Ya estamos listos para comenzar con la configuración de Apache. En las versiones más modernas de Apache, el fichero de configuración viene dividido en varios ficheros separados por temática para un acceso más rápido a la parte deseada. El fichero que vamos a editar es el siguiente: /etc/httpd/conf.d/ssl.conf.

Buscamos las siguientes líneas y le asignamos el valor correcto (no tienen por qué estar seguidas una de la otra):

SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

Host virtual

Para terminar crearemos un host virtual donde indicaremos a Apache dónde buscar las peticiones dirigidas al puerto 443 (las peticiones HTTPS). Definimos un host virtual al final de /etc/httpd/conf/httpd.conf:

NameVirtualHost *:443

Y luego la definición de las características en sí:

<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key AllowOverride All DocumentRoot /var/www/httpsdocs ServerName nombresitio.com </VirtualHost> read more

Leer más » 11 Comentarios

Permitir conexiones entrantes a un servidor PostgreSQL

Para los que venimos del mundo de MySQL y nunca antes hemos utilizado PostgreSQL, la configuración de los accesos externos a la base de datos puede parecernos algo confusa. El mecanismo, sin entrar en la tabla de gestión de usuarios, es algo más complejo pero tiene más posibilidades que en la base de datos recién adquirida por Oracle.

Veamos los pasos a dar.

1. Acceder al sistema

Para poder seguir los pasos, deberemos estar dentro del sistema, en la terminal del mismo. Si no tenemos acceso físico, podemos conectar vía ssh.

$ ssh miusuario@miservidorpgsql

2. Autenticarnos como usuario postgres

Una vez dentro del sistema, podemos hacer las operaciones como root, pero por seguridad o por si no disponemos de tales credenciales, lo mejor es actuar como usuario postgres:

su postgres

3. Permitir conexiones de clientes desde un determinado rango

Llegamos a uno de los puntos importantes de la cuestión, el fichero pg_hba.conf. Su situación exacta dependerá de vuestra instalación, pero lo encontraréis en una de estas dos rutas:

  • /var/lib/pgsql/data/pg_hba.conf (en mi instalación lo tengo ahí, utilizo Scientific Linux, una distribución derivada de Red Hat)
  • /etc/postgresql/main/pg_hba.conf

Dentro de este fichero, al final del mismo, veremos algo así:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident
# IPv6 local connections:
host    all         all         ::1/128               password

¿Qué significa esto? Veamos columna a columna:

  • Tipo: básicamente conexión local o conexión remota (host).
  • Base de datos: base de datos a las que afecta la regla. Si queremos todas, usamos el comodín all.
  • Usuario: usuarios a los que afecta la regla, si queremos que afecte a todos, usamos también all.

Nos paramos ahora en los dos apartados que más atención requieren.

3.a Dirección

En esta columna definimos, las direcciones IP (podemos también usar IPv6), desde las que podremos conectarnos a PostgreSQL. Usaremos la fórmula dirección/máscara:

  • Una sola dirección: 150.100.100.100/32
  • O un rango (ampliemos el mismo de antes): 150.100.100.0/24 (256 direcciones)

3.b Método

Aunque hay multitud de métodos para utilizar (incluyendo conexiones LDAP, Kerberos o PAM), explico los tres más básicos:

  • ident: utiliza el usuario del sistema desde el que se está intentado conectar.
  • trust: deja todos los accesos sin necesidad de autenticarse (sólo recomendable para conexiones desde el equipo local).
  • password: identificación con usuario/contraseña, es la más típica y es la recomendable para conexiones desde clientes como EMS PostgreSQL Manager.

Una línea de ejemplo, para darle acceso a todos los usuarios, a todas las base de datos, desde el rango de IP explicado antes, usando autenticación con usuario y contraseña, sería la siguiente:

host    all         all         150.100.100.0/24          password

4. Habilitar conexiones al socket desde clientes que no sean el host local

Al igual que en MySQL hay que configurar el bind-adress en my.conf, en PostgreSQL tenemos que hacer algo análogo.

Para versiones 8.x en adelante el procedimiento es el siguiente. Buscamos el fichero postgresql.conf en:

  • /var/lib/pgsql/data/postgresql.conf
  • /etc/postgresql/8.2/main/postgresql.conf

Y buscar dentro del mismo la siguiente línea:

listen_addresses='localhost'

Para sustituirla, por el comodín (para todas las IP, es una opción segura, tened en cuenta que tenemos también un filtro en el fichero pg_hba.conf.

listen_addresses='*' read more

Leer más » 10 Comentarios

Manual de YUM

Gran parte de mi vida como usuario de Linux, he estado utilizando distribuciones derivadas de Debian, principalmente Ubuntu. Sin embargo, en un principio no fue así y la primera distribución que usé fue la desaparecida Mandrake.

Todavía recuerdo cuando hace mucho, acostumbrado a tener que descomprimir, compilar e instalar los tarball con el código fuente, un compañero de clase me comento las virtudes de este sistema: “En Debian haces apt-cache search, para buscar, luego pones apt-get install y el nombre del paquete y lo tienes hecho“. Cuando lo vi funcionando me quedé maravillado. read more

Leer más » 4 Comentarios

Configurar NTP (hora en red) en nuestro equipo

Esta entrada sería la finalización de una serie de entradas relacionadas con la hora, fecha y zona horaria del sistema; de los que ya hemos hablado:

Sin embargo, lo lógico es automatizar ese trabajo y poder usar uno de los muchos relojes de referencia que hay en la red, más aún si nuestro equipo proporciona algún tipo de servicio en línea. Tener una hora real es básico para multitud de operaciones.

Instalar

Lo primero será instalar el servicio de NTP, probablemente ya lo tengamos instalado pero por si acaso: read more

Leer más » 9 Comentarios

Instalar mod_rewrite en Apache. Los Pretty Permalinks se resisten

Es posible que si habéis probado a usar enlaces permanentes (permalinks) sobre Apache os hayáis encontrado con este problema, me refiero a el caso de los conocidos como Pretty Permalinks, en los que la forma más usual de usarlos es https://www.linuxhispano.net/año/mes/día/nombre-de-la-entrada/, en resumidas palabras son el Santo Grial de los enlaces permanentes, muy usados en los Blogs.

El caso que os enuncio a continuación es el de la instalación del CMS WordPress sobre una máquina Ubuntu 10.04, aunque la metodología es completamente aplicable a cualquier uso de las directivas dentro de .htaccess sobre cualquier máquina que corra Apache2 y cualquier sistema sobre él mismo. read more

Leer más » 12 Comentarios

Convertir un paquete *.deb a *.rpm y viceversa

Sí, algún graciosillo ya habrá pensado en:

mv mi_paquete.deb mi_paquete.rpm

Y bromas aparte. En muchas ocasiones nos encontramos que un paquete para nuestra distrubución basada en Debian (paquete DEB) queremos utilizarlo en una distribución basada en RedHat (paquete RPM), parecerá algo sencillo, y de hecho lo es. Gracias a la herramienta Alien. En mi caso uso CentOS y Ubuntu, y en muchas ocasiones esta solución me ha salvado.

Lo primero será instalarnos el programa en cuestión, así:

$ sudo apt-get install alien (en el caso de Debian)
$ yum install alien (en el caso de RedHat, como superusuario) read more

Leer más » 8 Comentarios

[Resultados] La encuesta de la semana #11. ¿Qué distro usas para tu server?

And the winner is DEBIAN!

Antes de nada agradeceros la participación en La encuesta de la semana #11. ¿Qué distro usas para tu server?, una encuesta menos popular y de una temática más específica. Una imagen vale más que mil palabras, y mi querido CentOS no ha gustado demasiado:

La encuesta de la semana #11. ¿Qué distro usas para tu server?

Y en vista de los resultados, ¿Algo que añadir?

Leer más » 2 Comentarios

Distribuciones Linux para servidores

Ayer os comenté a través de La encuesta de la semana #11. ¿Qué distro usas para tu server? las opciones más conocidas a la hora de montar un servidor Linux. Mi postura ya la conocéis, CentOS y Ubuntu Server, uno por estabilidad y otro por facilidad respectivamente.

Tabla comparativa de distribuciones Linux para servidores

Ahora os voy a describir las alternativas más populares en el sector de los servidores bajo Linux:

  • Debian
    La más antigua de las distribuciones de las que cito, Debian fue iniciada en 1993 por Ian Murdock. Es la única entre las variedades aquí mostradas en la que no hay ninguna compañía detrás, la distribución está controlada totalmente por voluntarios vinculados por el contrato social Debian. Un líder es elegido cada año desde y por los miembros del proyecto Debian.
  • Ubuntu
    La distribución que más auge a tenido en los últimos años, con cada vez más usuarios y que más rápido se ha adaptado a las necesidades de los mismos. Ubuntu es una distribución basada en Debian, y gestionado por Canonical. Aunque gran parte del énfasis de la distribución está en el escritorio, también hay una versión de servidor, y es que Canonical ha atraído el apoyo de los agentes comerciales más tradicionales de UNIX, como Oracle.
  • Red Hat Enterprise
    Red Hat Enterprise Linux (RHEL) es probablemente la distribución de Linux más conocida y muy popular en cuanto a servidores, además de ser uno de los más veteranos. Ha contribuido a un gran número de aplicaciones para la comunidad Open Source de los años, incluyendo Red Hat GFS y su sistema de archivos en clúster. Aunque no es obligatorio, el acceso a soporte y actualizaciones de seguridad requiere que los clientes paguen un honorario por estos “derechos”, al igual que el caso de SuSe Linux.
  • CentOS
    CentOS (abreviatura de Community Enterprise Operating System) es una versión libre disposición de Red Hat Enterprise que no cobra por el acceso a actualizaciones de seguridad. Esto es posible debido a la licencia libre bajo la cual se libera Red Hat. Dado que es una copia casi exacta de RHEL, con únicamente los logotipos y marcas registradas modificadas (y sin el soporte comercial), los binarios son 100% compatibles, es decir, las aplicaciones diseñadas para aplicaciones comerciales de Red Hat se ejecutarán sin modificaciones y con total compatibilidad.
  • SuSE Enterprise
    SuSE Linux Enterprise Server (SLES) es una distribución que toma prestado de Red Hat su gestión de paquetes, distribución y su modelo de negocio. Fue creada originalmente en Alemania por un grupo de consultores de UNIX, SuSE significa “Software- und System-Entwicklung” (Desarrollo de software y de sistemas). Y en 2003 fue adquirida por Novell, que hicieron de esta una distribución en base a sus ofertas.
  • read more

    Leer más » 10 Comentarios

    La encuesta de la semana #11. ¿Qué distro usas para tu server?

    LEDLS

    He usado y uso CentOS y Ubuntu Server como servidores, por facilidad de uso y costumbre me quedo con el elaborado por Canonical, por estabilidad y escalibilidad me quedo con la solución libre de Red Hat. ¿Y tú, con cuál te quedas?

    Leer más » 2 Comentarios

    Avatar, ¿con Ubuntu o con Red Hat?

    Estos días estoy leyendo que Avatar, la película más taquillera de la historia, ha sido desarrollada con Linux. De eso no hay duda, pero tras leer en muchos sitios que la distribución elegida para tal propósito ha sido Ubuntu, ahora leo en otros que no, que ha sido Red Hat. De hecho en Ubunlog han hecho la siguiente recopilación de enlaces que apuestan por una o por otra alternativa.

    ¿En qué quedamos?

    Los que dicen que ha sido con Ubuntu son entre otros:

    Los que lo niegan y afirman que ha sido con Red Hat: read more

    Leer más » 7 Comentarios