nube

GNU/Linux: bloqueando visitas por país

2018-02-21 - Categorías: GNU/Linux
Internet Firewall

Siguiendo con el post anterior de bloqueo de IPs usando el cortafuegos integrado en el núcleo de Linux, llegamos a la necesidad de por ejemplo bloquear a cierto país. Hay negocios, o páginas web, que han recibido quizás ataques automáticos desde IPs que residen en Rusia, Rumanía o China. Si cerramos dicha entrada al servidor nos evitaríamos muchos problemas.

Tengamos en cuenta que si nuestro servidor trabaja con servidores que residen en estos países, podremos encontrarnos con conexiones que no se hacen, no dan respuesta al conectar, denegación de conexión.. Es complicado si nos olvidamos de que hemos bloqueado, por ejemplo, a Rusia. Si luego resulta que contratamos un servicio ruso, cuyos servidores residen en Rusia, estaremos contratando un servicio que no nos va a poder conectar.

Obteniendo IPs registradas por país

El primera paso es tener un listado de IPs del país en concreto que queremos bloquear. Para esto tenemos varias páginas que nos los sirven sin cargo. Por ejemplo:

http://www.ip2location.com/free/visitor-blocker
https://www.countryipblocks.net/country_selection.php
https://www.nirsoft.net/countryip/
http://www.ipdeny.com/ipblocks/
..

Mejor coge los rangos de IPs del país que quieras bloquear usando el formato en CIDR. Es decir de la forma red/máscara, son así:

2.136.0.0/13
2.152.0.0/14

Tienes entonces que guardarte este listado de CIDRs de forma que tengas 1 CIDR por línea del fichero. Lo guardas en un fichero de texto, y se lo subes al servidor.

Metiendo el bloqueo en el firewall de Iptables

Para esto, desde un servidor GNU/Linux, bastará con ejecutar lo siguiente:

$ while read line; do sudo ufw deny from $line; done < IPsCountryCIDR.txt

Ahora hay que esperar mientras que se cargan todos los bloqueos en el cortafuegos. Tardará un buen rato porque UFW se encarga de transformar, línea a línea, al formato de Iptables.

Sólo nos quedará comprobar que está activo y con las reglas de bloqueo funcionando. Simulando una visita desde dicho país podremos comprobarlo.

Simulando visita desde cierto país

Para esto puedes usar el TorBrowser, del enrutamiento cebolla. Puedes descargártelo aquí:

https://www.torproject.org/

El navegador de la red Tor es un proyecto, que usando Firefox, hace que podamos navegar anónimamente. Esta anonimización la hace creando un camino de conexiones de varios nodos, desde nuestro PC, a la página destino. De esta manera podemos decirle al TorBrowser que queremos que el último nodo sea en un país concreto. Para esto abrimos el fichero este:

Browser/TorBrowser/Data/Tor/torrc

..y ponemos lo siguiente:

ExitNodes {es} 
StrictNodes 1

El código entre llaves es el código del nodo final. Con esta configuración podemos visitar y ver esto en el navegador:

Tor navegando desde España

Terminando

Esto es todo, si has seguido todos los pasos, debes de haber podido bloquear el acceso a cierto país y comprobarlo con el TorBrowser.


AWS: sirviendo un píxel de conversión con el CDN de CloudFront

2017-12-18 - Categorías: Amazon Web Services / General
Cloudfront logo

Una de las tareas más interesantes para saber si las cosas sirven para algo en tu negocio de Internet, consiste en seguir a las visitas. Es decir, consiste en el seguimiento de la conversión, mediante lo que se llaman píxeles de conversión. Es decir, si queremos saber si un canal de entrada a tu web convierte o no, si los anuncios que ponemos en otras webs, si los enlaces de redes sociales, emails, etc.. sirven de algo. Para esto debemos de llevar un seguimiento de dicha entrada a tu web.

Un píxel de conversión es un código invisible para el visitante, que nos da la posibilidad de saber de dónde vienen las visitas a tu web.

Muchas veces nos puede bastar con herramientas como Google Analytics, Piwik, o similar. Pero a veces necesitamos dar un paso más, creando nuestros propios píxeles de conversión. Así no estaremos de nuevo limitados a lo que te permiten las herramientas.

Escenario

Piensa que puedes recibir muchas visitas a los píxeles, miles o millones de visitas por minuto si estas en plena campaña publicitaria por Internet. Tanto que si los píxeles están en tu servidor, puedes llegar a provocarte un ataque de denegación de servicio (DDoS) de tantas visitas en muy poco tiempo. Así que si te configuras un CDN de CloudFront para los píxeles, liberarás totalmente tus servidores. Sería una lástima invertir mucho en publicidad y que luego no puedas marcar correctamente a todos los visitantes.

Siguiendo con lo anterior, imaginemos que queremos dos píxeles para dos situaciones:

  • En la visualización de un anuncio.
  • Al hacer click en dicho anuncio.

Comportamiento

  • En la visualización: cuando tenemos un píxel de visualización, simplemente tenemos que visualizar el píxel en un iframe desde la web o cargarlo mediante Javascript en un div/span.. así marcaremos al visitante con una cookie.
  • Al hacer click: cuando tenemos un píxel de click, tenemos que recibir el click, poner una cookie al visitante, y redirigir al usuario a la página de destino.

Ambos píxeles se basan en el uso de cookies. Por ejemplo, imaginemos que le ponemos estas dos cookies:

  • En la visualización, una cookie con nombre cookie.unblog.visualizacion de valor y fecha de caducidad como consideremos.
  • Al hacer click, otra cookie con nombre cookie.unblog.click de valor y fecha de caducidad como consideremos también.

En el momento en que lleguen a www.tutienda.com es trivial consultar si el visitante tienen alguna de las dos cookies anteriores. Así podremos desencadenar eventos como por ejemplo:

  • La compra X es de un visitante que tenía la cookie cookie.unblog.visualizacion con valor Y.
  • Mostrar mensajes relacionados con el anuncio al visitante en nuestro portal, quizá después de 30 días de haber visto el anuncio en otra web.
  • Etcétera.

Montando el sistema de píxeles en AWS CloudFront

La estrategia para montar todo esto es la siguiente:

  1. Recibir las visitas pasando por el CloudFront.
  2. Establecer un origen de datos de CloudFront en un sistema de ficheros de S3.
  3. Estableces unas rutas que redirijan ciertos directorios al origen de datos con los ficheros de S3. Por ejemplo, podemos recibir en S3 todo lo recibido bajo la ruta www.tutienda.com/pixeles/*
  4. Construir los píxeles en Javascript en S3. Por ejemplo, para este ejemplo podríamos crear en S3 los dos píxeles siguientes:

www.tutienda.com/pixeles/unblog.visualizacion
www.tutienda.com/pixeles/unblog.click

Para el paso 1 simplemente tenemos que poner delante de todas las visitas una distribución de CloudFront. Esto es contenido para otro post, así que doy por sentado que ya tienes una distribución de CloudFront funcionando. Añadimos el origen de datos que va a tener los píxeles indicados en el paso 2..

En el paso 3 creamos el comportamiento para recibir las visitas del directorio indicado en el S3 que almacena los píxeles..

Nos tiene que quedar algo parecido a esto..

Con este comportamiento podemos configurarle el nivel de cacheado en CDN que queramos. Con esto descargamos totalmente los servidores de las visitas a los píxeles. Esta es la parte crítica para mejorar nuestro sistema, ya que podemos hablar de una cantidad de visitas muy grande.

Ya sólo nos queda crear los píxeles en S3 siguiendo las rutas que vamos a recibir. En este caso tendríamos que crear los píxeles en los ficheros:

/pixeles/unblog.visualizacion
/pixeles/unblog.click

Para cómo crear el contenido de los píxeles de conversión me remito a este otro post sobre cómo hacer un píxel de conversión.

Espero que sirva. ¡Un saludo!


Estudiando logs de CloudFront con GoAccess

2017-10-13 - Categorías: Amazon Web Services / General / GNU/Linux
Vista de GoAccess

Quizá tienes que estudiar los registros de visitas de un proyecto que está en una nube, detrás de un CloudFront de Amazon Web Services. En este proyecto tenemos guardados los registros de las peticiones web que tenemos a los servidores. A veces es interesante revisarlos a este nivel.

Es decir, que tenemos registros de las visitas, anonimizados, por ejemplo con Google Analytics. Pero pasan muchas más cosas por debajo de Google Analytics que sólo quedan reflejados en los registros de los servidores. Así que resulta que queremos saber absolutamente cuáles han sido todos los registros. Queremos saber qué IPs son las que más nos visitan. Qué consultas al servidor son las que están provocando errores de servidor, los 500, incluso antes de que lleguen los robots que nos indexan. Qué IPs son de robots que nos están crawleando, o indexando, y un largo etcétera. Probablemente aquí veamos las IPs de los robots de Google, Bing, Yahoo que nos visitan en busca de información de la web..

Continuar leyendo..

Servidor GNU/Linux bloqueado, no responde, no actualiza, no da servicio

2017-10-05 - Categorías: Amazon Web Services / General / GNU/Linux
GNULinux

Si has puesto un servidor Ubuntu/Linux lanzándole actualizaciones automáticas puede que hayas llegado a encontrarlo bloqueado. El servidor ha dejado de actualizarse y no hay manera de encontrar el problema. Cuesta mucho entrar al servidor. Un reinicio, paramos servicios, podemos hacer un par de cosas recién conectados, pero vuelve a bloquearse.. Volvemos a reiniciar para volver a entrar corriendo a ver qué pasa.. la gente corre.. ¡las mujeres y los niños primero! 😀

Esto pueden ser los síntomas de un servidor lleno. Lleno el disco duro, la memoria RAM, los i-nodos.. ha empezado a reventar por todos lados y necesitamos volverlo a la normalidad. Toca pues hacer un par de cosas..

Continuar leyendo..

Yo, robot III – White/Gray/Black Hat SEO – El Time To First Byte

2017-08-15 - Categorías: General / PHP / SEO
YoRobot3 - El Time To First Byte

Hoy vengo a compartir otro pequeño script para testear el tiempo de respuesta de un servidor. Este es el llamado TTFB, Time To First Byte en inglés. Simplemente es el tiempo que pasa entre que tu navegador pide una web hasta que empieza el servidor a enviar los bytes de respuesta. Esta prueba nos da una buena visión de si el servidor y la web se pueden optimizar. Un TTFB bajo es buena señal, indica que tanto el servidor (a nivel hardware y software) como la aplicación web esta todo bien optimizado. Sino, ya tenemos algo en lo que enfocarnos.

Continuar leyendo..

AWS CloudFront: balanceando las visitas entre varios servidores

2017-05-29 - Categorías: Amazon Web Services
Cloudfront logo

Hoy traigo un pequeño HOWTO de cómo balancear las visitas de un sitio web entre varios servidores, eligiendo exactamente qué visitas van a qué servidores. Se trata unas pocas directrices para configurar CloudFront y así redirigir las peticiones web.

Con esto puedes controlar qué subdirectorios, o que zonas de tu aplicación web se gestionan desde qué servidores. Balancear en función de la carga se puede hacer con un ELB (Elastic Load Balancer), pero estas configuraciones a nivel de CloudFront balancean las peticiones de forma permanente. Por ejemplo:

Continuar leyendo..

SEO técnico, ponle nota a tu web

2017-04-10 - Categorías: Amazon Web Services / General / GNU/Linux / Magento / PHP / Prestashop / SEO / Symfony / WordPress
Alexa up

Montar una web con lo imprescindible, ponerle el contenido y diseño, y olvidarnos de ella.. sería como comprarnos un coche y ya no preocuparnos nunca por pasarle una revisión. Sería como si nos diera igual si hay una bajada de potencia del motor, que las ruedas no estuvieran bien hinchadas. Quizá una bujía deja de dar los chispazos al 100%..

Y no sólo están los problemas de mal-funcionamiento, sino que quizá también hay algunas mejoras extras. No todo viene de casa, y puedes hacer que el coche vaya mejor. ¿Porqué no entonces dedicarle ese tiempo a nuestra web para revisar esas cosas? Es más, ¿porqué no poner a un mecánico que sepa lo que está haciendo? Está claro que nos podemos quedar tal cual, nuestro coche andará. Pero queremos que no le falte esa alegría, que responda sin pereza. Resumiendo, queremos que la maquinaria esté bien engrasada, sacando el 100% de su rendimiento. Entonces necesitaremos a un especialista que toque, pero no de oídas, sino que sepa lo que está tocando.

Continuar leyendo..

Salvando mis archivos en la nube con Mega

2017-03-19 - Categorías: General / GNU/Linux

Una de las alternativas de almacenamiento en la nube más prometedoras es Mega. Proviene de la antigua Megaupload, de la mano de Kit Dotcom, fundador de Megaupload. Lo pusieron en marcha Kim junto a su equipo de trabajo, parece que como respuesta al cierre y confiscado de Megaupload debido a la piratería. Mega puede parecer algo novedoso, sin embargo, no es más que el mismo sistema de almacenamiento en la nube de archivos pero mucho más elaborado que el anterior. Salió al mercado hace ya cuatro años, en el 2013. Fue tanta la expectativa que hubo millones de usuarios que se registraron en muy poco tiempo hasta colapsar sus servidores. A día de hoy Kim Dotcom se ha desvinculado del proyecto, y navegando un poco puedo leer reseñas que hablan que hay alrededor de 50 millones de usuarios registrados en Mega.

Sus principales bazas en el mercado del almacenamiento en la nube han sido dos: los famosos 50 Gigas gratis, y su esfuerzo por la privacidad de los usuarios.

Continuar leyendo..

AWS: una buena infraestructura no es suficiente, pero sí necesaria

2016-10-03 - Categorías: Amazon Web Services / General / SEO
Logo de Amazon Web Services

Ya puedes tener la estrategia de marketing mejor del mundo, la mejor campaña publicitaria, los mejores anuncios. Unas publicaciones excelentes en blogs, una gran inversión en SEM, o un SEO de contenidos inmejorable. Que si la infraestructura informática subyacente no acompaña de poco servirá. Aquí es donde entra el estar o no en la nube. Y nunca mejor dicho, poner tu aplicación web por las nubes.

Continuar leyendo..

Administrar tu servidor con Webmin y Authentic Theme

2016-01-24 - Categorías: Amazon Web Services / GNU/Linux
Webmin dashboard

¡Buenos días a todos! Voy a tratar de no perder las buenas costumbres, como esta de compartir en el blog mi granito de arena en todo esto de la informática. Hasta estos últimos días, que no he tenido la necesidad de mantener al día tantos servidores como últimamente. Estaba haciéndolo manualmente, a pelo como se suele decir, entrando en los servidores y aplicando actualizaciones, modificaciones, etc.. Todo esto es mucho tiempo así que delegar en un proveedor de hosting todo éste trabajo es una buena elección. Pero no siempre te va a valer y puede que necesites hacer configuraciones que un proveedor de hosting no te va a permitir. Administrar tu propio servidor no tiene que ser complejo.

Todo esto me ha llevado a investigar sobre paneles de control de servidores. Tenemos el gran Cpanel, Plesk, Zpanel, y un largo etcétera. Por temas laborales ya he probado algunos en los propios proveedores. Muchos funcionan de maravilla y son sencillos de gestionar. Pero no me voy a dedicar a alquilar hosts, sino que simplemente necesito mantener unos pocos servidores y no es viable comprar una solución comercial. Así que navegando y navegando al final me topé con Webmin.

Qué tiene

Webmin configurando

A grandes rasgos es una web desarrollada sobre Perl, que se instala en el puerto 10000 del servidor y se integra con el sistema operativo. Nos permite ver el estado del servidor, hacer configuraciones de red, actualizarlo, programar actualizaciones automáticas recibiendo informes a tu email. Te permite configurar usuarios, permisos, instalar bases de datos, servidor web, configurarlos. También hay módulos para instalar un servidor de correo electrónico. Puedes administrar Apache2, Mysql, Postgres, Postfix, Dovecod, etc, etc, etc.

La verdad es que te quedas mucho más tranquilo teniendo una herramienta de estas instalada en un servidor. No tienes más que entrar  y de un vistazo puedes saber qué tal anda el sistema. Puedes aplicar las principales configuraciones y a correr que el tiempo es muy valioso.

Hay algunas tareas como la configuración hosts virtuales que haciéndolas a mano me he aclarado mejor. Pero deduzco que será cuestión de acostumbrarme al panel. Leo que hay extensiones de Webmin para configurar fácilmente hosts con varios dominios, permitiendo la lectura de correos a los usuarios proporcionándoles un panel de entrada al sistema.

Un detalle que me ha gustado mucho es la autenticación en dos pasos (multi-factor authentication, MFA). Con el que podemos tener por ejemplo en nuestro móvil el Google Authenticator, y tener un código de seguridad extra que se genere a cada 30 segundos, para poder entrar como en la imagen siguiente:

Webmin mfa


El theme, piel, o plantilla que podéis ver en las imágenes no es el original. Es el ‘Authentic theme’ que me ha gustado también mucho. Es totalmente sensible al dispositivo (responsive), con lo que también podemos aplicar configuraciones sobre nuestro servidor desde el móvil o tablet, cosa que se agradece en gran manera.

Aquí podemos ver lo sencillo que se hace mantener actualizado el sistema:

Webmin update


Aquí en la imagen se puede ver cómo configurar que todos los días se apliquen todas las actualizaciones del sistema, no sólo las de seguridad. Esto dispara cada día la instalación de todos los paquetes para actualizar y me envía un informe del resultado de la instalación a mi email. Ya os podéis hacer a la idea de que tiene muchas cosas, y lo tranquilo que me quedo con cada correo que recibo diciéndome que todo se ha actualizado correctamente.

Como buen usuario de Ubuntu, todas las pruebas y las imágenes que se ven son sobre Ubuntu. Me lo voy a anotar como indispensable en las nuevas instalaciones. Navegando y navegando por el menú lateral ya veo que no me lo voy a acabar, así que tendré que ver la documentación oficial de cada herramienta para ir más al grano en las tareas que se necesiten.

Terminando

Aquí la web oficial: http://webmin.com/

Es un proyecto alojado en Github, que por lo que veo se ve bien activo. Ahora mismo hace 4 horas que han subido una actualización, lo que denota que vamos a seguir teniendo actualizaciones frecuentemente, como todo buen proyecto Open Source.

Para el que quiera seguir investigando en esta joya de la informática, son interesantes los módulos Usermin y Virtualmin. No creo que tarde mucho en probarlos. De estos tenemos una versión gratuita y otra comercial, con las que vamos añadiendo más y más funcionalidades al panel de control.

¿Alguna sugerencia de otro programa similar para administrar servidores?


Instalación de Postgresql 9.3 en Ubuntu 14.04

2015-10-06 - Categorías: General

Hola de nuevo.
Aquí traigo otro pequeño HOWTO para automatizar la instalación de un servidor Postresql. Como ya indico en el post anterior, estoy jugueteando con Vagrant y necesito instalar la base de datos automáticamente para no tener que estar haciéndolo cada vez. Así que ya puestos a usar Vagrant o simplemente a usar la línea de comandos podemos ejecutar estos comandos para instalar y configurar Postgresql sin sufrir mucho y comenzar a trabajar lo antes posible.

Porqué Postgresql

Un compañero de trabajo me hizo una vez la pregunta, ¿porqué Postgresql?

Es un gigante de las bases de datos relacionales. Robusta como ella misma, soporta clustering, integridad referencial.. una cantidad ingente de características. En sus últimas versiones no tiene nada que envidiar al resto de bases de datos. Y mucho la catalogan como la mejor base de datos relacional Open Source. Además de que tenemos el pgAdmin que funciona a las mil maravillas.

https://es.wikipedia.org/wiki/PostgreSQL

Hay cantidad de información por Internet, ya que desde 1982 leo que está dando guerra, así que te puedes hacer una idea de si es o no una buena elección. Cada cual que mire cuáles son sus requisitos pues no es objetivo de este post hacer una comparativa.

Dónde está el script

Sin más preámbulos el script de instalación es el siguiente:

postgres_conf_file=”/etc/postgresql/9.3/main/postgresql.conf”
postgres_pg_hba_file=”/etc/postgresql/9.3/main/pg_hba.conf”

main() {
    apt-get -y install postgresql

    sudo -u postgres psql<<EOI
password postgres
postgres
postgres
q
EOI

    sed -i “s/#listen_addresses = ‘localhost’/listen_addresses = ‘*’/g” ${postgres_conf_file}

    cat <<EOI > ${postgres_pg_hba_file}
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
host    all             all             10.0.2.2/32             md5
host    all             all             ::1/128                 md5
EOI

    service postgresql restart
}

main
exit 0

A fecha en que escribo, este código se puede incluir en un Schell Script que por ejemplo podemos llamar instalarPostgresql.sh, darle permiso de ejecución y lanzarlo. Funciona con la versión que se instala actualmente en un servidor de producción con Ubuntu Server 14.04 que es la 9.3 de Postgresql si no me falla la memoria.

Simplemente instala el servidor, se conecta con el cliente psql para cambiar la contraseña del administrador postgres, escucha en todas las interfaces de red y permite conectar por red a 127.0.0.1 y a 10.0.2.2 que es la IP que se ve desde dentro de una máquina virtualizada con Vagrant.

Espero que sirva.
Saludos.


LibreOffice 5, apuntando a los móviles y la nube

2015-08-07 - Categorías: General


LibreOffice es una suite ofimática, es decir, para trabajos relacionados con la oficina como pueden ser documentos de texto, hojas de cálculo, presentaciones, incluso tiene para bases de datos. Toda una joya de la informática les traigo hoy con éste programa. Ya lo he mencionado anteriormente en otro post pero no por ello deja de tener mucha importancia.

La competencia

Pues bien, comparando con otras soluciones de pago como pueden ser Microsoft Office o los Google Docs que tenemos gratis disponibles en dispositivos Android. Tenemos ahora que LibreOffice va siendo cada vez más una gran solución que casi no tiene nada que envidiar al resto.

Vengo leyendo desde hace un tiempo que tienen planeado la edición de documentos online. Es decir, se instalará LibreOffice en un servidor desde el que se servirán los archivos. ¿Os suena?, al estilo que los documentos de Drive o el Office Online de Microsoft.

Aquí su web: http://www.libreoffice.org/

Mejoras

Entre las nuevas mejoras trae una interfaz renovada, que desde se separó el desarrollo del estancado OpenOffice, han ido queriendo diferenciarse cada vez más y más. También informan en su web que tenemos mejoras sustanciales en el funcionamiento de las hojas de cálculo, filtros, mayor velocidad, etc.

Todo apunta a una serie de características de la versión 4 que se han ido mejorando cada vez más y ahora espero que estemos en un punto de inflexión en donde se apunte más a la nube, al trabajo en red con ficheros de LibreOffice.

Otro punto importante son las mejoras de las aplicaciones para móviles. Son conscientes que los dispositivos móviles y tablets van a tener una importante presencia. Pero no van a descartar a los ordenadores, porque una buena pantalla junto con ratón y teclado no dejarán de ser más productivos a la larga para las tareas ofimáticas.

Probando en Linux

Instrucciones de instalación Linux:
http://linuxg.net/install-libreoffice-5-0-on-ubuntu-via-ppa/

En mi caso que tengo Linux instalado, he encontrado aquí más información e instrucciones para instalarme la última versión en tres secillos comandos:

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice

Sólo me queda decir que sí que funciona bastante más rápido. Es un software imprescindible en todo ordenador.

Saludos.

© 2020 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.