SELinux en Centos 8 - Como habilitarlo o deshabilitarlo
Tabla de contenido:
- Prerrequisitos
- Conceptos básicos de Firewalld
- Zonas Firewalld
- Servicios de firewall
- Firewalld Runtime y configuraciones permanentes
- Habilitar FirewallD
- Zonas Firewalld
- Cambiar el objetivo de la zona
- Asignación de una interfaz a una zona diferente
- Cambiar la zona predeterminada
- Crear nuevas zonas
- Servicios de Firewalld
- Crear un nuevo servicio FirewallD
- Apertura de puertos e IP de origen
- Abrir una IP de origen
- Abrir un puerto fuente
- Puertos de reenvío
- Reenviar tráfico de un puerto a otro en la dirección IP
- Reenviar tráfico a otra dirección IP
- Reenviar tráfico a otro servidor en un puerto diferente
- Conclusión
Un firewall es un método para monitorear y filtrar el tráfico de red entrante y saliente. Funciona definiendo un conjunto de reglas de seguridad que determinan si se permite o bloquea el tráfico específico. Un firewall configurado correctamente es uno de los aspectos más importantes de la seguridad general del sistema.
CentOS 8 se envía con un demonio de firewall llamado firewalld. Es una solución completa con una interfaz D-Bus que le permite administrar el firewall del sistema de forma dinámica.
En este tutorial, hablaremos sobre cómo configurar y administrar el firewall en CentOS 8. También explicaremos los conceptos básicos de FirewallD.
Prerrequisitos
Para configurar el servicio de firewall, debe iniciar sesión como root o usuario con privilegios de sudo.
Conceptos básicos de Firewalld
firewalld utiliza los conceptos de zonas y servicios. Según las zonas y los servicios que configurará, puede controlar qué tráfico está permitido o bloqueado hacia y desde el sistema.
Firewalld se puede configurar y administrar mediante la utilidad de línea de comandos
firewall-cmd
.
En CentOS 8, iptables se reemplaza por nftables como el servidor de seguridad predeterminado para el demonio firewalld.
Zonas Firewalld
Las zonas son conjuntos predefinidos de reglas que especifican el nivel de confianza de las redes a las que está conectada su computadora. Puede asignar interfaces y fuentes de red a una zona.
A continuación se muestran las zonas proporcionadas por FirewallD ordenadas según el nivel de confianza de la zona de no confiable a confiable:
- drop: todas las conexiones entrantes se eliminan sin ninguna notificación. Solo se permiten conexiones salientes. bloque: todas las conexiones entrantes se rechazan con un mensaje de
icmp6-adm-prohibited
icmp-host-prohibited
paraIPv4
yicmp6-adm-prohibited
para IPv6n. Solo se permiten conexiones salientes. público: para uso en áreas públicas no confiables. No confía en otras computadoras en la red, pero puede permitir conexiones entrantes seleccionadas. externo: para usar en redes externas con enmascaramiento NAT habilitado cuando su sistema actúa como puerta de enlace o enrutador. Solo se permiten conexiones entrantes seleccionadas. interno: para usar en redes internas cuando su sistema actúa como puerta de enlace o enrutador. Otros sistemas en la red son generalmente confiables. Solo se permiten conexiones entrantes seleccionadas. dmz: Usado para computadoras ubicadas en su zona desmilitarizada que tienen acceso limitado al resto de su red. Solo se permiten conexiones entrantes seleccionadas. trabajo: Utilizado para máquinas de trabajo. Otras computadoras en la red son generalmente confiables. Solo se permiten conexiones entrantes seleccionadas. hogar: utilizado para máquinas domésticas. Otras computadoras en la red son generalmente confiables. Solo se permiten conexiones entrantes seleccionadas. confiable: se aceptan todas las conexiones de red. Confíe en todas las computadoras en la red.
Servicios de firewall
Los servicios Firewalld son reglas predefinidas que se aplican dentro de una zona y definen la configuración necesaria para permitir el tráfico entrante para un servicio específico. Los servicios le permiten realizar fácilmente varias tareas en un solo paso.
Por ejemplo, el servicio puede contener definiciones sobre cómo abrir puertos, reenviar tráfico y más.
Firewalld Runtime y configuraciones permanentes
Firewalld usa dos conjuntos de configuración separados, tiempo de ejecución y configuración permanente.
La configuración de tiempo de ejecución es la configuración real en ejecución y no persiste en el reinicio. Cuando se inicia el demonio firewalld, carga la configuración permanente, que se convierte en la configuración de tiempo de ejecución.
De manera predeterminada, cuando se realizan cambios en la configuración de Firewalld utilizando la utilidad
firewall-cmd
, los cambios se aplican a la configuración de tiempo de ejecución. Para que los cambios sean permanentes, agregue la opción
--permanent
al comando.
Para aplicar los cambios en ambos conjuntos de configuración, puede usar uno de los dos métodos siguientes:
-
Cambie la configuración del tiempo de ejecución y hágalo permanente:
sudo firewall-cmd
sudo firewall-cmd --runtime-to-permanent
Cambia la configuración permanente y recarga el demonio firewalld:
sudo firewall-cmd --permanent
sudo firewall-cmd --reload
Habilitar FirewallD
En CentOS 8, firewalld está instalado y habilitado de manera predeterminada. Si por alguna razón no está instalado en su sistema, puede instalar e iniciar el demonio escribiendo:
sudo dnf install firewalld
sudo systemctl enable firewalld --now
Puede verificar el estado del servicio de firewall con:
sudo firewall-cmd --state
Si el firewall está habilitado, el comando debería imprimir en
running
. De lo contrario, verá que
not running
.
Zonas Firewalld
La zona predeterminada es la que se usa para todo lo que no está asignado explícitamente a otra zona.
Puede ver la zona predeterminada escribiendo:
sudo firewall-cmd --get-default-zone
public
Para obtener una lista de todas las zonas disponibles, escriba:
sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work
Para ver las zonas activas y las interfaces de red asignadas a ellas:
sudo firewall-cmd --get-active-zones
El resultado a continuación muestra que las interfaces
eth0
y
eth1
están asignadas a la zona
public
:
public interfaces: eth0 eth1
Puede imprimir los ajustes de configuración de zona con:
sudo firewall-cmd --zone=public --list-all
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
De la salida anterior, podemos ver que la zona pública está activa y usa el objetivo predeterminado, que es
REJECT
. El resultado también muestra que la zona es utilizada por las interfaces
eth0
y
eth1
y permite el tráfico del cliente DHCP y SSH.
sudo firewall-cmd --list-all-zones
El comando imprime una lista enorme con la configuración de todas las zonas disponibles.
Cambiar el objetivo de la zona
El objetivo define el comportamiento predeterminado de la zona para el tráfico entrante que no se especifica. Se puede establecer en una de las siguientes opciones:
default
,
ACCEPT
,
REJECT
y
DROP
.
Para establecer el objetivo de la zona, especifique la zona con la opción
--zone
y el objetivo con la opción
--set-target
.
Por ejemplo, para cambiar el objetivo de la zona
public
a
DROP
, ejecutarías:
sudo firewall-cmd --zone=public --set-target=DROP
Asignación de una interfaz a una zona diferente
Puede crear conjuntos específicos de reglas para diferentes zonas y asignarles diferentes interfaces. Esto es especialmente útil cuando tiene múltiples interfaces en su máquina.
Para asignar una interfaz a una zona diferente, especifique la zona con la opción
--zone
y la interfaz con la opción
--change-interface
.
Por ejemplo, el siguiente comando asigna la interfaz
eth1
a la zona de
work
:
sudo firewall-cmd --zone=work --change-interface=eth1
Verifique los cambios escribiendo:
sudo firewall-cmd --get-active-zones
work interfaces: eth1 public interfaces: eth0
Cambiar la zona predeterminada
Para cambiar la zona predeterminada, use la
--set-default-zone
seguida del nombre de la zona que desea establecer como predeterminada.
Por ejemplo, para cambiar la zona predeterminada a
home
, debe ejecutar el siguiente comando:
sudo firewall-cmd --set-default-zone=home
Verifique los cambios con:
sudo firewall-cmd --get-default-zone
Crear nuevas zonas
Firewalld también te permite crear tus propias zonas. Esto es útil cuando desea crear reglas por aplicación.
En el siguiente ejemplo crearemos una nueva zona llamada
memcached
,
memcached
el puerto
11211
y permitiremos el acceso solo desde la dirección IP
192.168.100.30
:
-
Crea la zona:
sudo firewall-cmd --new-zone=memcached --permanent
Agregue las reglas a la zona:
sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent
sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
Vuelva a cargar el demonio Firewalld para activar los cambios:
sudo firewall-cmd --reload
Servicios de Firewalld
Con firewalld puede permitir el tráfico para puertos y / o fuentes específicos en base a reglas predefinidas llamadas servicios.
Para obtener una lista de todos los servicios disponibles predeterminados, escriba:
sudo firewall-cmd --get-services
Puede encontrar más información sobre cada servicio abriendo el archivo.xml asociado dentro del directorio
/usr/lib/firewalld/services
. Por ejemplo, el servicio HTTP se define así:
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
Para permitir el tráfico HTTP entrante (puerto 80) para las interfaces en la zona pública, solo para el tipo de sesión actual (configuración de tiempo de ejecución):
sudo firewall-cmd --zone=public --add-service=http
Si está modificando la zona predeterminada, puede omitir la opción
--zone
.
Para verificar que el servicio se agregó con éxito, use la opción
--list-services
:
sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client
Para mantener el puerto 80 abierto después de un reinicio, ejecute el mismo comando una vez más con la opción
--permanent
, o ejecute:
sudo firewall-cmd --runtime-to-permanent
Use
--list-services
junto con la opción
--permanent
para verificar sus cambios:
sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client
La sintaxis para eliminar el servicio es la misma que cuando se agrega uno. Simplemente use
--remove-service
lugar de
--add-service
flag:
sudo firewall-cmd --zone=public --remove-service=http --permanent
El comando anterior elimina el servicio
http
de la configuración permanente de la zona pública.
Crear un nuevo servicio FirewallD
Como ya hemos mencionado, los servicios predeterminados se almacenan en el directorio
/usr/lib/firewalld/services
. La forma más fácil de crear un nuevo servicio es copiar un archivo de servicio existente en el directorio
/etc/firewalld/services
, que es la ubicación de los servicios creados por el usuario y modificar la configuración del archivo.
Por ejemplo, para crear una definición de servicio para Plex Media Server, puede usar el archivo de servicio SSH:
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
Abra el archivo
plexmediaserver.xml
recién creado y cambie el nombre corto y la descripción del servicio dentro de
port
, que define el número de puerto y el protocolo que desea abrir.
En el siguiente ejemplo, estamos abriendo los puertos
1900
UDP y
32400
TCP.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
Guarde el archivo y vuelva a cargar el servicio FirewallD:
sudo firewall-cmd --reload
Ahora puede usar el servicio
plexmediaserver
en sus zonas igual que cualquier otro servicio.
Apertura de puertos e IP de origen
Firewalld también le permite habilitar rápidamente todo el tráfico desde una dirección IP confiable o en un puerto específico sin crear una definición de servicio.
Abrir una IP de origen
Para permitir todo el tráfico entrante desde una dirección IP (o rango) específica, especifique la zona con la opción
--zone
y la IP de origen con la opción
--add-source
.
Por ejemplo, para permitir todo el tráfico entrante de 192.168.1.10 en la zona
public
, ejecute:
sudo firewall-cmd --zone=public --add-source=192.168.1.10
Haga que la nueva regla sea persistente:
sudo firewall-cmd --runtime-to-permanent
Verifique los cambios con el siguiente comando:
sudo firewall-cmd --zone=public --list-sources
192.168.1.10
La sintaxis para eliminar una IP de origen es la misma que cuando se agrega una. Simplemente use
--remove-source
lugar de la opción
--add-source
:
sudo firewall-cmd --zone=public --remove-source=192.168.1.10
Abrir un puerto fuente
Para permitir todo el tráfico entrante en un puerto determinado, especifique la zona con la opción
--zone
y el puerto y el protocolo con la opción
--add-port
.
Por ejemplo, para abrir el puerto
8080
en la zona pública para la sesión actual que ejecutaste:
sudo firewall-cmd --zone=public --add-port=8080/tcp
El protocolo puede ser
tcp
,
udp
,
sctp
o
dccp
.
Verificar los cambios:
sudo firewall-cmd --zone=public --list-ports
8080
Para mantener el puerto abierto después de un reinicio, agregue la regla a la configuración permanente ejecutando el mismo comando usando el indicador
--permanent
o ejecutando:
sudo firewall-cmd --runtime-to-permanent
La sintaxis para eliminar un puerto es la misma que cuando se agrega un puerto. Simplemente use
--remove-port
lugar de la opción
--add-port
.
sudo firewall-cmd --zone=public --remove-port=8080/tcp
Puertos de reenvío
Para reenviar el tráfico de un puerto a otro puerto, primero habilite el enmascaramiento para la zona deseada usando la opción
--add-masquerade
. Por ejemplo, para habilitar el enmascaramiento para la zona
external
, escriba:
sudo firewall-cmd --zone=external --add-masquerade
Reenviar tráfico de un puerto a otro en la dirección IP
En el siguiente ejemplo, reenviamos el tráfico desde el puerto
80
al puerto
8080
en el mismo servidor:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
Reenviar tráfico a otra dirección IP
En el siguiente ejemplo, reenviamos el tráfico del puerto
80
al puerto
80
en un servidor con IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2
Reenviar tráfico a otro servidor en un puerto diferente
En el siguiente ejemplo, reenviamos el tráfico desde el puerto
80
al puerto
8080
en un servidor con IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2
Para hacer persistente la regla de reenvío, use:
sudo firewall-cmd --runtime-to-permanent
Conclusión
Ha aprendido a configurar y administrar el servicio firewalld en su sistema CentOS 8.
Asegúrese de permitir todas las conexiones entrantes que sean necesarias para el correcto funcionamiento de su sistema, al tiempo que limita todas las conexiones innecesarias.
cortafuegos cortafuegos centos seguridadCómo configurar y configurar los Firewall Firewall
Aprenda a configurar el firewall del router, acceder a la página del enrutador de hardware, configurar los parámetros del Router Firewall. Averigüe qué puertos son necesarios en la computadora.
Cómo configurar y administrar la sincronización de correo electrónico en Windows Phone 8
Todo lo que quería saber sobre la sincronización de correo electrónico y las opciones de configuración disponibles en Windows Phone 8.
Cómo configurar un firewall con firewalld en centos 7
FirewallD es una solución completa de firewall que gestiona las reglas de iptables del sistema y proporciona una interfaz D-Bus para operar en ellas. En este tutorial, le mostramos cómo configurar un firewall con FirewallD en su sistema CentOS 7 y le explicamos los conceptos básicos de FirewallD.