Com instal·lar i configurar UFW: un tallafocs sense complicacions a Debian/Ubuntu


Com que els ordinadors estan connectats entre ells, els serveis creixen ràpidament. El correu electrònic, les xarxes socials, la botiga en línia, el xat fins a les conferències web són serveis que utilitza l'usuari. Però d'altra banda, aquesta connectivitat només li agrada un ganivet de doble cara. També és possible enviar missatges dolents a aquells ordinadors, com ara virus, programari maliciós, aplicacions de Troia són un d'ells.

Internet, com a xarxa informàtica més gran, no sempre s'omple de bona gent. Per assegurar-nos que els nostres ordinadors/servidors estan segurs, hem de protegir-lo.

Un dels components imprescindibles al vostre ordinador/servidors és el tallafoc. A la Viquipèdia, una definició és:

En informàtica, un tallafoc és un sistema de seguretat de xarxa basat en programari o maquinari que controla el trànsit de xarxa entrant i sortint analitzant els paquets de dades i determinant si s'han de permetre o no, en funció del conjunt de regles aplicades.

Iptables és un dels tallafocs més utilitzat pels servidors. És un programa utilitzat per gestionar el trànsit entrant i sortint al servidor basant-se en un conjunt de regles. En general, només es permet l'entrada al servidor de connexió de confiança. Però IPTables s'executa en mode de consola i és complicat. Aquells que estiguin familiaritzats amb les regles i les ordres d'iptables, poden llegir l'article següent que descriu com utilitzar el tallafocs d'iptables.

  1. Guia bàsica d'IPTables (tallafoc de Linux)

Instal·lació del tallafoc UFW a Debian/Ubuntu

Per reduir la complexitat de la configuració d'IPTables, hi ha molts fronts. Si feu servir Ubuntu Linux, trobareu ufw com a eina de tallafocs predeterminada. Comencem a explorar el tallafoc ufw.

L'ufw (Talafocs sense complicacions) és una interfície per al tallafocs d'iptables més utilitzat i és molt còmode per als tallafocs basats en host. ufw ofereix un marc per gestionar netfilter, a més d'una interfície de línia d'ordres per controlar el tallafoc. Proporciona una interfície fàcil d'utilitzar i fàcil d'utilitzar per als principiants de Linux que no estan molt familiaritzats amb els conceptes del tallafoc.

Mentre que, d'altra banda, les mateixes ordres complicades ajuden els administradors a establir regles complicades mitjançant la interfície de línia d'ordres. L'ufw és un corrent amunt per a altres distribucions com Debian, Ubuntu i Linux Mint.

Primer, comproveu si ufw està instal·lat mitjançant la següent comanda.

$ sudo dpkg --get-selections | grep ufw

ufw 		install

Si no està instal·lat, podeu instal·lar-lo mitjançant l'ordre apt tal com es mostra a continuació.

$ sudo apt-get install ufw

Abans d'utilitzar, hauríeu de comprovar si ufw s'està executant o no. Utilitzeu l'ordre següent per comprovar-ho.

$ sudo ufw status

Si heu trobat Estat: inactiu, vol dir que no està actiu o desactivat.

Per habilitar-lo, només cal que escriviu la següent comanda al terminal.

$ sudo ufw enable

Firewall is active and enabled on system startup

Per desactivar-lo, només cal escriure.

$ sudo ufw disable

Un cop activat el tallafoc, podeu afegir-hi les vostres regles. Si voleu veure quines són les regles predeterminades, podeu escriure.

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

Com veieu, per defecte es denega totes les connexions entrants. Si voleu controlar la vostra màquina a distància, heu de permetre el port adequat. Per exemple, voleu permetre la connexió ssh. Aquí teniu l'ordre per permetre-ho.

$ sudo ufw allow ssh

[sudo] password for pungki :
Rule added
Rule added (v6)
$

Si torneu a comprovar l'estat, veureu una sortida com aquesta.

$ sudo ufw status

To 		Action 			From
-- 		----------- 		------
22 		ALLOW 			Anywhere
22 		ALLOW 			Anywhere (v6)

Si teniu moltes regles i voleu posar números a totes les regles sobre la marxa, feu servir el paràmetre numerat.

$ sudo ufw status numbered

To 		Action 			From
------ 		----------- 		------
[1] 22 		ALLOW 			Anywhere
[2] 22 		ALLOW 			Anywhere (v6)

La primera regla diu que es permet la connexió entrant al port 22 des de qualsevol lloc, tant paquets tcp com udp. Què passa si només voleu permetre el paquet tcp? A continuació, podeu afegir el paràmetre tcp després del número de port. Aquí teniu un exemple amb una sortida de mostra.

$ sudo ufw allow ssh/tcp

To 		Action 			From
------ 		----------- 		------
22/tcp 		ALLOW 			Anywhere
22/tcp 		ALLOW 			Anywhere (v6)

Els mateixos trucs s'apliquen a la regla Deny. Diguem que voleu negar la regla ftp. Així que només cal escriure.

$ sudo ufw deny ftp

To 		Action 			From
------ 		----------- 		------
21/tcp 		DENY 			Anywhere
21/tcp 		DENY 			Anywhere (v6)

De vegades tenim un port personalitzat que no segueix cap estàndard. Suposem que canviem el port ssh de la nostra màquina del 22 al 2290. Aleshores, per permetre el port 2290, el podem afegir així.

$ sudo ufw allow

To 		Action 			From
-- 		----------- 		------
2290 		ALLOW 			Anywhere
2290 		ALLOW 			Anywhere (v6)

També és possible que afegiu un interval de ports a la regla. Si volem obrir el port del 2290 al 2300 amb el protocol tcp, l'ordre serà així.

$ sudo ufw allow 2290:2300/tcp

To 			Action 			From
------ 			----------- 		------
2290:2300/tcp 		ALLOW 			Anywhere
2290:2300/tcp 		ALLOW			Anywhere (v6)

mentre que si voleu utilitzar udp, només cal que utilitzeu l'ordre següent.

$ sudo ufw allow 2290:2300/udp

To 			Action 			From
------ 			----------- 		------
2290:2300/udp 		ALLOW 			Anywhere
2290:2300/udp 		ALLOW			Anywhere (v6)

Recordeu que heu de posar explícitament tcp o udp en cas contrari obtindreu un missatge d'error similar al següent.

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

Anteriorment hem afegit regles basades en servei o port. Ufw també us permet afegir regles basades en l'adreça IP. Aquí teniu l'ordre d'exemple.

$ sudo ufw allow from 192.168.0.104

També podeu utilitzar una màscara de subxarxa per ampliar el rang.

$ sudo ufw allow form 192.168.0.0/24

To 		Action 			From
-- 		----------- 		------
Anywhere	ALLOW 			192.168.0.104
Anywhere	ALLOW 			192.168.0.0/24

Com podeu veure, des del paràmetre només limitarà la font de connexió. Mentre que la destinació, que es representa per la columna A, és a qualsevol lloc. També podeu gestionar la destinació mitjançant el paràmetre A. Vegem la mostra per permetre l'accés al port 22 (ssh).

$ sudo ufw allow to any port 22

L'ordre anterior permetrà l'accés des de qualsevol lloc i des de qualsevol protocol al port 22.

Per a regles més específiques, també podeu combinar l'adreça IP, el protocol i el port. Suposem que volem crear una regla que limiti la connexió només des de la IP 192.168.0.104, només el protocol tcp i el port 22. Aleshores, l'ordre serà com a continuació.

$ sudo ufw allow from 192.168.0.104 proto tcp to any port 22

La sintaxi per crear una regla de denegació és similar a la regla de permetre. Només heu de canviar el paràmetre de permetre a denegar.

De vegades és possible que hàgiu de suprimir la vostra regla existent. Un cop més amb ufw és fàcil esborrar regles. A la mostra anterior, teniu una regla a continuació i voleu suprimir-la.

To 		Action 			From
-- 		----------- 		------
22/tcp		ALLOW 			192.168.0.104
21/tcp		ALLOW 			Anywhere
21/tcp 		ALLOW 			Anywhere (v6)

Hi ha dos mètodes per eliminar regles.

L'ordre següent suprimirà les regles que coincideixen amb el servei ftp. Així, s'eliminarà el 21/tcp, que vol dir que el port ftp.

$ sudo ufw delete allow ftp

Però quan vau intentar suprimir la primera regla de l'exemple anterior utilitzant l'ordre següent.

$ sudo ufw delete allow ssh

Or 

$ sudo ufw delete allow 22/tcp

És possible que trobeu un missatge d'error com ara.

Could not delete non-existent rule
Could not delete non-existent rule (v6)

Llavors podeu fer aquest truc. Com hem esmentat anteriorment, podeu mostrar el nombre de regla per indicar quina regla volem suprimir. Deixa que t'ho mostrem.

$ sudo ufw status numbered

To 		Action 			From
-- 		----------- 		------
[1] 22/tcp		ALLOW 			192.168.0.104
[2] 21/tcp		ALLOW 			Anywhere
[3] 21/tcp 		ALLOW 			Anywhere (v6)

A continuació, podeu esborrar la primera regla utilitzant. Premeu \y per suprimir la regla permanentment.

$ sudo ufw delete 1

Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

A partir d'aquests mètodes veureu la diferència. El mètode 2 demanarà confirmació a l'usuari abans de suprimir la regla mentre que el mètode 1 no ho és.

En algunes situacions, és possible que vulgueu suprimir/restablir totes les regles. Podeu fer-ho escrivint.

$ sudo ufw reset

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

Si premeu \y, aleshores ufw farà una còpia de seguretat de totes les regles existents abans de restablir l'ufw. Si restableixes les regles també es desactivarà el teu tallafoc. Cal que tornis a activar-lo si el vols utilitzar.

Com he dit anteriorment, el tallafoc ufw pot fer el que pugui fer iptables. Això s'aconsegueix utilitzant diversos conjunts de fitxers de regles, que no són més que fitxers de text adequats per restaurar iptables. Ajustar ufw i/o col·locar ordres iptables addicionals no permeses mitjançant l'ordre ufw és qüestió d'editar diversos fitxers de text.

  1. /etc/default/ufw: la configuració principal per a polítiques predeterminades, suport IPv6 i mòduls del nucli.
  2. /etc/ufw/before[6].rules: les regles d'aquests fitxers es calculen abans de qualsevol regla que s'afegeixi mitjançant l'ordre ufw.
  3. /etc/ufw/after[6].rules: les regles d'aquests fitxers es calculen després de qualsevol regla afegida mitjançant l'ordre ufw.
  4. /etc/ufw/sysctl.conf: ajustables a la xarxa del nucli.
  5. /etc/ufw/ufw.conf: estableix si ufw està habilitat o no a l'arrencada i estableix el LOGLEVEL.

Conclusió

UFW com a interfície d'iptables segurament és una interfície fàcil per a l'usuari. L'usuari no necessita recordar la complicada sintaxi d'iptables. UFW també utilitza anglès senzill com a paràmetre.

Permetre, negar, restablir són un d'ells. Crec que hi ha molts més front-end iptables per aquí. Però, sens dubte, ufw és una de les millors alternatives per als usuaris que volen configurar el seu tallafoc de manera ràpida, senzilla i, per descomptat, segura. Visiteu la pàgina del manual d'ufw escrivint man ufw per obtenir més detalls.