Base de Coñecemento Instrucións sinxelas para traballar co servizo Profitserver
Páxina Base de Coñecemento Configuración do firewall en Linux

Configuración do firewall en Linux


O firewall en Linux xoga un papel vital na protección dun sistema informático. Actúa como barreira, controlando e filtrando o tráfico da rede para protexer o sistema de accesos non autorizados, ataques e outras ameazas. Sen un Firewall debidamente configurado, o servidor podería ser vulnerable a varios tipos de ciberataques, o que levaría a graves consecuencias para a seguridade e confidencialidade dos datos.

Neste artigo, analizaremos dúas ferramentas principais para configurar o Firewall de Linux: firewalld e iptables. Realizaremos unha análise comparativa das súas características, funcionalidades e vantaxes. Ademais, proporcionaremos instrucións detalladas para configurar e usar cada unha destas ferramentas, así como discutiremos as mellores prácticas para protexer o teu sistema cun Firewall na plataforma Linux. Todas as accións demostraranse nun servidor virtual con acceso root.

Configurando firewalld en Linux

Firewalld (Firewall Daemon) é un programa para xestionar o cortafuegos nos sistemas operativos Linux. Proporciona unha interface de usuario para configurar regras de cortafuegos, permitir ou bloquear conexións de aplicacións de rede. Está preinstalado por defecto na maioría das distribucións de servidor. Se Firewalld non está preinstalado, pódese instalar independentemente dos repositorios oficiais da distribución.

Para sistemas Red Hat (como RHEL, CentOS, Fedora) a instalación realízase co comando:

yum install firewalld

Para Debian/Ubuntu:

apt-get install firewalld

Despois da instalación, pódese iniciar e activar inmediatamente co comando:

systemctl start firewalld

A continuación, cómpre engadir o servizo ao inicio:

systemctl enable firewalld
Engadindo firewalld na carga automática de Linux

Neste punto, recomendamos desactivar ufw, xa que non se recomenda o uso simultáneo desta ferramenta con firewalld ou iptables. Comproba o estado:

systemctl status ufw
Comprobando ufw linux

Para detelo, introduza o comando:

systemctl stop ufw

Para a desactivación completa:

ufw disable

Despois destas accións, pode proceder a configurar o firewalld.

En primeiro lugar, é necesario definir zonas de confianza. Firewalld usa o concepto de zonas para determinar o nivel de confianza das interfaces de rede. A cada interface asígnaselle unha zona e as regras de firewall aplícanse en función da zona. A lista de todas as zonas dispoñibles ábrese co comando:

firewall-cmd --get-zones

Normalmente utilízanse 4 zonas principais:

  1. público: Esta zona é para redes que considere inseguras;
  2. Privado: Aplícase a redes domésticas ou outras conexións de rede de confianza;
  3. interior: Úsase para redes internas, como as dentro dunha organización ou rede corporativa;
  4. DMZ: Esta zona é onde adoitan colocarse servidores que deberían ser accesibles desde internet.

Non obstante, este é só un exemplo. Podes engadir a túa propia zona usando o comando:

firewall-cmd --permanent --new-zone=nameyourzone

Despois de engadir, é necesaria unha recarga:

firewall-cmd --reload

Para eliminar unha zona, úsase un método similar

firewall-cmd --permanent --delete-zone=nameyourzone

Despois de definir as zonas, é necesario permitir o tráfico para os servizos e portos necesarios. Para permitir un determinado servizo, use o comando:

firewall-cmd --zone=public --add-service=name

Onde nome é o nome do servizo. Por exemplo, para permitir o tráfico para Apache:

firewall-cmd --zone=public --add-service=http

Para definir portos permitidos, use o comando:

firewall-cmd --zone=public --add-port=number/protocol

Por exemplo, o porto estándar 22 para SSH sería así:

firewall-cmd --zone=public --add-port=22/tcp

Nesta fase, as regras principais xa están creadas. A continuación, determine como se procesará o tráfico dependendo da orixe, o destino, o porto e outros criterios. Para engadir unha regra (usando a zona pública como exemplo):

firewall-cmd --zone=public rule

Por exemplo, para permitir o tráfico entrante desde calquera fonte ao porto 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Para eliminar unha regra:

firewall-cmd --permanent --remove-rule=rule_specification

Onde regra é o tipo de regra (por exemplo, porto, servizo, regra enriquecida, etc.) e especificación_regra é a especificación da propia regra.

Despois de facer cambios na configuración de Firewalld, é necesario gardalos e aplicalos. Para gardar os cambios, use o comando:

firewall-cmd --runtime-to-permanent

Para aplicar os cambios:

firewall-cmd --reload

Ao completar a configuración, pode verificar os parámetros seleccionados abrindo a lista de todas as regras:

firewall-cmd --list-all
regras de firewall de Linux

Se aparece algún problema, comprobe os rexistros de Firewalld co comando:

journalctl -u firewalld

Nota: Só explicamos o algoritmo xeral para configurar a conexión. A ferramenta ten unha ampla funcionalidade. Para obter información completa sobre todas as opcións dispoñibles, podes usar a documentación oficial ou abrir a axuda:

firewall-cmd --help

Configurando iptables en Linux

A diferenza de Firewalld, iptables é unha ferramenta máis antiga pero aínda moi utilizada en Linux para xestionar o firewall. Ofrece un enfoque máis directo e flexible para as regras de filtrado de paquetes a nivel do núcleo de Linux. Non obstante, iptables require coñecementos e experiencia máis avanzados en comparación con Firewalld, polo que é menos accesible para os principiantes. Comprobe a versión preinstalada da ferramenta co comando:

iptables -V

Se a ferramenta non está instalada, terá que ser instalada. O comando para a instalación en Ubuntu, Debian:

apt install iptables

Para sistemas Red Hat (por exemplo, CentOS, Fedora):

yum install iptables

O comando para activar despois da instalación:

systemctl start iptables

Para engadir ao inicio, executa:

systemctl enable iptables

Antes de comezar a configuración de iptables, é importante entender como funciona. Isto é axudado pola sintaxe do programa. Ten o seguinte aspecto:

iptables -t table action chain additional_parameters

Afondemos en cada elemento.

Iptables ten catro táboas principais: filter, nat, mangle e raw . Cada unha delas está deseñada para procesar certos tipos de paquetes e ten as súas propias cadeas de regras:

  1. filtrar: Esta é a táboa de uso máis frecuente, que contén regras de filtrado de paquetes. Úsase para tomar decisións sobre se permitir ou denegar paquetes.
  2. nat: Esta táboa úsase para modificar enderezos de rede e portos en paquetes. Adoita usarse para configurar o enmascarado (NAT).
  3. mangle: Nesta táboa, pode modificar as cabeceiras dos paquetes. Utilízase para operacións especializadas de paquetes, como marcar.
  4. cru: Esta táboa úsase para configurar as regras que se aplican antes de pasar polo sistema de seguimento de conexións. Normalmente úsase para configurar regras que non deberían ser modificadas polo sistema de seguimento, como eliminar paquetes de certos enderezos.

Cada táboa contén un conxunto de cadeas. As cadeas son unha secuencia de regras que se verifican secuencialmente. Hai tres cadeas predefinidas:

  1. ENTRADA (entrada). As regras desta cadea determinan que facer cos paquetes entrantes.
  2. OUTPUT (saínte). Esta cadea aplícase a todos os paquetes que o teu ordenador envía a outros dispositivos ou ordenadores da rede.
  3. FORWARD (reenvío). As regras desta cadea especifican que facer cos paquetes reenviados.

Finalmente, cada cadea posúe algunha acción (obxectivo). Na práctica, utilízanse 5 accións principais:

  1. ACEPTAR: Permitir que o paquete pase polo firewall.
  2. GOTAR: Rexeita o paquete e bótao sen resposta.
  3. REXECTAR: Rexeita o paquete e envía ao remitente unha mensaxe de erro ICMP.
  4. LOG: rexistre o paquete no rexistro do sistema e realice outra acción (por exemplo, ACEPTAR ou SOLTAR).
  5. RETORNO: Deixa de comprobar as regras da cadea actual e volve á cadea de chamada (se é o caso).

Para iniciar a configuración, abra a lista de regras existentes co comando:

iptables -L
Configuración do firewall en Linux

Como guía para configurar Iptables, vexamos exemplos prácticos dos comandos máis utilizados. Para maior comodidade, dividiremos os exemplos en 3 grupos, dependendo da cadea específica.

ENTRADA DA CADEA :

  1. Permitir o tráfico entrante a través do protocolo TCP no porto 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Permitir o tráfico entrante a través do protocolo UDP no porto 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Bloquea o tráfico entrante dun enderezo IP específico:

iptables -A INPUT -s 192.168.1.100 -j DROP

Saída da cadea :

  1. Permitir o tráfico de saída a través do protocolo TCP no porto 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Permitir o tráfico de saída a través do protocolo UDP no porto 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Bloquee o tráfico de saída a un porto específico (por exemplo, 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Cadea cara adiante :

  1. Bloquear o tráfico reenviado desde un rango específico de enderezos IP:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Bloquee o reenvío de paquetes desde unha interface de rede específica:

iptables -A FORWARD -i eth1 -j DROP

3. Limite o número de conexións simultáneas para un porto específico (neste exemplo, 10 conexións por minuto no porto 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Como podes ver, en cada caso, úsase un argumento adicional (comando). Para obter unha lista completa de posibles argumentos e soporte xeral para a funcionalidade da ferramenta, introduza:

iptables -h
lista de comandos de configuración de iptables linux

Para asegurarse de que a configuración é correcta, introduza de novo o comando para ver a lista de regras:

iptables -L
Comprobando as regras de iptables linux

Para eliminar unha regra específica, use o comando:

iptables -D chain rule_number

Por exemplo, se queres eliminar a regra número 1 da cadea INPUT, o comando terá este aspecto:

iptables -D INPUT 1

Para eliminar todas as regras cun só comando:

iptables -F

Nota importante : as regras de iptables non se gardan automaticamente despois de reiniciar o sistema ou o servizo. Para gardar as regras, é necesario engadilas a un ficheiro de configuración e restauralas despois de reiniciar. As utilidades iptables-save e iptables-restore poden axudar con isto. Para gardar as regras, introduce o comando:

iptables-save > /etc/iptables/rules.v4

Isto gárdase as regras de iptables actuais no ficheiro rules.v4. Para restaurar despois do reinicio, introduza:

iptables-restore < /etc/iptables/rules.v4

Este comando restaura as regras do ficheiro rules.v4.

Conclusión

Configurar o firewall en Linux usando firewalld ou iptables é un aspecto importante para garantir a seguridade do servidor. Ambas ferramentas ofrecen medios fiables para xestionar o tráfico da rede e protexer o sistema de accesos non autorizados e ciberataques. A elección entre firewalld e iptables depende das necesidades e preferencias específicas do usuario, tendo en conta as súas diferentes funcionalidades e puntos fortes.

❮ Artigo anterior Diagnóstico de carga do servidor
Próximo artigo ❯ Usuarios de Linux: xestión e permisos

Pregúntanos por VPS

Sempre estamos preparados para responder ás súas preguntas a calquera hora do día ou da noite.