GNU/Linux

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 😉

Cómo poner la Tierra en tiempo real en tu escritorio Gnome

2019-05-16 - Categorías: GNU/Linux
Gnome Dconf fondo de escritorio de la Tierra en tiempo real
Gnome Dconf poniendo fondo de escritorio de la Tierra en tiempo real..

Hoy traigo un pequeño howto o tutorial para hacer una personalización de tu fondo de escritorio en Ubuntu, Ubuntu Mate, Debian, o cualquier otro sistema operativo GNU/Linux derivado que venga con el escritorio Gnome. En este post se usa Dconf, que es un sistema de configuración en el modo clave/valor para las configuraciones de Gnome.

ACTUALIZACIÓN: Ha dejado de funcionar la descarga de la imagen. El resto del tutorial se puede usar con cualquier URL que genere una imagen.

Es decir, podemos modificar muchas cosas de Gnome mediante comandos con dconf. Esto es peligroso, puede dejar tu escritorio inservible. Así que si vas a juguetear con esto, mucho cuidado antes de modificar los valores.

Continuar leyendo..

Migrando de Ubuntu Server 16 a 18 con Virtualmin

2019-04-23 - Categorías: GNU/Linux
Virtualmin home
Página de inicio de Virtualmin con Webmin..

Llevo unos cuantos días sin escribir nada, pero es que intento sacar tiempo de debajo de las piedras y no hay manera. A ver si no pierdo las buenas costumbres y puedo seguir escribiendo más a menudo. El caso es que estoy revisando uno de los servidores que administro, para actualizarlo a la última versión, y optimizarlo tanto en costes como en rendimiento. Así que aquí estoy de nuevo compartiendo este sencillo HOWTO para migrar un servidor completo con Virtualmin.

Primero que todo tengo que presentar a Virtualmin para el que no lo conozca, es un panel de control del tipo Cpanel o Plesk. Funciona muy bien y tiene una versión gratuita con la que puedes tener correos electrónicos, antivirus, anti-spam, fail2ban, SSH, FTP, servidor de páginas web Apache, Mariadb, Mysql, Postgress, servidor de DNS.. etcétera.

Continuar leyendo..

Magento 2: automatizando el despliegue continuo

2019-03-31 - Categorías: GNU/Linux / Magento / PHP / Symfony
Magento 2 y el despliegue contínuo..

¡Hola de nuevo! Últimamente estoy jugueteando mucho con Magento 2, poniéndome al día con todas las nuevas mejoras que trae. Cierto es que la gente por los foros habla de muchos problemas con las versiones 2.0, 2.1, 2.2.. Pero pienso que es normal, ya que se ha hecho un remake total de todo el código fuente de Magento.

Magento es un CMS para eCommerce enorme, tiene una gran cantidad de funcionalidades ya incorporadas de casa. Por otro lado, necesitas de un servidor potente para hacerlo correr. Pero tienes un punto de partida muy muy bueno, comparado por ejemplo con Prestashop, Sylius o WordPress con Woocommerce. Quizá incluso te puedes evitar un desarrollo a medida o la instalación de muchos módulos con sus correspondientes personalizaciones si es que Magento 2 ya dispone de las funcionalidades que necesitas.

Continuar leyendo..

GNU/Linux: terabytes de nube privada con la Raspberry Pi y Syncthing

2019-03-15 - Categorías: General / GNU/Linux
Syncthing y la Raspberry Pi

He seguido jugando para ver hasta donde puede llegar este pequeño ordenador de poco más de 30€, la Raspberry Pi. Una joya de la informática, que junto a Syncthing, otra joya de la informática, hacen una combinación explosiva. Así que aquí estoy escribiendo éste HOWTO sobre servidores para montar una nube de terabytes de almacenamiento sincronizado y privado en tu propia casa, local o en varios lugares remotos.

Sólo por el coste de tus PCs, sin pagar nada a una empresa, sin que tus datos estén copiados en ordenadores que no son tuyos, y sin que tus datos estén copiados en el extranjero. Es decir, tus datos ya no tendrán que estar almacenados en ningún servidor externo en ninguna empresa. Todo sincronizado entre tus móviles, ordenadores y la Raspberry Pi. Además, podrás disfrutar de tantos terabytes como quieras sin coste mensual, sólo necesitas tener los discos externos que quieras y la Raspberry Pi encendida.

Continuar leyendo..

GNU/Linux: montando un centro multimedia de salón con la Raspberry Pi

2019-02-24 - Categorías: General / GNU/Linux
Raspberry Pi 3 Model B+

Ya tengo mi nueva y flamante Raspberry Pi 3 B+. Llevo un par de meses probándola a ver cómo funciona, hasta donde puede llegar, funcionalidades, etc.. Estoy como niño con juguete nuevo, es brillante, una joya de la informática. Una maravilla para empezar a hacer mis primeros pinitos en el IoT o creando cualquier dispositivo que necesite de un ordenador embebido de bajo coste.

La Raspberry Pi 3 B+ tiene un procesador ARM de 4 núcleos de 64 bits a 1,4 GHzs y 1 GB RAM que apenas consume. Funciona con un cargador de móvil y cabe en la palma de una mano, con lo que se puede instalar en cualquier sitio y apenas se nota el consumo eléctrico. Arranca muy rápido en apenas 10-20 segundos veo el escritorio, corre vídeos, fotos, navegador, juegos ligeros, y programas ofimáticos del tipo de LibreOffice que vienen ya preinstalados. En fin, una maravilla..

Continuar leyendo..

Cómo automatizar el despliegue de una aplicación web en Symfony 4

2018-11-25 - Categorías: Amazon Web Services / GNU/Linux / PHP / Symfony
Launch lanzamiento

¡Hola de nuevo! Llevo unos días muy ajetreado y no he tenido tiempo de escribir nada en el blog, así que aquí estoy compartiendo de nuevo un pequeño HOWTO que me está ayudando mucho en el día a día. Se trata de un pequeño script en Shell Script que automatiza el despliegue en servidor de una aplicación web hecha con Symfony 4.

En Symfony 4 ha cambiado toda la estructura de directorios, así que para tenerlo todo bien controlado y evitar fallos intermitentes, esta es una de la cosas a automatizar. No es plan que cada vez que queramos hacer un despliegue en producción o en el área de pruebas tengamos que entrar al servidor, descargar la última versión, refrescar archivos temporales, etc..

Continuar leyendo..

Cómo dar permisos de acceso a un directorio web en GNU/Linux

2018-11-06 - Categorías: General / GNU/Linux
Permisos de acceso a ficherosd

Ahora vengo a compartir un pequeño, pero muy pequeño HOWTO. Se trata de un par de acciones para configurar los permisos de archivos y directorios en un servidor web Linux, y unas pocas explicaciones para saber el porqué hay que dar estos permisos..

La mayoría de los servidores web de Internet corren sobre sistemas operativos Linux. En estos sistemas operativos se establecen usuarios y los recursos del sistema operativos tienen unos permisos de acceso. De esta forma hay propietarios de los directorios y de los ficheros, con lo que los servidores web tienen que tener permiso para poder acceder a dichos ficheros. De lo contrario no podrán servir las páginas web.

Continuar leyendo..

Magento 1: los índices, qué son y cómo reindexar

2018-10-10 - Categorías: GNU/Linux / Magento / PHP
Magento funcionamiento interno

Magento es un gran CMS para montar tiendas online. Está muy desarrollado teniendo en cuenta el SEO, el marketing, para tener muchos dominios con la misma web, muchas configuraciones de impuestos, de precios distintintos por web, distintas plantillas para cada sitio web.. todo desde un mismo panel de control.

Es tan flexible desde el mismo panel de control, que ha llegado a extremos de tal forma de que necesita todo tipo de cacheados, tablas temporales donde guardar indexada la información, así como también Varnish y Redis. Todo esto junto es una combinación explosiva y todo un reto hacerlo funcionar todo. Así que en este post vengo a hacer una review del funcionamiento de estos índices de datos.

Continuar leyendo..

PHP: usando CURL para visitar servidores web

2018-05-23 - Categorías: General / GNU/Linux / PHP
Websites

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 de métodos de pago, envío/lectura de feeds, las APIs de los CMSs, por ejemplo. Las acciones que se ejecutan mediante la comunicación con APIs sobre HTTP/HTTPS. Y claro, cómo no, para las archiconocidas y tan queridas API REST sobre HTTP. Todas estas acciones tienen un origen (cliente) y un destino (servidor).

Así pues, vamos a complicar el ejemplo anterior..

Instalando CURL

Vamos a usar en este caso CURL, que es una herramienta del sistema operativo que podemos usar desde PHP. Si estás en GNU/Linux, puedes instalar tanto CURL como el módulo de PHP que lo usa así:

sudo apt-get install curl php7.2-curl

Si estás en Windows, Mac, o cualquier otro sistema operativo tendrás que ir a:

https://curl.haxx.se/download.html

..y seguir las instrucciones.

Primera petición web

Así un ping sencillo queda de la siguiente forma:

<?php

$curlHandler = curl_init('jnjsite.com');
curl_exec($curlHandler);

Si ejecutamos esto desde línea de comandos veremos algo tal que así:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://jnjsite.com/">here</a>.</p>
</body></html>

El contenido de la web se está pintando por pantalla: jnjsite.com te invita a redirigirte a https://jnjsite.com que es la versión segura de la web.

Viendo información de la respuesta

Para esto podemos modificar el script anterior y sacamos mucha información de la respuesta:

<?php

$curlHandler = curl_init('jnjsite.com');
$response = curl_exec($curlHandler);

var_dump(curl_getinfo($curlHandler));

curl_close($curlHandler);

Ejecutando esto desde línea de comandos veremos por pantalla mucha más información. En concreto el siguiente array:

array(26) {
‘url’ =>
string(19) “https://jnjsite.com/”
‘content_type’ =>
string(29) “text/html; charset=iso-8859-1”
‘http_code’ =>
int(301)
‘header_size’ =>
int(254)
‘request_size’ =>
int(50)
‘filetime’ =>
int(-1)
‘ssl_verify_result’ =>
int(0)
‘redirect_count’ =>
int(0)
‘total_time’ =>
double(0.131197)
‘namelookup_time’ =>
double(0.004185)
‘connect_time’ =>
double(0.067574)
‘pretransfer_time’ =>
double(0.067664)
‘size_upload’ =>
double(0)
‘size_download’ =>
double(228)
‘speed_download’ =>
double(1740)
‘speed_upload’ =>
double(0)
‘download_content_length’ =>
double(228)
‘upload_content_length’ =>
double(-1)
‘starttransfer_time’ =>
double(0.131118)
‘redirect_time’ =>
double(0)
‘redirect_url’ =>
string(20) “https://jnjsite.com/”
‘primary_ip’ =>
string(12) “52.31.12.158”
‘crtinfo’ =>
array(0) {}
‘primary_port’ =>
int(80)
‘local_ip’ =>
string(13) “192.168.0.221”
‘local_port’ =>
int(48976)
}

En este caso nos está pidiendo hacer una redirección 301 a la web con HTTPS. En teoría deberíamos de seguir esta redirección. Así que..

Siguiendo redirecciones

Modificando el script anterior, tenemos haciendo las redirecciones lo siguiente:

<?php

$curlHandler = curl_init('jnjsite.com');
$response = curl_exec($curlHandler);

while(curl_getinfo($curlHandler)['http_code'] >= 300
and curl_getinfo($curlHandler)['http_code'] < 400){
    // new URL to be redirected
    curl_setopt($curlHandler, CURLOPT_URL, curl_getinfo($curlHandler)['redirect_url']);
    $response = curl_exec($curlHandler);
}
var_dump(curl_getinfo($curlHandler));

curl_close($curlHandler);

Ejecutamos, y revisando por pantalla el resultado tendremos que finalmente se paran las redirecciones en https://jnjsite.com/ con un código de respuesta 200. He marcado en negrita lo nuevo con respecto al script anterior para redirigir hasta la página de destino.

Terminando

Para dejarlo limpio el script, sólo quedaría comprobar finalmente si la página ha dado un código OK de respuesta. Marco en negrita lo nuevo:

<?php

$curlHandler = curl_init('jnjsite.com');
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
curl_exec($curlHandler);

while (curl_getinfo($curlHandler)['http_code'] >= 300
and curl_getinfo($curlHandler)['http_code'] < 400) {
    // new URL to be redirected
    curl_setopt($curlHandler, CURLOPT_URL, curl_getinfo($curlHandler)['redirect_url']);
    curl_exec($curlHandler);
}

if (curl_getinfo($curlHandler)['http_code'] >= 200
and curl_getinfo($curlHandler)['http_code'] < 300) {
    echo 'OK'.PHP_EOL;
} else {
    echo 'KO'.PHP_EOL;
}

curl_close($curlHandler);

A partir de aquí sólo queda hacer las acciones que consideres si tienes un OK o un KO.


PHP: cómo hacer un web ping

2018-05-18 - Categorías: General / GNU/Linux / PHP
Websites

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.

Las páginas web son como los coches, necesitan un mantenimiento, unas revisiones. Sino, tarde o temprano, dejarán de funcionar. Así que si quieres curarte en salud, puedes tener un sencillo script que compruebe si sigue online una web.

Continuar leyendo..

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.


GNU/Linux: bloqueando visitas por IPs

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

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í que los simples mortales como yo, que no somos expertos en ciberseguridad, debemos dejar trabajar a los que saben aplicando todas las actualizaciones lo antes posible, y sólo abriendo los puertos de escucha de los servicios estrictamente necesarios.

Cómo bloquear a estos visitantes

Ahora es cuando llegamos a Iptables. Iptables es un cortafuegos integrado en el núcleo de Linux. Es bastante engorroso de configurar así que han desarrollado utilizades que automatizan su configuración. Una utilidad muy interesante en GNU/Linux para manejar este cortafuegos es el UFW, que son las siglas de Uncomplicated FireWall.

Es bien sencillo de usar, por ejemplo para bloquear todas las conexiones que vengan de una IP basta con hacer lo siguiente:

$ sudo ufw deny from IP

También tenemos incluso una interfaz gráfica del UFW, es el llamado GUFW, que se ve tal que así si tienes escritorio gráfico en el servidor:

GUFW

Ahora bien, veamos los primeros pasos con este UFW desde línea de comandos. Ya que suponemos que estamos configurando un Servidor Ubuntu o basado en la distribución Debian.

Instalación

En Ubuntu 16 viene instalado por defecto. Si por lo que sea no lo tienes puedes hacer lo siguiente:

$ sudo apt-get install ufw

Para ver el estado en el que está podemos hacer:

$ sudo ufw status
Estado: inactivo

Perfecto, ya lo tenemos instalado, listo para activarlo.

Las configuraciones por defecto

Para hacer las primeras configuraciones tenemos el fichero /etc/default/ufw en donde tenemos estas dos configuraciones principales:

DEFAULT_INPUT_POLICY="DROP"
DEFAULT_OUTPUT_POLICY="ACCEPT"

Cuidado con esto, porque de estar configurando remotamente el cortafuegos, y no darte acceso a ti mismo, te puedes autodenegar el acceso y ya la hemos liado parda. El DEFAULT_INPUT_POLICY es la configuración de denegar por defecto las conexiones entrantes. Así que, podemos aceptar por defecto las configuraciones entrantes antes de activarlo si son las primeras pruebas que estamos haciendo.

Así que ponemos DEFAULT_INPUT_POLICY=”ACCEPT”, o añadimos el permitir la entrada al puerto 22 para poder seguir trabajando remotamente. Si estas ya conectado a un servidor remoto, y quieres configurar esto, mejor dale una leída rápida a todo el post, para luego ir al grano de lo que necesites.

Algunas configuraciones

Así que vamos a arrancarlo:

$ sudo ufw enable
El cortafuegos está activo y habilitado en el arranque del sistema

Ahora vemos el estado de nuevo así:

$ sudo ufw status
Estado: activo

Ya lo tenemos en marcha. Vamos ahora con las configuraciones. Vamos a denegar el acceso a una IP:

$ sudo ufw deny from 1.2.3.4

Ahora vamos a aceptar todas las conexiones entrantes en los puertos 22, 80 y 443:

$ sudo ufw allow 22
$ sudo ufw allow 80
$ sudo ufw allow 443

Ok, ¿sencillo verdad? la verdad es que es mucho más sencillo que usar las tradicionales Iptables. Así que ahora listamos todo lo configurado:

$ sudo ufw status
Estado: activo

Hasta Acción Desde
----- ------ -----
Anywhere DENY 1.2.3.4
22 ALLOW Anywhere 
80 ALLOW Anywhere 
443 ALLOW Anywhere 
22 (v6) ALLOW Anywhere (v6) 
80 (v6) ALLOW Anywhere (v6) 
443 (v6) ALLOW Anywhere (v6)

Imagina que ahora queremos borrar una regla. Lo más sencillo es listar numeradas las reglas y borramos:

$ sudo ufw status numbered
Estado: activo

Hasta Acción Desde
 ----- ------ -----
[ 1] Anywhere DENY 1.2.3.4
[ 2] 22 ALLOW IN Anywhere 
[ 3] 80 ALLOW IN Anywhere 
[ 4] 443 ALLOW IN Anywhere 
[ 5] 22 (v6) ALLOW IN Anywhere (v6) 
[ 6] 80 (v6) ALLOW IN Anywhere (v6) 
[ 7] 443 (v6) ALLOW IN Anywhere (v6)

Ahora borramos la regla que permite conexiones entrantes al puerto 80 en el IPv4 así:

$ sudo ufw delete 3

Volvemos a listar para asegurarnos:

$ sudo ufw status numbered
Estado: activo

Hasta Acción Desde
 ----- ------ -----
[ 1] Anywhere DENY IN 1.2.3.4 
[ 2] 22 ALLOW IN Anywhere 
[ 3] 443 ALLOW IN Anywhere 
[ 4] 22 (v6) ALLOW IN Anywhere (v6) 
[ 5] 80 (v6) ALLOW IN Anywhere (v6) 
[ 6] 443 (v6) ALLOW IN Anywhere (v6)

Borramos ahora las conexiones al puerto 80 en IPv6:

$ sudo ufw delete 5

Cómo hubiera sido con Iptables

Sólo como curiosidad, si quieres ver la configuración tradicional mediante Iptables, ejecuta lo siguiente para ver la tonelada de configuraciones que te has ahorrado mantener:

$ sudo iptables --list

Terminando

Espero que sirva como introducción, ya que el siguiente paso es bloquear las visitas por país. Si la has liado con alguna de las configuraciones, o simplemente quieres resetear todo, ejecutas esto y todo limpio:

$ sudo ufw reset

© 2021 JnjSite.com - MIT license

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