Com configurar el tallafoc UFW a Ubuntu i Debian


Un tallafoc que funcioni correctament és la part més crucial de la seguretat completa del sistema Linux. De manera predeterminada, la distribució Debian i Ubuntu inclou una eina de configuració de tallafocs anomenada UFW (Talafocs sense complicacions), és una eina de línia d'ordres més popular i fàcil d'utilitzar per configurar i gestionar un tallafoc a les distribucions d'Ubuntu i Debian.

En aquest article, explicarem com instal·lar i configurar un tallafoc UFW a les distribucions Ubuntu i Debian.

Abans de començar amb aquest article, assegureu-vos que heu iniciat sessió al vostre servidor Ubuntu o Debian amb l'usuari sudo o amb el compte root. Si no teniu cap usuari sudo, podeu crear-ne un utilitzant les instruccions següents com a usuari root.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

Instal·leu UFW Firewall a Ubuntu i Debian

L'UFW (Tallafocs sense complicacions) s'hauria d'instal·lar de manera predeterminada a Ubuntu i Debian, si no, instal·leu-lo mitjançant el gestor de paquets APT mitjançant l'ordre següent.

$ sudo apt install ufw

Un cop finalitzada la instal·lació, podeu comprovar l'estat d'UFW escrivint.

$ sudo ufw status verbose

A la primera instal·lació, el tallafoc UFW està desactivat per defecte, la sortida serà semblant a la següent.

Status: inactive

Podeu activar o habilitar el tallafoc UFW mitjançant l'ordre següent, que hauria de carregar el tallafoc i permetre que s'iniciï a l'arrencada.

$ sudo ufw enable

Per desactivar el tallafoc UFW, utilitzeu l'ordre següent, que descarrega el tallafoc i desactiva que s'iniciï a l'arrencada.

$ sudo ufw disable 

De manera predeterminada, el tallafoc UFW nega totes les connexions entrants i només permet totes les connexions sortints al servidor. Això vol dir que ningú pot accedir al vostre servidor, tret que obriu el port específicament, mentre que tots els serveis o aplicacions en execució al vostre servidor poden accedir a la xarxa exterior.

Les polítiques del tallafoc UFW per defecte es col·loquen al fitxer /etc/default/ufw i es poden alterar mitjançant l'ordre següent.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Quan instal·leu un paquet de programari amb el gestor de paquets APT, inclourà un perfil d'aplicació al directori /etc/ufw/applications.d que defineix el servei i conté la configuració de l'UFW.

Podeu llistar tots els perfils d'aplicació disponibles al vostre servidor mitjançant l'ordre següent.

$ sudo ufw app list

Depenent de les instal·lacions del paquet de programari al vostre sistema, la sortida serà similar a la següent:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

Si voleu obtenir més informació sobre un perfil concret i les regles definides, podeu utilitzar l'ordre següent.

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

Si el vostre servidor està configurat amb IPv6, assegureu-vos que el vostre UFW estigui configurat amb suport IPv6 i IPv4. Per verificar-ho, obriu el fitxer de configuració UFW amb el vostre editor preferit.

$ sudo vi /etc/default/ufw

A continuació, assegureu-vos que “IPV6” estigui configurat com a \yes\ al fitxer de configuració, tal com es mostra.

IPV6=yes

Desa i surt. A continuació, reinicieu el vostre tallafoc amb les ordres següents:

$ sudo ufw disable
$ sudo ufw enable

Si ja heu habilitat el tallafoc UFW, bloquejaria totes les connexions entrants i si esteu connectat al vostre servidor mitjançant SSH des d'una ubicació remota, ja no podreu tornar-lo a connectar.

Activem les connexions SSH al nostre servidor per evitar que això passi amb l'ordre següent:

$ sudo ufw allow ssh

Si utilitzeu un port SSH personalitzat (per exemple, el port 2222), heu d'obrir aquest port al tallafoc UFW mitjançant l'ordre següent.

$ sudo ufw allow 2222/tcp

Per bloquejar totes les connexions SSH, escriviu l'ordre següent.

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

També podeu obrir un port específic al tallafoc per permetre connexions a través d'aquest a un servei determinat. Per exemple, si voleu configurar un servidor web que escolti al port 80 (HTTP) i 443 (HTTPS) per defecte.

A continuació es mostren alguns exemples de com permetre connexions entrants als serveis Apache.

$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

Suposant que teniu algunes aplicacions que voleu executar en un rang de ports (5000-5003), podeu afegir tots aquests ports mitjançant les ordres següents.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

Si voleu permetre connexions a tots els ports des de l'adreça IP específica 192.168.56.1, haureu d'especificar abans de l'adreça IP.

$ sudo ufw allow from 192.168.56.1

Per permetre la connexió a un port específic (per exemple, el port 22) des de la vostra màquina domèstica amb l'adreça IP 192.168.56.1, heu d'afegir qualsevol port i el número de port després de l'adreça IP tal com es mostra.

$ sudo ufw allow from 192.168.56.1 to any port 22

Per permetre connexions per a adreces IP concretes que van des de 192.168.1.1 a 192.168.1.254 fins al port 22 (SSH), executeu l'ordre següent.

$ sudo ufw allow from 192.168.1.0/24 to any port 22

Per permetre connexions a una interfície de xarxa específica eth2 per a un port 22 (SSH) concret, executeu l'ordre següent.

$ sudo ufw allow in on eth2 to any port 22

De manera predeterminada, totes les connexions entrants estan bloquejades, tret que hàgiu obert específicament la connexió a UFW. Per exemple, heu obert els ports 80 i 443 i el vostre servidor web està sota atac de la xarxa desconeguda 11.12.13.0/24.

Per bloquejar totes les connexions d'aquest rang de xarxa particular 11.12.13.0/24, podeu utilitzar l'ordre següent.

$ sudo ufw deny from 11.12.13.0/24

Si només voleu bloquejar connexions als ports 80 i 443, podeu utilitzar les ordres següents.

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

Hi ha 2 maneres d'eliminar les regles UFW, per número de regla i per regla real.

Per suprimir unes regles UFW utilitzant el número de regla, primer heu d'enumerar les regles per números amb l'ordre següent.

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

Per suprimir la regla número 1, utilitzeu l'ordre següent.

$ sudo ufw delete 1

El segon mètode és suprimir una regla utilitzant la regla real, per exemple, per eliminar una regla, especifiqueu el número de port amb el protocol com es mostra.

$ sudo ufw delete allow 22/tcp

Podeu executar qualsevol ordre ufw sense fer cap canvi al tallafoc del sistema utilitzant el senyalador --dry-run, això simplement mostra els canvis que se suposa que s'han de produir.

$ sudo ufw --dry-run enable

Per una raó o una altra, si voleu suprimir/restablir totes les regles del tallafoc, escriviu les ordres següents, revertirà tots els vostres canvis i començarà de nou.

$ sudo ufw reset
$ sudo ufw status

El tallafoc UFW pot fer qualsevol cosa que fa iptables. Això es pot fer amb diferents conjunts de fitxers de regles, que no són res més que fitxers de text simples de restauració d'iptables.

L'ajust del tallafoc UFW o l'addició d'ordres iptables addicionals no es permet mitjançant l'ordre ufw, només és qüestió d'alterar els fitxers de text següents

  • /etc/default/ufw: el fitxer de configuració principal amb regles predefinides.
  • /etc/ufw/before[6].rules: en aquest fitxer les regles es calculen abans d'afegir-les mitjançant l'ordre ufw.
  • /etc/ufw/after[6].rules: en aquest fitxer les regles es calculen després d'afegir-les mitjançant l'ordre ufw.
  • /etc/ufw/sysctl.conf: aquest fitxer s'utilitza per ajustar la xarxa del nucli.
  • /etc/ufw/ufw.conf: aquest fitxer activa l'ufw a l'arrencada.

Això és! UFW és un excel·lent front-end per a iptables amb una interfície fàcil d'utilitzar per definir regles complexes amb una única comanda ufw.

Si teniu cap pregunta o pensament per compartir sobre aquest article de l'UFW, utilitzeu el formulari de comentaris que trobareu a continuació per contactar amb nosaltres.