En esta entrada vamos a proteger nuestro sistema Unix con APF (Advanced Policy Firewall).
APF es un sistema de Firewall basado en IPtables, con la peculiaridad de que su manejo e instalación es extremadamente sencilla. Próximamente explicaremos también como instalar BFD, un detector de ataques de fuerza bruta, que unido a APF forman un excelente nivel de seguridad en el servidor, pues trabajan de forma conjunta.
Comenzamos con la instalación de APF:
cd /root/descargas (o la carpeta en la que guardes tus sources) wget http://rfxnetworks.com/downloads/apf-current.tar.gz tar -zxf apf-current.tar.gz cd apf-0.* ./install.sh
Una vez instalado nos indicará las distintas rutas de ficheros de configuración y ejecutables:
Installation Details: Install path: /etc/apf/ Config path: /etc/apf/conf.apf Executable path: /usr/local/sbin/apf AntiDos install path: /etc/apf/ad/ AntiDos config path: /etc/apf/ad/conf.antidos DShield Client Parser: /etc/apf/extras/dshield/
Comenzamos a configurar APF, abirmos el fichero de configuración con nuestro editor favorito, estas son las opciones principales a configurar, recordad leer los comentarios en el fichero de configuración y en los README:
vi /etc/apf/conf.apf
Desactivamos/activamos el cron que desactiva el firewall cada 5 minutos, es útil activarlo mientras estemos de pruebas, pero aseguraos de dejarlo en 0 cuando el server entre en producción:
# Set firewall cronjob (devel mode) # 1 = enabled / 0 = disabled DEVEL_MODE="1"
Interfaces de red que APF va a rastrear su tráfico, ponemos la interfaz que salga a Internet, en este caso es la eth1:
# Untrusted Network interface(s); all traffic on defined interface will be # subject to all firewall rules. This should be your internet exposed # interfaces. Only one interface is accepted for each value. # NOTE: The interfacing structure is being worked towards support of MASQ/NAT IFACE_IN="eth1" IFACE_OUT="eth1"
Por otro lado, podemos configurar que ciertas interfaces no sean rastreadas por el firewall, pueden ser interfaces de tráfico local:
# Trusted Network interface(s); all traffic on defined interface(s) will by-pass # ALL firewall rules, format is white space or comma seperated list. IFACE_TRUSTED="eth0"
Y para terminar la configuración básica, la parte más importante, la sección de puertos, configurable dependiendo de los puertos abiertos necesarios para cada servidor:
Puertos de entrada TCP permitidos:
# Common ingress (inbound) TCP ports IG_TCP_CPORTS="21,25,80,110,443,465"
Puertos de entrada UDP permitidos:
# Common ingress (inbound) UDP ports IG_UDP_CPORTS=""
Puertos de entrada ICMP permitidos:
# Common ICMP (inbound) types # 'internals/icmp.types' for type definition; 'all' is wildcard for any IG_ICMP_TYPES="3,5,11"
Después están las mismas opciones, pero para salida, configurar según los requerimientos de cada uno. Y recordad revisar todas las demás opciones para sacar el mayor partido a este excelente firewall.
Otros dos ficheros importantes a tener en cuenta son :
/etc/apf/deny_host.rules /etc/apf/allow_host.rules
En estos ficheros podemos incluir ips, rangos y reglas a las que denegar acceso (deny_host.rules) o permitir(allow_host.rules) al servidor. Finalmente arrancamos APF:
/usr/local/sbin/apf -s
Eso es peligrosisimo, me eche 4 maquinas intentando configurar eso, no lo intenten, jode el BIOS de la pc
En fin… lo que hay que leer… jajaja
MI maquina después de instalar el APF ya no se puede conectar a ninguna red. NO lo instalen.
No sólo hay que instalarlo, también hay que saber configurarlo ;)
Soy diseñadora de software, yo recomiendo que no jueguen con el APF, los datos de configuración que se modifican son de vital importancia para el SO, un modificación a uno de estos archivos puede dejar el kernel en situacional inconsistente. Si no son profesionales no lo utilicen.
En todos estos años de programación en la U, nunca había hacho algo que creara tanto daño que configurar APF. Una vez configure y lo corri, la ROM de borro. Mi compu nueva se fue a la basura.
Hola,
Con expresar tu opinión sobre APF en un único comentario es suficiente. No hace falta que comentes varias veces con distintos nombres…
Un saludo.