Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon iptables Vs FirewallD: diferencias, ejemplos prácticos reglas, sintaxis


FirewallD es un controlador frontend para la tabla iptables que se usa para implementar reglas de tráfico de red persistentes. Provee una línea de comando e interfaces gráficas y está disponible en los repositorios de la mayoría de las distribuciones Linux. Otra opción más sencilla que iptables es ufw: Uncomplicated Firewall (UFW) 




Iptables es el firewall que incluye el núcleo de Linux. Otra herramienta como Gufw ofrece una interfaz gráfica para manejar Iptables de una forma sencilla para el usuario. Con esta herramienta se pueden configurar los filtros de red para permitir, denegar y el tráfico de red en un equipo. Se puede instalar en la mayoría de distribuciones Linux a través del gestor de paquetes del sistema.

Diferencias

Trabajar con FirewallD tiene dos diferencias principales cuando se compara a trabajar directamente con iptables:

  1. FirewallD utiliza zonas y servicios en lugar de cadenas y reglas.
  2. FirewallD administra los grupos de reglas dinámicamente, permitiendo actualizaciones sin tener que romper las sesiones y conexiones.
FirewallD es simplemente un contenedor de iptables que permite un manejo más sencillo que las reglas para iptables, y no es un remplazo de este último. Aunque los comandos de iptables pueden ser utilizados en FirewallD, se recomienda usar solo comandos FirewallD dentro de esta utilidad.



¿Qué es iptables?

Primero, necesitamos saber qué es iptables. La mayoría de los profesionales senior de TI lo conocen y también solían trabajar con él. Iptables es una aplicación / programa que permite a un usuario configurar la seguridad o las tablas de seguridad del cortafuegos proporcionadas por el cortafuegos del kernel de Linux y las cadenas para que el usuario pueda agregar / eliminar reglas de cortafuegos en consecuencia para cumplir con sus requisitos de seguridad. Iptables usa diferentes módulos de kernel y diferentes protocolos para que el usuario pueda sacar lo mejor de él. 

Como por ejemplo, iptables se usa para IPv4 (IP versión 4/32 bit) e ip6tables para IPv6 (IP versión 6/64 bit) tanto para tcp como udp. Normalmente, las reglas de iptables las configura el administrador del sistema, el analista del sistema o el gerente de TI. Debe tener privilegios de root para ejecutar todas las reglas de iptables. El kernel de Linux utiliza el marco Netfilter para que pueda proporcionar varias operaciones relacionadas con la red que se pueden realizar mediante iptables. Anteriormente, ipchains se usaba en la mayoría de las distribuciones de Linux con el mismo propósito. Todas las reglas de iptables son manejadas directamente por el propio kernel de Linux y se conoce como deber del kernel. Independientemente de las herramientas de GUI u otras herramientas de seguridad que esté utilizando para configurar la seguridad del firewall de su servidor, al final del día, se convierte en reglas de iptables y se suministra al kernel para realizar la operación.


Historia de iptables

El auge de las iptables comienza con netfilter. Paul Rusty Russell fue el autor inicial y el grupo de expertos principal detrás de netfilter / iptables. Más tarde se le unieron muchas otras personas de tecnología y luego formaron y construyeron el equipo central de Netfilter y desarrollaron y mantuvieron el proyecto netfilter / iptables como un esfuerzo conjunto como muchos otros proyectos de código abierto. Harald Welte fue el ex líder hasta 2007 y luego Patrick McHardy fue el jefe hasta 2013. Actualmente, el jefe del equipo principal de netfilter es Pablo Neira Ayuso.


Cómo instalar iptables

Hoy en día, cada kernel de Linux viene con iptables y se puede encontrar precompilado o preinstalado en todas las distribuciones modernas famosas de Linux. En la mayoría de los sistemas Linux, iptables se instala en este directorio / usr / sbin / iptables. También se puede encontrar en / sbin / iptables, pero como iptables se parece más a un servicio que a un “binario esencial”, la ubicación preferida permanece en el directorio / usr / sbin.


Para Ubuntu o Debian

sudo apt-get install iptables

Para CentOS

sudo yum install iptables-services

Para RHEL

sudo yum install iptables

Versión de iptables

Para conocer su versión de iptables, escriba el siguiente comando en su terminal.

sudo iptables --version

Iniciar y detener su firewall de iptables

Para OpenSUSE 42.1, escriba lo siguiente para detener.

sudo / sbin / rcSuSEfirewall2 stop

Para empezar de nuevo

sudo / sbin / rcSuSEfirewall2 start

Para Ubuntu, escriba lo siguiente para detener.

sudo service ufw stop

Para empezar de nuevo

sudo service ufw start

Para Debian y RHEL, escriba lo siguiente para detener.

sudo /etc/init.d/iptables stop

Para empezar de nuevo

sudo /etc/init.d/iptables start

Para CentOS, escriba lo siguiente para detener.

sudo service iptables stop

Para empezar de nuevo

sudo service iptables start

Si sólo queremos usar iptables sin firewalld 

sudo systemctl disable firewalld

sudo systemctl mask firewalld 

sudo systemctl enable iptables 

sudo systemctl enable ip6tables 

Obtener todas las listas de reglas de iptables

Para conocer todas las reglas que están actualmente presentes y activas en sus iptables, simplemente abra una terminal y escriba lo siguiente.

sudo iptables -L

Si no hay reglas de salida en iptables significa que si no hay reglas agregadas hasta ahora en su firewall de iptables, 

Parámetros -L (muestra reglas) -n (no dns) -v (verbose)

sudo iptables -L -n -v

Podrás ver que hay tres (3) cadenas y son INPUT, FORWARD, OUTPUT y no existen reglas. De hecho, todavía no he añadido uno.

Escriba lo siguiente para conocer el estado de las cadenas de su firewall iptables.

sudo iptables -S

Con el comando anterior, puede saber si sus cadenas aceptan o no.

/etc/sysconfig/iptables

/etc/sysconfig/ip6tables 

Borrar todas las reglas de iptables

Para borrar todas las reglas de su firewall de iptables, escriba lo siguiente. Esto normalmente se conoce como limpiar las reglas de iptables.

sudo iptables -F

Si desea descargar solo la cadena de ENTRADA, o cualquier cadena individual, emita los siguientes comandos según sus requisitos.

sudo iptables -F INPUT

sudo iptables -F OUTPUT

sudo iptables -F FORWARD


Variante: 

# iptables -F

# iptables -X

# iptables -t nat -F

# iptables -t nat -X

# iptables -t mangle -F

# iptables -t mangle -X

# iptables -P INPUT ACCEPT

# iptables -P OUTPUT ACCEPT

# iptables -P FORWARD ACCEPT 

Explicaciones: 

  • -F : Deleting (flushing) all the rules.
  • -X : Delete chain.
  • -t table_name : Select table (called nat or mangle) and delete/flush rules.
  • -P : Set the default policy (such as DROP, REJECT, or ACCEPT).
  • ACEPTAR o DROP Cadenas

    Para aceptar o eliminar una cadena en particular, emita cualquiera de los siguientes comandos en su terminal para cumplir con sus requisitos.

    iptables --policy INPUT DROP

    La regla anterior no aceptará nada que ingrese a ese servidor. Para revertirlo nuevamente a ACEPTAR, haga lo siguiente

    iptables --policy INPUT ACCEPT

    Lo mismo ocurre con otras cadenas, así como

    iptables --policy OUTPUT DROP

    iptables --policy FORWARD DROP

    Nota: Por defecto, todas las cadenas de iptables (INPUT, OUTPUT, FORWARD) están en modo ACEPTAR. Esto se conoce como comportamiento predeterminado de la cadena de políticas.

    Guardar reglas

    CentOS / RHEL / Fedora Linux
    # service iptables save


    Para el resto de distros utilizar:

    # iptables-save > /root/my.active.firewall.rules
    # cat /root/my.active.firewall.rules


    Para restaurar las reglas

    # iptables-restore < /root/my.active.firewall.rules

    En CentOS / RHEL / Fedora Linux:

    # service iptables restart 

    Denegar - bloquear una IP


    # iptables -A INPUT -s 1.2.3.4 -j DROP

    Logear una IP


    # iptables -A INPUT -i eth1 -s 1.2.3.4 -j LOG --log-prefix "Log 1.2.3.4: "
    # iptables -A INPUT -i eth1 -s 1.2.3.4 -j DROP

    Ver el tráfico guardado en /var/log/messages f

    # tail -f /var/log/messages

    # grep --color 'Log 1.2.3.4' /var/log/messages 

    Permitiendo cualquier puerto

    Si está ejecutando cualquier servidor web en su host, entonces debe permitir su firewall iptables para que su servidor escuche o responda al puerto 80. Por defecto, el servidor web se ejecuta en el puerto 80. Hagámoslo entonces.

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

    En la línea anterior, A significa agregar significa que estamos agregando una nueva regla a la lista de iptables. INPUT significa la cadena INPUT. P significa protocolo y dport significa puerto de destino. De forma predeterminada, cualquier servidor web se ejecuta en el puerto 80. De manera similar, también puede permitir el puerto SSH.

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

    De forma predeterminada, SSH se ejecuta en el puerto 22. Pero es una buena práctica no ejecutar SSH en el puerto 22. Ejecute siempre SSH en un puerto diferente. Para ejecutar SSH en un puerto diferente, abra el archivo /etc/ssh/sshd_config en su editor favorito y cambie el puerto 22 a otro puerto.

    Bloqueando cualquier puerto

    Digamos que queremos bloquear el puerto 135. Podemos hacerlo mediante

    sudo iptables -A INPUT -p tcp --dport 135 -j DROP

    si desea bloquear su servidor para iniciar cualquier conexión SSH desde el servidor a otro host / servidor, emita el siguiente comando

    sudo iptables -A OUTPUT -p tcp --dport 22 -j DROP

    Al hacerlo, nadie puede usar su servidor para iniciar una conexión SSH desde el servidor. La cadena OUPUT filtrará y DROP cualquier conexión tcp saliente hacia otros hosts.

    Permitir IP específica con puerto

    sudo iptables -A INPUT -p tcp -s 0/0 --dport 22 -j ACCEPT

    Aquí -s 0/0 significa cualquier fuente entrante con cualquier dirección IP. Por lo tanto, no hay forma de que su servidor responda por un paquete tcp cuyo puerto de destino sea 22. Si desea permitir solo una IP en particular, utilice la siguiente.

    sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT

    En el ejemplo anterior, solo permite que la dirección IP 12.12.12.12 se conecte al puerto SSH. Las direcciones IP de descanso no podrán conectarse al puerto 22. De manera similar, puede permitir mediante el uso de valores CIDR. Como

    sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j ACCEPT

    El ejemplo anterior muestra cómo puede permitir un bloque de IP completo para aceptar la conexión en el puerto 22. Aceptará la IP a partir del 12.12.12.1 al 12.12.12.255.

    Si desea bloquear dicho rango de direcciones IP, haga lo contrario reemplazando ACCEPT por DROP como se muestra a continuación

    sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP

    Por lo tanto, no permitirá obtener una conexión en el puerto 22 desde las direcciones IP 12.12.12.1 hasta 12.12.12.255.

    Bloqueo de ICMP

    Si desea bloquear la solicitud ICMP (ping) hacia y desde su servidor, puede intentar lo siguiente. El primero se bloqueará para no enviar una solicitud de eco de ping ICMP a otro host.

    sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP

    Ahora, intente hacer ping a google.com. Su servidor OpenSUSE no podrá hacer ping a google.com.

    Si desea bloquear la solicitud de eco ICMP (ping) entrante para su servidor, simplemente escriba lo siguiente en su terminal.

    sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP

    Ahora, no responderá a ninguna solicitud de eco de ping ICMP. Digamos que la dirección IP de su servidor es 13.13.13.13. Y si hace ping a esa IP de su servidor, verá que su servidor no responde a esa solicitud de ping.

    # iptables -A INPUT -p icmp --icmp-type echo-request -j DROP


    Pero aceptar ping de 192.168.1.0/24

    # iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT 

    Bloqueo del puerto MySql / MariaDB

    Como Mysql contiene su base de datos, debe proteger su base de datos de archivos adjuntos externos. Permita que las direcciones IP de su servidor de aplicaciones de confianza solo se conecten con su servidor MySQL. Para bloquear a otros

    sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 3306 -m state --state NEW, ESTABLISHED -j ACCEPT

    Por lo tanto, no tomará ninguna conexión MySql excepto el bloque de IP 192.168.1.0/24. Por defecto, MySql se ejecuta en el puerto 3306.

    Bloqueo de SMTP

    Si no está ejecutando ningún servidor de correo en su servidor host o si su servidor no está configurado para actuar como un servidor de correo, debe bloquear SMTP para que su servidor no envíe correo no deseado o correo a ningún dominio. Debe hacer esto para bloquear cualquier correo saliente de su servidor. Para hacerlo

    sudo iptables -A OUTPUT -p tcp --dport 25 -j DROP

    Si quieres logear añade el parámetro

    -j LOG --log-prefix "PORT 25 DROP: " --log-level 7 

    Bloqueo Rango de puertos

     iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j DROP

    Bloquear DDoS

    Todos estamos familiarizados con el término DDoS. Para deshacerse de él, ejecute el siguiente comando en su terminal.

    iptables -A INPUT -p tcp --dport 80 -m limit --limit 20 / minute --limit-burst 100 -j ACCEPT

    Debe configurar el valor numérico para cumplir con sus requisitos. Este es solo un estándar a mantener.


    Puedes proteger más

    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
    echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
    echo 1 > /proc/sys/net/ipv4/conf/lo/rp_filter
    echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
    echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
    echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
    echo 0 > /proc/sys/net/ipv4/tcp_sack
    echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog


    Bloqueo de escaneo de puertos

    Hay cientos de personas que escanean los puertos abiertos de su servidor e intentan romper la seguridad de su servidor. Para bloquearlo

    sudo iptables -N block-scan

    sudo iptables -A block-scan -p tcp —tcp-flags SYN, ACK, FIN, RST RST -m limit —limit 1 / s -j RETURN

    sudo iptables -A block-scan -j DROP

    Aquí, block-scan es el nombre de una nueva cadena.

    Bloqueo de puertos defectuosos

    Es posible que también deba bloquear algunos puertos defectuosos para su servidor. Así es como puede hacer esto.

    badport = "135,136,137,138,139,445"

    sudo iptables -A INPUT -p tcp -m multiport --dport $ badport -j DROP

    sudo iptables -A INPUT -p udp -m multiport --dport $ badport -j DROP

    Puede agregar más puertos según sus necesidades.


    Bloquear países enteros con iptables

    Otra alternativa al script de shell anterior es usar el parche geoip iptables. Estos no son módulos estándar de iptables. Necesita descargar el parche y compilar el kernel de Linux.

    •      Coge el parche geoipt del sitio web oficial.
    •      Descargue e instale el kernel de Linux y el código fuente de iptables.
    •      Tome e instale la herramienta llamada patch-o-matic (necesaria para los módulos geoip).
    •      Finalmente, tome la base de datos de IP GEO de MaxMind.


    Los detalles de la compilación del kernel y el parcheo de iptables están más allá del alcance de estas preguntas frecuentes. Esto se deja como ejercicio para los lectores.


    Redireccionar de puerto A a puerto B


    iptables -t nat -A PREROUTING -i $interfaceName -p tcp --dport $srcPortNumber -j REDIRECT --to-port $dstPortNumber


    Ejemplo redirección puerto 80 al puerto 8080

    # iptables -t nat -I PREROUTING --src 0/0 --dst 192.168.1.5 -p tcp --dport 80 -j REDIRECT --to-ports 8080

    ¿Qué es firewalld?

    Firewalld proporciona un firewall administrado dinámicamente con soporte para zonas de red / firewall que define el nivel de confianza de las conexiones o interfaces de red. Tiene soporte para configuraciones de firewall IPv4, IPv6, puentes ethernet y conjuntos de IP. Hay una separación entre las opciones de configuración permanente y de tiempo de ejecución. También proporciona una interfaz para servicios o aplicaciones para agregar reglas de firewall directamente.

    El modelo anterior de firewall con system-config-firewall / lokkit era estático y cada cambio requería un reinicio completo del firewall. Esto incluyó también descargar los módulos del kernel de netfilter del firewall y cargar los módulos necesarios para la nueva configuración. La descarga de los módulos estaba rompiendo el cortafuegos con estado y las conexiones establecidas. El demonio de firewall, por otro lado, administra el firewall de forma dinámica y aplica cambios sin reiniciar todo el firewall. Por lo tanto, no es necesario volver a cargar todos los módulos del kernel del firewall. Pero el uso de un demonio de firewall requiere que todas las modificaciones del firewall se realicen con ese demonio para asegurarse de que el estado en el demonio y el firewall en el kernel estén sincronizados. El demonio de firewall no puede analizar las reglas de firewall agregadas por las herramientas de línea de comandos iptables y ebtables. El demonio proporciona información sobre la configuración actual del firewall activo a través de D-BUS y también acepta cambios a través de D-BUS utilizando métodos de autenticación de PolicyKit.

    Por lo tanto, firewalld usa zonas y servicios en lugar de cadenas y reglas para realizar las operaciones y puede administrar las reglas de forma dinámica permitiendo actualizaciones y modificaciones sin romper las sesiones y conexiones existentes.

    Tiene las siguientes características.

    • API de D-Bus.
    • Reglas de firewall cronometradas.
    • Rich Language para reglas de firewall específicas.
    • Compatibilidad con IPv4 e IPv6 NAT.
    • Zonas de cortafuegos.
    • Soporte de conjunto de IP.
    • Registro simple de paquetes denegados.
    • Interfaz directa.
    • Bloqueo: lista blanca de aplicaciones que pueden modificar el firewall.
    • Soporte para backends de firewall iptables, ip6tables, ebtables e ipset.
    • Carga automática de módulos del kernel de Linux.
    • Integración con Puppet.


    Cómo instalar firewalld

    Antes de instalar firewalld, asegúrese de detener iptables y también asegúrese de que iptables no se esté usando ni funcionando más. Para hacerlo

    sudo systemctl stop iptables

    Esto detendrá iptables desde su sistema.

    Y luego asegúrese de que su sistema ya no use iptables emitiendo el siguiente comando en la terminal.

    sudo systemctl mask iptables

    Ahora, verifique el estado de iptables.

    sudo systemctl status iptables

    Ahora, estamos listos para instalar firewalld en nuestro sistema.

    Para Ubuntu

    Para instalarlo en Ubuntu, primero debe eliminar UFW y luego puede instalar Firewalld. Para eliminar UFW, emita el siguiente comando en la terminal.

    sudo apt-get remove ufw

    Después de eliminar UFW, ejecute el siguiente comando en la terminal

    sudo apt-get install firewall-applet

    Puede abrir el Centro de software de Ubuntu y buscar o buscar "firewall-applet" y luego instalarlo en su sistema Ubuntu.

    Para RHEL, CentOS y Fedora

    Escriba el siguiente comando para instalar firewalld en su sistema CentOS.

    sudo yum install firewalld firewall-config -y

    Cómo configurar firewalld

    Antes de configurar firewalld, debemos conocer el estado de firewalld después de la instalación. Para saber eso, escriba lo siguiente.

    sudo systemctl status firewalld

    sudo firewall-cmd –state 

    Como firewalld funciona por zonas, necesitamos comprobar todas las zonas y servicios, aunque todavía no hemos realizado ninguna configuración.

    Por Zonas

    sudo firewall-cmd --get-active-zones

    sudo firewall-cmd --get-zones

    Para conocer la zona predeterminada, emita el siguiente comando

    sudo firewall-cmd --get-default-zone

    Y, para servicios

    sudo firewall-cmd --get-services

    Aquí puede ver los servicios cubiertos por firewalld.

    Configuración de la zona predeterminada

    Una nota importante es que, después de cada modificación, debe volver a cargar firewalld para que se puedan realizar los cambios.

    Para configurar la zona predeterminada

    sudo firewall-cmd --set-default-zone=internal

    sudo firewall-cmd --set-default-zone=public

    Después de cambiar la zona, compruebe si cambia o no.

    sudo firewall-cmd --get-default-zone

    Agregar puerto en zona pública

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

    Esto agregará el puerto tcp 80 en la zona pública de firewalld. También puede agregar el puerto que desee reemplazando 80 por el suyo

    Ahora recargue el Firewalld.

    sudo firewall-cmd --reload

    Ahora, verifique el estado para ver si el puerto tcp 80 se ha agregado o no.

    sudo firewall-cmd --zone=public --list-ports

    Aquí, puede ver que se ha agregado el puerto tcp 80.

    O incluso puedes probar algo como esto.

    sudo firewall-cmd --zone=public --list-all

    Eliminar puerto de la zona pública

    Para eliminar el puerto Tcp 80 de la zona pública, escriba lo siguiente.

    sudo firewall-cmd --zone=public --remove-port=80/tcp

    Verá un texto de "éxito" haciendo eco en su terminal.

    También puede poner su puerto deseado reemplazando 80 por su propio puerto.

    Agregar servicios en Firewalld

    Para agregar el servicio ftp en firewalld, emita el siguiente comando

    sudo firewall-cmd --zone=public --add-service=ftp

    Verá un texto de "éxito" haciendo eco en su terminal.

    De manera similar, para agregar el servicio smtp, emita el siguiente comando

    sudo firewall-cmd --zone=public --add-service=smtp

    Reemplace ftp y smtp por su propio servicio que desee agregar en el Firewall.

    Eliminar servicios de Firewalld

    Para eliminar los servicios ftp y smtp de firewalld, ejecute el siguiente comando en la terminal.

    sudo firewall-cmd --zone=public --remove-service=ftp

    sudo firewall-cmd --zone=public --remove-service=smtp

    Bloquear cualquier paquete (s) entrante y saliente

    Si lo desea, puede bloquear cualquier paquete / conexión entrante o saliente utilizando firewalld. Esto se conoce como "pánico" de firewalld. Para hacerlo, emita el siguiente comando.

    sudo firewall-cmd --panic-on

    Verá un texto de "éxito" haciendo eco en su terminal.

    Después de hacer esto, no podrá hacer ping a un host o incluso navegar por ningún sitio web.

    Para desactivar esto, emita el siguiente comando en su terminal.

    sudo firewall-cmd --panic-off

    Configuración avanzada

    Los servicios y puertos están bien para una configuración básica, pero pueden ser limitantes en escenarios más avanzados. Las reglas rich y las interfaces directas le permiten agregan reglas de firewall completamente personalizadas a cualquier zona para cualquier puerto, protocolo, dirección o acción.

    Reglas rich

    La sintaxis de las reglas en el lenguaje rico (o rich) están documentadas en el manual FirewallD Rich Language. También puede ejecutar man firewalld.richlanguage desde su terminal para ver la información de ayuda del propio FirewallD. Use --add-rich-rule, --list-rich-rules y --remove-rich-rule con el comando firewall-cmd para administrar estas reglas. 

    Agregar dirección IP en Firewalld

    sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.4" accept'

    Al hacerlo, firewalld aceptará paquetes IP v4 de la IP de origen 192.168.1.4.

    Bloquear una dirección IP de Firewalld

    Del mismo modo, para bloquear cualquier dirección IP

    sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.4" reject'

    Al hacerlo, firewalld eliminará / descartará todos los paquetes IP v4 de la IP de origen 192.168.1.4


    Interfaz directa a iptables

    Para un uso aún más avanzado, o para expertos en iptables, FirewallD proporciona una interfaz directa que permite pasarle comandos de iptables directamente. Las reglas de Interfaz Directa no son persistentes a menos que utilice el parámetro --permanent.

    Para ver todas las cadenas o reglas personalizadas añadidas a Firewall usa

    firewall-cmd --direct --get-all-chains
    firewall-cmd --direct --get-all-rules

    Guardar reglas de Firewalld

    sudo iptables -S | tee ~/firewalld_iptables_rules

    Lo mismo para las reglas ipv6

    sudo ip6tables -S | tee ~/firewalld_ip6tables_rules 


    Bonus: Controlar el firewall de Windows desde Netsh 

    Es un firewall de host con estado que ayuda a proteger el dispositivo al permitirle crear reglas que determinen qué tráfico de red puede entrar en el dispositivo desde la red y qué tráfico de red puede enviar el dispositivo a la red. Firewall de Windows Defender también es compatible con la seguridad de protocolo de Internet (IPsec), que puede usar para requerir la autenticación de cualquier dispositivo que intente comunicarse con el dispositivo.

    Controlar el firewall de Windows desde Netsh, también conocido como Network Shell.

    Para acceder debemos entrar en el Símbolo del sistema. Vamos a Inicio, escribimos CMD y lo ejecutamos en modo de administrador. Posteriormente ejecutamos

      netsh advfirewall

     

    netsh advfirewall set currentprofile state on

    Pongamos por ejemplo que queremos habilitar el puerto 80 del cortafuegos y lo queremos hacer desde la línea de comandos. En este caso tendríamos que ejecutar:

    netsh advfirewall firewall add rule name= «Open Port 80» dir=in action=allow protocol=TCP localport=80

    Si queremos eliminar un programa o un puerto también podemos hacerlo fácilmente. En este caso tendríamos que ejecutar:

    netsh advfirewall firewall delete rule name= rule name program=»C:ProgramasPrograma.exe» (en el caso de un programa)

    netsh advfirewall firewall delete rule name= rule name protocol=udp localport=500 (en el caso de un puerto, el que sea)

    Si hemos realizado cambios para probar algunos parámetros y queremos volver a como estaba originalmente, podemos hacerlo fácilmente. Simplemente hay que restaurar los valores predeterminados, que podemos hacerlo también desde la línea de comandos. En esta ocasión hay que ejecutar:

    netsh advfirewall reset

    Más información y ejemplos:


    0 comentarios :

    Publicar un comentario

    Los comentarios pueden ser revisados en cualquier momento por los moderadores.

    Serán publicados aquellos que cumplan las siguientes condiciones:
    - Comentario acorde al contenido del post.
    - Prohibido mensajes de tipo SPAM.
    - Evite incluir links innecesarios en su comentario.
    - Contenidos ofensivos, amenazas e insultos no serán permitidos.

    Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.