Tabla de Contenidos

Cómo configurar un buen y rápido cortafuegos

Lo primero que se debe tener en cuenta para optar por un cortafuegos es lo siguiente:

* dejas abierto todos los puertos y cierras los puertos que no utilizáras, * cierras todos los puertos y abres nada más que los que utilizarás, recomiendo esta segunda por ser más segura.

En este caso, eth0 es WAN y el resto de las eth que aparescan son lan

Instalando Firehol

 aptitude install firehol

Configurando Firehol

Editar el fichero /etc/default/firehol y escribir esto:

 START_FIREHOL=YES
 FIREHOL_LOG_MODE="ULOG"
 #If you want to have firehol wait for an iface to be up add it here
 WAIT_FOR_IFACE=""
 

Estas líneas son para que el cortafuegos inicie con el sistema, no muestre los logs en pantalla y para que escuche por cualquier eth. Puedes definirle que solo lo haga por una determinada eth, pero eso se vve hasta poco lógico.

Editar el fichero de configuracion del firehol /etc/firehol/firehol.conf y escribir

esto:

version 5 
 # Accept all client traffic on any interface 
 interface any world 
 policy drop 
 server dns accept #para dns todo el mundo 
 server ssh accept #para ssh todo el mundo 
 server ssh accept src 192.168.X.Y/28 #para ssh solo desde ese IP 
 server http accept # para web todo el mundo 
 server squid accept src 172.16.X.Y/24 # para squid solo esta red 
 server ftp accept # para ftp todo el mundo 
 server jabberd accept #para el jabber todo el mundo 
 server custom adminejabberd tcp/5280 default accept # ejemplo de puertos perzonalizados 
 client all accept 
 

 #Para hacer un NAT simple
 router maqpepe inface eth0 outface eth1 src 172.16.X.Z 
 masquerade 
 route all accept 

Problemas reportados en Debian Lenny

Para lenny se necesita instalar el paquete less

aptitude install less 

luego da un warning

 WARNING
 File '/etc/firehol/RESERVED_IPS' is more than 90 days old.
 You should update it to ensure proper operation of your firewall.
 Run the supplied get-iana script to generate this file
 

para solucionarlo ejecute lo siguiente

 touch -m /etc/firehol/RESERVED_IPS

Esto lo que hace es tocar el fichero y le pone la fecha actual.

Haciendo un NAT

Para hacer NAT específicamente a un ip y un puerto

 router censoe inface eth2 outface eth0 src "172.16.20.15 172.16.20.16" dst 200.55.X.Y
 server ftp accept inface eth2 outface eth0
 server http accept inface eth2 outface eth0
 masquerade
 route all drop

Y para terminar, dejo el listado de palabras asociadas a un puerto con que firehol puede trabajar:

Ejemplo:

Con la F está ftp y hace referencia al puerto 21, con la H está http y hace referencia al puerto 80.

Palabras reservadas

A

AH, all, amanda, any, anystateless, apcupsd, apcupsdnis, aptproxy, asterisk

C

cups, custom, cvspserver

D

darkstat, daytime, dcc, dcpp, dhcp, dhcprelay, dict, distcc, dns

E

echo, emule, eserver, ESP

F

finger, ftp

G

gift, giftui, gkrellmd, GRE

H

h323, heartbeat, http, https, hylafax

I

iax, iax2, icmp, ICMP, icp, ident, imap, imaps, irc, isakmp

J

jabber, jabberd

L

ldap, ldaps, lpd

M

microsoft_ds, mms, ms_ds, msn, multicast, mysql

N

netbackup, netbios_dgm, netbios_ns, netbios_ssn, nfs, nis, nntp, nntps, ntp, nut, nxserver

O

oracle, OSPF

P

p2p, ping, pop3, pop3s, portmap, postgres, pptp, privoxy

R

radius, radiusold, radiusoldproxy, radiusproxy, rdp, rndc, rsync, rtp

S

samba, sip, smtp, smtps, snmp, snmptrap, socks, squid, ssh, stun, submission, sunrpc, swat, syslog

T

telnet, tftp, time, timestamp

U

upnp, uucp

V

vmware, vmwareauth, vmwareweb, vnc

W

webcache, webmin, whois

X

xdmcp