
Control centralizado de cortafuegos
El control centralizado de firewall proporciona una forma centralizada de gestionar el firewall en múltiples servidores o balanceadores de carga que ejecutan iptables. De esta manera, puedes permitir/bloquear/eliminar/buscar rangos de abuso, etc., rápidamente con un solo comando en varios servidores. Accede a esos servidores a través de SSH.
Soporta tanto IPv4 como IPv6.
Probado en Debian 6.x / 7.x / 8.x / 9.x, pero debería funcionar en cualquier distribución.
Para usar las funciones 'precheck', 'protected' y 'findip' para IPv6, necesitas tener instalado el módulo de Python 'netaddr'. IPv4 no lo necesita ya que utiliza coincidencia de prefijos en la forma binaria de la IP.
Debian: apt-get install python3-netaddr
Es más eficiente usar 'ipset' además de iptables. Ipset se puede usar para gestionar listas a las que iptables puede referirse y utilizar. Esto funciona más rápido y la manipulación de la lista también es más flexible y es el método preferido para usar este script.
Debian: apt-get install ipset
Dado que este script se conecta a los servidores indicados mediante SSH, dicho acceso debe estar presente antes de que pueda ser utilizado.
Copia la configuración de ejemplo de cfc.cfg-example a cfc.cfg la primera vez.
Los siguientes ajustes se pueden configurar en el archivo de configuración:
Al introducir IPs/rangos con los siguientes comandos, hazlo en notación CIDR, esto se valida y no aceptará nada más.
add:
cfc.sh add n.n.n.n/NN '<optional comment>'
cfc6.sh add <IPv6_address_range> '<optional comment>'
Agrega la IP(rango) dada a los firewalls con la acción configurada para todo el tráfico desde esa fuente. Hace un comentario por defecto con la fecha actual, puedes agregar un comentario opcional usando comillas simples para añadir una razón o propietario de ese rango como ejemplo. También se puede buscar posteriormente por ese comentario.
addstring:
cfc.sh addstring <protocol>:<dport> <string>
cfc6.sh addstring <protocol>:<dport> <string>
Agrega un bloqueo de cadena a iptables para un cierto protocolo y puerto de destino. Un ejemplo práctico sería bloquear un User-Agent destinado a un grupo de servidores web, por lo que una conexión tcp destinada al puerto 80 con la cadena: Firefox/28.0, todo el tráfico entrante que coincida con esa cadena hacia el puerto tcp 80 sería bloqueado:
cfc.sh addstring tcp:80 'Firefox/28.0'
¡Cuidado, esto puede tener grandes consecuencias si la cadena no es lo suficientemente específica!
clean:
cfc.sh clean <older_than_number_of_days>
Limpia todas las reglas de firewall de CFC más antiguas que n cantidad de días. Ten en cuenta que depende del formato de fecha predeterminado. Por lo tanto, si personalizaste el formato de fecha, deberás ajustar el script en la sección 'clean'.
del:
cfc.sh del n.n.n.n/NN
cfc6.sh del <IPv6_address_range>
Elimina la IP(rango)/regla dada de los firewalls.
delstring:
cfc.sh delstring <protocol>:<dport> <string>
cfc6.sh delstring <protocol>:<dport> <string>
Elimina un bloqueo de cadena en iptables para un cierto protocolo y puerto de destino.
find:
cfc.sh find <string>
cfc6.sh find <string>
Busca en los firewalls la cadena dada (no distingue mayúsculas/minúsculas), esto puede ser (parte de) una IP / rango / comentario.
findip:
cfc.sh findip n.n.n.n/NN
cfc6.sh findip <IPv6_address_range>
Busca en los firewalls si la IP(rango) dada ya es parte de una regla agregada, puede ser un poco lento en firewalls grandes para IPv6 (~25 segundos para buscar 500 rangos IP por servidor). IPv4 utiliza coincidencia de prefijos en la forma binaria de la IP, que es aproximadamente un 500% más rápida, también se usa para las funciones precheck y protectedranges.
ipsethostinit:
cfc.sh ipsethostinit <server_name>
cfc6.sh ipsethostinit <server_name>
Agrega una lista IPSET al host especificado y una regla iptables que haga referencia a ella utilizando los parámetros definidos en cfc.cfg. Esto solo debe hacerse una vez antes de agregar reglas de firewall.
last:
cfc.sh last <nr_of_most_recent_rules>
cfc6.sh last <nr_of_most_recent_rules>
Muestra las últimas entradas agregadas a los firewalls.