En una máquina en red de Linux, me gustaría restringir el conjunto de direcciones en la zona "pública" (concepto de cortafuegos), que pueden acceder a ella. Entonces, el resultado final sería que ninguna otra máquina puede acceder a ningún puerto o protocolo, excepto aquellos explícitamente permitidos, una especie de mezcla de
--add-rich-rule='rule family="ipv4" source not address="192.168.56.120" drop'
--add-rich-rule='rule family="ipv4" source not address="192.168.56.105" drop'
El problema anterior es que esta no es una lista real, bloqueará todo ya que si una dirección está bloqueada al no ser la misma que la otra, generando un efecto accidental de "descartar todo", ¿cómo "desbloquearía" un conjunto contiguo? ¿La fuente acepta una lista de direcciones? No he visto nada en mi mirada a los documentos o el resultado de Google hasta ahora.
EDITAR: Acabo de crear esto:
# firewall-cmd --zone=encrypt --list-all
encrypt (active)
interfaces: eth1
sources: 192.168.56.120
services: ssh
ports: 6000/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Pero todavía puedo llegar al puerto 6000 .123
porque mi intención era que si una fuente no está en la lista, no debería poder llegar a ningún servicio o puerto
eth1
de la zona.firewall-cmd --zone=encrypt --remove-interface=eth1
Según
firewalld.richlanguage
:Especifique una máscara de red para la dirección para permitir bloques contiguos.
Aparte de eso, podría intentar crear una
ipset
lista no contigua de IP permitidas.Por ejemplo, en
/etc/firewalld/direct.xml
:Lo real
ipset
tiene que ser creado por separado.fuente
Puede administrar fácilmente por Rich Rule.
Primer paso
Segundo paso: agregar regla enriquecida
192.168.2.2 puede acceder a todos los puertos una vez que agrega una regla enriquecida y bloquea todos los puertos de otra fuente.
Si agrega algún puerto o servicio mediante el siguiente comando, todas las fuentes podrán acceder a él.
Si desea abrir un puerto específico para Ip específico que el siguiente comando
fuente