Firewall Proyecto
Firewall Proyecto
Firewall Proyecto
MATERIA
DOCENTE
FIREWALL EN LINUX
INTEGRANTES
• HECTOR VLADIMIR SANCHEZ GONZALEZ
• LADY MICHELLE PIN MERA
• LADY MICHELLE VERA CATAGUA
CURSO:
INE-S-NO-6-4 CICLO
2020-2021 CI
INDICE
OBJETIVOS ...................................................................................................................... 3
INTRODUCCION ............................................................................................................ 4
XML. ................................................................................................................................. 6
DISTRIBUCIONES .......................................................................................................... 7
APLICACIONES .............................................................................................................. 7
Drop ................................................................................................................................... 8
DIAGRAMA ................................................................................................................... 33
RECOMENDACIONES ................................................................................................. 37
CONCLUSIONES .......................................................................................................... 38
OBJETIVOS
OBJETIVO PRINCIPAL
OBJETIVOS SECUNDARIOS
Iptables es un firewall incluido en el kernel de Linux desde la versión 2.4 que está
incluido en el sistema operativo. Es un firewall basado en reglas, su
funcionamiento se basa en aplicar reglas que el mismo firewall ejecute. Estas
IPtables también se encuentran en los firmwares basados en Linux y por supuesto,
los dispositivos Android.
La seguridad es una de las acciones que siempre debe estar presente no solo en las
organizaciones sino también a nivel personal cuando trabajamos con algún sistema
operativo, y es que, aunque existen diversas herramientas para aumentar la
seguridad y la privacidad durante el uso de un sistema, el propio sistema operativo
incluye una función extra como lo es el firewall.
Cuando trabajamos con sistemas Linux, uno de los más seguros, disponemos de
utilidades de código abierto que nos ayudan a que este proceso de protección sea
mucho más completo y una de estas utilidades es Firewalld.
MARCO TEORICO
Firewalld nos ofrece una interfaz para servicios o aplicaciones con el fin de agregar las
reglas de firewall directamente facilitando así las tareas de control. Una de las principales
ventajas de usar Firewalld es que todos los cambios a realizar se pueden hacer en tiempo
real sobre el entorno de ejecución sin que sea obligatorio tener que reiniciar el servicio o
Daemon como sucede con muchas utilidades.
Firewalld integra a interfaz D-Bus la cual es apta para gestionar los servicios, las
aplicaciones y administración de la configuración del firewall, esta interfaz puede ser
integrada con las herramientas de configuración como firewall firewall-cmd,
firewallconfig y firewall-applet.
La interfaz D-Bus de firewalld es la forma más vital para crear y editar la configuración
del firewall. Esta interfaz es usada por todas las herramientas en línea integradas en
firewalld como firewall-cmd, firewall-config y firewall-applet, la línea firewall-offline-
cmd no está hablando directamente con firewalld, sino que edita y crea los archivos de
configuración de firewalld directamente a través del núcleo de firewalld con los
controladores de IO.
Firewalld hace uso de zonas las cuales son las que definen el nivel de confianza que
tendrá la conexión de red a usar, la interfaz o enlace de dirección de origen y una
misma zona puede usarse para muchas conexiones de red, interfaces y fuentes.
CARACTERÍSTICAS DE FIREWALLD
• Función de bloqueo la cual crea una lista blanca de aplicaciones que pueden
modificar el firewall.
• RHEL 7, CentOS 7
• Fedora 18 y superior
APLICACIONES
• NetworkManager
• libvirt
• docker
• fail2ban
Es importante que antes de entrar en detalle sobre como instalar y usar Firewalld
conozcamos un poco más sobre él, Firewalld está compuesto por tres capas que son:
• BACKENDS los cuales permiten interactuar con netfilter (el módulo del kernel
nativo usado para firewall) y se cuentan algunos como iptables, ip6tables, ebtables,
ipset, nft, linnftables, etc.
Las zonas disponibles en Firewalld son:
DROP
Esta es la zona con el nivel de confianza más bajo debido a que todos los paquetes
de entrada se rechazan de forma automática y solo permite la habilitación de los
paquetes salientes.
BLOCK
Al usar esta zona, el nivel de confianza es similar a Drop pero solo difiere en que
los paquetes entrantes son rechazados usando mensajes icmp-host-prohibited para
IPv4 y icmp6-adm-prohibited para IPv6.
PUBLIC
Con esta zona el nivel de confianza se refiere a las redes públicas no confiables, de
modo que solo acepta conexiones confiables.
EXTERNAL
DMZ
Es una zona donde el nivel de confianza aplica a equipos situados en una zona
DMZ (Desmilitarizada), esto significa que se cuenta con acceso público con
restricción a la red interna. Solo acepta conexiones aceptadas.
WORK
Como su nombre lo indica este nivel se usa en áreas de trabajo permitiendo que los
equipos de la red tengan acceso a ella
HOME
INTERNAL
Este tipo de nivel aplica a redes internas de modo que todos los equipos de la red
local serán aceptados.
TRUSTED
Significa Confianza, lo cual implica que es el nivel más alto y confía en todas las
conexiones entrantes.
Para configurar o agregar zonas, podemos usar alguna de las siguientes interfaces
de configuración de firewalld disponibles:
Aunque Linux es uno de los sistemas operativos más fiables y seguros gracias a
sus características siempre existirá algún tipo de vulnerabilidad ya sea propia del
sistema o de forma no intencional por parte del usuario. Para incrementar la
seguridad de Linux contamos con diversas herramientas diseñadas para proteger
servicios, procesos, perfiles o archivos.
¿QUÉ ES IPTABLES?
Raw
Se encarga de filtrar los paquetes antes que cualquier otra tabla existente
Filter
Nat
Mangle
Puede ser implementado para reglas de conexión de red Mandatory Access Control
En Iptables cada regla es un comando que indica la forma como debe ser manejado el
tráfico de los paquetes de red. Podemos usar la siguiente estructura:
• -m: Hace referencia a que existe una condición que debe cumplirse para aplicar la regla
• -j: (Jump) indica que pueden aceptar todo el tráfico que cumple las condiciones dadas.
DESARROLLO
PASO 1
En caso de usar CentOS 7, el paquete firewalld esta preinstalado y se puede verificar con
el siguiente comando:
Firewalld es un servicio regular de systemd el cual puede ser administrado a través del
comando systemctl de la siguiente forma:
PASO 3
PASO 1
Para obtener una lista de todas las zonas y servicios de firewall disponibles, debemos
ejecutar los siguientes comandos:
PASO 2
firewall-cmd --get-default-zone
PASO 4
Si deseamos establecer otra zona predeterminada debemos hacer uso del siguiente
comando, es de anotar que si añadimos la opción --permanent se establece la
configuración de forma permanente, podemos ejecutar alguna de las siguientes
opciones:
Si el objetivo es agregar una interfaz a una zona, por ejemplo, podemos ejecutar lo
siguiente:
PASO 6
Es de anotar que una interfaz solo se puede agregar a una sola zona, en su lugar se
puede mover a otra zona, para ello usaremos el interruptor --change-interface o
bien eliminar de la zona anterior con el interruptor –remove-interface y luego
añadirlo a la zona nueva, por ejemplo:
Con Firewalld es posible usar muchas zonas al mismo tiempo, si deseamos obtener
una lista de todas las zonas activas con las funciones habilitadas, como interfaces,
servicios, puertos, protocolos, ejecutamos lo siguiente:
Para obtener más información sobre las zonas, como lo que se ha habilitado o eliminado
podemos usar alguno de estos comandos: sudo firewall-cmd --zone=home --list-all O
sudo firewall-cmd --info-zone public
PASO 8
Otra de las opciones útiles a usar con Firewalld es --get-target, esta muestra el objetivo
de una zona permanente, los objetivos pueden ser default, ACCEPT, DROP, REJECT,
para comprobar el objetivo de varias zonas podemos usar alguno de los siguientes
comandos:
CENTOS Y UBUNTU
Para abrir un puerto a través de firewalld, basta con añadirlo en la zona con la
opción -add-port, en caso de no especificar explícitamente la zona, se habilitará
en la zona predeterminada.
PASO 1
Por ejemplo, para añadir los puertos 80 y 443 los cuales permiten el tráfico web entrante
a través de los protocolos HTTP y HTTPS, vamos a ejecutar lo siguiente:
PASO 2
Y UBUNTU
PASO 1
Por ejemplo, para habilitar el servicio http en una zona publica ejecutamos:
PASO 2
Con este enmascaramiento, el tráfico de los hosts invisibles aparecerá en otros equipos
en Internet como si esto viniera directamente del servidor Linux. Para verificar si el
enmascaramiento está activo o no ejecutamos:
sudo firewall-cmd --zone=public --add-masquerade para quitar una zona de este tipo
de función, debemos ejecutar lo siguiente:
FIREWALLD LINUX
PASO 1
PASO 2
Podemos ver todos los tipos de ICMP agregados en una zona usando el interruptor
--listicmp-blocks: sudo firewall-cmd --zone=home --list-icmp-blocks
CENTOS Y UBUNTU
PASO 1
PASO 1
--lockdown-on o –lockdown-off:
PASO 2
Firewalld es una completa solución para añadir diversas reglas y zonas a nuestras
distribuciones de Linux y así añadir mejores opciones de seguridad generales en el
sistema.
Aunque podemos agregar las reglas de forma manual es mucho más practico crear
un archivo de reglas y posteriormente realizar su importación. En este caso
crearemos el archivo en la ruta /tmp/iptables-ip4 y podemos usar algún editor para
su respectivo ajuste:
*filter
# Reglas a agregar
COMMIT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
ACCEPT
ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT
ESTABLISHED,RELATED -j ACCEPT
Nota:
ACCEPT
Impresión= Permite que los puertos USB para la conexión de impresoras sean habilitados
# IMAP
ACCEPT
# POP3
ACCEPT
# SMTP
ACCEPT
# Input
-A INPUT -i ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j
ACCEPT
# Output
ACCEPT
Rechazar todas las conexiones: Podemos agregar las siguientes líneas para
deshabilitar todo lo anterior:
-A INPUT -j REJECT
-A FORWARD -j REJECT
-A OUTPUT -j REJECT
Todas estas líneas serán agregadas en el archivo mencionado:
Ctrl+ O
Ctrl + X
2. IMPORTACIÓN DE LAS REGLAS USANDO IPTABLES LINUX
Una vez editado el archivo podremos importar dichas reglas en Iptable ejecutando el
siguiente comando:
Podremos ver el estado de las reglas usando el comando sudo iptables -S:
• rpm -qa firewalld: comando usado para instalar el paquete firewall en CentOS o Redhat
• sudo apt install firewalld: comando usado para instalar el paquete firewall en Ubuntu
o Debian
• sudo systemctl enable firewalld: habilita el servicio durante el arranque del sistema
• sudo firewall-cmd --get-services: muestra una lista de todos los servicios disponibles
• sudo firewall-cmd --get-active-zones: muestra las zonas activas con las funciones
habilitadas, como interfaces, servicios, puertos, protocolos
• sudo firewall-cmd --zone=home --list-all: muestra informacion sobre las zonas, como
lo que se ha habilitado o eliminado
• sudo firewall-cmd --info-zone public: muestra informacion sobre las zonas, como lo
que se ha habilitado o eliminado
• sudo iptables -F && sudo iptables -X: importa las reglas creadas
• sudo iptables -S: verifica el estado de las reglas
• sudo apt install iptables-persistent: hace que las reglas creads sean permanentes
RECOMENDACIONES
Como una recomendación si te paso este mismo error en Ubuntu te dejo la solución de
los comandos a ejecutar paso a paso
Comandos solución
2. Sudo rm /var/lib/dpkg/lock
3. Sudo rm /var/lib/dpkg/lock-fronted
4. Sudo rm /var/lib/apt/lists/lock
5. Sudo rm /var/cache/apt/archives/lock