======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