Instalar y configurar firewall APF (DirectAdmin, Cpanel, Plesk)

Febrero 11, 2009 · Filed Under Configurar Servidor, Cpanel, DirectAdmin, Seguridad, Servidores dedicados · Comment 

Uno de los primeros pasos para empezar a proteger nuestro servidor es instalar un firewall. Como os podéis imaginar, la oferta de firewalls es amplia, y a cada administrador le vendrá mejor uno u otro pero creo que el firewall APF es lo suficientemente sencillo, potente y configurable como para que sea una opción a tener en cuenta.

Apf firewall es un sistema de Firewall basado en IPtables por lo que basicamente crea reglas para iptables que de otra manera serían muy dificiles y laboriosas de crear. Personalmente creo que APF sumado al detector de ataques por fuerza bruta BFD puede ser hoy en día una de las mejores configuraciones de seguridad en un servidor ya que se complementan y trabajan conjuntamente.

La manera más sencilla de instalar APF es sin duda hacerlo desde Updatron pero el objeto de este manual es que entendáis un poco mejor como funciona el firewall así que lo explicaré paso a paso.

Lo primero que debemos hacer es descargar, descomprimir e instalar el firewall desde la carpeta que solamos utilizar para nuestras descargas de programas. Para ello desde la consola o SSH tecleamos:

wget http://rfxnetworks.com/downloads/apf-current.tar.gz
tar -zxf apf-current.tar.gz
cd apf-0.*
./install.sh

Con esto tendremos el firewall instalado en /etc/apf y el fichero de configuración del firewall en /etc/apf/apf.conf.

Antes de lanzar el firewall tenemos que configurarlo para que nos abra los puertos necesarios para el correcto funcionamiento de nuestro sistema y para configurar las utilidades que queremos tenga nuestro firewall. Para ello editaremos el fichero de configuración con nuestro editor preferido:

nano /etc/apf/apf.conf

Como podéis observar lo primero que nos encontramos en con que el firewall está en modo pruebas (DEVEL_MODE=”1″), se desactiva cada 5 minutos. Esto es para evitar posibles problemas de mala configuración del firewall (imaginad si se cierra el puerto 22 de SSH y nos quita el acceso SSH al servidor…). De momento lo dejamos así.

Lo primero que tenemos que configurar es dispositivo de red que queremos que rastree el firewal (por defecto eth0), para ello modificamos:

IFACE_IN=”eth0″
IFACE_OUT=”eth0″

También podemos deshabilitar el rastreo de alguno de nuestros dispositivos de red (por ejemplo los que utilicemos para nuestra red local) desde:

IFACE_TRUSTED=”eth1″ #En este caso deshabilitamos eth1.

Podeís revisar el resto del archivo de configuración y customizar vuestro firewall. Nosotros pasaremos a configurar los puertos. Para ello buscamos IG_TCP_CPORTS e IG_UDP_CPORTS (que son respectivamente los puertos TCP y UDP de entrada). Aqui dependiendo del panel de control que utilicéis, tendréis que abrir los puertos correspondientes. Yo os presento configuraciones típicas para Directadmin, Cpanel y Plesk:

Cpanel:

IG_TCP_CPORTS=”21,22,25,53,80,110,
143,443,2082,2083,2086,2087,2095,2096,3000_3500″
IG_UDP_CPORTS=”53″# Puerto DNS

DirectAdmin

IG_TCP_CPORTS=”21,22,25,53,80,110,143,443,2222″
IG_UDP_CPORTS=”53″

Plesk

EG_TCP_CPORTS=”20,21,22,25,53,37,
43,80,113,443,465,873,5224″
IG_UDP_CPORTS=”53″

Ahora activamos el firewall para que rastee el tráfico saliente (egress filtering):

EGF=”1″

y configuramos los puertos que queremos que tengan salida desde nuestro servidor, es decir, los que usemos para conexiones desde el servidor (si vas a descargar desde el servidor con wget el 80, si realizas conexiones SSH el 22, etc). Una posible configuración standard sería:

EG_TCP_CPORTS=”21,25,80,443,43,2089″
EG_UDP_CPORTS=”20,21,53″

La siguiente configuración que realizaremos en el firewall es activar todas las listas de spammers, spambots, etc. En este caso las de Project Honey Pot, Spamhaus, DShield :

DLIST_PHP=”1″
DLIST_SPAMHAUS=”1″
DLIST_DSHIELD=”1″

Si queremos guardar registro de todo el tráfico rastreado por el firewall:

LOG_DROP=”1″

Con esto hemos finalizado de configurar el firewall. Ahora nos aseguraremos de que podemos conectar por SSH, que conectamos al panel de control (WHM, Directadmin, etc), que conectamos por ftp… Para ello lanzamos el firewall en modo de pruebas ya que tenemos DEVEL_MODE=”1″ (se desactivará en 5 minutos por si perdemos acceso):

apf -s #Iniciar firewall

Comprobado todo esto podemos pasar a desactivar el modo de pruebas del firewall:

DEVEL_MODE=”0″

Y ya tenemos el firewall configurado para nuestro panel de control y con varias reglas avanzadas que protegen nuestro sistema.