Sistemas

Diseño Web, Seguridad, Servidores, Sistemas

Cómo poner certificado SSL en tu web usando Cloudflare

Hace unos días un cliente nos dijo que por qué no activábamos SSL en su web ( dados los cambios de Google ) a través de Cloudflare porque era “muy fácil”. Es fácil, pero queremos explicaros las ventajas y desventajas. Cloudflare ofrece varias opciones para activar los certificados. Os lo dejamos de manera sencilla: Si no tienes certificado en tu servidor y o ni ganas o ni conocimiento sobre cómo instalarlo:  Flexible SSL. Este modo es el más sencillo. No requiere configuración, ni conocimientos ni instalación. Damos a un botoncito en nuestro panel de Cloudflare y, como por arte de magia, tenemos https (SSL). ¿Fácil no? Pues como siempre no es oro todo lo que reluce. Este método sólo cifra desde Cloudflare hasta el visitante. Pero el trayecto de Cloudflare a tu servidor está sin cifrar. Si, en teoría todo debería pasar por Cloudflare, pero de la teoría a la práctica hay mucho trecho. Realmente no tienes un certificado, pero el cliente (y Google etc) ven como si lo tuvieras porque Cloudflare lo emula. Pero si se cae ésta, o dejas de usarlo, ya no lo tienes. Hasta ellos dicen que : “It should only be used as a last resort if you are not able to setup SSL on your own web server, but it is less secure than any other option…..(…) This option is not recommended if you have any sensitive information on your website” En resumen es una “chapucilla” que puede servir, si no puedes instalar un certificado, para salir del paso. Pero recomendamos que sea sólo momentáneo. Si puedes instalar un certificado en tu servidor: Full SSL. Esta es la opción clásica y más segura para activar SSL. Se instala el certificado (del tipo que sea) en tu servidor y así todo el trayecto está cifrado. Requiere que tengas un certificado válido. Puedes usar los de LetsEncrypt o alguno de pago. Pero también Cloudflare emite certificados Es lo que llama Origin CA , en el que es Cloudflare la que actúa como entidad certificadora. Eso si en Free y Pro son compartidos, a partir de Business creo que es ya un certificado personalizado. Eso si, instalar un certificado en un servidor no es muy sencillo, requiere conocer el proceso. Y luego, una vez activado, podemos tener que revisar los enlaces y cambiar código en base de datos o por código porque tendremos muchos que estén puestos por http. Por ejemplo los enlaces puestos a mano tendrán que cambiarse a manos. Strict (SSL-Only Origin Pull):  Esto es sólo para las cuentas Enterprise. Lo que hace es que si tienes alguna petición http en tu web, te la devuelve como https aunque no lo hayas configurado así. Así que Cloudflare te puede ayudar a pasar a SSL si no tienes ni idea de cómo hacerlo, con la opción sencilla. Si no, te proporciona un certificado, o puedes hacerlo por tus medios.

Limpieza de PC, Sistemas, Trucos

Cómo ver el espacio ocupado del disco en Windows 10 y liberarlo.

Por mucho disco que tengas, si no borras cada cierto tiempo acabarás sin espacio. Un ordenador sin espacio en disco va más lento, además de no poder guardar nueva información. Así que no te queda más remedio que liberar espacio. Pero para eso tienes que saber dónde lo has gastado… Antes esto lo hacíamos con programas externos como WinDirStat, pero ahora Windows 10, en el menú de Configuración>Sistema incluye un apartado muy útil llamado Almacenamiento. Ahí podéis ver en qué tenéis gastado el espacio del disco y, pinchando en el tipo de fichero, podéis ver más detalles e incluso liberar espacio. En este vídeo os explicamos ´cómo ver el espacio ocupado en disco en Windows 10 y cómo liberarlo.  

Linux, Servidores, Sistemas, Trucos

Modo rescate OVH: cómo acceder a tu servidor aunque esté caído o bloqueado.

Tenemos servidores de clientes en varios proveedores, uno de ellos OVH. Hace unos días uno de dichos servidores, tras una modificación en los iptables, nos echó y no dejaba conectarnos. De ninguna manera, ni tras reiniciar. Por si os ocurre, os explicamos el modo rescate de OVH (gracias, gracias, gracias OVH), a través del cual pudimos deshacer la modificación anterior y acceder de nuevo al servidor. El modo rescue-pro, rescate, carga un sistema Linux basado en Debian desde red, lo que te permite montar los discos y hacer los cambios necesarios. Igual que si tuvieras el servidor delante y iniciaras en modo recuperación de Linux. Para activar el modo rescate (inglés): Tienes que ir al área de cliente dedicado y seleccione el servidor al que quieres acceder en la columna izquierda. En la pestaña «Estado del servidor», en «Información general» > «Boot», pincha en «Editar». Después «Iniciar en modo rescue» y elige la configuración rescue-pro. Una vez elegido ese modo de inicio, hay que reiniciar el servidor. Si puedes por SSH, si no desde el panel de OVH. OVH mandará un correo con el la contraseña temporal de root. Entra por SSH, usa el usuario root y la contraseña que te han mandado. Verás que puedes acceder, pero no tienes los discos montados. Tienes que montarlos. Para saber que disco tienes puedes hacer fdisk -l. Monta los discos, por ejemplo con: mount /dev/hda2 /mnt/var Después haz los cambios que necesites. Para desactivar el modo rescate entra de nuevo en el mismo menú de OVH y después en el modo de inicio escoge «Iniciar en el disco duro». Después reinicia el servidor. Este tipo de servicios de los proveedores no tienen precio 😀  

Servidores, Sistemas, Trucos

Cómo probar un servidor Postfix desde línea de comandos

Así que has montado un servidor Postfix, todo parece ir bien, no da error… ¿cómo pruebo si funciona? Os indicamos cómo. Primero obviamente ver si el servicio está levantado y funcionando. En distribuciones Debian lo podrías hacer como: sudo postfix status Si todo está bien lo siguiente es conectarse por telnet para probarlo y mandar un mensaje. Si estás en el propio servidor para conectarte por telnet es: telnet localhost 25 Después para ver si el servidor está bien para el dominio podemos poner: EHLO tunombrededominio Tendrías que ver varias líneas con 250 delante. Si es así vamos a mandar un correo con las siguientes instrucciones (pulas enter después de cada línea): MAIL FROM: loquesea@tudominio.com RCPT TO: ladireccióndedestion@dominiodestino.loquesea DATA Después de este DATA viene el cuerpo del mensaje. Escribe lo que quieras. Para acabar tienes que poner una línea con un sólo punto y enter. . Eso le dice al servidor que se ha acabado el mensaje y deberías recibir algo como  “queued ….”. Es decir el mensaje se va a enviar. Puedes salir de telnet con quit (enter). Ahora ve a tu dirección de correo destino y mira si has recibido el mensaje. Mira también la carpeta spam. Si no lo has recibido busca en el log de postfix o del servidor. Recuerda que puedes ver la puntuación de spam enviando a estos servicios.

Diseño Web, Servidores, Sistemas, Trucos

Obtener la IP original de los clientes cuando usas Cloudflare

Ya hemos hablado largo y tendido sobre Cloudflare, una capa extra de seguridad y de caché para tus páginas web. Eso si, si deseas obtener, por tema de registro o para alguna aplicación web, la IP de un cliente, verás que hay un problema. Al venir todas las peticiones de los servidores de Cloudflare, no sabes la IP real de un cliente. Aquí os comentamos cómo resolverlo. En esta página de Cloudflare viene la solución para cada servidor web o proxy. Por ejemplo en Apache debemos instalar el módulo mod_cloudflare. En Nginx podemos usar otro módulo que se llama http_real_ip. Este módulo no se carga por defecto, hay que instalarlo o compilarlo con la opción –with-http_realip_module . Si ese es tu caso estás de enhorabuena. Sólo tienes que poner en tu configuración de nginx: set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 104.16.0.0/12; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 199.27.128.0/21; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; # use any of the following two real_ip_header CF-Connecting-IP; #real_ip_header X-Forwarded-For; Después sólo tienes que probar la configuración de nginx y reiniciar si todo está bien. Deberías ver las IPs originales. Si no tienes es módulo en nginx, y no te apetece recompilar, puedes hacer un truco. En la configuración de nginx puedes poner algo como: location ~ \.php$ { fastcgi_param REMOTE_ADDR $http_x_real_ip; #…other rules } Esto usará ese parámetro de http_x_real_ip para coger la ip real que Cloudflare pone en las cabeceras. Pero sólo valdrá para aplicaciones que pasen por fastcgi. Por ejemplo el propio nginx no sabrá la ip real si no le ponemos un parámetro (ver las siguientes líneas). También puedes usar esta opción para redirigir según la IP real, por ejemplo con: if ($http_x_real_ip != xxxx.xxxx.xxxx.xxxx) {          return 403;         } Y, si no quieres ponerlo en nginx puedes buscar las cabeceras desde Php con: if (isset($_SERVER[“HTTP_CF_CONNECTING_IP”])) { $_SERVER[‘REMOTE_ADDR’] = $_SERVER[“HTTP_CF_CONNECTING_IP”]; } ¿Cómo comprobar que funciona? Además de en los logs (que puede ser un follón mirarlo), puedes poner un phpInfo en tu servidor (quítalo luego). Hay un apartado donde puedes ver el SERVER [“Remote Address”] y las cabeceras que pasa Cloudflare en SERVER [“http_x_real_ip”] y SERVER [“http_x_forwarded_for”]. Cuando funciona, el campo Remote Address debe ser una de las cabeceras de Cloudflare (http_x_real_ip o la otra según cual uses).  

Seguridad, Servidores, Sistemas, Trucos

Cómo proteger un servidor web para que sólo acedan las IPs de Cloudflare

 Ya hemos hablado de Cloudflare, el servicio web que sirve cono CDN, cahcé, firewall y mucho más. Tiene varios planes, gratis y de pago. Pero para la mayoría de las páginas web el modo gratis es suficiente. Mientras seáis conscientes de los límites de subida que establece Cloudflare. Hoy os vamos a enseñar “un truco” por el que vamos a limitar a nuestro servidor a que acepte sólo peticiones web que accedan de las IPs de Cloudflare. Esto aumentará la seguridad en nuestra web, porque eliminará cualquier petición que no proceda de Cloudflare, y las que procedan de ahí vienen filtradas por sus sistemas de seguridad. Además, también aprovechamos la caché de Cloudflare lo que hace que el rendimiento de nuestra página y la experiencia de usuario mejore. Cómo hacerlo. 1. Lo primero que debemos hacer es activar Cloudflare. Nos registramos en ese servicio, damos de alta nuestra web y nos dirá los DNS que tenemos que poner en nuestro dominio. Después tenemos que ir al proveedor de nuestro dominio y cambiar los DNS. Apunta todos los registros de DNS que tienes para copiarlos en Cloudflare. Nota: si tienes el correo con tu proveedor, puede que tengas problemas al cambiar los DNS a otro proveedor. Consulta con ellos antes. Seguramente también se puede hacer todo esto sin cambiar los DNS a Cloudflare, pero explicamos la manera más sencilla. Una vez que hayas cambiado los DNS a Cloudflare ya podemos gestionar todo desde su panel. Tenemos que activar para nuestro dominio y para www.nuestrodominio el servicio de Cloudflare. Aseguraos que en el DNS tienen la nube en naranja, no en gris. Eso significa que pasa por sus sistemas. 2. Ya tenemos el que cualquier persona de fuera que escriba nuestro dominio irá por Cloudlfare. Ahora tenemos que asegurarnos que nuestro servidor no admita peticiones de ningún otra fuente. 2.1 Por IpTables. Para eso nos vamos a nuestro servidor (suponemos que es dedicado o Cloud). Tenemos que activar en iptables el filtro para que sólo acepte las IPs de Cloudflare. Tenemos siempre un listado actualizado de las mismas aquí. Cuidado: siempre que manejes un firewall corres riesgo. Asegúrate que pruebas todo antes de activarlo y que luego tienes una manera de retroceder. Si queremos hacer esto directamente por iptables podemos hacerlo de esta manera que sugiere Cloudflare.  Sin embargo ya hemos dicho que es más fácil realizar todas estas gestiones por programas como Firehol. En Firehol abrimos el fichero firehol.conf y después de los primeros comentarios añadimos las ips de cloudflare así (una por línea). Los puntos suspensivos indican que está el resto de ips: cloudfl_ips=”103.21.244.0/22 103.22.200.0/22 ….. “ Después, en la interfaz que esté conectada al exterior ponemos: server http accept src “$cloudfl_ips” server https accept src “$cloudfl_ips” Con esto graba el fichero y asegúrate de probar la configuración antes de reiniciar el servicio. 2.2 Por configuración del servidor web (Nginx en este caso). Podemos restringir las ips de Cloudflare en el servidor web. Hoy lo mostraremos en Nginx. Para ello creamos el fichero: etc/nginx/cloudflare-allow.conf  con un contenido como este: # https://www.cloudflare.com/ips # IPv4 allow 199.27.128.0/21; allow 173.245.48.0/20; allow 103.21.244.0/22; allow 103.22.200.0/22; allow 103.31.4.0/22; allow 141.101.64.0/18; allow 108.162.192.0/18; allow 190.93.240.0/20; allow 188.114.96.0/20; allow 197.234.240.0/22; allow 198.41.128.0/17; allow 162.158.0.0/15; # IPv6 allow 2400:cb00::/32; allow 2606:4700::/32; allow 2803:f800::/32; allow 2405:b500::/32; allow 2405:8100::/32; Después, en la carpeta sites-available (o sites-enabled), editamos el fichero de configuración de tu dominio y en el apartado server ponemos: include /etc/nginx/cloudflare-allow.conf; deny all; Y reiniciamos nginx. Esto debería restringir las ips a sólo las de Cloudflare y rechazar el resto. También se puede hacer así.

Seguridad, Servidores, Sistemas

IPTables y FireHOL: configurando el firewall en un equipo Linux

El kernel de Linux incluye un firewall muy potente, Iptables. Este programa está instalado en la mayoría de las distribuciones. Con él se pueden crear reglas de filtrado de paquetes desde muy sencillas a extremadamente complejas. De esta manera, el administrador de un equipo Linux tiene una herramienta muy poderosa para aumentar la seguridad de su sistema. Explicaremos de manera rápida la lógica de Iptables, y sus comandos básicos. Aunque hay que decir que configurar Iptables a mano es una tarea complicada, no es trivial. Además, a todos nos ha pasado, equivocarte en un comando en un cortafuegos puede llevar a que no puedas conectarte tu mismo a la máquina (ten siempre una acceso de seguridad para emergencias). Así que, más adelante, hablaremos sobre un programa que nos ayudará a configurar nuestro firewall. Conceptos de Iptables. Los paquetes puedes entrar (input), salir (output) o pasar (forward) por tu sistema. Las reglas se pueden hacer teniendo en cuenta: Protocolo del paquete (-p=protocol) . Por ejemplo Tcp, udp, icmp.. Origen del paquete (-s=source). Puede ser una ip o un rango de ips. Interfaz de entrada (-i=input) o de salida (-o=output). Por ejemplo eth0, eth1,ppp0… Por el tipo de paquete (input, output o forward). Podemos decir que hag Nateo antes de enrutar (iptables -t nat -P PREROUTING ACCEPT) o después de enrutar (iptables -t nat -P POSTROUTING ACCEPT) o ambos. Para ver las reglas que tenemos configuradas o activas en una tabla podemos hacer: iptables -L O si queremos algo organizado por servicio: iptables -S Con estos comando también podemos filtrar por tipo (Input, output, TCP), por ejemplo: sudo iptables -S TCP sudo iptables -L INPUT Para borrar todos los contadores podemos usar: iptables -Z  (podemos especificar por tipo). Para borrar todas las reglas: iptables -F  (podemos especificar por tipo). Cuidado que borra todo. Pero como decimos, configurar Iptables a mano puede ser complejo. Así que existen varias soluciones para ayudarte con ello. Hay GUIs (interfaces gráficos) como Firestarter, o programas como FireHOL, del que hablamos hoy. FireHOL es un lenguaje y un programa para ejecutarlo que, aunque no tiene asistente gráfico, nos ayuda mucho a configurar los Iptables. Consta de un fichero de configuración en /etc/firehol/firehol.conf  desde el que se configura todo. La sintaxis de FireHOL es sencilla y se basa en la idea típica de los cortafuegos “deniega todo y luego acepta sólo lo que quieres dejar pasar“. El uso es sencillo, puedes poner reglas como server (entrante) o client (saliente). Y definir tus propios servicios como: server_emule_ports=”tcp/4662,64397,7037,23213,25286 udp/4672″ client_emule_ports=”default” Y luego aceptarlos en el interfaz adecuado: server emule accept client emule accept   Una vez guardado el fichero no se activan las reglas hasta que hagas: /etc/init.d/firehol restart PERO recomiendo (y esto es una GRAN ventaja) probar primero la configuración antes de grabarla con firehol try Esto activa las nuevas reglas durante 30 segundos hasta que escribas la palabra commit. Si no lo haces (porque algo haya fallado) restaura el cortafuegos anterior (permitiéndote cambiar la configuración. Puedes ver más información aquí: https://firehol.org/guides/firehol-welcome/ https://firehol.org/documentation/#firehol http://firehol.org/tutorial/  

Diseño Web, Servidores, Sistemas

MySQL Workbench, el interfaz gráfico de Mysql para diseñar, administrar y gestionar bases de datos.

Cuando quieres gestionar bases de datos en servidores, bases de datos Mysql y SQL, la herramienta más común es PhPMyAdmin, de eso no hay duda. Sin embargo, existen alternativas muy interesantes que podemos tener que considerar en ciertas ocasiones. Hoy os hablamos de una de ellas: MySQL Workbench. En nuestro caso, usamos empezamos a usar esta GUI para bases de datos, porque necesitábamos conectarnos a servidores de base de datos que estaban muy restringidos en términos de seguridad. La conexión sólo se podía hacer por clave privada por ssh, y PhpMyAdmin no permitía esto (de manera sencilla al menos). MySQL Workbench es un gran interfaz gráfico para bases de datos SQL disponible para Windows, Linux y Mac OS X. Con esta sencilla pero potente herramienta, podemos realizar modelado de datos, desarrollo SQL, administrar servidores SQL, administrar usuarios, realizar copias de seguridad, migrar, monitorizar el rendimiento y mucho más. Si eres un administrador de servidores, y llevas varios servidores de bases de datos, te recomiendo que pruebes esta herramienta, porque te va a resultar sencillo, y muy visual, gestionar esos servidores. Además una de las grandes ventajas que tiene es que, al contrario que PhpMyAdmin, lo instalas en tu equipo en tu oficina y eso se conecta directamente con los servidores de bases de datos. No tienes que instalar nada en tu servidor, no necesitas servidores web ni tienes que dejar en el servidor programas que puedan conectarse a la base de datos y puedan ser puntos débiles de seguridad.    

Diseño Web, Sistemas, Soporte

Error Revive Adserver: Cannot redeclare plugin_geotargeting_oxmaxmindgeoip_oxmaxmindgeoip_delivery_getgeoinfo()

Si tienes un servidor de anuncios Revive Adserver, un buen servidor de anuncios opensource (aunque algo simple), puede que tengas, en el log de tu servidor, el siguiente error que devuelve páginas en blanco o errores 500 aleatorios al navegar. en el adserver. Ocurre de repente, o tras una actualización: PHP Fatal error: Cannot redeclare plugin_geotargeting_oxmaxmindgeoip_oxmaxmindgeoip_delivery_getgeoinfo() in |� /html/revive/plugins/geoTargeting/oxMaxMindGeoIP/oxMaxMindGeoIP.delivery.php Evidentemente el error lo está dando el plugin de geoTargetting por un problema de una variable declarada dos veces. Os indicamos cómo lo hemos resuelto nosotros: Edita el fichero que da el error (la ruta puede cambiar según tu servidor y configuración al instalar) html/revive/plugins/geoTargeting/oxMaxMindGeoIP/oxMaxMindGeoIP.delivery.php Ve a la línea que da el error. Suele ser la 31 o la 32. Ahí está declarada la función así: function Plugin_geoTargeting_oxMaxMindGeoIP_oxMaxMindGeoIP_Delivery_getGeoInfo($useCookie = true) Cámbiala a lo siguiente: if (!function_exists(‘Plugin_geoTargeting_oxMaxMindGeoIP_oxMaxMindGeoIP_Delivery_getGeoInfo’)) { function Plugin_geoTargeting_oxMaxMindGeoIP_oxMaxMindGeoIP_Delivery_getGeoInfo($useCookie = true) {….. } } En rojo te ponemos lo que hemos añadido. Es decir añadimos un if que me ejecuta sólo la función si no está declarada la variable, y ponemos toda la función dentro de unos paréntesis de ese if. Con esto verás que ya no da esos errores. Fuente (nota está mal la solución de la fuente, hay que retocarla como hemos hecho nosotros).

Diseño Web, Sistemas, Soporte, Trucos

Error en XAMPP. “Unable to open process”. Problema con los puertos 443 u 80

Xampp es un programa que te permite crear un servidor de Apache, Mysql, y Php en tu ordenador Windows. Una gran manera de tener un servidor de pruebas en tu ordenador. De vez en cuando, al arrancar XAMPP, obtienes un error en el puerto, puede ser el 80 o el 443 del estilo: Port 443 in use. “Unable to open Process” with PID 4! Y no puedes iniciar Apache. Este error suele originar porque algún servicio de Windows tiene ocupado el puerto 80 o el 443. En nuestro caso era el 443, porque teníamos una VPN configurada en Windows y este ocupa ese puerto. La solución puede pasar por encontrar el servicio que ocupa el puerto y desinstalarlo o pararlo. Pero puedes necesitarlo, así que la otra solución es cambiar el puerto que usa Apache como servidor http (80) y el servidor https (443). En este vídeo os explicamos cómo:    

Scroll al inicio