GNU/Linux

30 entradas

El dúo GNU/Linux son el conjunto de herramientas que conforman (según yo considero) el mejor sistema operativo, herramientas de escritorio y lo que no es escritorio.

GNU arrancó como una forma de organización del software libre para crear un sistema operativo completo y un conjunto de herramientas de libre distribución para todo el mundo. Hurd es el origen como núcleo del sistema operativo planteado por Richard Stallman, aunque luego no se culminó. Esta construcción del núcleo del sistema operativo parece que pasó a un segundo plano tras la aparición en escena de Linux. Tanto Hurd como Linux, igualmente Mac, son sistemas operativos basados en el sistema UNIX que tanto éxito ha tenido

Linux es el núcleo de los sistemas operativos GNU/Linux. Surgió y se apoyó en el ecosistema GNU para formar una solución completa. Hoy en día forma el núcleo de los mayores y mejores sistemas informáticos del mundo. Todo un referente convertido en un MUST KNOW de todo informático.

Instálatelo en tu estación de trabajo y comprenderás el porqué de su trayecto 😉

Websites

PHP: usando CURL para visitar servidores web

Continuando con el post anterior, traigo otro code-kata, o HOWTO, para hacer ping a una web, para empezar. Digo para empezar, porque esto no es más que el comienzo de una serie de acciones muy potentes sobre servidores web. Así podemos interactuar con un sitio web automática y remotamente. Este es uno de los mecanismos básicos de comunicación entre sistemas informáticos. Es decir, esto se puede reutilizar para que una web se comunique con otra web, con otro sistema informático, leyendo información o enviándola. Para esto vamos a usar el gran CURL, que va muy bien para trabajar con el protocolo de las webs. Aunque como reza en su web, es compatible con muchos otros protocolos: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more.. Esta forma de hacer un simple ping web se puede escalar todo lo que quieras. Es decir, de esta forma es como trabajan internamente los módulos […]

Websites

PHP: cómo hacer un web ping

Una tarea bastante importante a la hora de posicionar una página web es asegurarte de que sigues online. Si has contratado el alojamiento a una empresa no tendrás que preocuparte mucho por el estado del sistema operativo del servidor. Pero hay otros aspectos aparte del servidor que necesitan de tu atención. Puedes pensar que una página web basta con montarla con un buen CMS, que puedes dejarla online y ahí seguirá porque no hay razón para que deje de funcionar. Pues nada más lejos de la realidad, cuantas más cosas tenga tu web, más cosas pueden fallar. Es decir, si tienes una página artesanal de un único fichero estático es difícil que deje de funcionar. Pero si tienes un CMS, quizá un WordPress, Prestashop, Drupal o Magento.. ya empiezas a tener más elementos que mantener. Los módulos pueden ser inestables, pueden engancharse las arañas de los buscadores, usuarios que llegan a bugs involuntariamente, etcétera.. No digamos ya si tienes muchas visitas que generan contenido dinámicamente.

Internet Firewall

GNU/Linux: bloqueando visitas por país

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 […]

Internet Firewall

GNU/Linux: bloqueando visitas por IPs

Cuando tenemos un servidor visible desde Internet, desde cualquier lugar del mundo, recibimos visitas constantemente. Esperamos que estas visitas siempre sean las deseadas, pero quizá no lo son. No sólo hay personas y ordenadores con buenas intenciones conectados a Internet. También puede incluso haber sistemas informáticos mal configurados, que involuntariamente, ocasionen problemas a tus sistemas informáticos. Por ejemplo, nos podemos encontrar con casos como estos: Una araña de un buscador, que escanea los contenidos de tu web con muy buenas intenciones, pero se engancha y no deja de escanearte llegando a bloquearte. Registro de usuarios ficticios, a modo de SPAM. Comentarios de SPAM con contenidos que enlazan a otras webs. Una web que se copia tus contenidos tratando de posicionarse en buscadores antes que tú. Y un largo etcétera. Debemos de tener siempre nuestros servidores lo más actualizados posibles. Y sólo permitir la escucha en los puertos totalmente necesarios. Además de que sólo debemos de abrir los puertos para las IPs, o países que sean extrictamente necesarios. Los escaneos automáticos en busca de vulnerabilidades en nuestros servidores va a ser constante, dalo por hecho. Si no lo haces, te arrepentirás más pronto que tarde, cuando la catástrofe haya acontecido. Así […]

Historial

GNU/Linux: automatizar backups de Mariadb/Mysql

El software de gestión de servidores te puede automatizar esta y otras tareas. Pero si estas haciendo artesanalmente un servidor, para no gastar ni un bit innecesariamente en correr software de gestión de servidores, tendrás que automatizar esta tarea: el hacer copias de seguridad de la base de datos. Sí, más vale prevenir que curar. Da por hecho que tarde o temprano los sistemas se rompen, así que más te vale haberte prevenido y tener una copia de seguridad por si acaso. Como me ha llevado un rato buscar entre los foros para construir esto, aquí que lo dejo por si a algún ubuntero le sirve. Creando el script Le idea es crear un sencillo Shell Script que automatice la copia de seguridad. Así que creo el fichero /home/ubuntu/backup.db.sh siguiente: #!/bin/bash mysqldump -h localhost -u usuario -pcontraseña nombre_base_de_datos | gzip > ~/backups/backup.db.$(date +%Y%m%d).sql.gz find /home/ubuntu/backups/ -type f -mtime +30 -name ‘backup.db.*.gz’ -execdir rm {} \; Este script hace 2 cosas. La primera es sacar una copia de la BD y la comprime a un fichero .gz. Lo segundo es que revisa si hay ficheros .gz de más de 30 días en el directorio de copias de seguridad, borrándolos. Creando carpeta […]

La Tierra

PHP: cómo geolocalizar visitantes, IPs o nombres de dominio

No quiero perder las buenas costumbres, y esto de escribir en mi blog es una de ellas. Así que aquí estoy de nuevo con otro pequeño HOWTO para geolocalizar ordenadores por IP o servidores por nombre de dominio. Es realmente sencillo, un juego de niños, pero por si lo necesitas en algún proyecto aquí que lo dejo. A continuación tienes cómo instalar en PHP5.6 las librerías en un sistema operativo Linux. Luego para PHP7 y enlaces a información sobre bases de datos relacionadas. Para geolocalizar dispositivos en Internet basta con utilizar uno de estos servicios. Quizá lo que necesitas es dar una traducción de tu sitio según la localización del visitante, mostrar mensajes por país, o desplegar países, regiones y localidades. También puedes usar las coordenadas de este servicio, pero no es muy fiable localizar con este sistema a tan bajo nivel pero por tener tendrás con esto unos datos orientativos para tu web. Abajo del post tienes enlaces a Bases de Datos con países del mundo, regiones y localidades actualizadas. Lo mejor de todo, la versión simple es gratis para que puedas usarlo en tu proyecto. Sólo con nombrar en tu proyecto a la empresa autora. También hay empresas […]

Vista de GoAccess

Estudiando logs de CloudFront con 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..

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

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..

WP actualizando a PHP7

Pon tu WordPress a un 600% de velocidad con PHP7

Siempre andamos hablando con los compañeros de trabajo que si es mejor que la web vaya rápido. Que si no hay que instalar muchos plugins en WordPress. Que no hay que meter demasiadas florituras en la web. Que lo más importante es el contenido. Y un largo etcétera.. Llegados a este punto, llegó el momento de actualizarnos en PHP. Tenía en el servidor PHP5 y ya conocía las bondades de PHP7. Pero también sé de los problemas que hay en los CMSs para ser compatibles con PHP7. Así que prueba tras prueba, he hecho una limpieza total de esta web y aquí traigo los resultados. Y aprovechando tantos cambios, también un cambio de diseño 🙂

Redirecciones HTTP

Cómo hacer un sencillo fichero de redirecciones con .htaccess

Una de las tareas habituales en las webs es hacer redirecciones. Las principales redirecciones que podemos necesitar son las temporales o las permanentes. Los principales códigos de respuesta de redirección van desde el 300 al 308, pero los más habituales son los 301 y el 302. Así de esta forma, si queremos hacer una redirección temporal se recomienda usar una redirección de tipo 302. En el caso de que ya sea una redirección definitiva conviene hacer una redirección definitiva de tipo 301. Los código 308 y 307 se corresponden respectivamente a los 301 y 302 pero con distintos matices. Estas redirecciones podemos almacenarlas sin más complicaciones en el fichero .htaccess en el directorio raiz.

apisonadora

Cómo comprimir masivamente ficheros JPEG desde GNU/Linux

Hoy traigo de nuevo otro pequeño HOWTO. Esta vez se trata de una pequeña gran utilidad que viene en los repositorios de las distribuciones de Linux. Hablo de Jpegoptim, es una utilidad con la que puedes comprimir ficheros en el formato JPEG desde línea de comandos. Seguro que habrá muchas herramientas que se hagan valer de esto, proporcionando una interfaz gráfica para lanzar el programa. Pero la línea de comandos es algo muy pontente. Sobretodo para entornos de servidor en donde no tienes entorno gráfico para administrar. O para programar tareas lanzando este comando. Un poco de teoría JPEG es un formato de compresión de imágenes con pérdida de calidad. ¿Esto qué quiere decir? Pues simplemente eso, que las imágenes se pueden comprimir permitiendo pérdida de la calidad en favor del tamaño final que queramos alcanzar. Esto no se puede hacer con todos los formatos de imagen. Esta pérdida de calidad nos permitirá ajustarla a lo que necesitemos sacrificando todo lo que queramos hasta llegar a un tamaño adecuado. Cosa bastante necesaria cuando estamos trabajando en optimizar una web; ya que este es uno de los factores de puntuación de la calidad. Otro punto a tener en cuenta para las […]

Analizador de uso de disco de Ubuntu MATE

GNU/Linux: inspeccionar uso del disco gráficamente con Ubuntu MATE

Siguiendo con el post anterior para ver en qué gastamos el espacio del disco duro. Hoy me he encontrado con una utilidad gráfica que nos sirve para lo mismo, pero más fácil porque sólo con el ratón podemos inspeccionar el estado del disco duro. Esta aplicación nos va a servir para nuestro ordenador personal o de trabajo si tenemos Ubuntu MATE, pero sólo nos servirá para un servidor si es que lo tenemos instalado con el entorno gráfico.