Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Robert L Zi~ler
Prt'lll <T
1L1ll
iiirs \
ndice de contenido
Acerca del autor .............. ..... .......... ..... .. .. ... .... .................................................
Acerca de los revisores ....................................................................... .. .... .....
Agradecimientos .......................................................................... ... .. .. .... .. .....
Introduccin ............................................................................ ..... .. .................
IX
XI
XIII
XV
CONSIDERACIONES PREVIAS
11
3
4
6
9
16
----
----
---
----
2 Concepto del filtrado de paquetes ..... ........... .. ... ...... ........ .. ............
Un Firewall de filtrado de paquetes ..... ................................................
Eleccin de una directiva predeterminada de filtrado de paquetes .....
Rechazar frente a denegar un paquete ................................................
Cmo filtrar los paquetes entrantes ... ..... .......... ....... .. ..................... .. ...
Cmo filtrar paquetes salientes ............................................................
Servicios de red privados frente a pblicos ........................... .... .. ........
Resumen...............................................................................................
17
20
23
23
24
38
41
59
61
62
66
75
80
86
93
115
121
123
123
126
128
VI
ndice de contenido
4
IIJ
.....................................................................................................
129
131
132
136
149
232
233
233
235
242
247
249
253
256
IV
257
260
261
262
264
267
276
277
335
336
339
343
344
351
277
281
287
327
328
329
331
332
333
APNOICES
Recursos de seguridad......................................................................
Fuentes de informacin ........................................................................
Colecciones de software ......................................................................
Herramientas de seguridad ...................................................................
Herramientas de firewall ......................................................................
Papeles de referencia y FAQ ...................... .. .......................... .. .. .. .. ... .. ..
353
355
356
356
358
359
ndice de contenido
Documentacin en lnea ......... .............................................................
Sitios web generales ................................................................. ....... .. .. .
Libros ....................................................................................................
360
361
362
363
439
ndice alfabtico..............................................................................................
453
364
381
398
428
431
VII
Robert L. Ziegler se gradu en la Universidad de Wisconsin-Madison con una licenciatura de grado medio en Psicologa, adems de terminar las licenciaturas de Alemn y Filosofa. Despus de dedicarse a la educacin y a las carreras estudiadas, decidi hacer de su carrera un hobby y estudi un master en Ciencias de la computacin, tambin en la Universidad de Wisconsin-Madison.
Una vez fuera de la universidad, Bob se convirti en una de las dos personas de
un equipo de programadores de sistemas operativos UNIX que trabajan para una compaa que desarrollaba una mini-supercomputadora. Desarroll una versin multiprocesador del UNIX BSD 4.3 como un proyecto paralelo a los esfuerzos de desarrollo
uniprocesador que tena en marcha el equipo. Desde entonces, ha trabajado como
programador del ncleo de sistemas operativos UNIX para compaas de I+D en el
rea de Boston.
La llegada de Linux y el acceso del consumidor a la conectividad Internet 24n dio
a Bob las claves para un sueo que albergaba desde 1982: tener su propio servidor y
su propia LAN UNIX en su hogar. Lo que empez como un esfuerzo pragmtico por
realizar su propio sistema seguro en Internet, rpidamente creci como una pasin
por el usuario particular de UNIX. Ofrece gratuitamente al pblico, servicios de diseo de firewall (cortafuegos o servidor de seguridad) de Linux basados en Web, al
igual que un firewall popular y unas FAQ de LAN para ayudar a las personas a conseguir configurar rpidamente sus sistemas LINUX de forma segura.
Ahora es ingeniero jefe de Nokia, y est diseando y programando productos de
firewall para la familia de productos Ipsilon de Nokia.
Uno de mis dos amigos de toda la vida muri mientras escriba este libro.
A Gloria Frawley, quien a lo largo de la vida ha sido amiga, amante, hermano,
hermana, padre, hijo, marido, esposa. Hasta que volvamos a caminar juntos,
gracias por el amor ms puro, ms verdadero y ms desinteresado que he
conocido, y por ser la mejor compaera que yo nunca pudiera haber esperado.
Agradecimientos
Nunca he comprendido por qu la gente escribe las secciones de agradecimientos. Quin se molesta en leerlas? Bien, ahora comprendo mejor el porqu.
As, quiero agradecer a Bill Sommerfeld por ofrecerme el primer tutorial cuando
se dio cuenta de lo negado que era; a Gary Zaidenweber por recalcarme la necesidad
de la seguridad y por ayudarme, en un primer momento, a configurar mi sistema; a
mis otros amigos de Hewlett-Packard, que me dieron nimos para ir detrs de mi pasin, especialmente a Mary MacGregor y a mi administradora Cindy Buhner, quienes
son mucho ms agradecidas de lo que pueden imaginarse; a Paul Fox por enviarme
una copia de su propio firewall cuando estaba empezando esta andadura; a Craig Hollabaugh por su generosidad a la hora de dedicar semanas a la revisin editorial de las
FAQ en las que se basa este libro; a Karl Runge por ofrecer semanas de revisin a las
reglas de firewall; a numerosos clientes del grupo de noticias NorthEast Mediaone; a
mi madre, quien confi en m para que encontrase mi propio camino cuando pasaba
apuros con los problemas propios despus de terminar la carrera durante un ao; a
Regina Weyer por estar siempre all, a millas de distancia y durante todos los aos; a
Jonathan Kaplan por ser una fuente de esperanza y apoyo; a Old Person por ser un
amigo constante y una fuente de nimo durante los ltimos aos; a Alan Small por rehacer amablemente las partes ms difciles del texto de este libro, y, por ltimo, pero
no menos importante, a Kitty Jarrett, mi editora, quien de alguna forma sobrevivi a
toda mi inexperiencia. Kitty habla de forma suave y sin malicia. Simplemente observa
y pregunta, a menudo con humor.
Introduccin
XVI
Introduccin
sus hijos, pero eso suele ser slo una parte del problema. Para la mayora, el entorno
particular se considera como un entorno seguro.
Este libro gua a los usuarios particulares y de pequeos negocios en los pasos bsicos que deben seguir para disear e implementar un firewall de filtrado de paquetes. Sin embargo, un firewall es slo un paso ms para crear un sistema seguro. Tambin son necesarias las medidas de seguridad de alto nivel.
La seguridad del equipo requiere una aproximacin de varios niveles. Un solo nivel
de un esquema de seguridad no es suficiente por s mismo. Cada nivel sucesivo depende de las protecciones que ofrecen los niveles inferiores. Los servicios que se habilitan,
adems del firewall, forman la base para la seguridad del sistema. Por ello, este libro se
preocupa de deshabilitar servicios innecesarios, seleccionar los servicios que se harn
pblicos e identificar los servicios locales peligrosos que debe proteger el firewall.
Se examinan los tipos de proteccin de firewall que puede soportar fcil y econmicamente un sistema pequeo. Entre otros temas se trata la idea que subyace al
filtrado a nivel de paquete, cmo configurar su propio firewall, cmo configurar algunos servicios de forma ms segura en trminos del firewall y protocolos de comunicacin, enmascaramiento IP para esconder las identidades de los equipos internos
cuando acceden a Internet, y asegurar que el firewall funcione.
Aunque no es el principal tema del libro, la Parte III, "Supervisin y seguridad y
a nivel de sistema", explica las formas de ms alto nivel de control de acceso. Entre
los temas se incluyen listas de control de acceso compatibles con tcp_wrappers y portmap, la configuracin del servidor, los servidores proxy y las prcticas generales de
administracin de sistemas.
Por ltimo, el libro trata la seguridad del sistema y la supervisin de la integridad,
detectando sondeos e intentos de acceso no autorizados antes de que tenga lugar una
intrusin. Tambin se explican las herramientas para detectar signos de una situacin
comprometida y cmo solucionarla si se descubre una situacin comprometida.
El texto y los ejemplos de este libro se basan en la versin Linux 6.0 de Red Hat.
Los ejemplos estn escritos con la semntica ipchains. Como la conversin de ipfwadm
a ipchains est en proceso actualmente, ya que los sistemas Linux estn usando ambas
versiones en la actualidad, los ejemplos con semntica ipfwadm se incluyen en el
Apndice B, "Ejemplos de firewalls y secuencias de comandos compatibles".
Introduccin
cibidos y muchos sitios se han habituado a ellos y han empezado a considerarlos
como habituales en Internet. Las estimaciones en los documentos del CERT oscilan
entre un crecimiento constante con el crecimiento de Internet hasta un crecimiento
exponencial en 1998.
Cualesquiera que sean los nmeros reales, no hay duda que los intentos globales
de piratera en Internet y su nivel de sofisticacin estn creciendo. Los modelos de las
exploraciones de puerto han cambiado desde simples sondeos de-unos pocos indicadores de seguridad hasta una exploracin de todo el dominio del intervalo completo
del puerto del servicio. Las ltimas herramientas de piratera se comparten en Internet a travs de sitios web, listas de distribucin y grupos de noticias. Varios grupos de
hackers aficionados usan IRC (Internet Relay Chat) para coordinar exploraciones y
ataques en grupo de forma corporativa, a menudo para reducir el riesgo de deteccin.
Algunas de las debilidades recientemente descubiertas se publican rpidamente en Internet e inmediatamente las aprovechan los hackers. Los fabricantes y las organizaciones de supervisin de seguridad se encuentran en una constante carrera con la comunidad hacker, en la que ambos intentan mantenerse un paso por delante del otro.
XVII
XVIII Introduccin
un negocio pequeo, estas dos consecuencias significan la prdida de ingresos, as
como inconvenientes.
No slo el ISP ver al propietario como sospechoso, sino que el propietario puede sufrir una prdida de reputacin ante cualquiera a quien haya molestado alguna accin lanzada por el hacker desde su sistema. Si el ISP no cree en su inocencia personal, lo eliminar como cliente. Si su sitio ha sido identificado como un sitio WAREZ,
o si el hacker atac los sitios equivocados, puede enfrentarse a problemas legales y a
la denuncia pblica.
Por ltimo, se puede borrar o difundir la informacin personal y la informacin
propietaria.
Consideraciones
previ~
1
Conceptos bsicos subyacentes
a los firewalls de filtrado
de paquetes
Captulo 1
.-----C-a_p_a_d_e_a_p_li_c_ac_i__n-----,
Programas de cliente
y servidor
Capa de transporte
Puertos de servicio
y protocolos TCP y UDP
Capa de red/Internet
Paquetes IP,
direccin IP
y mensajes ICMP
______
E
~
Navegador web
Servidor web
Figura 1.1.
Los programas de servidor (por ejemplo, los demonios) escuchan las conexiones entrantes en un puerto de servicio asignado a ellos. Por convencin
histrica, los servicios de red principales estn asignados a nmeros de puerto bien conocidos, en el intervalo inferior, desde 1 a 1023. Estas asignaciones
numricas de puerto a servicio las coordina la Autoridad de asignacin de nmeros de Internet (IANA, Internet Assigned Numbers Autboriry) como un
conjunto de convenciones o estndares universales de mutuo acuerdo.
Estos puertos de intervalo inferior se llaman puertos privilegiados porque sus propietarios son programas que ejecutan privilegios del nivel de sistema (es decir, superusuario o root). La idea es incrementar la confianza en
que el programa del cliente est realmente conectado al servicio anunciado
que se desea. Esta es la intencin, pero no una garanta. El usuario nunca puede tener la absoluta certeza de que una mquina remota o un servicio remoto es quien o lo que dice ser.
Un servicio anunciado es simplemente un servicio disponible en Internet
desde su puerto asignado. Si una mquina no ofrece un servicio particular y
alguien intenta conectarse al puerto asociado con dicho servicio, no ocurrir nada. Estn llamando a la puerta, pero nadie vive all para abrirle. Por ejemplo, los servidores web estn asignados al puerto 80. Si una mquina no ejecuta un servidor web y alguien intenta conectarse al puerto 80, el programa
Nmero de puerto/Protocolo
ftp
telnet
smtp
whois
domain
domain
finger
pop-3
nntp
www
auth
ntp
https
21/tcp
23/tcp
25/tcp
43/tcp
53/tcp
53/udp
79/tcp
110/tcp
119/tcp
80/tcp
113/tcp
123/udp
443/tcp
Alias
mail
nicname
nameserver
nameserver
readnews
http
ident
Observe que los nombres simblicos asociados con los nmeros de puerto varan segn la versin de Linux. Los nombres y los alias difieren. Los nmeros de puerto no difieren.
Tenga tambin en cuenta que los nmeros de puerto estn asociados con
un protocolo. La IANA ha intentado asignar el mismo nmero de puerto de
servicio tanto al protocolo TCP como al protocolo UDP, sin tener en cuenta
si un servicio particular usa ambos protocolos. La mayora de los servicios
usan un protocolo u otro. El servicio domain usa ambos protocolos.
..:.:],_:.
.
.....;;_ ti
10
Captulo 1
de protocolo ICMP y un tipo de mensaje ICMP. Un tipo de mensaje ICMP indica si el paquete es un comando, una respuesta a un comando, informacin
de estado o una condicin de error. Los tipos de mensaje individuales ICMP
se explican en el Captulo 3, "Creacin e instalacin de un firewall". Los mensajes ICMP no contienen puertos origen y destino. No se envan entre programas, sino entre los equipos origen y destino.
Un ejemplo de mensaje ICMP es un mensaje de estado de error. Si intenta conectarse a un servidor web remoto y el servidor web no se est ejecutando en el host remoto, el host remoto devolver un mensaje de error ICMP
indicando que el servicio no existe. Los campos de inters del encabezado
del paquete se muestran en la Figura 1.2.
Navegador web
Puerto 14000
Direccin 192.168. I0.30
Host remoto
Puerto 80
Direccin 10.10.22.85
Navegador web
Puerto 14000
Direccin 192.168. I0.30
Host remoto
Puerto 80
Direccin 10.10.22.85
Protocolo: ICMP
Tipo de mensaje: Servicio no disponible
Direccin de origen: 10.10.22.85
Direccin destino: 192.168.10.30
Figura 1.2.
Captulo 1
Un encabezado de paquete UDP contiene las direcciones IP origen y destino, el tipo de protocolo UDP y los nmeros de puerto de servicio origen y
destino.
No es UDP confiable?
UDP se conoce como un servicio de datagrama no confiable. No confiable no implica ninguna connotacin negativa para la utilidad de UDP. No confiable, en este
caso, significa que no se realiza ningn esfuerzo para asegurar la entrega correcta.
Por ello, sin la sobrecarga de TCP orientada a la conexin y confiable, la trasferencia
de datos basada en UDP es varias veces ms rpida que la transferencia de datos basada en TCP. Por ello, UDP se presta a tipos de comunicacin sencillas de peticin y
respuesta.
11
12
Servidor de tiempo
Puerto 123
Direccin 10.10.22.85
Protocolo: UDP
Direccin origen: 192.168. I0.30
Puerto origen: 14000
Direccin destino: 10.10.22.85
Puerto destino: 14000
Servidor de tiempo
Puerto 123
Direccin 10.10.22.85
Protocolo: UDP
Direccin origen: 10.10.22.85
Puerto origen: 123
Direccin destino: 192.168. I0.30
Puerto destino: 14000
Figura 1.3.
Cuando un programa cliente inicia una conexin a un servidor, se selecciona un puerto del grupo no privilegiado del cliente. La combinacin
de la direccin IP del cliente y del nmero de puerto definen el socket del
cliente. En el lado del servidor, la combinacin de direccin IP de host y el
nmero de puerto conocido del servidor forman el socket del servidor. La
conexin entre cliente y servidor se define de forma unvoca mediante este
par de sockets.
Cada conexin individual entre un cliente dado y un servidor, quiz slo
una en un conjunto de conexiones simultaneas a dicho servidor (por ejemplo, un servidor web), se define unvocamente mediante la direccin origen
y el nmero de puerto del cliente, junto con la direccin IP del servidor y el
nmero de puerto asignado.
El encabezado de un paquete TCP contiene las direcciones origen y destino IP, el tipo de mensaje de protocolo TCP, los puertos de servicio destino
y los nmeros de secuencia y de confirmacin, as como los indicadores de
control que se usan para crear y mantener un circuito virtual confiable, o conexin bidireccional activa.
Captulo 1
Navegador web
Puerto 14000
Direccin 192.168. I0.30
Servidor web
Puerto 80
Direccin 10.10.22.85
Protocolo: TCP
Direccin origen: 192.168.10.30
Puerto origen: 14000
Direccin destino: 10.10.22.85
Puerto destino: 80 (www)
Indicadores: SYN (peticin de sincronizacin de conexin)
Figura 1.4.
En el encabezado se incluye informacin adicional que no es visible a nivel de filtrado de paquetes. Sin embargo, describir los nmeros de secuencia
asociados con los indicadores SYN y ACK ayuda a clarificar lo que ocurre durante el saludo de tres vas. Cuando el programa cliente enva el primer mensaje de peticin de conexin, se incluye un nmero de secuencia de sincronizacin con el indicador SYN. El cliente solicita una conexin con el
13
14
Navegador web
Puerto 14000
Direccin 192.168. I 0.30
Servidor web
Puerto 80
Direccin 10.10.22.85
Protocolo: TCP
Direccin origen: 10.10.22.85
Puerto origen: 80 (www)
Direccin destino: 192.168.10.30
Puerto destino: 14000
Indicadores: ACK (confirmacin de sincronizacin)
SYN (peticin de sincronizacin de conexin)
Figura 1.5.
Captulo 1
Este primer mensaje es el nico mensaje que el servidor enviar con el indicador SYN activado. ste y todos los mensajes siguientes tienen activado el
indicador ACK. La presencia del indicador ACK en todos los mensajes de servidor, cuando se compara con la ausencia de un indicador ACK en el primer
mensaje de cliente, ser una diferencia importante cuando queramos obtener
la informacin disponible para construir un firewall.
La mquina del usuario recibe este mensaje y responde a l con su propia
confirmacin, despus de lo cual, se establece la conexin. La Figura 1.6
muestra un esquema de esta situacin. De ahora en adelante, tanto el cliente
como el servidor activan el indicador ACK. El indicador SYN no lo volver a
activar ningn programa.
Navegador web
Puerto 14000
Direccin 192.168. I0.30
Servidor web
Puerto 80
Direccin 10.10.22.85
Protocolo: TCP
Direccin origen: 192.168.10.30
Punto origen: 14000
Direccin destino: 10.10.22.85
Puerto destino: 80 (www)
Indicadores: ACK (confirmacin)
Figura 1.6.
15
16
Captulo 1
Navegador web
Puerto 14000
Direccin 192.168.10.30
Servidor web
Puerto 80
Direccin 10.10.22.85
Protocolo: TCP
Direccin origen: 10.10.22.85
Puerto origen: 80 (www)
Direccin destino: 192.168.10.30
Puerto destino: 14000
Indicadores: ACK (confirmacin)
Figura 1. 7.
Resumen
Los sencillos ejemplos de este captulo muestran la informacin en la que
se basan los firewalls de filtrado de paquetes. El Captulo 2, "Conceptos <le
filtrado de paquetes", profundiza en esta introduccin, describiendo cmo se
usan los tipos de mensaje ICMP, UDP y TCP y los nmeros de puerto de servicio para definir un firewall de filtrado de paquetes.
11
Filtrado de paquetes y medidas
bsicas de seguridad
2
3
4
2
Conceptos del t11trado
de paquetes
20
Captulo 2
Captulo 2
Usando un hbrido del modelo de referencia TCP/IP, un firewall de filtrado de paquetes funciona en las capas de red y de transporte, como se muestra en la Figura 2.1.
Capa de aplicacin
Programas cliente
y servidor
Capa de transporte
Puertos de servicio de los
protocolos TCP y UDP
Capa de red
Paquetes IP, direccin IP
y mensajes ICMP
Capa de vnculo de datos
Tramas Ethernet
y direccin MAC
Cliente telnet
Servidor web
Firewall
Puertos TCP/UDP origen y destino
Indicadores de estado de la conexin TCP
Direccin origen y destino IP
Cdigos de control ICMP IP
---------1~~-T_a_ri_eta~d_e_in_t_erfa~z_d_e_r_e_d~~
Capa fisica
Cable de cobre, cable
de fibra ptica y microondas
Figura 2.1.
21
22
Captulo 2
para el filtrado de paquetes. Este tipo de filtrado pertenece a un nivel demasiado bajo como para permitir autenticacin y control de acceso preciso. Estos servicios de seguridad deben proporcionarse a niveles ms altos. IP no tiene la capacidad de verificar que el emisor es quien o lo que dice ser. La nica
informacin de identificacin disponible en este nivel es la direccin origen
del encabezado de paquete IP La direccin origen se puede modificar fcilmente. Ni la capa de red ni la de transporte pueden verificar que los datos de
la aplicacin son correctos. Sin embargo, el nivel de paquete permite un control ms preciso y sencillo sobre el acceso directo a un puerto, el contenido
del paquete y los protocolos de comunicacin correctos que se pueden establecer fcilmente o de forma adecuada, en niveles superiores.
Interfaz de red
Paquete de entrada
Cadena de entrada
Cadena de salida
Figura 2.2.
Paquete de salida
Sin filtrado a nivel de paquete, el filtrado de alto nivel y las medidas de seguridad proxy son intiles o probablemente ineficaces. Hasta cierto punto,
Captulo 2
23
24
Captulo 2
Cadena de firewall
Aceptar
Aceptar
Directiva:
DENY (denegar)
Figura 2.3.
La denegacin es casi siempre la mejor eleccin. Hay tres razones para esto.
Primero, enviar una respuesta de error duplica el trafico de red. La mayora de
los paquetes se descartan porque son malvolos, no porque representen un intento inocente de acceder a un servicio que no se le ha ocurrido ofrecer. Segundo, cualquier paquete al que responda se puede usar en un ataque por denegacin de servicio. Tercero. cualquier respuesta, incluso un mensaje de
error, ofrece informacin potencialmente til a quien podra ser un hacker.
Captulo 2
Paquete IP
Cadena de firewall
Denegar
Denegar
Directiva:
ACCEPT (Aceptar)
Figura 2.4.
Devolver error
al enviar
Descartar
Paquete
Figura 2.5.
25
26
Captulo 2
Captulo 2
Direcciones reservadas de la clase E: Las direcciones IP en el intervalo de la clase E se han reservado para usos futuros y experimentales y
no se asignan pblicamente. El intervalo comienza en la direccin
240.0.0.0 y termina en 247.255.255.255. Su mquina nunca deberia ver
paquetes de estas direcciones origen y es muy probable que no lo
haga. Las redes de defensa e inteligencia son lo bastante buenas como
para no perder sus paquetes.
Direcciones de interfaz de bucle invertido: La interfaz de bucle invertido es una interfaz de red privada que usa el sistema UNIX para
servicios locales basados en red. En lugar de enviar el trfico local a
travs del controlador de la interfaz de red, el sistema operativo toma
un atajo a travs de la interfaz de bucle invertido como una forma de
mejorar el rendimiento. Por definicin, el trfico de bucle invertido
apunta al sistema que lo gener. No sale fuera de la red. El intervalo
de las direcciones de bucle invertido es 127.0.0.0 a 127.255.255.255.
Normalmente se ver como 127.0.0.1, localhost o la interfaz de bucle
invertido lo.
Direcciones de difusin mal formadas, las direcciones de difusin son
direcciones especiales que se aplican a todas las mquinas de una
red. La direccin O.O.O.O es una direccin origen de difusin especial.
La direccin origen de difusin ser O.O.O.O o una direccin IP normal.
Los clientes DHCP vern los paquetes de difusin entrantes procedentes de la direccin origen O.O.O.O. Ignoro personalmente cualquier
otra situacin donde se puede ver la direccin de difusin O.O.O.O. No
es una direccin origen punto a punto legtima. Cuando se ve como
la direccin origen en un paquete no de difusin regular, la direccin
est falsificada.
27
28
Captulo 2
Captulo 2
de clientes remotos a sus servicios siguen el mismo modelo, y todas las respuestas entrantes de servidores remotos al cliente local siguen un modelo diferente.
Las peticiones y las conexiones de entrada desde clientes remotos a los
servidores locales tendrn un puerto origen del intervalo no privilegiado. Si
se alberga un servidor web, todas las conexiones entrantes al servidor web
debern tener un puerto origen entre 1024 y 65535.
Las respuestas entrantes de los servidores remotos con los que se ha conectado tendrn el puerto origen asignado al servicio particular. Si se conecta a un sitio web remoto, todos los mensajes entrantes procedentes del servidor remoto tendrn el puerto origen establecido a 80, que es el nmero de
puerto del servicio http.
29
30
Captulo 2
Sondeos y exploraciones
Un sondeo es un intento de conectar o de obtener una respuesta desde
un puerto de servicio individual. Una exploracin es una serie de sondeos a
un conjunto de diferentes puertos de servicio. Las exploraciones suelen estar
automatizadas.
En todo momento, los sondeos y las exploraciones son inofensivos. En Internet, la nica forma de descubrir si un sitio ofrece un servicio concreto es
sondear el puerto. Cmo saber si un sitio tiene un servidor web si no se conoce su URL? Intente acceder a su sitio web. En otras palabras, debe sondear el puerto http.
Por desgracia, los sondeos y las exploraciones rara vez son inocentes. Es
ms probable que sean la fase inicial de recopilacin de informacin, que busca debilidades interesantes antes de lanzar un ataque de un hacker. En 1998,
en particular, se produjo un incremento exponencial de las exploraciones
todo el mundo. Las herramientas de exploracin automatizadas son de uso generalizado, y los esfuerzos coordinados por grupos de hackers son habituales.
Captulo 2
Puertos de servicio
TCPy/o UDP
1023
Figura 2.6.
65535
31
32
Captulo 2
Puertos de servicio
TCPy/o UDP
telnet
1~
1~
~
~
~
Exploracin destino
1~
route
(udp 520)
socks
(tcp 1080)
8 sondeos
Figura 2.7.
Captulo 2
33
34
Captulo 2
en lugar de rescindirles las cuentas. Y, pueden ser inocentes de todo. Con mucha frecuencia, el sistema de la persona est comprometido y no tienen ni
idea de lo que sucede. Estarn agradecidos por la informacin.
Captulo 2
Inundacin ping
Cualquier mensaje que provoque una respuesta de la mquina se puede
usar para degradar la conexin de red obligando al sistema a gastar la mayor
parte del tiempo respondiendo. El mensaje de peticin de eco ICMP que se
ha enviado mediante ping suele ser un posible culpable.
Adems, un viejo programa de piratera llamado Ping de la muerte se dedicaba a enviar grandes paquetes de ping. Como resultado, los sistemas vulnerables podran dejar de funcionar. Linux no es vulnerable a este programa,
como tampoco lo son otros sistemas operativos UNIX actuales. Si un firewall
protege sistemas viejos, estos sist~mas s pueden ser vulnerables.
La proeza de Ping de la muerte da una idea de cmo puede usar el hacker creativo los protocolos ms simples y las interacciones de los mensajes.
No todos los intentos de piratera son intentos de introducirse en un equipo,
algunos son simplemente destructivos. En este caso, el objetivo es bloquear
la mquina.
ping es una herramienta bsica de redes muy til. Puede que no sea necesario deshabilitar ping completamente. En el entorno de Internet actual, la
gente conservadora recomienda deshabilitar el ping entrante, o al menos limitar de forma severa de quin se pueden aceptar peticiones de eco. Como
la historia del ping est involucrada en ataques por denegacin de servicio,
muchos sitios ya no responden a peticiones ping externas.
Inundacin SYN y usurpamiento de direccin IP
Para obtener ms informacin acerca de la inundacin SYN y del usurpamiento de direcciones IP, consulte el CERT_Advisory_CA-96.21, "TCP SYN Flooding and IP Spoofing Attacks" (Inundacin SYN TCP y ataques de usurpamiento de din:cciones IP)
en ftp://info.cert.org/pub/cert_advisories/CA-96.21.tcp_SYN_flooding.
Inundacin UDP
El protocolo UDP es especialmente til como herramienta de denegacin
de servicio. Al contrario que TCP, UDP es sin estado. No se incluyen meca-
35
36
Captulo 2
El sistema de archivos puede desbordarse si se obliga al sistema a escribir gran cantidad de mensajes en los registros de errores, o si se
inunda el sistema con muchas copias de mensajes de correo electrnico grandes. Puede que sea necesario configurar los lmites de los recursos y una particin independiente para sistemas de archivos que
crezcan o cambien rpidamente.
Los servidores pueden bloquearse si se enva gran cantidad de datos
y se inundan los bfer de entrada, o si se envan datos inesperados.
Los guiones CGI son especialmente vulnerables a menos que se tomen precauciones. Muchas de las debilidades actuales en los servidores se deben a desbordamientos de bfer. Es importante mantener
actualizados e instalar todos los parches y revisiones de software ms
recientes.
La memoria del sistema, las ranuras de la tabla de procesos, los ciclos
de CPU y otros recursos pueden agotarse debido a repetidas y rpidas
invocaciones de servicios de red. Poco se puede hacer aparte de establecer cualquier lmite que se pueda configurar para cada servicio individual, habilitando cookies SYN y denegar en vez de rechazar los paquetes enviados a puertos de servicio no compatibles.
Captulo 2
37
38
Captulo 2
Captulo 2
39
40
Captulo 2
Captulo 2
Los paquetes TCP salientes procedentes de clientes locales tendrn el indicador SYN definido en el primer paquete que se enve como parte del saludo de establecimiento de conexin de tres vas. La peticin de conexin
inicial tendr definido el indicador SYN, pero no el indicador ACK. Todos los
paquetes salientes posteriores a la primera peticin de conexin slo tendrn
definido el indicador ACK. Las reglas de firewall de cliente local permitirn
los paquetes salientes con el indicador SYN o el indicador ACK activado.
Los paquetes salientes procedentes de servidores locales sern siempre
respuestas a una peticin inicial <le conexin iniciada desde un programa
cliente remoto. Cada paquete que se enva desde sus servidores tendr activo el indicador ACK. Las reglas de firewall de servidor local solicitarn que
todos los paquetes salientes de los servidores tengan activo el indicador ACK.
41
42
Captulo 2
Algunos servicios son difciles de configurar correctamente y otros son difciles de configurar de forma segura. Se han escrito libros enteros sobre
cmo configurar algunos de los servicios UNIX ms complicados. La configuracin especfica de servicios queda fuera del objetivo de este libro.
Otros servicios no tienen sentido en una configuracin particular o de pequea empresa. Unos estn dirigidos a administrar grandes redes, proporcionar servicio de enrutamiento de Internet, servicios de informacin de grandes bases de datos, soportar cifrado y autenticacin bidirecionales, etc.
Captulo 2
43
44
Captulo 2
cin 1 define las acciones a realizar cuando se entra y se sale del modo monousuario. El nivel de ejecucin 4 no se usa. Se puede configurar un estado
personalizado. El nivel de ejecucin 6 define las acciones de limpieza finales
a realizar antes de reiniciar el sistema.
Cuando instale un sistema por primera vez y, posteriormente, cuando est
usando el administrador de nivel de ejecucin al que se puede tener acceso
a travs del programa control-panel, se podrn definir los servicios de sistema
que se iniciarn automticamente cuando el sistema arranca. Ambas herramientas de configuracin proporcionan interfaces grficas para administrar
los archivos de inicio del sistema en /etc/rc.d.
Para saber algo sobre el terna, cuando el sistema se inicia, el proceso de
sistema maestro, init, lee el archivo de configuracin, /etc/inittab. Este archivo indica a init que ejecute varias secuencias de comandos en el directorio
/etc/rc.d, incluyendo rc.sysinit y re. /etc/rc.d/rc.sysinit que se ejecutan una vez
en tiempo de inicio para inicializar el sistema, cargar mdulos, comprobar los
sistemas de archivo, leer valores de configuracin de todo el sistema, etc.
/etc/rc.d/rc se ejecuta cada vez que se cambia el nivel de ejecucin. Su trabajo consiste en detener los servicios que no estn definidos para ejecutarse en
este nivel de ejecucin, y luego lanzar los servicios que estn definidos para
ejecutarse en este nivel de ejecucin particular (nivel de ejecucin 3 5, normalmente). El nivel de ejecucin predeterminado se define en el archivo
/etc/inittab. Est preconfigurado como id:3:initdefault. El nivel de ejecucin 2
es la mejor eleccin para una mquina firewall.
Cuando se inicia el editor de nivel de ejecucin, aparece una ventana dividida en nueve listas de nombres ordenadas por orden alfabtico, que son
los nombres de las secuencias de comandos de inicializacin de los servicios
del sistema. La lista situada ms a la izquierda se titula "Available" (Disponible) y contiene los nombres de las secuencias de comandos disponibles en
/etc/rc.d/init.d. El resto de la ventana se divide en dos columnas, etiquetadas
"Start" (Inicio) y "Stop" (Parada). Las dos filas se dividen en cuatro columnas
etiquetadas de 2 a 5, que hacen referencia a servicios que se detienen o inician al entrar a cada uno de los niveles de ejecucin 2 a 5. La Tabla 2.1 lista
las secuencias de comandos de inicializacin de servicio disponibles en la columna situada ms a la izquierda. El contenido exacto depende de los paquetes de servicio especficos que se hayan instalado en el sistema.
Tabla 2. 1.
Descripcin
Consideraciones
Recomendacin
Captulo 2
Tabla 2.1.
(continuacin)
arpwatch
Descripcin
Consideraciones
Recomendacin
Descripcin
Consideraciones
Recomendacin
Descripcin
Consideraciones
Recomendacin
No ejecute bootparamd.
Descripcin
Consideraciones
bootparamd
dhcpd
45
46
Captulo 2
Tabla 2.1.
(continuacin)
Recomendacin
No ejecute dhcpd a menos que realmente lo necesite. No lo ejecute hasta que comprenda su configuracin. No lo ejecute sin un
firewall en el sitio.
Descripcin
Consideraciones
Recomendacin
No ejecute gated.
Descripcin
Consideraciones
Recomendacin
gated
httpd
Captulo 2
Tabla 2.1.
(continuacin)
peticin, posiblemente usa un programa de ayuda parn realizar las
comprobaciones de permiso de acceso, inicia la ejecucin del
programa solicitado si no se ejecuta continuamente, y establece
la conexin saliente entre el programa cliente que realiza la peticin y el programa servidor que atiende la peticin.
Considernciones
Es necesario inetd si usa servicios comunes, como ftp o telnet, localmente, o s ofrece estos servicios a sitios remotos.
Recomendacin
Ejecute inetd.
Descripcin
Consideraciones
Recomendacin
No ejecute innd.
Descripcin
Considernciones
Recomendacin
Ninguna.
Descripcin
Considernciones
Recomendacin
Descripcin
Habilita el archivo mars-nwe y el servidor de impresin parn clientes Novell NetWare parn Windows sobre la LAN.
Consideraciones
Los servidores de archivo local y de impresin no deben ejecutarse en una mquina firewall. Parn habilitar el soporte NetWare,
tendr que volver a compilar el ncleo para que sea compatible
con el nivel de red IPX, compatible con el nivel de transporte SPX
y compatible parn el sistema de archivos SPX. Como indica el documento de ayuda de la configurncin del ncleo, si no lo comprende, no lo habilite.
Recomendacin
innd
linuxconf
lpd
mars-nwe
47
48
Captulo 2
Tabla 2.1.
Descripcin
Consideraciones
mcserv
Recomendacin
Descripcin
Consideraciones
Casi con toda seguridad, la mayora de los servicios DNS los proporcionar el ISP. Ejecutar un servidor local puede mejorar el rendimiento de red. Los servidores DNS simples no suponen riesgos
de seguridad si se configuran correctamente.
Recomendacin
Ejecute named despus de comprender el servidor y cmo configurarlo. La configuracin DNS puede ser complicada y misteriosa. Mientras tanto, dirija el traductor de nombres a los servidores de nombre del ISP.
Descripcin
Consideraciones
netfs
netfs no es un demonio de servicio. Es un guin de shell que se
ejecuta una vez para montar los sistemas de archivos conectados
en red de forma local. Tenga presente la idea general de que, normalmente, los servicios de sistemas de archivos de red no se deben usar en una mquina firewall.
Recomendacin
Descripcin
Consideraciones
Recomendacin
network
Descripcin
Consideraciones
Recomendacin
nfs
Habilita servicios NFS.
NFS se dise como un servicio LAN. Contiene gran cantidad de
debilidades de seguridad si se usa sobre Internet. No permite acceso a Internet a los sistemas de archivos montados NFS. De hecho, no ejecuta NFS en la mquina firewall. NFS lo forman varios
demonios. Dentro del editor de nivel de ejecucin, las secuencias
de comandos de inicializacin se llaman amd, nfs y nfsfs.
No ejecute nfs en la mquina firewall.
Captulo 2
Tabla 2.1.
Descripcin
Consideraciones
Recomendacin
Descripcin
Consideraciones
El demonio portmap RPC se parece a inetd. Administra conexiones a servicios basados en RPC, como NFS y NIS. Si no se usan estos servicios localmente, deshabilite el demonio portmap. Si se
utilizan estos servicios, asegrese de que el firewall bloquea el acceso exterior a portmap. Puede consultar la informacin de control de acceso ms actual de portmap en /etc/hosts.allow y
/etc/hosts.deny.
Recomendacin
Descripcin
Consideraciones
Recomendacin
portmap
postgresql
Habilita el demonio routed para actualizar automticamente el ncleo dinmico de las tablas de enrutamiento.
49
50
Captulo 2
Tabla 2.1.
Consideraciones
Tanto routed como gated representan serios agujeros de seguridad, routed incluso ms que gated. Es improbable que necesite administrar sus propias tablas de enrutamiento de forma dinmica
usando RIP. Este es un servicio que ofrece el ISP. Simplemente use
direccionamiento IP estticos localmente.
Recomendacin
No ejecute routed.
Descripcin
Habilita el demonio rstatd para coleccionar y proporcionar informacin del sistema para otr.is mquinas de la I..AN.
<:011sidcraciones
rstatd
Descripcin
Consideraciones
Un sitio pequeo no tiene necesidad de este servicio I..AN. Adems, el demonio rpc.rusersd depende de los servicios RPC, que
no deben usarse en una mquina firewall.
Recomendacin
Descripcin
Habilita el demonio de servicio rpc.rwalld. Este es un servicio basado en RPC que permite a los usuarios escribir mensajes a las terminales de los dems usuarios que tienen iniciada una sesin en
una mquina de la I..AN.
Consideraciones
Un sitio pequeo no tiene necesidad de este servicio I..AN. Adems, el demonio rpc.rwalld depende de servicios RPC, que no deben usarse en una mquina firewall.
Recomendacin
Descripcin
Habilita el demonio de servicio rwhod. El demonio rwhod es compatible con los servicios rwho y ruptime par.i una 1..AN. Como tales, el servicio ofrece informacin sobre quin tiene una sesin
iniciada, qu estn haciendo, qu sistemas se estn ejecutando y
estn conectados a la I..AN, etc.
Consideraciones
Un sitio pequeo tiene poca necesidad de este servicio l..AN. Idealmente, el demonio rwhod no debera usarse en una mquin.i firewall.
Recomendacin
ruserd
RWALLD
rwhod
sendmail
Descripcin
Captulo 2
Tabla 2.1.
(continuacin)
Consideraciones
sendmail es necesario si alberga servicios propios de correo. Correctamente configurado, sendmail es, actualmente, relativamente seguro. Sin embargo, sendmail sigue estando en el punto de
mira de los hackers. Las actualizaciones de seguridad se ponen a
disposicin a medida que se descubren y corrigen los problemas.
Los servicios SMTP tienen una larga historia de debilidades de seguridad, tanto en trminos de permitir acceso al sistema general
como en trminos de usarse como modo de envo de correo masivo. Se ha realizado un gran esfuerzo para crear versiones actualizadas de sendmail ms seguras. Tal y como se incluye con Red
Hat, la configuracin predeterminada es bastante segura, al menos en trminos de envo de correo no autorizado.
Recomendacin
Descripcin
Consideraciones
Los servicios del sistema de archivos y para compartir dispositivos son servicios LAN y no se deben ejecutar en una mquina firewall. Los servicios Samba no dehen estar disponibles de forma
remota bajo ninguna circunstancia.
Recomendacin
Descripcin
Consideraciones
SNMP es un servicio de administracin LAN. Por motivos de seguridad, como es un servicio UDP local, snmpd no debe ejecutarse en una mquina firewall. Es muy improbable que una LAN pequea lo necesite. Si es necesario usarlo, debe considerarse como
un servicio peligroso y asegrese de bloquear todo el trfico entre la LAN e Internet. No es deseable que las personas extraas administren la red, adems de que no apreciarn la posibilidad de
ver los paquetes originados desde el demonio SNMP
Recomendacin
No ejecute snmpd.
Descripcin
Habilita la Squid Internet Object Cache. Si no se ejecuta el servidor web Apache localmente, squid puede servir como un servidor
proxy HTTP local y como cach web local para las pginas web
obtenidas de sitios remotos. Es necesario algn esfuerzo para configurar squid.
Consideraciones
Si se configura correctamente, squid no implica especiales consideraciones de seguridad si tiene un firewall en un sitio.
Recomendacin
Ejecute squid posteriormente si quiere que las pginas web se inserten en la cach localmente y si usa las caractersticas de cach
del servidor Apache.
smb
snmpd
squid
51
52
Captulo 2
Tabla 2.1.
(continuacin)
syslog
Descripcin
monios de registro del sistema syslogd y klogd en tiempo de inicio. Este servicio es necesario para que el estado del sistema y los
mensajes de error se escriban en los archivos de registro. syslogd
puede configurarse para ser ejecutado como un servicio LAN.
Consideraciones
Recomendacin
Ejecute syslog.
Descripcin
Consideraciones
Aunque xfs puede configurarse para escuchar en un socket de dominio de Internet de TCP para servidores remotos, en su configuracin predeterminada, xfs escucha en un socket de domino
UNIX privado. Como tal, xfs no representa en s un riesgo para la
seguridad. El servidor de X Window depende de xfs. Idealmente,
el servicio no debe ejecutarse en una mquina firewall.
Recomendacin
Descripcin
Consideraciones
Recomendacin
Ejecute xntpd despus de comprender las cuestiones de la configuracin, si desea un servidor de tiempo local para mquinas LAN.
Descripcin
Consideraciones
El paquete NIS incluye las secuencias de comandos de configuracin en tiempo de inicio ypbind, yppasswdd y ypserv. NIS es un
servicio LAN que ofrece funciones de red centralizadas de usuario y de administracin de mquina. No es probable que una pequea LAN lo utilice. Si es necesario usarlo, considrelo como un
servicio peligroso y asegrese de bloquear todo el trafico NIS y
RPC entre la LAN e Internet.
Recomendacin
Descripcin
Consideraciones
El paquete NIS incluye las secuencias de comandos de configuracin en tiempo de inicio ypbind, yppasswdd y ypserv. NIS es un
servicio LAN que ofrece funciones de red centralizadas de usua-
xfs
xntpd
ypbind
yppasswdd
Captulo 2
Tabla 2.1.
(continuacin)
ro y de administracin de mquina. No es probable que una pequea LAN lo utilice. Si es necesario usarlo, considrelo como un
servicio peligroso y asegrese de bloquear todo el trafico NIS y
RPC entre la LAN e Internet.
Recomendacin
Descripcin
Consideraciones
El paquete NIS incluye las secuencias de comandos de configuracin en tiempo de inicio ypbind, yppasswdd y ypserv. NIS es un
servicio LAN que ofrece funciones de red centralizadas de usuario y de administracin de mquina. No es probable que una pequea LAN lo utilice. Si es necesario usarlo, considrelo como un
servicio peligroso y asegrese de bloquear todo el trafico NIS y
RPC entre la LAN e Internet.
Recomendacin
ypserv
#echo
#echo
#discard
#discard
#daytime
#daytime
stream
dgram
stream
dgram
stream
dgram
tcp
udp
tcp
udp
tcp
udp
nowait
wait
nowait
wait
nowait
wait
root
root
root
root
root
root
interna!
interna!
interna!
interna!
interna!
interna!
53
54
Captulo 2
#chargen
#chargen
#time
#time
tcp
udp
tcp
udp
nowait
wait
nowait
wait
root
root
root
root
interna!
interna!
interna!
interna!
Servicios estndar
Varios servicios UNIX estndar se administran bastante bien mediante
inetd, Los servidores ftp y telnet:
ftp--ftp es uno de los medios ms comunes de compartir archivos sobre Internet. Sin embargo, ftp est lleno de agujeros de seguridad y se
ha explotado frecuentemente cuando no se configura de forma segura. Una configuracin correcta es minuciosa y requiere dedicacin:
#ftp
stream tcp
nowait root
nowait root
/usr/sbin/tcpd in.telnetd
Captulo 2
telnet se considera como inseguro sobre Internet porque pasa informacin en formato de texto ASCII sin cifrar, incluyendo el nombre de
inicio de sesin y la contrasea de inicio de sesin. Los rastreadores
de paquetes pueden capturar este tipo de informacin.
Si necesita tener acceso telnet de forma interna, pero no quiere permitir el acceso a inicio de sesin desde sitios remotos, el acceso puede limitarse a las mquinas locales mediante el firewall, mediante
tcp_wrappers y en el archivo /etc/security/access.conf.
gopher. El servicio de obtencin de informacin gopher es un servicio
estndar. Algunas personas todava lo usan, pero ha sido ampliamente
reemplazado por servidores web y motores de bsqueda. Actualmente, es casi innecesario ofrecer este servicio. gopher ha sido eliminado
del archivo /etc/inetd.conf en la versin 6.0 de Red Hat:
#gopher stream tcp
nowait root
/usr/sbin/tcpd gn
nowait root
nowait root
nowait root
/usr/sbin/tcpd in.rshd
/usr/sbin/tcpd in.rlogind
/usr/sbin/tcpd in.rexecd
55
56
Captulo 2
dgram
dgram
dgram
stream
udp
udp
udp
tcp
wait
wait
wait
wait
root
root
root
nobody
/usr/sbin/tcpd
/usr/sbin/tcpd
/usr/sbin/tcpd
/usr/sbin/tcpd
in.comsat
in.talkd
in.ntalkd
in.dtalkd
stream tcp
nowait root
/usr/sbin/tcpd ipop2d
stream tcp
nowait root
/usr/sbin/tcpd ipop3d
imap, Al igual que con pop-3, puede que sea necesario ofrecer servicios de correo imap, si bien la mayora de la gente no necesitar habilitar este servicio:
#imap
stream tcp
nowait root
/usr/sbin/tcpd imapd
uucp
!No habilite uucp! El servicio UUCP ha sido una forma muy habitual de enviar archivos entre mquinas remotas. Algunos servidores de noticias se ba-
Captulo 2
san en uucp para conseguir las noticias. Unos pocos sitios todava lo usan
como alternativa a ftp, bajo condiciones de seguridad controladas con mucho
cuidado, pero est cayendo en desuso:
#uucp
stream tcp
nowait uucp
/usr/sbin/tcpd
/usr/lib/uucp/uucico -1
tftp. Como indica el comentario en el archivo /etc/inetd.conf, no habilite este servicio! Su propsito es cargar el sistema operativo en un
sistema remoto sin disco o en un enrutador sobre la red segura local.
Por desgracia, bastante gente usa tftp como una alternativa a ftp, pensando que es ms seguro porque no utiliza autenticacin. Justo lo contrario es lo correcto:
#tftp
dgram
udp
wait
root
/usr/sbin/tcpd in.tftpd
bootps. BOOTP lo usan las estaciones de trabajo sin disco para descubrir la direccin IP propia, la ubicacin del servidor de inicio y para
iniciar la descargar el sistema sobre tftp antes de iniciar. No puedo imaginar por qu una instalacin de usuario medio particular o de pequea empresa pueda necesitar este servicio. Djelo desactivado:
#bootps dgram
udp
wait
root
/usr/sbin/tcpd bootpd
Servicios de informacin
Los servicios considerados como servicios de informacin en el archivo
/etc/inetd.conf, proporcionan informacin sobre la cuenta del usuario, el proceso, la conexin de red y la configuracin. Si se usan estos servicios, deben
limitarse a otras mquinas de la LAN. Estos servicios escuchan en dos conjuntos de sockets, los sockets de dominio para host remotos inet y los sockets
de dominio UNIX para peticiones locales. Si se deshabilitan estos servicios en
el archivo /etc/inetd.conf, se deshabilitar el acceso de host remotos. El acceso local no se ve afectado:
stream tcp
nowait root
/usr/sbin/tcpd in.fingerd
57
58
Captulo 2
/bin/netstat
Autenticacin
El servicio AUTH se parece algo a finger en el sentido que ofrece informacin del usuario, normalmente a servidores de correo y de noticias, con el
fin de iniciar una sesin cuando se enva correo o se coloca un artculo en las
noticias. Tambin, es poco frecuente que los servidores FTP soliciten una
bsqueda de identd vlida. Si decide habilitar el servicio de autenticacin de
usuario AUTH identd, atngase a las consecuencias. El tema est abierto a debate, con gente que apoya cada una de las perspectivas y con buenas razones
para su eleccin. Algunos insisten en habilitar el servicio como una cuestin
de cortesa. Otros lo deshabilitan para mantener la privacidad de la informacin de la cuenta de usuario:
Captulo 2
Resumen
Una vez analizados los fundamentos de los protocolos IP y las consideraciones sobre los servidores ya explicados, en el Captulo 3 mostraremos el
proceso de creacin de un firewall real para un sitio. La secuencia de comandos del firewall usa la informacin que se encuentra disponible en los paquetes de red descritos en el Captulo 1 para construir las reglas de entrada
y salida especficas del firewall que implementen los conceptos explicados
en este captulo.
59
3
Creacin e instalacin
de un :ftrewall
62
Captulo 3
Los firewall de sistema de una sola mquina y el firewall bastin son las
formas menos seguras de la arquitectura firewall. Si se comprometiera el host
firewall, cualquier mquina local estara abierta a un ataque. Al ser un firewall
independiente, es una proposicin de todo o nada. Como este libro est destinado a los usuarios particulares y o de pequeas empresas, se supone que
la mayora de los usuarios particulares tienen un nico equipo conectado a
Internet, o una sola mquina firewall que protege a una pequea LAN privada. Sin embargo, hablar de "formas menos seguras", implica que estos firewall sean inseguro, auqnue no sean tan flexibles que las arquitecturas ms
complejas que implican mltiples mquinas. El Captulo 4 introduce configuraciones ms flexibles que permiten una proteccin adicional de la seguridad interna para configuraciones ms complicadas de LAN y de servidor de
las que se puede conseguir con un firewall de sistema de una sola mquina.
Captulo 3
las tablas del ncleo y, por tanto, el orden de comparacin de cada regla con
cada paquete.
A medida que llega a la interfaz de red cada paquete originado externamente, sus campos de encabezado se comparan con cada regla de la cadena input de la interfaz hasta que se encuentra una coincidencia. A la inversa, conforme se enva cada paquete generado internamente a una interfaz de red, sus
campos de encabezado se comparan con cada regla de la cadena output de la
interfaz hasta que se encuentra una coincidencia. En ambas direcciones, cuando se encuentra una coincidencia, la comparacin se detiene y se aplica la disposicin de paquetes de la regla: ACCEPT, REJECT o DENY. Si el paquete no
coincide con ninguna regla de la cadena, se aplica la directiva predeterminada
de dicha cadena. Lo ms importante es que la primera regla que coincide gana.
Los puertos de servicio, en todos los ejemplos de reglas de este captulo,
se usan mediante sus nmeros, en vez de por sus nombres simblicos, como
se listan en el archivo /etc/services. El programa ipchains es compatible con los
nombres de puerto de servicio simblicos. Los ejemplos de este captulo
usan los valores numricos, ya que los nombres simblicos no son consistentes entre las diferentes versiones de Linux, o incluso entre una versin y
la siguiente. Se pueden usar los nombres simblicos en las reglas por motivos
de claridad, pero recuerde que el firewall puede ser inservible con la siguiente actualizacin del sistema.
ipchains es un programa C compilado. Debe llamarse una vez por cada regla de firewall individual que se defina. Esto se hace desde una secuencia de
comandos del shell. Los ejemplos de este captulo suponen que la secuencia
de comandos del shell se llama /etc/rc.d/rc.firewall. En los casos donde la semntica del shell difiera, los ejemplos se escriben con la semntica de los
shell Bourne (sh), Korn (ksh) o Bourne Again (bash).
Los ejemplos no estn optimizados. Se explican detalladamente por motivos de claridad y para mantener la compatibilidad conceptual y de conjunto
de las caractersticas entre ipchains e ipfwadm. Los dos programas usan diferentes argumentos de lnea de comandos para hacer referencia a caractersticas similares y ofrecen atajos y capacidades de optimizacin ligeramente diferentes. Los ejemplos se presentan usando las caractersticas comunes a
ambos programas.
[-s
[-d
63
64
Captulo 3
Tabla 3.1.
Opcin
Descripcin
-A [cadena]
-1 [cadena]
-i <interfaz>
-p <protocolo>
-y
! -y
El indicador ACK debe estar activado en un mensaje TCP, indicando una respuesta inicial a una peticin de conexin o
una conexin establecida y activa. Si no se incluye -y como
argumento, no se comprueban los bits indicadores de TCP.
-s <direccin> [<puerto>]
Especifica la direccin origen del paquete. Si no se especifica una direccin origen, estn implicadas todas las direcciones origen unidifusin. Si se da un puerto o un intervalo de puertos, la regla se aplica slo a dichos puertos. Sin
un especificador de puerto, la regla se aplica a todos los
puertos origen. Un intervalo de puertos se define mediante un nmero de puerto inicial y un nmero de puerto final, separados por dos puntos (por ejemplo, 1024:65535).
Si se da un puerto, se debe especificar una direccin.
-d <direccin> [<puerto>]
Especifica la direccin destino del paquete. Si no se especifica una direccin destino, estn implicadas las direcciones destino unidifusin. Si se da un puerto o un intervalo
de puertos, la regla slo se aplica a dichos puertos. Sin un
especificador de puerto, la regla se aplica a todos los puertos destino. Un intervalo de puertos se define mediante un
nmero de puerto inicial y un nmero de puerto final separados por dos puntos (por ejemplo, 1024:65535). Si se da
un puerto, debe especificarse una direccin.
Captulo 3
Tabla 3.1.
Opcin
Descripcin
-j <directiva>
-1
65
66
Captulo 3
Decimal
Binario
192.168.24.0
11000000.10101000.00011000.00000000
11000000.10101000.00011011 .11111111
Bit
Figura 3.1.
!!
115
23
Una mscara O, 10, significa que no es necesario que los bits de la direccin coincidan. En otras palabras, como no es necesario que coincidan los
bits, usar /O es lo mismo que no especificar una direccin. Cualquier direccin de unidifusin coincide. ipchains tiene un alias interno para la direccin
O.O.O.O/O, any/O.
Direcciones IP expresadas como nombres simblicos
Las redes y host remotos se pueden especificar como nombres de host o red completamente cualificados. El uso de un nombre de host es especialmente recomendable par.i las reglas del firewall que se aplican a un host remoto individual. Esto es especialmente verdadero par.i los host cuya direccin IP puede cambiar, o que
representan de forma invisible varias direcciones IP, como a veces ocurre con un servidor de correo del ISP. Sin embargo, en gener.il las direcciones remotas se expresan
en notacin de tuplas separadas por puntos, debido a la posibilidad de usurpamiento
de direcciones lP
No es posible resolver nombres de host simblicos hasta que se habilite el trfico DNS
en las reglas del firewall. Si se usan nombres de host en las reglas del firewall, dichas
reglas deben verificar las reglas que habiliten el trfico DNS.
Captulo 3
negar predeterminada, todos los servicios de red se bloquean hasta que se define un filtro de aceptacin para permitir el servicio individual.
De igual forma, la secuencia de comandos debe ejecutarse desde el shell
desde la consola. No ejecute la secuencia de comandos del shell desde una
mquina remota o desde una sesin xterm de X Window. No slo se bloquear el trfico de red remoto, sino que el acceso a la interfaz de bucle invertido que usa X Window se bloquear hasta que se vuelva a habilitar explcitamente el acceso a la interfaz.
Adems, recuerde que los filtros del firewall se aplican en el orden en que
se definen en la cadena input o en la cadena output. Las reglas se agregan al final de la cadena en el orden en que se definen. La primera regla que coincida
gana. Por ello, las reglas del firewall deben definirse en orden jerrquico empezando por las reglas ms especficas para terminar con las ms generales.
La inicializacin del firewall se usa para abarcar una extensa rea, incluyendo la definicin de constantes globales que se usan en la secuencia de comandos del shell, vaciar y ordenar cualquier regla existente en las cadenas del
firewall, definir directivas predeterminadas para las cadenas input y output,
volver a habilitar la interfaz de bucle invertido para que el sistema funcione
normalmente, denegar el acceso desde cualquier host o red especficos que
haya decidido bloquear, y definir algunas reglas bsicas para protegerse de direcciones incorrectas y para proteger ciertos servicios que se ejecutan en
puertos no privilegiados.
EXTERNAL_INTERFACE="eth0"
LOOPBACK_INTERFACE="lo"
IPADDR="my.ip.address"
ANYWHERE="any/0"
MY_ISP="my.isp.address.range"
#
#
#
#
su direccin IP
coincide cualquier direccin IP
servidor ISP e intervalo de
direcciones NOC
LOOPBACK="127.0.0.0/8"
#
#
#
#
#
#
#
#
#
intervalo de direcciones
reservadas de bucle invertido
redes privadas de la clase A
redes privadas de la clase B
redes privadas de la clase e
direcciones de la clase o
multidi fusin
direcciones de clase E reservadas
direcciones origen de difusin
CLASS_A="10.0.0.0/8"
CLASS_B=" 172. 16. 0.0/12"
CLASS_C=" 192. 168 .0. 0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
CLASS_E_RESERVED_NET="240.0.0.0/5"
BROADCAST_SRC="0.0.0.0"
67
68
Captulo 3
BROAOCAST_DEST="255.255.255.255"
PRIVPORTS= "0: 1023"
UNPRIVPORTS="1024:65535"
#
#
#
#
Las constantes que no se listan aqu se definen dentro del contexto de las
reglas especficas en las que se usan.
ipchains -F
Captulo 3
Creacin
e instalacin de un firewall
un servidor web remoto, el navegador recibir una condicin de error inmediata indicando que se permite la operacin:
# Establecer la directiva predeterminada a denegar
ipchains -P input
DENY
ipchains -P output REJECT
ipchains -P forward REJECT
En este momento, todo el trafico de red est bloqueado.
Los registros del sistema, el X Window, y los dems servicios locales basados en socket del dominio UNIX vuelven a estar disponibles.
echo 1 >/proc/sys/net/ipv4/tcp_syncookies
Configurar la proteccin contra usuarpamiento IP
en Source Address Verification
for f E /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
#
#
69
70
Captulo 3
En el nivel de filtrado de paquetes, uno de los pocos casos de usurpamiento de direcciones origen que se puede identificar con certeza es la falsificacin de su propia direccin IP. Esta regla deniega los paquetes entrantes
que dicen proceder de su direccin:
# Rechazar los paquetes usurpados que dicen proceder
# de la direccin IP de la interfaz externa
ipchains -A input -i $EXTERNAL_INTERFACE -s $IPADDR -j DENY -1
No es necesario bloquear los paquetes salientes destinados a usted mismo. No volvern diciendo ser de usted y aparentando ser usurpados. Recuerde que si se envan paquetes a la propia interfaz externa, estos paquetes
llegarn a la cola de entrada de la interfaz de bucle invertido, no a la cola de
entrada de la interfaz externa. Los paquetes que contienen su direccin como
direccin origen nunca llegan a la interfaz externa, incluso aunque enve paquetes a la interfaz externa.
Como se explica en el Captulo 2, las direcciones IP privadas que no se
usan se colocan aparte en cada uno de los intervalos de las clases A, B y C,
para su uso en las LAN privadas. No estn destinadas para usarlas en Internet.
Los enrutadores no estn pensados para enrutar paquetes con direcciones
origen privadas. Los enrutadores no pueden enrutar paquetes con direcciones destino privadas. Sin embargo, muchos enrutadores permiten que pasen
los paquetes con direcciones origen privadas a travs de ellos.
Adems, si alguien de la sub red del ISP (es decir, en el lado del enrutador
compartido del usuario) est filtrando paquetes con direcciones IP destino
privadas, se vern incluso si el enrutador no las reenva. Las mquinas situadas en la LAN propia tambin pueden filtrar direcciones origen privadas si se
ha configurado correctamente el enmascaramiento IP o la configuracin del
proxy.
Los tres conjuntos de sig11ientes reglas no permiten los paquetes entrantes y salientes que utilizan cualquiera de las direcciones de red privada de las
Captulo 3
clases A, B o C como sus direcciones origen o destino. Ninguno de estos paquetes debe verse fuera de una LAN privada:
#
#
a direcciones privadas
-s
-d
-s
-d
$CLASS_A
$CLASS_A
$CLASS_A
$CLASS_A
-j
-j
-j
-j
DENY
DENY
DENY -1
DENY -1
direcciones privadas
direcciones privadas
#
#
#
#
$CLASS_B
$CLASS_B
$CLASS_B
$CLASS_B
$CLASS_C
$CLASS_C
$CLASS_C
$CLASS_C
-j
.j
-j
-j
-j
-j
-j
-j
DENY
DENY
DENY -1
DENY -1
DENY
DENY
DENY -1
DENY -1
Como las direcciones de bucle invertido se asignan a una interfaz de software local, que el software del sistema maneja internamente, cualquier paquete que pretenda proceder de tal direccin es intencionadamente falsa.
Observe que se ha escogido registrar el suceso si un usuario local intenta
usurpar la direccin.
Igual que las direcciones que se reservan para usarlas en las LAN privadas,
los enrutadores no sirven para reenviar paquetes originados desde el intervalo de direcciones de bucle invertido. Un enrutador no puede reenviar un
paquete con una direccin destino de bucle invertido.
Las siguientes reglas bloquean los paquetes de difusin que contienen direcciones difusin origen o destino ilegales. La directiva predeterminada del
firewall es denegar todo. Por tanto, las direcciones destino de difusin se deniegan de forma predeterminada y deben habilitarse explcitamente en los
casos donde sea necesario:
71
72
Captulo 3
La primera de estas reglas registra y deniega cada paquete que dice proceder de la direccin 255.255.255_255, la direccin reservada como la direccin destino de difusin. Un paquete nunca ser originado legalmente desde
la direccin 255-255.255.255.
La segunda de estas reglas registra y deniega cualquier paquete dirigido a
la direccin destino O.O.O.O, la direccin reservada como direccin origen de
difusin. Dicho paquete no es un error; es un sondeo especfico dirigido a
identificar una mquina UNIX que ejecuta software derivado de BSD. Como
la mayora del cdigo de red del sistema operativo UNIX se deriva del de BSD,
este sondeo est destinado a identificar mquinas que ejecutan el sistema
operativo UNIX.
Las direcciones de multidifusin son legales slo como direcciones destino. El siguiente par de reglas deniega y registra los paquetes de red multidifusin usurpados:
#
#
#
Los paquetes multidifusin legtimos son siempre paquetes UDP. Como tales, los mensajes multidifusin se envan punto a punto, al igual que cualquier otro mensaje UDP. La diferencia entre paquetes unidifusin y multidifusin es la clase de direccin destino que se usa. La siguiente regla rechaza
los paquetes multidifusin salientes desde la mquina del usuario:
Captulo 3
recciones de multidifusin si no se suscribe a servicios multidifusin. La siguiente regla rechaza los paquetes multidifusin entrantes:
Binario
224.0.0.0
11100000.00000000.00000000.00000000
239.255.255.255
11101111.11111111.11111111.11111111
1
Bit
t
3
15
23
31
La siguiente regla de esta seccin deniega y registra los paquetes que dicen proceder de la red reservada de clase E:
73
74
Captulo 3
Decima:
Binario
240.0.0.0
11110000.00000000.00000000.00000000
247.255.235.255
Bit
t
4
15
23
31
Figura 3.3.
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
input
input
input
input
input
input
input
input
input
input
input
input
input
# 65: 01000001
ipchains
ipchains
ipchains
ipchains
-A
-A
-A
-A
input
input
input
input
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
-i $EXTERNAL_INTERFACE
-i $EXTERNAL_INTERFACE
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
1.0.0.0/8 -j DENY -1
2.0.0.0/8 -j DENY -1
5.0.0.0/8 -j DENY -1
7.0.0.0/8 -j DENY -1
23.0.0.0/8 -j DENY -1
27.0.0.0/8 -j DENY -1
31.0.0.0/8 -j DENY -1
37.0.0.0/8 -j DENY -1
39.0.0.0/8 -j DENY -1
41.0.0.0/8 -j DENY -1
42.0.0.0/8 -j DENY -1
58.0.0.0/7 -j DENY -1
60.0.0.0/8 -j DENY -1
/3 includes 64
need
-i $EXTERNAL INTERFACE
-i $EXTERNAL_INTERFACE
-i $EXTERNAL_INTERFACE
-i $EXTERNAL INTERFACE
65-79 spelled
-s 65.0.0.0/8
-s 66.0.0.0/8
-s 67.0.0.0/8
-s 68.0.0.0/8
S
-j
DENY -1
-j DENY -1
-j DENY -1
-j DENY -1
Captulo 3
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
input
input
input
input
input
input
input
input
input
input
input
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL INTERFACE
$EXTERNAL INTERFACE
$EXTERNAL INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
69.0.0.0/8 -j DENY -1
70.0.0.0/8 -j DENY -1
71.0.0.0/8 -j DENY -1
72.0.0.0/8 -j DENY -1
73.0.0.0/8 -j DENY -1
74.0.0.0/8 -j DENY -1
75.0.0.0/8 -j DENY -1
76.0.0.0/8 -j DENY -1
77.0.0.0/8 -j DENY -1
78.0.0.0/8 -j DENY -1
79.0.0.0/8 -j DENY -1
# 80: 01010000
- /4 masks 80-95
ipchains -A input -i $EXTERNAL_INTERFACE -s 80.0.0.0/4
-j
DENY -1
# 96: 01100000
/4 makses 96-111
ipchains -A input -i $EXTERNAL_INTERFACE -s 96.0.0.0/4 -j DENY -1
126: 01111110
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
ipchains -A input
# 217: 11011001
S
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
S
DENY -1
DENY -1
DENY -1
# 223: 11011111
/6 masks 220-223
ipchains -A input -i $EXTERNAL_INTERFACE -s 220.0.0.0/6
DENY -1
-j
75
76
Captulo 3
Tipo
numrico
Nombre
simblico
Descripcin
echo-reply
destination-unreachable
Un mensaje de estado de error general; un enrutador a lo largo de la trayectoria hasta el destino es incapaz de entregar el paquete al siguiente destino; lo usa traceroute.
source-quench
redirect
echo-request
11
time-exceeded
12
parameter-problem
Captulo 3
Para ver una lista de todos los nombres simblicos ICMP compatibles con ipchains, ejecute ipchains -h icmp. Para ver las asignaciones de la RFC oficial, visite la direccin
http://www.isi.edu/in-notes/iana/assignments/icmp-parameters.
77
78
Captulo 3
Captulo 3
cio de direcciones de red y genera mensajes Echo Reply, que devuelve desde
todos los host que responden en la red.
Slo para ipchains: cmo usar los cdigos de subtipo de mensaje ICMP
Slo para usuarios de ipchains: se puede reemplazar el conjunto general de reglas compatibles con el programa ipfwadm mencionado anteriormente con reglas ms especf'icas permitiendo cualquier mensaje saliente de tipo 3 hacia el ISP, y los mensajes Fragmentation Needed hacia cualquier direccin:
ipchains A input i $EXTERNAL_INTERFACE p icmp
S $ANYWHERE 3 d $IPADDR i ACCEPT
ipchains A output i $EXTERNAL_INTERFACE P icmp
S $IPADDR 3 d $MY_ISP i ACCEPT
ipchains A output i $EXTERNAL_INTERFACE P icmp \
S $IPADDR fragmentation needed d $ANYWflERE j ACCEPT
Para conseguir el propsito del ejemplo, los host externos que tienen permiso para hacer un ping a la mquina del usuario, son mquinas que pertenecen al mismo ISP. Es probable que el centro de operaciones de red, o el soporte de clientes, quiera hacer ping a la interfaz externa. Las peticiones de eco
entrantes que no procedan de los vecinos de la red local se deniegan. El progr.ima ping se usa en diferentes tipos de ataques por denegacin de servicio.
79
80
Captulo 3
Captulo 3
desde la mquina del usuario. Una directiva de firewall predeterminada denegar todo ofrece proteccin contra casi todos los errores de este tipo.
Una directiva de firewall predeterminada denegar todo permite ejecutar
muchos servicios privados detrs del firewall sin correr riesgos. Estos servicios deben permitirse explcitamente a travs del firewall para que los clientes remotos puedan tener acceso a ellos. Sin embargo, esta generalizacin es
slo una aproximacin a la realidad. Aunque los servicios TCP sobre puertos
privilegiados son bastante seguros contra los hacker, menos para uno con
gran nivel y perseverancia, los servicios UDP son inherentemente menos seguros, y algunos servicios se asignan para que se ejecuten sobre puertos no
privilegiados. Los servicios RPC, que normalmente se ejecutan sobre UDP,
son incluso ms problemticos. Los servicios basados en RPC son exteriores
a algn puerto, a menudo un puerto no privilegiado. El demonio portmap
asigna entre el nmero de servicio RPC y el nmero de puerto real. Un examen de puerto puede mostrar dnde se encuentran estos servicios basados
en RPC sin tener que pasar por el demonio portmap.
Ataques smurf
No se debe difundir nada al exterior hacia Internet. La difusin ping, mencionada anteriormente, es el fundamento del ataque por denegacin de servicio smurf IP. Consulte el documento CA-98.01.smurf del CERT en la direccin www.cert.org, si desea
obtener ms informacin sobre ataques smurf.
81
82
Captulo 3
OPENWINDOWS_PORT="2000"
# (TCP) OpenWindows
No es necesario bloquear explcitamente las conexiones entrantes al puerto 2000. Linux incluye el administrador de Open Window.
El problema de las exploraciones de puerto
Las exploraciones de puerto no son dainas por s mismas. Las generan las herramientas de anlisis de red. Actualmente, el problema con las exploraciones de puerto es que las suelen generar personas con intenciones poco menos que honorables.
Estn "analizando" su red, no la de ellos. Por desgracia, esto hace que los curiosos tambin parezcan culpables.
Captulo 3
# (TCP) X Window
La primera regla asegura que no se realiza ningn intento de conexin saliente a los administradores de X Window remotos desde la mquina del
usuario:
# X Window: estableciendo una conexin remota
-y \
conectan al servidor en vez de conectarse directamente a los servidores remotos. El servidor SOCKS se conecta a los servidores remotos, como un
cliente, en su nombre.
Los intentos de conexin a servidores SOCKS remotos son bastante habituales y a menudo implican peligros de intrusin. Las siguientes reglas permiten el uso del puerto 1080 como un puerto local o un puerto cliente remoto, pero rechazan el uso del puerto 1080 como puerto local o puerto de
servidor remoto:
SOCKS_PORT="1080"
# socks (TCP)
La primera regla asegura que no se realiza ningn intento de conexin saliente a servidores SOCKS remotos desde la mquina del usuario:
83
84
Captulo 3
-y \
el servicio NFS_PORT='2049'
Captulo 3
El resto del libro se dedica a definir reglas para permitir el acceso a servicios especficos. La comunicacin cliente/servidor, tanto para servicios basados en TCP como
para los basados en UDP, implica cierta clase de comunicacin bidirecional que usa
un protocolo especfico al servicio. Como tal, las reglas de acceso se representan
siempre como un par E/S. El programa cliente realiza una peticin y el servidor enva
una respuesta. Las reglas para un servicio dado se ordenan por categoras, como reglas cliente o reglas de servidor. La categora cliente representa la comunicacin que
necesitan los clientes locales para acceder a servidores remotos. La categora servidor
representa la comunicacin que necesitan los clientes remotos para acceder a los servicios que albergan sus mquinas.
Los mensajes de aplicacin se encapsulan en mensajes de protocolo de transporte,
TCP o UDP. Como cada servicio usa un protocolo de aplicacin especfico propio, las
caractersticas particulares del intercambio TCP o UDP son, de alguna manera, nicas
del servicio dado.
Las reglas de firewall describen explcitamente el intercambio entre cliente y servidor.
Parte del propsito de las reglas de firewall es asegurar la integridad del protocolo a nivel de paquete. Sin embargo, las reglas de firewall, expresadas en la sintaxis ipchains, no
son demasiado legibles para el usuario normal. En cada una de las siguientes secciones
se presenta el protocolo de servicio a nivel de filtrado de paquetes como una tabla de
informacin de estado, seguido por las reglas ipchains que expresan estos estados.
Cada fila de la tabla lista un tipo de paquete involucrado en el intercambio del servicio. Se define una regla de firewall para cada tipo de paquete individual. La tabla se
divide en columnas:
Descripcin contiene una breve descripcin que indica si el paquete se origina
desde el cliente o desde el servidor y el propsito del mismo.
Protocolo es el protocolo de transporte que se usa actualmente, TCP o UDP, o el
protocolo IP para control de mensajes, ICMP.
Direccin remota es la direccin legal, o intervalo de direcciones, que el paquete
puede contener en el campo de direccin remota.
Puerto remoto es el puerto legal, o intervalo de puertos, que el paquete puede
contener en el campo puerto remoto.
Entrada/Salida describe la direccin del paquete; es decir, si llega al sistema procedente de una ubicacin remota o si sale del sistema hacia una ubicacin remota.
Direccin local es la direccin legal, o intervalo de direcciones, que el paquete
puede contener en el campo direccin local.
Puerto local es el puerto legal, o intervalo de puertos, que el paquete puede contener en el campo puerto local.
Los paquetes del protocolo TCP contienen una columna final, el indicador TCP,
que define los estados legales de SYN-ACK que puede tener.
85
86
Captulo 3
La tabla describe paquetes tanto entrantes como salientes. Las direcciones y los puertos se describen como remotos o locales, relativos a la interfaz de red de su mquina.
Tenga en cuenta que para paquetes entrantes, la direccin remota y el puerto remoto se refieren a los campos origen en el encabezado del paquete IP. La direccin local
y el puerto local se refieren a los campos destino del encabezado del paquete IP. Para
paquetes salientes, la direccin remota y el puerto remoto se refieren a los campos
destino del encabezado del paquete IP. La direccin local y el puerto local se refieren
a los campos origen del encabezado del paquete IP.
Por ltimo, en las pocas situaciones donde el protocolo de servicio implica mensajes
ICMP, observe que los paquetes ICMP del nivel de red IP no estn asociados con el concepto de un puerto origen o destino, como es el caso de los paquetes TCP o UDP de
la capa de transporte. En su lugar, los paquetes ICMP usan el concepto de un tipo de
mensaje de control o estado. Los mensajes ICMP no se envan a programas enlazados
a puertos de servicio particulares. Por el contrario, los paquetes ICMP se envan de un
equipo a otro. Por consiguiente, las pocas entradas de paquetes ICMP que se presentan en las tablas usan la columna puerto origen para contener el tipo de mensaje. Para
paquetes ICMP entrantes, la columna puerto origen es la columna puerto remoto. Para
paquetes ICMP salientes, la columna puerto origen es la columna puerto local.
Captulo 3
Servidor DNS
Puerto 53
Cliente DNS
Puerto 14000
Solicitud de borde de retorno UDP
Respuesta del servidor UDP
Figura 3.4.
87
88
Captulo 3
La Tabla 3.3 lista el protocolo DNS completo para las reglas de cuentas del
firewall.
Tabla 3.3.
Protocolo DNS
Descripcin
Protocolo
Direccin
remota
Puerto remoto
E/S
Direccin
local
Puerto local
Peticin
del cliente local
UDP
NAMESERVER
53
IPADR
1024:65535 -
UDP
Respuesta del
servidor remoto
NAMESERVER
53
IPADR
1024:65535 -
TCP
NAMESERVER
53
IPADR
1024:65535 Cualquiera
TCP
Respuesta del
servidor remoto
NAMESERVER
53
IPADR
1024:65535 ACK
Peticin del
servidor local
UDP
NAMESERVER
53
IPADR
53
UDP
Repuesta del
servidor remoto
NAMESERVER
53
IPADR
53
Peticin del
cliente local
Indicador
TCP
Peticin de
transferencia
de zona local
TCP
Primario
53
IPADR
1024:65535 Cualquiera
Peticin de
transferencia
de zona remota
TCP
Primario
53
IPADR
1024:65535 ACK
Peticin del
cliente remoto
UDP
Cliente DNS
1024:65535
IPADR.
53
Respuesta del
servidor local
UDP
Cliente DNS
1024:65535
IPADR
53
Peticin del
cliente remoto
TCP
Cliente DNS
1024:65535
IPADR
53
Cualquiera
Respuesta del
servidor local
TCP
Cliente DNS
1024:65535
IPADR
53
ACK
Peticin del
cliente remoto
UDP
Cliente DNS
53
IPADR
53
Respuesta del
servidor local
UDP
Cliente DNS
53
IPADR
53
Peticin de
transferencia de
zona remota
TCP
Secundario
1024:65535
IPADR
53
Cualquiera
Respuesta de
transferencia
de zona local
TCP
Secundario
1024:65535
IPADR
53
ACK
Captulo 3
# (TCP/UDP) DNS
-y \
89
90
Captulo 3
Cliente DNS
Puerto 14000
Acceso a la cach
Respuesta del servidor UDP
,.
Figura 3.5.
Las peticiones locales de cliente se envan al servidor DNS local. La primera vez, named no tendr la informacin de la bsqueda, por lo que reenva
la peticin a un servidor de nombres remoto. named guarda en la cach la informacin que se devuelve y la pasa al cliente. La prxima vez que se solicite la informacin, named la encuentra en la cach local y no solicita una peticin remota:
ipchains -A output -i $EXTERNAL_INTERFACE -p udp \
-s $IPADDR 53 \
-d $NAMESERVER 53 - j ACCEPT
ipchains -A input -i $EXTERNAL INTERFACE -p udp \
-s $NAMESERVER 53 \
-d $IPADDR 53 -j ACCEPT
Captulo 3
91
92
Captulo 3
del usuario para conseguir el nombre de la cuenta del usuario que inici la
conexin de correo o de noticias. La Tabla 3.4 lista el protocolo completo de
conexin cliente/servidor para el servicio AUTH.
Transferencias de zona sobre TCP
Los servicios de red a gran escala, como las transferencias de zona DNS, no deben permitirse en pequeos sitios. Indudablemente, puede haber excepciones. Para las excepciones, y para las personas que "van a hacerlo de todas formas'', restrinja la lista
de los sitios secundarios desde los que se aceptan conexiones. Comparta las tablas
DNS slo con sitios remotos seguros.
Tabla 3.4.
Descripcin
Proto- Direccin
colo remota
TCP
Protocolo identd
E/S
Direccin
IndicaPuerto local
local
dorTCP
ANYWHERE 113
lPADDR
1024:65535
ANYWHERE 113
IPADDR
1024:65535 ACK
ANYWHERE 1024:65535 E
IPADDR
113
TCP
Puerto
remoto
e u a 1quiera
e u a 1quiera
TCP
ANYWHERE 1024:65535
IPADDR
113
ACK
-y \
Captulo 3
-y \
93
94
Captulo 3
Descripcin
Proto- Direccin
colo remota
TCP
Puerto
remoto
ANYWHERE 25
E/S
Direccin
local
IPADDR
Puerto local
IndicadorTCP
1024:65535 Cualquiera
TCP
ANYWHERE 25
IPADDR
1024:65535 ACK
TCP
ANYWHERE 1024:65535 E
IPADDR
25
TCP
ANYWHERE 1024:65535
IPADDR
25
TCP
SER\1DOR
POP
1 ]()
s
s
IPADDR
!024:65535 Cual-
Cualquiera
ACK
quiera
TCP
SER\1DOR
POP
110
IPADDR
I024:65535 ACK
TCP
CLIENTE
POP
110
IPADDR
1024:65535 Cual-
TCP
CLIENTE
POP
110
quiera
IPADDR
1024:65535 ACK
Captulo 3
Tabla 3.5.
E/S
IndicaDireccin
Puerto local
dorTCP
local
SERVIDOR
IMAP
143
lPADDR
1024:65535 Cualquiera
TCP
SERVIDOR
IMAP
143
IPADDR
!024:65535 ACK
TCP
CLIENTE
IMAP
143
IPADDR
1024:65535 Cualquiera
TCP
CLIENTE
IMAP
143
IPADDR
1024:65535 ACK
Descripcin
Proto- Direccin
colo remota
TCP
-y \
95
96
Captulo 3
-y \
-y \
Si se prefiere mantener la cuenta de correo electrnico local como direccin pblica, se pueden configurar las cuentas de trabajo y de correo electrnico del ISP para que reenven el correo desde el servidor local. En este
caso, es necesario reemplazar las dos reglas anteriores, para que acepten conexiones desde cualquier lugar, con reglas especficas separadas para cada reenviador de correo.
Captulo 3
# si existe
-y \
-y \
97
98
Captulo 3
Las dos primeras combinaciones son tiks si se usan los servicios de correo electrnico SMTP o IMAP del ISP. El tercer ejemplo es una aproximacin
mixta, donde se transmite el correo a travs del servidor de correo SMTP del
ISP, pero se recibe directamente a travs del servidor SMTP local. La cuarta
aproximacin es totalmente compatible con la ejecucin de un servidor propio independiente de correo, tanto para correo entrante como saliente.
transmisin o servidor
# de correo externo
-y \
-y \
SMTP_GATEWAY="mi.isp.servidor"
# transmisin o servid0r de
# correo externo
Y \
Captulo 3
IMAP_SERVER="mi.servidor.imap"
ipchains -A
-s
-d
ipchains -A
-s
-d
#
#
transmisin o servidor
de correo externo
-y \
-y \
-y \
99
100
Captulo 3
-y \
Captulo 3
Protocolo
Descripcin
Proto- Direccin
colo remota
Puerto
TCP
NEWS
SERVER
119
TCP
NEWS
SERVER
119
TCP
NNTP
E/S
Direccin
IndicaPuerto local
local
dorTCP
IPADDR
IPADDR
1024:65535 ACK
Clientes
TNP
1024:65535 E
IPADDR
119
Cualquiera
TCP
Clientes
TNP
1024:65535
IPADDR
119
ACK
TCP
Noticias
119
IPADDR
1024:65535 Cual-
remoto
1024:65535 Cual
quiera
quiera
Respuesta del servidor remoto TCP
Noticias
119
IPADDR
1024:65535 ACK
NEWS_SERVER="my.news.server"
# servidor externo de
#
noticias, si existe
-y \
101
102
Captulo 3
-y \
Captulo 3
Protocolo TELNET
Puerto
remoto
E/S
IndicaDireccin
Puerto local
dorTCP
local
ANYWl!ERE
23
!PADDR
1024:5535 Cualquiera
ANYWl!ERE
23
!PADDR
102-:5535 ACK
TCP
Clientes
Telnet
1024:65535 E
IPADDR
23
Cualquiera
TCP
Clientes
Telnet
102 !:65535
!PADDR
23
ACK
Descripcin
Proto- Direccin
colo remota
TCP
-y \
-y \
103
104
Captulo 3
En lugar de permitir conexiones procedentes de cualquier lugar, es preferible definir reglas de servidor para cada host o red especficos desde los
que puede originarse una conexin entrante de forma legtima.
Protocolo SSH
Descripcin
Proto- Direccin
colo remota
TCP
ANYWHERE 22
IPADDR
1024:65535
ANYWHERE 22
IPADDR
1024:65535 ACK
ANYWHERE 22
lPADDR
513:1023
TCP
Puerto
remoto
E/S
Direccin
local
Puerto local
IndicadorTCP
e u a 1quiera
e u a 1quiera
ANYWHERE 22
IPADDR
513:1023
ACK
Captulo 3
Tabla 3.8.
Descripcin
Proto- Direccin
colo remota
TCP
IPADDR
22
Cualquiern
TCP
IPADDR
22
ACK
TCP
IPADDR
22
e u a 1-
Puerto
remoto
E/S
quiern
Respuesta del servidor local
TCP
IPADDR
22
ACK
-y \
-y \
105
106
Captulo 3
-y \
-y \
Proto- Direccin
colo remota
TCP
Protocolo FfP
Puerto
remoto
ANYWHERE 21
E/S
Direccin
IndicaPuerto local
local
dorTCP
IPADDR
1024:65535
e u a 1quiera
ANYWHERE 21
IPADDR
1024:655:15 ACK
ANYWHERE 20
IPADDR
1024:655:15 Cual-
TCP
ANYWHERE 20
quiera
lPADDR
1024:65535 ACK
Captulo 3
Tabla 3.9.
Descripcin
Proto- Direccin
colo remota
Puerto
remoto
IndicaDireccin
Puerto local
E/S
dorTCP
local
e u a 1quicr.i
TCP
ANYWHERE 1024:65535
IPADDR
1024:65535
TCP
lPADDR
TCP
IPADDR
21
e u alquiera
TCP
ANYWHERE 1024:65535
IPADDR
21
ACK
TCP
ANYWHERE 1024:65535 E
IPADOR
20
ACK
TCP
ANYWHERE 1024:65535
IPADDR
20
e u a 1-
TCP
ANYWHERE 1024:65535 E
TCP
quier.i
IPADDR
1024:65535
IPADDR
1024:655_~;
e u a 1quiera
ANYWHERE 1024:65535
ACK
-y \
107
108
Captulo 3
-y \
-y \
Captulo 3
-y \
-y \
-y \
Servicios web
Los servicios web se basan en el protocolo de transferencia de hipertexto (HTIP, Hypertext Transfer Protocol). Las conexiones de cliente y servidor
usan las convenciones estndar de TCP. Se pueden usar varios protocolos de
comunicacin de ms alto de nivel y de propsito especial, adems del acceso HTTP general estndar, incluyendo acceso seguro sobre SSL y el acceso
mediante proxy de servidor web que proporciona el ISP. Estos protocolos de
acceso usan diferentes puertos de servicio.
109
110
Captulo 3
Protocolo HTIP
Descripcin
Proto- Direccin
colo remota
Puerto
remoto
E/S
Direccin
IndicaPuerto local
local
dorTCP
TCP
443
IPADDR
ANYWHERE
1024:655:15
e u a 1quierJ
ANYWHERE 44:1
IPADDR
1024:655:\5 ACK
ANYWHERE 1021:655:\5 E
IPADDR
44:'>
TCP
e u a 1quicrn
TCP
ANY\''HERE 1021:65535
IPADDR
4:I
ACK
-y \
Captulo 3
-y \
Proto- Direccin
colo remota
TCP
Protocolo SSL
Puerto
remoto
ANYWHERE 44:\
E/S
IndicaDireccin
Puerto local
dorTCP
local
IPADDR
1024:655:\5
e u al.
quiera
ANYWHERE 443
IPADDR
1024:56535 ACK
ANYWHERE 1024:655:\5 E
IPADDR
44:\
TCP
e ua 1quiera
TCP
ANYWHERE 1024:65535
IPADDR
443
ACK
-y \
111
112
Captulo 3
Las siguientes reglas permiten el acceso al servidor web usando el protocolo SSL:
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp \
-s $ANYWHERE $UNPRIVPORTS \
-d $1PADDR 443 -j ACCEPT
ipchains -A output -i $EXTERNAL_INTERFACE -p tcp
-s $1PADDR 443 \
-d $ANYWHERE $UNPRIVPORTS-j ACCEPT
-y \
Descripcin
Proto- Direccin
colo remota
TCP
TCP
Puerto
remoto
E/S
IndicaDireccin
Puerto local
local
dor TCP
1024:65535
WEBPROXY WEBPROXY S
SERVER
PORTS
IPADDR
WEBPROXY WEBPROXY E
PORT
SERVER
IPADDR
e u a 1quiera
1024:65535 ACK
#
#
#
#
#
-y \
Captulo 3
E/S
IndicaDireccin
Puerto local
dorTCP
local
ANYWHERE
79
IPADDR
1024:56535
TCP
ANYWHERE
79
IPADDR
1024:65535 ACK
TCP
IPADDR
79
Descripcin
Proto- Direccin
colo remota
TCP
e u a 1quiera
e u a 1quiera
TCP
IPADDR
79
ACK
-y \
113
114
Captulo 3
Descripcin
Proto- Direccin
colo remota
TCP
TCP
Puerto
remoto
E/S
Direccin
IndicaPuerto local
local
dorTCP
ANYWHERE U
IPADDR
102-l:611:11
AN'IWHERE 4:1
IPADDR
1024
6~~:1~
e u a 1quierJ
ACK
-y \
Descripcin
Proto- Direccin
colo remota
TCP
Puerto
remoto
ANYWHERE "'O
E/S
Direccin
IndicaPuerto local
local
dorTCP
IPADDR
1024:61~:1';
e u alquiera
ANYWHERE 70
IPADDR
I024:6';';:)'; ACK
Captulo 3
Estas son las reglas de cliente que permiten conectarse a un servidor remoto:
-y \
Descripcin
Proto- Direccin
colo remota
TCP
Puerto
remoto
ANYWHERE 210
E/S
IndicaDireccin
Puerto local
dorTCP
local
IPADDR
1024:655.35
e u a 1quiera
TCP
ANYWHERE 210
IPADDR
1024:65535 ACK
-y \
115
116
Captulo 3
den especificarse de forma explcita en las reglas del firewall. Por tanto, esta
seccin proporciona reglas para slo tres servicios:
traceroute
Protocolo de configuracin dinmica de host (DHCP, Dynamic Host
Configuration Protoco[).
Protocolo de tiempo de red (NTP, Network Time Protoco[).
Descripcin
Protocolo
Direccin
remota
Puerto remoto/
tipoICMP
E/S
Direccin
local
Puerto local/
Tipo ICMP
lJDP
ANYWHERE
33434:33523
IPADDR
32769:65535
Tiempo sobrepasado
(salto intermedio)
JCMP
ANYWHERE
11
IPADDR
Puerto no encontrado
(terminacin)
ICMP
ANYWHERE
IPADDR
lJDP
ISP
32769:65535
IPADDR
33434:33523
Tiempo sobrepasado
(salto intermedio)
ICMP
ISP
IPADDR
11
Puerto no encontrado
(terminacin)
ICMP
ISP
IPADDR
TRACEROUTE_SRC_PORTS="32769:65535"
TRACEROUTE_DEST_PORTS="33434:33523"
Captulo 3
117
118
Captulo 3
Mensaje DHCP
Descripcin
DHCPDISCOVER
DHCPOFFER
DHCPREQUEST
Mensaje del cliente a los servidores para: (a) Pedir los parmetros
que se ofrecen desde un servidor y declinar, de forma implcita,
los que ofrecen todos los dems; (b) Confirmar la exactitud de
las direcciones reservadas previamente despus de, por ejemplo,
reiniciar el sistema o (c) Extender la concesin de una direccin
de red particular.
DHCPACK
Del servidor al diente con parmetros de configuracin, incluyendo direccin de red asignada.
DHCPNAK
DHCPDECLINE
DHCPRELEASE
DHCPINFORM
Del cliente al servidor preguntando slo los parmetros de configuracin local; el cliente ya tiene la direccin configurada de
forma externa (no compatible con Red Hat 6.0).
Captulo 3
Tabla 3.19.
ProtoDireccin remota
colo
Puerto
remoto
E/S
Direccin local
Puerto local
DHCPDISCOVER;
DHCPREQlJEST
lJDP
255.255.255.25)
67
O.O.O.O
68
DHCPOFFER
UDP
0.000
67
255.255.255.255
68
DHCPOFFER
DHCPREQl IEST;
l!DP
DHCP SERVER
67
68
DHCPDECUNE
UDP
DHCP SERVER
67
O.O.O.O
68
DHCPACK; DHCPNAK
UDP
DHCP SERVER
67
ISP/mscara de red
68
DHCPACK
UDP
DHCP SERVER
67
IPADDR
68
DHCPREQUEST;
DHCPRELEASE
UDP
DHCP SERVER
67
IPADDR
68
Descripcin
Las siguientes reglas de firewall permiten la comunicacin entre el cliente DHCP y un servidor remoto:
DHCP_SERVER='mi.dhcp.servidor'
# si se usa uno
# INIT o REBINDING: No existe concesin o La concesin ha caducado.
ipchains -A output -i $EXTERNAL_INTERFACE -p udp \
-s $BROADCAST_0 68 \
-d $BROADCAST_1 67 - j ACCEPT
#
Se re numeran
119
120
Captulo 3
Protocolo NTP
Puerto
ProtoDireccin remota
colo
remoto
E/S
Direccin local
Puerto local
UDP
timeserver
123
IPADDR
1024:65535
lJDP
timeserver
123
IPADDR
1024:65535
Descripcin
Como cliente, se puede usar ntpdate para solicitar peridicamente una serie de proveedores de servicio de tiempo pblico desde una tarea cron. Estos
host se especificarn individualmente en una serie de reglas de firewall:
ipchains -A output -i $EXTERNAL_INTERFACE -p udp
-s $1PADDR $UNPRIVPORTS \
-d <mi.tiempo.proveedor> 123 -j ACCEPT
ipchains A input . i $EXTERNAL_INTERFACE . p udp
-s <mi.tiempo.proveedor> 123 \
-d $1PADDR $UNPRIVPORTS -j ACCEPT
Captulo 3
121
122
Captulo 3
Luego, puede que se quiera registrar de nuevo todos los accesos denegados a puertos privilegiados, con la excepcin de los puertos que se suelen
sondear y de los que nunca se ofrece servicio:
omitir smtp
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp \
-d $IPADDR 26:78 -j DENY -1
omitir NetBIOS
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp \
-d $IPADDR 140:142 -j DENY -1
omitir imap
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp \
-d $IPADDR 144:442 -j DENY -1
omitir sunrpc
ipchains -A input -i $EXTERNAL_INTERFACE -p udp \
-d $IPADDR 112:160 -j DENY -1
omitir snmp
ipchains -A input -i $EXTERNAL_INTERFACE -p udp \
-d $IPADDR 163:634 -j DENY -1
omitir pcAnywhere
ipchains -A input -i $EXTERNAL_INTERFACE -p udp \
-d $IPADDR 5633:31336 -j DENY -1
omitir BackOrifice
ipchains -A input -i $EXTERNAL_INTERFACE -p udp \
-d $IPADDR 31338:33433 -j DENY -1
Captulo 3
omitir traceroute
ipchains -A input -i $EXTERNAL_INTERFACE -p udp \
-s $ANYWHERE 32679:65535 \
-d $IPADDR 33434:33523 -j DENY -1
# omitir el resto
ipchains -A input -i $EXTERNAL_INTERFACE -p udp \
-d $IPADDR 33434:65535 -j DENY -1
. /etc/rc.d/rc.firewall.blocked
fi
123
124
Captulo 3
# su (privado) intervalo de
# direcciones LAN
# su direccin interna de red
LAN
IPADDR 1="192.168.1.1"
ipchains -A input
-s $LAN- 1
ipchains -A output
-d $LAN- 1
-i $LAN - INTERFACE - 1
-j ACCEPT
-i $LAN- INTERFACE 1
-j ACCEPT
Captulo 3
125
126
Captulo 3
Captulo 3
res a Red Hat 6.0. Si se ha actualizado desde una versin anterior, estos pasos
restablecern el entorno anterior:
1.
Red Hat 6.0 reemplaz el cliente DHCP, dhcpcd, con un nuevo cliente, pump. pump no proporciona un mecanismo para ejecutar una secuencia de comandos cuando la direccin IP se asigna o se vuelve a
asignar. Por consiguiente, si no se modifica una de las secuencias de
comandos de inicio de red, /sbin/ifup, no ser posible guardar la informacin dinmica que el servidor DHCP ofrece, ni tampoco ser
posible reiniciar automticamente la secuencia de comandos del fircwall si se reasigna la direccin IP despus de revocar la concesin. Es
necesario modificar la secuencia de comandos ejecutable /sbin/ifup,
para usar el antiguo /sbin/dhcpcd en lugar de /sbin/pump.
Consulte la seccin "Compatibilidad dhcpcd en el archivo /sbin/ifup'',
en el Apndice B, para ver algunos ejemplos de cdigo.
2.
Cree una nueva secuencia de comandos ejecutable del shell, /etc/sysconfig/network-scripts/ifdhcpc-done. Este archivo se inclua como parte de la versin Red Hat hasta la versin 6.0. Lo ejecutaba dhcpcd despus de la asignacin o reasignacin de la direccin IP pump no es
compatible con la ejecucin de una secuencia de comandos.
El objetivo primero, original del ifdhcpc-done, era proporcionar un
mecanismo para informar a /sbin/ifup sobre si dhcpcd consigui con
xito la informacin dinmica desde el servidor DHCP o no. Dependiendo de la versin de Red Hat disponible, el fichero tambin realizaba otras cuantas actualizaciones de archivos.
ifdhcpc-done es el lugar perfecto desde donde ejecutar /etc/rc.d/rc.
firewall, porque ifdhcpc-done se ejecuta cada vez que se asigna o se
cambia la direccin IP Es tambin un lugar til desde donde realizar
otras funciones. Entre estas funciones est el establecimiento del
nombre de dominio del sistema, la actualizacin del archivo /etc/hosts
con la direccin IP actual, la actualizacin del archivo /etc/resolv.conf
si se dispone de un servidor de nombres propio, el lanzamiento de
peticiones a los servidores de nombres del ISP y proporcionar un mecanismo para entregar la direccin actual IP y las direcciones de servidor de nombre a la secuencia de comandos del firewall.
Consulte la seccin "Actualizar direcciones dinmicas e instalar el firewall desde el archivo /etc/sysconfig/network-scripts/ifdhcpc-done",
en el Apndice B, para ver ejemplos de cdigo.
3.
4.
La propia secuencia de comandos del firewall debe incluir las constantes IPADDR y NAMESERVERs del archivo /etc/dhcpc/dhcpdethO.info. Estas direcciones las proporciona el servidor DHCP Las direcciones de los servidores de nombres son bastante estables. La
direccin IP puede cambiar con relativa frecuencia, dependiendo de
la configuracin del servidor DHCP del ISP
127
128
Captulo 3
Resumen
Este captulo explica los procesos involucrados a la hora de programar un
firewall independiente usando el programa ipchains. Se establece, de forma
predeterminada, la directiva denegar. Se han mostrado los posibles problemas iniciales, al igual que el usurpamiento de direcciones origen y la proteccin de los servicios que se ejecutan en puertos no privilegiados. Se han manejado los mensajes ICMP, los mensajes de control y de estado que usa el
nivel de red IP subyacente. Tambin se muestra el servicio de nombres DNS,
en el que se basan todos los servicios de red, y el servicio de identificacin
de usuario AUTH, que es compatible con varios servicios de red habituales.
Se han mostrado ejemplos de reglas para servicios de red populares y ejemplos de cmo controlar el nivel de registro producido. Por ltimo, se describen las cuestiones relacionadas con la instalacin de un firewall, tanto para
sitios con una direccin IP esttica, como para sitios con una direccin IP
asignada de forma dinmica.
Para terminar, se ampla ligeramente la secuencia de comandos del firewall para agregar compatibilidad, de forma que sirva como un firewall bastin para una pequea LAN. En el Apndice B se incluyen ejemplos completos de secuencias de comandos, tanto para ipchains como para ipfwadm.
El Captulo 4 usa el firewall bastin como base para crear una arquitectura de firewall ms complicada y describe una arquitectura de subred explorada usando dos firewalls que separan una red de permetro DMZ. Es probable que una pequea empresa tenga necesidad, y los recursos necesarios,
para implementar esta configuracin ms compleja.
4
Redes de permetro, f1rewalls
mltiples y problemas
con las IAN
130
Captulo 4
Captulo 4
en la LAN interna. Si se produce un error en el firewall bastin, los servidores publicas de la DMZ pueden quedar desprotegidos. El firewall de contencin protege la LAN interna de la mquina bastin desprotegida y de cualquier otra mquina de la red de permetro.
DMZ: una red de permetro con otro nombre
Una red de permetro entre dos firewalls se conoce como una DMZ. o zona desmilitarizada. El propsito de una DMZ es establecer un espacio protegido desde el que
poder ejecutar servidores pblicos (o servicios) y aislar dicho espacio del resto <le la
LAN privada.
131
132
Captulo 4
1 l 1
Servidor
DNS
Servidor
de correo
Web
proxy
Figura 4.1.
Captulo 4
Probablemente, la mayora de los sistemas pequeos no tendrn necesidad de filtrar paquetes entre la red local y el firewall. Sin embargo, como la
mayora de los sitios particulares tienen asignada una nica direccin IP, hay
una excepcin: el enmascaramiento IP. Es de suponer que slo la accin relacionada con el filtrado que se realiza habilitar su propia forma de usurpamiento de direccin origen para enmascarar paquetes que se mueven entre
las mquinas internas e Internet.
Si se dispone de una sola direccin IP pblica para la mquina firewall, y
todas las mquinas internas usan direcciones IP de clase privada, es necesario proporcionar una forma de proxy mediante el enmascaramiento IP. Si las
mquinas internas tienen direcciones IP registradas, tambin se debera asegurar de no reenviar el trfico de forma directa entre la LAN e Internet. Es
mejor usar servidores proxy de nivel de aplicacin o enmascaramiento IP
para las conexiones externas.
En realidad, el enmascaramiento IP es una forma de bajo nivel de realizar
un proxy. Un proxy realiza conexiones a servidores remotos en nombre de
un cliente local. Todas las conexiones salientes parecen originadas desde el
host que ejecuta el servidor proxy. Los paquetes que salen de la LAN se identificarn como si procediesen de la mquina bastin conectada directamente
a Internet, y su direccin origen se reemplazar con la direccin de la interfaz de red externa del bastin. La direccin de los paquetes entrantes destinados a la LAN se volvern a traducir a las direcciones destino internas de los
equipos.
Permitir el acceso no restringido a travs de la interfaz interna es una simple cuestin de permitir todos los protocolos y todos los puertos predeterminados:
ipchains -A input -i $LAN_INTERFACE_1 -s $LAN_1 -j ACCEPT
ipchains -A output -i $LAN_INTERFACE_ 1 -d $LAN_ 1 - j ACCEPT
133
134
Captulo 4
LAN_INTERFACE_2="eth2"
LAN_2="192.168.3.0/24"
Las siguientes reglas permiten el acceso a la mquina firewall:
-j
-j
ACCEPT
ACCEPT
Las siguientes reglas reenvan el trafico en ambas direcciones entre las dos
LAN, sin enmascaramiento:
Captulo 4
travs del firewall. En el proceso, la direccin de la mquina interna se reemplaza con la direccin de la interfaz de red externa de la mquina firewall.
El proceso se invierte par.i las respuestas entrantes. Antes de que el paquete
se reenve a la mquina interna, la direccin IP destino del firewall se reemplazar con la direccin IP real de la mquina interna que participa en la conexin.
No se puede reenviar una conexin entrante a una direccin interna enmascarada, porque la direccin interna es invisible para Internet. Una conexin entrante debe enrutarse directamente a una nica interfaz interna pblica, registrnda oficialmente.
Tanto el reenvo como el enmascaramiento son servicios del nivel <le ncleo; ambos deben configurarse y compilarse en el ncleo. Parn usar el enmascar.imiento, tambin debe estar habilitado el reenvo. Sin embargo, la
configur.icin de los dos servicios es independiente. El reenvo se habilita en
la configuracin de red en el archivo /etc/sysconfig/network. Busque una lnea
que dice FORWARD_IPV4=yes. El reenvo IP se puede configurnr de forma
permanente, manualmente, en el archivo /etc/sysconfig/network, o mediante
la interfaz GlJI del panel de control. La opcin de reenvi IP se encuentra en
la seccin de enrutamiento de los dilogos de configuracin de red del panel
de control. Ninguno de estos mtodos de configuracin tendr efecto hasta
que se reinicie la red. Si no est habilitado el reenvo IP, se puede habilitar inmediatamente escribiendo la siguiente lnea como root:
echo "1"
>
/proc/sys/net/ipv4/ip_forward
135
136
Captulo 4
Una mquina firewall no debe enrutar el trafico entrante de forma automtica. Todas las direcciones LAN se deben enmascarar o pasar a travs de
un proxy en Internet.
Para servicios basados en protocolos de comunicacin poco habituales,
son necesarios otros servicios especficos, el mdulo de enmascaramiento
del ncleo o un proxy de nivel de aplicacin independiente. Algunos servicios usan conexiones mltiples, como FTP, donde se inicia una conexin de
datos secundaria mediante el servidor remoto en respuesta al flujo de control
iniciado por el cliente local. Algunos servicios requieren que tanto el cliente
como el servidor usen puertos no privilegiados para las comunicaciones. Este
es un problema importante cuando el intercambio de informacin usa el protocolo UDP, donde no es posible supervisar el estado de la conexin.
Estos protocolos de comunicacin poco habituales son ejemplos de por
qu algunos servicios no se controlan tan fcilmente en el nivel de filtrado de
paquetes. Tanto las servicios de conexin mltiple como los servicios UDP
sin conexin pertenecen a esta categora. Los dos son buenos candidatos
para mdulos de filtrado de paquetes o para servicios de proxy en el nivel de
aplicacin.
Las versiones de Linux cada vez incluyen ms mdulos de enmascaramiento para servicios especficos. Para la versin 6.0 de Red Hat, se incluye
compatibilidad de mdulos para FTP, Quake, CU-SeeMe, IRC, RealAudio y LiveVideo. Si se ha habilitado el reenvo y el enmascaramiento en la configuracin de compilacin del ncleo, estos mdulos proxy especiales se compilan
automticamente. No obstante, es necesario cargar explcitamente los mdulos que se quieran usar.
Como alternativa, o como medida adicional de seguridad, se puede usar
un filtro de proxy de nivel de aplicacin, como SOCKS. De nuevo, todo el trfico saliente parecer originado desde la mquina firewall. Adems, si el sitio
necesita un control de acceso ms fino que el que ofrece el filtrado de paquetes, los servidores proxy de nivel de aplicacin suelen ofrecer dicho control. Los servidores proxy casi siempre son especficos de una aplicacin.
Comprenden el protocolo de comunicacin de la aplicacin y pueden supervisar el origen y destino, cosa que no es posible a nivel de filtrado de paquetes.
Captulo 4
externa. Estas reglas pueden ser una imagen reflejada de las reglas de la interfaz externa, o pueden ser ms globales. Lo que se permite a travs de las interfaces de red internas de la mquina firewall depende del tipo de sistemas
que se ejecutan en la LAN y los tipos de servicios locales en ejecucin en la
mquina firewall, si existe alguno, a los que se quiere permitir el acceso.
Por ejemplo, puede que se quieran bloquear los mensajes de difusin locales para que no alcancen el firewall bastin. Si no se confa plenamente en
todos los usuarios, se querr restringir lo que pasa al firewall desde las mquinas internas tanto como lo que procede de Internet. Adems, se debe
mantener en el mnimo necesario el nmero de cuentas de usuario de la mquina firewall.
El enmascaramiento IP o las cuestiones de proxy son las mismas para una
gran LAN que para una LAN particular. Una empresa particular puede tener
una sola direccin IP, que necesite enmascaramiento de direccin de LAN.
Sin embargo, los negocios suelen alquilar varias direcciones IP registradas pblicamente, o un bloque entero de direcciones de red. Con direcciones IP pblicas, las conexiones salientes se suelen reenviar y las conexiones entrantes
se enrutan. En vez de crear una red de clase privada para servidores pblicos
internos, se define una subred local par& crear una LAN DMZ pblica y local.
137
138
Captulo 4
Suhred
Direccin
de red
Mscara
de direccin
Primerbost
direccionable
ltimobost
direccionable
Direccin
difusin
Nmero
total de bost
192.168.1.0
255.555.255.0
192.168.1.1
192.168.1.255
254
192.168.1.0
255.555.255128 192.1681.1
192.168.1126
192.168.1.127
126
192.168.1.255
126
El siguiente ejemplo considera una mquina firewall con una interfaz interna conectada a una LAN. Las constantes para la interfaz interna son:
Captulo 4
LAN_INTERFACE="eth1"
f irewall=" 192. 168. 1 . 1 "
LAN_ADDRESSES=" 192. 168. 1 . 0/24"
Enviar correo
SMTP
ipchains -A
-s
-d
ipchains -A
-s
-d
139
140
Captulo 4
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Captulo 4
Internet
t
Interfaz de red externa
Eth2: 192.168.3.1
LAN_I
0~i
G~
B+--------'
Figura 4.2.
Servidor POP
----
192.168.3.4
Servidor web
Son necesarias reglas de reenvo para permitir el trfico entre las dos interfaces. En este caso, las reglas de reenvo son especficas de la interfaz, del
intervalo de direcciones y de los puertos del cliente y del puerto y direcciones del servidor:
ipchains -A forward -i $SERVER_LAN_INTERFACE
-s $CLIENT LAN $UNPRIVPORTS \
-d $DNS_SERVER 53 -j ACCEPT
ipchains -A forward -i $CLIENT_LAN_INTERFACE
-s $DNS_SERVER 53 \
-d $CLIENT_LAN $UNPRIVPORTS -j ACCEPT
141
142
Captulo 4
ipchains -A input
-i $CLIENT_LAN_INTERFACE -p tcp \
-s $CLIENT_LAN $UNPRIVPORTS \
-d $MAIL_SERVER 25 -j ACCEPT
ipchains -A output -i $SERVER_LAN_INTERFACE -p tcp \
-s $CLIENT_LAN $UNPRIVPORTS \
-d $MAIL_SERVER 25 -j ACCEPT
ipchains -A input
-i $SERVER LAN_INTERFACE
-y -p tcp \
-s $MAIL_SERVER 25 \
-d $CLIENT_LAN $UNPRIVPORTS -j ACCEPT
ipchains -A output -i $CLIENT_LAN_INTERFACE ! -Y -p tcp \
-s $MAIL_SERVER 25 \
-d $CLIENT_LAN $UNPRIVPORTS -j ACCEPT
ipchains -A forward -i $SERVER_LAN_INTERFACE -p tcp \
-s $CLIENT_LAN $UNPRIVPORTS \
-d $MAIL_SERVER 25 -j ACCEPT
ipchains -A forward -i $CLIENT_LAN_INTERFACE -p tcp \
-s $MAIL_SERVER 25 \
-d $CLIENT_LAN $UNPRIVPORTS -j ACCEPT
Captulo 4
En realidad, el servidor SMTP de la SERVER_LAN tambin necesitar recibir correo de fuentes remotas. Como se muestra aqu, no es posible recibir
correo entrante directamente mediante un demonio sendmail interno, porque el servidor de correo est enmascarado. Las soluciones a este problema
se explican posteriormente en este captulo. Por el bien de la explicacin, la
solucin basada en la informacin que se ha mostrado hasta el momento en
este captulo sirve para ejecutar un servidor de correo en el bastin. El servidor bastin transmitir el correo entre la mquina MAIL_SERVER y las mquinas remotas.
Los clientes de la CLIENT_LAN apuntan a la mquina POP_SERVER para
obtener el correo:
# Recibir correo - POP
# ----------
ipchains -A input
-i $CLIENT_LAN_INTERFACE -p tcp \
-s $CLIENT_LAN $UNPRIVPORTS \
-d $POP_SERVER 110 -j ACCEPT
ipchains -A output -i $SERVER_LAN_INTERFACE -p tcp \
-s $CLIENT_LAN $UNPRIVPORTS \
-d $POP_SERVER 110 -j ACCEPT
ipchains -A input
-i $SERVER_LAN_INTERFACE
-y -p tcp \
-s $POP_SERVER 110 \
-d $CLIENT_LAN $UNPRIVPORTS -j ACCEPT
143
144
Captulo 4
ipchains -A input
-i $CLIENT_LAN_INTERFACE -p tcp \
-s $CLIENT_LAN $UNPRIVPORTS \
-d $WEB_SERVER 8080 -j ACCEPT
ipchains -A output -i $SERVER_LAN_INTERFACE -p tcp \
-s $CLIENT_LAN $UNPRIVPORTS \
-d $WEB_SERVER 8080 -j ACCEPT
ipchains -A input
-i $SERVER LAN INTERFACE
-y -p tcp \
-s $WEB_SERVER 8080 \
-d $CLIENT_LAN $UNPRIVPORTS -j ACCEPT
ipchains -A output -i $CLIENT_LAN_INTERFACE ! -y -p tcp \
-s $WEB_SERVER 8080 \
-d $CLIENT_LAN $UNPRIVPORTS -j ACCEPT
ipchains -A forward -i $SERVER_LAN_INTERFACE -p tcp \
-s $CLIENT_LAN $UNPRIVPORTS \
-d $WEB_SERVER 8080 -j ACCEPT
ipchains -A forward -i $CLIENT_LAN_INTERFACE -p tcp \
-s $WEB_SERVER 8080 \
-d $CLIENT_LAN $UNPRIVPORTS -j ACCEPT
El servidor web de la LAN de servidores tambin necesita acceder a Internet para los servidores remotos que escuchan en el puerto TCP 80:
ipchains -A input
-i $SERVER_LAN_INTERFACE -p tcp \
-s $WEB_SERVER $UNPRIVPORTS \
-d $ANYWHERE 80 -j ACCEPT
ipchains -A output -i $SERVER LAN INTERFACE
-y -p tcp \
-s $ANYWHERE 80 \
-d $WEB_SERVER $UNPRIVPORTS -j ACCEPT
ipchains -A forward -i $EXTERNAL_INTERFACE -p tcp
-s $WEB_SERVER $UNPRIVPORTS \
-d $ANYWHERE 80 -j MASO
Captulo 4
La regla de enmascaramiento general no permite todo el trfico de cliente LAN a travs de la interfaz externa. Las reglas para la interfaz externa definen el trfico que puede pasar a travs de la interfaz externa. Esta regla habilita el enmascaramiento de cualquier trfico entre la LAN e Internet que las
reglas de interfaz externa permitan pasar.
145
146
Captulo 4
FACE. Es decir, flinguna otra mquina en cualquiera de las LAN tiene permiso para acceder al servidor de nombres externo:
Si el servidor se ejecutara como cliente DNS para el servidor DNS externo, las reglas de enmascaramiento seran:
ipchains A forward i $EXTERNAL_INTERFACE P udp \
S $DNS_SERVER $UNPRIVPORTS \
d <isp.dns.servidor> 53 j MASO
ipchains A forward i $EXTERNAL_INTERFACE P tcp \
S $DNS_SERVER $UNPRIVPORTS \
d <isp.dns.servidor> 53 j MASO
Captulo 4
Paquete IP
Cadena de entrada
~l..__o_e_n_ega_r_
__,
Destino local 1
Pasar regla 11
<[
< >
Enmascarar
Cadena de salida
Pasar regla 11
Figura 4.3.
147
148
Captulo 4
Reenvo de puerto
Se puede encontrar informacin adicional sobre estos servicios experimentales en la
direccin http://juanjox.linuxhq.com, http://www.monmouth.demon.uk/ipsubs/portforwarding.html, ftp://ftp.compsoc.net/users/steve/ipportfw/Linux2 I, http://ipmasq.cjb.net y
ayuda en lnea en el documento "JP Masquerade HOWTO", que se encuentra en
/usr/doc/HOWTO/mini/IP-Masquerade.
Captulo 4
En esta configuracin, slo se permiten las conexiones externas al servidor web. Las mquinas remotas no tienen otro acceso a la mquina servidor
interna.
149
150
Captulo 4
EthO
Internet
Direccin IP
Figura 4.4.
asignada de forma
externa
Al contrario que el ejemplo de firewall del Captulo 3, en esta configuracin no existe ni un solo punto de posible error. Se pueden albergar servicios
con diferentes directivas de seguridad y en diferentes zonas de seguridad dentro de las redes internas.
La idea principal es aislar fisicamente la LAN privada de la mquina firewall bastin externa usando un firewall de contencin interno. La red de perlmetro que se muestra en la Figura 4.5 no tiene una red completa con sus
propios servidores; es algo ideal. La red de permetro se puede implementar
de forma tan sencilla como un cable cruzado entre la interfaz interna del bastin y la interfaz externa de la mquina de contencin.
Implementar una DMZ como un simple cable cruzado puede parecer
algo ridculo. Merece la pena colocar dos firewalls en un sitio pequeo,
como lo hace una red de permetro. La instalacin de dos firewalls no significa que no puedan existir errores. Los servicios de LAN locales se encuentran en la mquina de contencin, completamente aislada del bastin
o de Internet.
Usando un cable cruzado, la interfaz interna del bastin no necesita un
conjunto completo de reglas de firewall independientes. Debera ser suficiente la interfaz externa de la mquina de contencin.
Captulo 4
El resto de este captulo supone que el bastin y las mquinas de contencin sirven como pasarelas a la red DMZ. La DMZ contiene servidores pblicos y semipblicos. Cada una de las interfaces de red de las dos mquinas firewall tienen sus propios conjuntos de reglas personalizados.
Esta configuracin usa un mnimo de cuatro conjuntos de reglas de firewall, una para cada interfaz interna y externa de ambas mquinas firewall. Las
reglas de la interfaz externa del firewall bastin son idnticas a las reglas de
la interfaz externa del ejemplo del Captulo 3 (las reglas de la interfaz interna
del firewall de contencin pueden ser idnticas a las reglas de la interfaz interna del ejemplo con doble tarjeta que se muestra en el Captulo 3, aunque
se han extendido ligeramente para ilustrar un servidor DHCP interno).
externamente
Firewall bastin
Servidor web
192.168.1.3
...-..,,..-Servi...,....----,dor
de correo
'
~.....---i-----.
++- Conmutador
,_1_92_._16_s_.1_.4--./
Servidor FTP
192.168.1.5
Firewall de contencin
LAN
Ethl
192.168.5. I
PC
192.168.5.2
Figura 4.5.
La diferencia real entre este ejemplo y el ejemplo del Captulo 3 es la adicin de la red de permetro DMZ y las nuevas reglas que se aplican a la interfaz interna del bastin y a la interfaz externa del firewall. Las reglas para
151
152
Captulo 4
estas dos interfaces son imgenes reflejadas una de la otra. Los servidores pblicos en la red DMZ tambin tienen sus propias reglas de firewall personalizadas. Los servidores pblicos de la DMZ suelen ser mquinas especializadas
y dedicadas de un solo servicio. Las reglas de firewall son simples y muy restrictivas para el servicio concreto que albergan.
Las constantes simblicas y las reglas iniciales del firewall de contencin
son muy parecidas a las del bastin. Como las reglas externas del bastin permanecen igual que en el ejemplo del Captulo 3, este captulo resalta las diferencias, si existen, entre los conjuntos de reglas de la interfaz externa. En
este ejemplo se resaltan especialmente las reglas del firewall de contencin y
la simetra entre la interfaz interna del bastin y la interfaz externa de la mquina de contencin.
#
#
#
#
#
#
#
#
#
Captulo 4
direccin de interfaz
externa
firewall bastin
su intervalo (privado)
direccin de difusin
externa
su direccin de interfaz
externa
# su intervalo (privado)
# coincidir con cualquier
# direccin IP
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
intervalo reservado de
direcciones de bucle
invertido
redes privadas de clase
redes privadas de clase
redes privadas de clase
direcciones de
multidifusin de clase
direcciones reservadas
de clase E
direccin origen de
difusin
direccin destino de
difusin
bien conocido,
privilegiado
intervalo de puerto
intervalo de puerto no
privilegiado
A
B
C
D
Las constantes que no aparecen aqu se definen dentro del contexto de las
reglas especficas con las que se usan.
ipchains -F
153
154
Captulo 4
ipchains -A
-s
ipchains -A
-s
input -i $CHOKE_DMZ_INTERFACE
$CHOKE_DMZ_IPADDR -j REJECT -1
input -i $CHOKE_LAN_INTERFACE
$CHOKE_LAN_IPADDR -j REJECT -1
Captulo 4
#
#
#
#
Los dos conjuntos siguientes de reglas sirven principalmente para registrar los paquetes que coincidan. La directiva predeterminada del firewall es
rechazar todo. Como tal, se rechazan todas las direcciones de difusin de
forma predeterminada y deben habilitarse explcitamente cuando sean necesarias:
Rechazar paquetes de difusin mal formados
ipchains -A input -i $CHOKE_DMZ_INTERFACE \
-s $BROADCAST_DEST -j REJECT -1
ipchains -A input -i $CHOKE_DMZ_INTERFACE
-d $BROADCAST_SRC -j REJECT -1
ipchains -A
-s
ipchains -A
d
input -i $CHOKE_LAN_INTERFACE
$BROADCAST_DEST -j REJECT -1
input -i $CHOKE_LAN_INTERFACE
$BROADCAST_SRC -j REJECT -1
155
156
Captulo 4
Las direcciones de multidifusin slo son legales como direcciones destino. Los siguientes pares de reglas deniegan y registran los paquetes de red
multidifusin usurpada:
# Rechazar las direcciones experimentales y las direcciones
multidifusin de clase D
ipchains -A input -i $CHOKE_DMZ_INTERFACE -s $MULTICAST -j REJECT -1
ipchains -A output -i $CHOKE_DMZ_INTERFACE -s $MULTICAST -j REJECT -1
Captulo 4
157
158
Captulo 4
-j
ACCEPT
-j
ACCEPT
Captulo 4
ipchains -A
-s
ipchains -A
-s
159
160
Captulo 4
Captulo 4
161
162
Captulo 4
Internet
Bastin
Servidor DNS
privado
Clientes DNS
locales
Contencin
Figura 4.6.
La Tabla 4.2 lista el protocolo DNS que usa la interfaz de la DMZ del bastin.
Tabla 4.2.
Descripcin
ProtoDireccin remota
colo
Puerto
E/S Direccin local
remoto
lndi
53
BASTION-DMZ-JPADDR 53
UDP CHOKE_DIMZ_IPADR
53
BASTION-DMZ-JPADDR 53
Respuesta del
servidor bastin
Captulo 4
Tabla 4.2.
Descripcin
PnJto.
colo
Dlm:cin remota
Puerto
FJS Dlm:cin local
remoto
lndi
Puerto local cador
TCP
UDP CHOKE_DIMZ_IPADR
53
BASTION-DMZIPADDR 1024:65535 .
53
BASTION-DMZIPADDR 1024:65535 .
TCP
53
CHOKE_DIMZ_IPADR 53
CHOKE_DIMZ_IPADR
Los programas cliente del DNS bastin dirigen las peticiones cliente a servidor al servidor de nombres que se ejecuta en la mquina de contencin:
# Solicitud local cliente a servidor DNS (53)
# --------------------
Despus de estos dos conjuntos de reglas DNS, aparecen las reglas DNS
normales para la interfaz externa y los servidores de nombre externos. La Ta-
163
164
Captulo 4
bla 3.3 del Captulo 3 muestra la tabla externa de protocolo DNS. El servidor
de nombres del bastin se configura como un servidor DNS dedicado, que
ofrece servicio DNS pblico limitado. Para peticiones locales, primero intenta enviar la peticin al servidor de nombres del ISP, si existe alguno:
# Servidor de nombres de reenvo y cach DNS (53)
# --------------------
-y -p tcp \
Captulo 4
Descripcin
ProtoDireccin remota
colo
Puerto
E/S Direccin local
remoto
lJDP BASTION_DMZ_IP
ADDR
53
CHOKE_DMZ_IPADDR
'53
53
CHOKE_DMZ_IPADDR
55
UDP BASTION_DMZ_IP
ADDR
55
CHOKE_D:\IZ_IPADDR
1024:65535 .
53
CHOKE_DMZ_IPADDR
1024:65535 .
TCP
BASTION_DMZ_IP
ADDR
55
CHOKE_DMZ_IPADDR
1024:65555 Cualquiera
BASTION_DMZ_IP
ADDR
53
CHOKE_DMZ_IPADDR
1024:6'5535 Ack
Las reglas DNS del firewall de contencin son la imagen espejo de las reglas del bastin. El servidor de DNS local reenva peticiones de servidor de
igual a igual al servidor DNS del bastin para peticiones que el servidor de
contencin no puede resolver:
# Servidor de nombres de reenvo y cach DNS (53)
# --------------------
165
166
Captulo 4
Tabla 4.4.
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Puerto local
Indi
cador
TCP
TCP
DMZ_ADDRESSES 113
BASTION_DMZ_IP
ADDR
1024:65535
Cual
quiera
DMZ_ADDRESSES 113
BASTION_DMZ_IP
ADDR
1024:65535
ACK
DMZ_ADDRESSES 1024:65535 E
BASTION_DMZ_IP
ADDR
113
Cual
quiera
BASTION_DMZ_IP
ADDR
113
ACK
TCP
DMZ_ADDRESSES 1024:65535
Captulo 4
-y \
Tabla 4.5.
Descripcin
Peticin del cliente
DMZ
!'roto-
colo
TCP
Oidor
TCP
DMZ_ADDRESSES 1024:65535 E
CHOKE_DMZ_IPA
DDR
113
Cualquiera
CHOKE_DMZ_IPA
DDR
113
ACK
113
CHOKE_DMZ_IPA
DDR
1024:65535
Cualquiera
113
CHOKE_DMZ_IPA
DDR
1024:65535
ACK
remoto
DMZ_ADDRESSES 1024:65535
TCP ANYWHERE
Puerto
Dim:dn local
Dim:dn remola
ANYWHERE
F)S
167
168
Captulo 4
-y \
Captulo 4
Las dos primeras aproximaciones son tiles si el bastin hace de transmisor de correo para el servidor SMTP del ISP o para el destino receptor final.
En cualquier caso, la bsqueda DNS no la realiza la mquina local que la origin. Las otras dos aproximaciones usan una pasarela de correo y un host de
la DMZ. Ni un servidor POP ni un servidor IMAP se ejecutan en el bastin
para obtener el correo local.
Descripcin
Proto-
colo
Direccin remota
Puerto
remoto
Jndi.
Puerto local cador
TCP
DMZ_ADDRESSES 1024:65535 E
BASTION_DMZ_IPADDR 25
Cualquiera
Respuesta del
servidor bastin
DMZ_ADDRESSES 1024:65535
BASTION_DMZ_IPADDR 25
ACK
TCP
169
170
Captulo 4
-y \
Descripcin
Proto-
colo
Direccin remota
Puerto
remolo
Indi-
TCP
25
CHOKE_DMZ_IPADDR
!024:65535 Cual
quiera
25
CHOKE_DMZ_IPADDR
1024:65535 ACK
Captulo 4
Tabla 4.8.
Descripcin
ProtoDireccin remota
colo
Indi
Puerto
remoto
TCP
1024:65535
E BASTION_DMZ_IPADDR 110
Cual
quiera
Respuesta del
servidor bastin
1024:65535
ACK
TCP CHOKE_DMZ_I
PADDR
BASTION_DMZ_IPADDR 110
El bastin alberga un servidor POP local para la LAN. No se permite el acceso externo sobre la interfaz externa:
POP.
Tabla 4.9.
ProtoDireccin remota
colo
Puerto
TCP
BASTION_DMZ_l
PADDR
110
CHOKE_DMZ_lPADDR
1024:65535 Cual
quiera
Respuesta del
servidor bastin
TCP
BASTION_DMZ_I
PADDR
110
CHOKE_DMZ_IPADDR
1024:65535 ACK
Descripcin
remoto
TCP
171
172
Captulo 4
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
CHOKE_DMZ
- !PADDR
1024:65535 E
BASTION_DMZ_IPADDR 143
Cualquiera
Respuesta del
servidor bastin
CHOKE_DMZ
1024:65535
BASTION_DMZ_IPADDR 143
ACK
- !PADDR
TCP
El siguiente conjunto de reglas permite las conexiones de cliente entrantes desde la mquina de contencin:
Descripcin
ProtoDireccin remota
colo
Puerto
E/S Direccin local
remoto
TCP BASTION_DMZ_I
PADDR
143
143
CHOKE_DMZ_IPADDR
1024:65535 Cualquiera
CHOKE_DMZ_IPADDR
1024:6553'5 ACK
Captulo 4
-y
Descripcin
Recibiendo correo
entrante
ProtoDireccin remota
colo
remoto
TCP
1024:65535 E
ANYWHERE
ANYWHERE
ANYWHERE
Puerto
1024:65535
Puerto local
Indicador
TCP
- IPADDR
Cualquiera
MAIL_SERVER_DMZ 25
ACK
MAIL_SERVER_DMZ 25
- IPADDR
ANYWHERE
25
25
s
E
- IPADDR
Cualquiera
MAIL_SERVER_DMZ 1024:65535
ACK
MAIL_SERVER_DMZ 1024:65535
- IPADDR
173
174
Captulo 4
conexiones entrantes directamente al servidor de la DMZ. Esto permite recibir correo entrante para las mquinas locales:
ipchains -A input -i $MAIL_DMZ_INTERFACE -p tcp
-s $ANYWHERE $UNPRIVPORTS \
-d $MAIL_SERVER_DMZ_IPADDR 25 -j ACCEPT
ipchains -A output -i $MAIL_DMZ_INTERFACE -p tcp
-s $MAIL_SERVER_DMZ_IPADDR 25 \
-d $ANYWHERE $UNPRIVPORTS - j ACCEPT
-y \
El siguiente conjunto de reglas permite al servidor de correo DMZ transmitir el correo local a los destinos remotos:
ipchains -A output -i $MAIL_DMZ_INTERFACE -p tcp \
-s $MAIL_SERVER_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 25 -j ACCEPT
ipchains -A input -i $MAIL_DMZ_INTERFACE -p tcp
-s $ANYWHERE 25 \
-d $MAIL_SERVER_DMZ_IPADDR $UNPRIVPORTS
-y \
-j
ACCEPT
-y \
Descripcin
Proto-
colo
Direccin remota
Puerto
remoto
TCP
25
CHOKE_DMZ_IPADDR
1024:65535 Cualquiera
25
CHOKE_DMZ_IPADDR
1024:65535 ACK
Captulo 4
Tabla 4.14.
Descripcin
ProtoDim:cln remota
colo
Puerto
remoto
Puerto local
Indlcador
TCP
TCP
ANYWHERE
1024:65535 E
IPADDR
25
Cualquiera
ANYWHERE
1024:65535
IPADDR
25
ACK
ANYWHERE
25
IPADDR
1024:65535
Cualquiera
ANYWHERE
25
IPADDR
1024:65535
ACK
Recibiendo correo
entrante
-y \
-y \
175
176
Captulo 4
-y \
POP.
Tabla 4.15.
Descripcin
Proto-
colo
Direccin remota
Puerto
remoto
TCP
CHOKE_DMZ_IP
ADDR
1024:65535 E
TCP
CHOKE_DMZ_IP
ADDR
1024:65535
Respuesta del
servidor local
Indi
Puerto local cador
POP_SERVER_DMZ_IP
ADDR
110
POP_SERVER_DMZ_IP
ADDR
110
Cual-
quiera
ACK
Captulo 4
Tabla 4.16.
ProtoDireccin remota
colo
Puerto
E/S Direccin local
remoto
TCP POP_SERVER_OMZIPADOR
110
110
Descripcin
CHOKE_OMZ_IPAOOR
TCP
1024:65535 Cual
quiera
CHOKE_OMZ_IPADDR
1024:65535 ACK
-y
IMAP_DMZ_INTERFACE="eth0"
IMAP_SERVER_DMZ_IPADDR="192.168.1.4"
177
178
Captulo 4
Tabla 4.17.
Descripcin
ProtoDittccin remota
colo
TCP
CHOKE_DMZ_I
PADDR
Indi-
Puerto
remoto
TCP
1024:65535 E
IMAP_SERVER_DMZ_I
PADDR
143
Cualquiera
IMAP_SERVER_DMZ_I
PADDR
143
ACK
1024:65535
IMAP.
Tabla 4.18.
Descripcin
Puerto
E/S Direccin local
remoto
TCP
CHOKE_DMZ_IPADDR
1024:65535 Cualquiera
CHOKE_DMZ_IPADDR
1024:65535 ACK
-y
Captulo 4
ProtoDireccin remota
colo
Puerto
TCP
NEWS_SERVER
119
CHOKE_DMZ_I
PADDR
1024:65535
Cualquiera
NEWS_SERVER
119
CHOKE_DMZ_I
PADDR
1024:65535
ACK
TCP
Clientes NNTP
1024:65535
NEWS_SERVER_DM
Z_IPADDR
119
Cualquiera
Clientes NNTP
1024:65535 E
NEWS_FEED
119
NEWS_FEED
119
Descripcin
remoto
Puerto local
NEWS_SERVER_DM 119
Z_IPADDR
ACK
NEWS_SERVER_DM 1024:65535
Z_IPADDR
Cualquiera
NEWS_SERVER_DM 1024:65535
Z_IPADDR
ACK
179
180
Captulo 4
-y \
Si se ejecuta un servidor de noticias local en una mquina de la DMZ, ofreciendo servicio pblico a clientes remotos concretos, debe definirse un conjunto de reglas de servidor que permita a los clientes locales conectarse a
esta puerto NNTP de la mquina:
NEWS_SERVER_DMZ_IPADDR="192.168.1.6"
ipchains -A output -i $BASTION_DMZ_INTERFACE -p tcp
-s <mi.noticias.clientes> $UNPRIVPORTS \
-d $NEWS_SERVER_DMZ_IPADDR 119 -j ACCEPT
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp ! -y \
-s $NEWS_SERVER_DMZ_IPADDR 119 \
-d $<mi.noticias.clientes> $UNPRIVPORTS -j ACCEPT
Si a las mquinas DMZ se les asigna direcciones IP de clase privada, no es
necesario el mdulo de reenvo del puerto:
NEWS_FEED="<mi.remoto.noticias.almacen>"
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp
-s $NEWS_SERVER_DMZ_IPADDR $UNPRIVPORTS \
-d $NEWS_FEED 119 -j ACCEPT
ipchains -A output -i $BASTION_DMZ_INTERFACE -p tcp ! -y \
-s $NEWS_FEED 119 \
-d $NEWS_SERVER_DMZ_IPADDR $UNPRIVPORTS -j ACCEPT
Descripcin
ProtoDireccin remota
colo
Puerto
E/S Direccin local
remoto
TCP NEWS_SERVER
119
CHOKE_DMZ_IPADDR
Captulo 4
Tabla 4.20.
Descripcin
colo
Direccin remota
Puerto
E/S Direccin local
remoto
TCP
119
CHOKE_DMZ_lPADDR
1024:65535 ACK
119
IPADDR
1024:65535 Cual-
TCP NEWS_SERVER_DMZ_
IPADDR
quiera
lPADDR
1024:65535 ACK
Las dos reglas siguientes permiten a los clientes locales acceder a los servidores de noticias remotos:
ipchains -A output -i $CHOKE_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS\
-d $NEWS_SERVER 119 -j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp ! -y \
-s $NEWS_SERVER 119 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS-j ACCEPT
Las dos reglas siguientes permiten a los clientes locales acceder a un servidor de noticias local de la DMZ:
ipchains -A output -i $CHOKE_DMZ_INTERFACE -p tcp
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS\
-d $NEWS_SERVER_DMZ_IPADDR 119 -j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp
-y \
-s $NEWS_SERVER_DMZ_IPADDR 119 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS-j ACCEPT
181
182
Captulo 4
Proto-
Descripcin
colo
Dittedn remota
TCP CHOKE_DMZ_l
PADDR
Peticin
del cliente
de contencin
Puerto
remoto
Puerto local
Indl
cador
TCP
ANYWHERE
23
Cual
quiera
s ANYWHERE
23
ACK
1024:65535 E
CHOKE_DMZ_l
PADDR
DMZ_ADDRESSES 23
BASTION_DMZ_I
PADDR
1024:65535
Cual
quiera
DMZ_ADRESSES
E BASTION_DMZ_I
1024:65535
ACK
TCP
1024:65535
23
PADDR
Observe que las conexiones telnet entrantes desde clientes slo se permiten desde el firewall de contencin, y no desde cualquier lugar. No se permite el acceso telnet desde otras mquinas de la DMZ:
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 23 -j ACCEPT
ipchains -A output -i $BASTION_DMZ_INTERFACE -p tcp !
-s $ANYWHERE 23 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS -j ACCEPT
-y \
Las dos reglas siguientes permiten el acceso telnet desde el bastin a cualquier mquina de la DMZ:
ipchains -A output -i $BASTION_DMZ_INTERFACE -p tcp \
-s $BASTION_DMZ_IPADDR $UNPRIVPORTS \
-d $DMZ_ADDRESSES 23 -j ACCEPT
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp ! -y
-s $DMZ_ADDRESSES 23 \
-d $BASTION_DMZ_IPADDR $UNPRIVPORTS - j ACCEPT
Descripcin
Peticin del cliente
de contencin
Proto-
colo
TCP
Direccin rtmota
ANYWHERE
Puerto
remoto
23
lndi
Puerto local
cador
TCP
1024:65535
Cual
quiera
CHOKE_DMZ_l
PADDR
Captulo 4
Tabla 4.22.
Descripcin
Puerto
remoto
Puerto local
Indlcador
TCP
ANYWHERE
23
CHOKE_DMZ_I
PADDR
!024:65535 ACK
BASTION_DMZ_I
PADDR
!024:65535 E
CHOKE_DMZ_I
PADDR
23
BASTION_DMZ_I
PADDR
1024:65535
CHOKE_DMZ_I
PADDR
23
TCP
Cualquiera
ACK
Tenga en cuenta que se permiten las conexiones telnet salientes a cualquier lugar, ofreciendo este servicio a clientes LAN que necesitan hacer telnet a sitios remotos en Internet:
ipchains A output -i $CHOKE_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 23 -j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp 1 -y
-s $ANYWHERE 23 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS . j ACCEPT
Estas reglas permiten el acceso telnet desde el bastin a la mquina firewall de contencin. No se permite el acceso entrante telnet desde otras mquinas de la DMZ:
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp
-s $BASTION_DMZ_IPADDR $UNPRIVPORTS \
-d $CHOKE_DMZ_IPADDR 23 -j ACCEPT
ipchains -A output -i $CHOKE_DMZ_INTERFACE -p tcp ! Y
-s $CHOKE_DMZ_IPADDR 23 \
-d $BASTION_DMZ_IPADDR $UNPRIVPORTS -j ACCEPT
183
184
Captulo 4
Descripcin
Proto-
colo
Dim:cin remota
Puerto
remoto
CHOKE_DMZ_I
PADDR
1024:65535 E
ANYWHERE
22
Cualquiera
TCP
CHOKE_DMZ_I
PADDR
1024:65535
ANYWHERE
22
ACK
CHOKE_DMZ_I
PADDR
513:1023
ANYWHERE
22
Cualquiera
TCP
CHOKE_DMZ_I
PADDR
513:1023
ANYWHERE
22
ACK
Respuesta del
servidor
Respuesta del
servidor
Tabla 4.24.
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
DMZ_ADDRESSES 22
TCP
DMZ_ADDRESSES 22
DMZ_ADDRESSES 22
BASTION_DMZ_IPADDR 513:1023
Cualquiera
TCP
DMZ_ADDRESSES 22
BASTION_DMZ_IPADDR 513:1023
ACK
Respuesta del
servidor DMZ
Respuesta del
servidor DMZ
Captulo 4
-y \
Puerto
remoto
22
CHOKE_DMZ_IPADDR
1024:65535 Cual
quiera
ANYWHERE
22
CHOKE_DMZ_IPADDR
1024:65535 ACK
22
CHOKE_DMZ_IPADDR
513:1023
Cual
quiera
TCP ANYWHERE
22
CHOKE_DMZ_IPADDR
513:1023
ACK
Descripcin
Respuesta del
servidor remoto
Respuesta del
servidor remoto
Proto-
colo
TCP
Direccin remota
TCP
-p tcp \
\
-p tcp
-y
ACCEPT
-p tcp \
-j
-p tcp
ACCEPT
-y \
185
186
Captulo 4
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
BASTION_OMZIPAOOR
1024:65535 E
CHOKE_OMZ_IPAOOR
22
Cualquiera
TCP
BASTION_OMZIPAOOR
1024:65535
CHOKE_OMZ_IPAOOR
22
ACK
BASTION_OMZ_
IPAOOR
513:1023
CHOKE_OMZ_IPAOOR
22
Cualquiera
TCP
BASTION_OMZIPAOOR
513:1023
CHOKE_OMZ_IPAOOR
22
ACK
Respuesta del
servidor de
contencin
Respuesta del
servidor de
contencin
Captulo 4
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
lndi
Puerto local
cador
TCP
CHOKE_DMZIPADDR
1024:65535 E
ANYWHERE
21
Cual
quiera
Respuesta del
servidor bastin
TCP
CHOKE_DMZ_
IPADDR
1024:65535
ANYWHERE
21
ACK
CHOKE_DMZ_
IPADDR
1024:65535
ANYWHERE
20
Cualquiera
Respuesta del
TCP
puerto de canal de
datos del cliente
de contencin
CHOKE_DMZ_
IPADDR
1024:65535 E
ANYWHERE
20
ACK
CHOKE_DMZIPADDR
1024:65535 E
ANYWHERE
1024:65535 Cual
CHOKE_DMZ_
IPADDR
1024:65535
TCP
TCP
Respuesta del
canal de datos
pasivo dd servidor
bastin
quiera
ANYWHERE
1024:65535 ACK
187
188
Captulo 4
Las siguientes reglas permiten las conexiones del cliente ftp desde la mquina de contencin, as como desde mquinas situadas en la LAN privada detrs del firewall de contencin:
# Solicitud entrante de cliente FTP
# --------------
Tabla 4.28.
Descripcin
ProtoDireccin remota
colo
Indi-
Puerto
remoto
21
TCP
ANYWHERE
TCP
ANYWHERE
21
CHOKE_DMZ_IPADDR
1024:65535 ACK
ANYWHERE
20
CHOKE_DMZ_IPADDR
1024:65535 Cual-
Respuesta del
servidor remoto
CHOKE_DMZ_IPADDR
1024:65535 Cual-
quiera
quiera
Captulo 4
Tabla 4.28.
Descripcin
Respuesta del
TCP ANYWHERE
puerto de canal de
datos del cliente
de contencin
Puerto
remoto
TCP
20
CHOKE_DMZ_IPADDR
1024:65535 ACK
TCP
ANYWHERE
1024:65535
CHOKE_DMZ_IPADDR
1024:65535 Cualquiera
Respuesta del
TCP
canal de datos
pasivo del servidor
remoto
ANYWHERE
1024:65535 E
CHOKE_DMZ_IPADDR
1024:65535 ACK
Las-siguientes reglas permiten las conexiones salientes del cliente ftp desde la mquina de contencin, al igual que desde mquinas situadas en la LAN
privada detrs del firewall de contencin:
#
# --------------
-y
189
190
Captulo 4
Puerto
remoto
21
TCP CHOKE_DMZ_I
PADDR
21
CHOKE_DMZ_I
PADDR
20
TCP CHOKE_DMZ_I
Respuesta del
PADDR
puerto de canal
de datos del cliente
bastin
20
1024:65535
Respuesta
TCP CHOKE_DMZ_I
PADDR
del canal de datos
pasivo del servidor
de contencin
1024:65535 E
Descripcin
Respuesta
del servidor
de contencin
J>roto.
colo
Dlm:cin remota
Las siguientes reglas permiten las conexiones salientes del diente ftp desde la mquina bastin a la mquina de contencin:
# Peticin saliente del cliente FTP
# --------------
Captulo 4
-y
Descripcin
Proto-
colo
Dittccin remota
Puerto
remoto
Indl
Puerto local cador
TCl'
CHOKE_DMZ_IPADDR 21
Cual
quiera
Respuesta
del servidor
de contencin
CHOKE_DMZ_IPADDR 21
ACK
CHOKE_DMZ_IPADDR 20
Cual
quiera
Respuesta
TCP BASTION_DMZ_I 1024:65535 E
del puerto de canal
PADDR
de datos del cliente
bastin
CHOKE_DMZ_IPADDR 20
ACK
191
192
Captulo 4
Tabla 4.30.
Descripcin
colo
Dittcdn remota
Puerto
remoto
Indl-
quiera
Las siguientes reglas permiten las conexiones entrantes del cliente ftp desde la mquina bastin a la mquina de contencin:
# Solicitud entrante de cliente FTP
# --------------
-y
pasivo
Captulo 4
Descripcin
Proto-
colo
Direccin remota
Puerto
remoto
Puerto local
Indl
cador
TCP
DMZ_ADDRESSES 1024:65535 E
ITP_SERVER_DMZ_
IPADDR
21
Cualquiera
ITP_SERVER_DMZIPADDR
21
ACK
ITP_SERVER_DMZ_
IPADDR
20
Cualquiera
ITP_SERVER_DMZ_
IPADDR
20
ACK
DMZ_ADDRESSES 1024:65535 E
ITP_SERVER_DMZ_
IPADDR
1024:65535 Cualquiera
DMZ_ADDRESSES 1024:65535
fTP _SERVER_DMZ_
IPADDR
1024:65535 ACK
DMZ_ADDRESSES 1024:65535
servidor DMZ
Las siguientes reglas permiten las conexiones entrantes del cliente ftp desde cualquier mquina situada en la red DMZ, incluyendo las mquinas bastin
y contencin:
# Solicitud entrante de cliente FTP
# --------------
193
194
Captulo 4
Tabla 4-32.
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Puerto local
lndi
cador
TCP
ITP_SERVER_
DMZ_IPADDR
21
Respuesta del
servidor DMZ
TCP
ITP_SERVER_
DMZ_IPADDR
21
CHOKE_DMZ_IPADDR
1024:65535 ACK
ITP_SERVERDMZ_IPADDR
20
CHOKE_DMZ_IPADDR
1024:65535 Cual-
Respuesta del
TCP
puerto de canal
de datos del cliente
de contencin
ITP_SERVER_
DMZ_IPADDR
20
CHOKE_DMZ_IPADDR
1024:65535 ACK
TCP
ITP_SERVER_
DMZ_IPADDR
1024:65535
CHOKE_DMZ_IPADDR
1024:65535 Cual-
ITP_SERVER_
DMZ_IPADDR
1024:65535 E
CHOKE_DMZ_IPADDR
1024:65535 Cualquiera
quiera
quiera
CHOKE_DMZ_IPADDR
1024:65535 ACK
Las siguientes reglas permiten las conexiones salientes del cliente ftp desde la mquina de contencin a un servidor ftp en cualquier lugar:
# Peticin saliente del cliente FTP
# --------------
Captulo 4
-y
-y
pasivo
Servicios web
Los servicios web se suelen basar en el protocolo HITP. Se usan varios
protocolos de comunicacin de alto nivel para propsitos especiales, incluyendo HTIPS para acceso seguro (SSL) y acceso proxy de servidor web.
En esta seccin se describen tres aproximaciones a las combinaciones
cliente y servidor web:
El bastin como servidor o una pasarela conducto para servidores
web remotos; la mquina de contencin como cliente.
El bastin como servidor o un conducto de pasarela; un servidor web
se ejecuta en la DMZ y la mquina de contencin es un cliente.
El bastin como servidor o un conducto de pasarela; la mquina de
contencin es un servidor proxy web local.
195
196
Captulo 4
Descripcin
!'roto-
colo
Dlrecdn remota
TCP CHOKE_DMZ_
IPADDR
Puerto
remoto
Puerto local
Jndl.
Clldor
TCP
1024:65535 E
ANYWHERE
80
Cual
quiera
ANYWHERE
80
ACK
1024:65535
-y \
La Tabla 4.34 lista el protocolo de conexin del servidor para el servicio SSL.
Tabla 4.34.
Descripcin
Proto-
colo
Dlrecdn remota
TCP CHOKE_DMZ_
IPADDR
Puerto
remoto
Puerto local
Jndl.
Clldor
TCP
1024:65535 E
ANYWHERE
443
Cual
quiera
ANYWHERE
443
ACK
1024:65535
Las siguientes reglas permiten las conexiones de cliente SSL entrantes desde la mquina de contencin, as como desde mquinas situadas en la LAN
privada detrs del firewall de contencin:
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS
-d $ANYWHERE 443 -j ACCEPT
ipchains A output -i $BASTION_DMZ_INTERFACE -p tcp ! -y \
-s $ANYWHERE 443 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS -j ACCEPT
Captulo 4
Descripcin
Proto-
colo
Direccin remota
Puerto
remoto
CHOKE_DMZ_I
PADDR
- PORT
Respuesta
del servidor
CHOKE_DMZ_I
PADDR
- PORT
TCP
Puerto local
lndicador
TCP
WEB]ROXY E
WEB]ROXY_SERVER
!024:65535 Cualquiera
WEB_PROXY S
WEB]ROXY_SERVER
!024:65535 ACK
Las siguientes reglas permiten las conexiones cliente de proxy web entrantes desde la mquina de contencin, as como desde mquinas situadas
en la LAN privada detrs del firewall de contencin:
ipchains -A
-s
-d
ipchains -A
-s
-d
Puerto
remoto
80
CHOKE_DMZ_IPADDR
1024:65535 Cual-
Respuesta
del servidor
80
CHOKE_DMZ_IPADDR
1024:65535 ACK
Descripcin
Proto-
colo
TCP
Direccin remota
ANYWHERE
Puerto local
TCP
quiera
Esta seccin permite a los host locales conectarse a servidores web tanto
en el bastin como en host remotos:
ipchains -A output -i $CHOKE_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 80 - j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp ! -y
-s $ANYWHERE 80 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS - j ACCEPT
197
198
Captulo 4
Tabla 4.37.
Puerto
remoto
443
Respuesta
del servidor
443
Descripcin
ProtoDim:dn remota
colo
Indl
Puerto local C3llor
TCP
CHOKE_DMZ_IPADDR
1024:65535 Cual
quiera
TCP ANYWHERE
CHOKE_DMZ_IPADDR
1024:65535 ACK
Esta seccin permite a los host locales conectarse a servidores web seguros tanto en el bastin como en host remotos:
ipchains -A output -i $CHOKE_DMZ_INTERFACE P tcp \
S $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 443 -j ACCEPT
ipchains A input -i $CHOKE_DMZ_INTERFACE P tcp ! -y
-s $ANYWHERE 443 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS - j ACCEPT
La Tabla 4.38 lista el protocolo de conexin de cliente para el servicio
proxyWeb.
Tabla 4.38.
Descripcin
ProtoDim:dn remota
colo
TCP WEB_pROXY
- SERVER
Puerto
remoto
Indl
Puerto local cador
TCP
WEB_PROXY S
_pRT
CHOKE_DMZ_IPADDR
WEB_pROXY E
CHOKE_DMZ_IPADDR 1024:65535
1024:65535 Cual
quiera
ACK
- PORT
Esta seccin permite a los bost locales conectarse a servidores proxy web
seguros tanto en el bastin como en bost remotos:
ipchains A output -i $CHOKE_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $WEB_PROXY_SERVER $WEB_PROXY_PORT -j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp 1
S $WEB_PROXY_SERVER $WEB_PROXY_PORT \
d $CHOKE_DMZ_IPADDR $UNPRIVPORTS -j ACCEPT
-y
Captulo 4
Tabla 4.39.
ProtoDireccin remota
colo
Descripcin
Puerto
remoto
Indi
Puerto local cador
TCP
ANYWHERE
80
DMZ_ADDRESSES
1024:65535 Cual
quiera
Respuesta del
servidor remoto
ANYWHERE
80
DMZ_ADDRESSES
1024:65535 ACK
1024:65535
WEB_SERVER_DMZ_
IPADDR
80
Cual
quiera
Respuesta
del servidor DMZ
1024:65535 E
WEB_SERVER_DMZ_
IPADDR
80
ACK
TCP
TCP ANYWHERE
Esta seccin permite a los host locales conectarse a servidores web tanto
en el bastin como en host remotos, y permite a los clientes remotos conectarse a un servidor web de la DMZ:
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp \
-s $DMZ_ADDRESSES $UNPRIVPORTS
-d $ANYWHERE 80 - j ACCEPT
ipchains -A output -i $BASTION_DMZ_INTERFACE -p tcp
-s $ANYWHERE 80 \
-d $DMZ_ADDRESSES $UNPRIVPORTS -j ACCEPT
-y \
-y \
Tabla 4.40.
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
443
DMZ_ADDRESSES
Indi
Puerto local cador
TCP
1024:65535 Cual
quiera
199
200
Captulo 4
Tabla 4.40.
Descripcin
Respuesta del
servidor remoto
Proto-
colo
TCP ANYWHERE
Direcdn remota
ANYWHERE
TCP ANYWHERE
Indicador
TCP
Puerto
remoto
Puerto local
443
DMZ_ADDRESSES
1024:65535 ACK
1024:65535
WEB_SERVER_DMZ_
IPADDR
443
Cualquiera
1024:65535 E
WEB_SERVER_DMZIPADDR
443
ACK
Esta seccin permite a los host locales conectarse a servidores web seguros tanto en el bastin como en host remotos, y permite a los clientes remotos conectase a un servidor web seguro de la DMZ:
-y \
-y \
Descripcin
ProtoDireccin remota
colo
TCP WEB]ROXY_
SERVER
Puerto
remoto
WEB_pROXY E
WEB_PROXY S
Cualquiera
CHOKE_DMZ_IPADDR 1024:65535
ACK
- PORT
1024:65535
Respuesta
del servidor DMZ
1024:65535 E
ANYWHERE
Indicador
TCP
CHOKE_DMZ_IPADDR 1024:65535
]ORT
Puerto local
WEB_SERVER_DMZ_
IPADDR
WEB_SERVER_DMZ_
IPADDR
WEB]ROXY Cualquiera
- PORT
1024:65535
ACK
Captulo 4
Esta seccin permite a los host locales conectarse a servidores proxy web
tanto en el bastin como en los host remotos, y permite a los clientes remotos conectarse a un servidor proxy web de la DMZ:
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Puerto local
Indicador
TCP
1024:65535 E
WEB_SERVER_DMZIPADDR
80
Cualquiera
Respuesta del
servidor DMZ
1024:65535
WEB_SERVER_DMZ_
IPADDR
80
ACK
TCP ANYWHERE
Las siguientes reglas permiten las conexiones entrantes del cliente HTTP
desde cualquier sitio, incluyendo host remotos, as como las mquinas bastin y contencin:
WEB_DMZ_INTERFACE="etho"
201
202
Captulo 4
ipchains -A
-s
-d
ipchains -A
-s
-d
-y \
Descripcin
ProtoDireccin remota
colo
TCP
ANYWHERE
Puerto
remoto
Puerto local
Indicador
TCP
1024:65535 E
WEB_SERVER_DMZ_
IPADDR
443
Cual
quiera
WEB_SERVER_DMZ_
IPADDR
443
ACK
1024:65535
Las siguientes reglas permiten las conexiones entrantes del cliente web
SSL desde cualquier sitio, incluyendo host remotos, as como las mquinas
bastin y contencin:
WEB DMZ INTERFACE="etho"
ipchains -A input -i $WEB_DMZ_INTERFACE -p tcp \
-s $ANYWHERE $UNPRIVPORTS \
-d $WEB_SERVER_DMZ_IPADDR 443 - j ACCEPT
ipchains -A output -i $WEB_DMZ_INTERFACE -p tcp
-s $WEB_SERVER_DMZ_IPADDR 443 \
-d $ANYWHERE $UNPRIVPORTS - j ACCEPT
-y \
Descripcin
ProtoDireccin remota
colo
Clientes proxy
TCP
Clientes proxy
Respuesta del
servidor DMZ
Puerto
remoto
Indicador
TCP
1024:65535 E
1024:65535
Puerto local
WEB_SERVER_DMZ_
IPADDR
WEB_SERVER_DMZ_
IPADDR
WEB_PROXY Cual
quiera
- PORT
WEB]ROXY ACK
- PORT
Captulo 4
wall para un proxy local. Para el mundo exterior, el servidor proxy aparece
como un navegador Web normal. En casos excepcionales, un ejemplo de regla de servidor firewall sera:
WEB_DMZ_INTERFACE="etho"
ipchains -A input -i $WEB_DMZ_INTERFACE -p tcp \
-s <mi.Web.clientes_proxy> $UNPRIVPORTS \
-d $WEB_SERVER_DMZ_IPADDR $WEB_PROXY_PORT
-j
ACCEPT
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Puerto local
Indlcador
TCP
ANYWHERE
80
CHOKE_DMZ_I
PADDR
1024:65535 Cualquiera
TCP ANYWHERE
80
CHOKE_DMZ_I
PADDR
1024:65535 ACK
Tabla 4.46.
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Puerto local
Indlcador
TCP
443
CHOKE_DMZ_IPADDR
1024:65535 Cual
quiera
Respuesta del
servidor remoto
443
CHOKE_DMZ_IPADDR
1024:65535 ACK
TCP ANYWHERE
203
204
Captulo 4
Las siguientes reglas permiten las conexiones salientes de cliente SSL desde la mquina de contencin a un servidor web seguro ubicado en cualquier
parte:
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
- PORT
TCP WEB_PROXYSERVER
- PORT
Respuesta del
servidor remoto
Indi-
WEB_PROXY S
WEB_PROXY E
Puerto local
cador
TCP
1024:65535
Cualquiera
CHOKE_DMZ_IPADDR 1024:65535
ACK
CHOKE_DMZ_IPADDR
Las siguientes reglas permiten las conexiones salientes del cliente desde la
mquina de contencin a servidores proxy web ubicados en cualquier parte:
Captulo 4
ProtoDireccin remota
colo
Imlicador
TCP
Puerto
remoto
79
CHOKE_DMZ_IPADDR !024:65535
Cualquiera
Respuesta del
servidor remoto
79
CHOKE_DMZ_IPADDR !024:65535
ACK
!024:65535
CHOKE_DMZ_IPADDR 79
Cual
quiera
Respuesta
del servidor
de contencin
!024:65535 E
CHOKE_DMZ_IPADDR 79
ACK
Descripcin
TCP ANYWHERE
Puerto local
No existe ningn peligro en habilitar el acceso saliente a servidores remotos finger, y stas son las reglas para realizarlo:
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 79 -j ACCEPT
205
206
Captulo 4
-y \
Descripcin
Proto-
colo
Direccin remota
Puerto
remoto
Indl
Puerto local
cador
TCP
79
CHOKE_DMZ_IPADDR 1024:65535
Cualquiera
TCP ANYWHERE
79
CHOKE_DMZ_IPADDR 1024:65535
ACK
1024:65535 E
CHOKE_DMZ_IPADDR 79
Cual
quiera
CHOKE_DMZ_IPADDR 79
ACK
Respuesta del
servidor remoto
TCP ANYWHERE
1024:65535
Las dos reglas siguientes habilitan las peticiones salientes del cliente finger
desde la mquina de contencin:
ipchains -A output -i $CHOKE_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 79 j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp ! -y
-s $ANYWHERE 79 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS - j ACCEPT
Las dos reglas siguientes habilitan las peticiones entrantes del cliente finger a la mquina de contencin:
Captulo 4
-y \
ProtoDireccin remota
colo
Indicador
TCP
Puerto
remoto
43
CHOKE_DMZ_IPADDR 1024:65535
Cualquiera
Respuesta del
servidor remoto
43
CHOKE_DMZ_IPADDR 1024:65535
ACK
Descripcin
TCP ANYWHERE
Puerto local
Las siguientes reglas permiten las conexiones del cliente WHOIS desde la
mquina de contencin, as como desde mquinas situadas en la LAN privada detrs del firewall de contencin:
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp \
-s $CHOKE_firewall $UNPRIVPORTS
-d $ANYWHERE 43 -j ACCEPT
ipchains -A output -i $BASTION_DMZ_INTERFACE -p tcp
-s $ANYWHERE 43 \
-d $CHOKE_firewall $UNPRIVPORTS -j ACCEPT
-y \
207
208
Captulo 4
Tabla 4.51.
Puerto
remolo
43
CHOKE_DMZ_IPADDR 1024:65535
Cualquiera
TCP ANYWHERE
43
E CHOKE_DMZ_IPADDR 1024:65535
ACK
Descripcin
Respuesta del
servidor remoto
Proto-
colo
Direccin remota
Puerto local
Puerto
remolo
70
E CHOKE_DMZ_IPADDR 1024:65535
Cualquiera
TCP ANYWHERE
70
ACK
Descripcin
Respuesta del
servidor remoto
Proto-
colo
Direccin remota
Puerto local
CHOKE_DMZ_IPADDR 1024:65535
Captulo 4
ProtoDireccin remota
colo
Puerto
remoto
70
Respuesta del
servidor remoto
70
Descripcin
TCP ANYWHERE
Puerto local
CHOKE_DMZ_IPADDR 1024:65535
Indlcador
TCP
Cual
quiera
E
CHOKE_DMZ_IPADDR 1024:65535
ACK
Las dos reglas siguientes habilitan las peticiones salientes del cliente gopher desde la mquina de contencin:
ipchain5 -A output -i $CHOKE_DMZ_INTERFACE -p tcp \
-5 $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 70 - j ACCEPT
ipchain5 -A input -i $CHOKE_DMZ_INTERFACE -p tcp ! -y
-5 $ANYWHERE 70 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS - j ACCEPT
209
210
Captulo 4
Puerto local
cador
TCP
210
CHOKE_DMZ_IPADDR
1024:655.15
Cualquiera
TCP ANYWHERE
210
CHOKE_DMZ_IPADDR
1024:65535
ACK
Respuesta del
servidor remoto
ProtoDireccin remola
colo
Imli-
Puerto
remoto
Descripcin
Las dos reglas siguientes permiten a los clientes internos acceder a servicios WAIS remotos:
ipchains -A input -i $BASTION_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 210 -j ACCEPT
ipchains -A output -i $BASTION_DMZ_INTERFACE -p tcp
-s $ANYWHERE 210 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS -j ACCEPT
-y \
ProtoDireccin remola
colo
Indi-
Puerto
remoto
Puerto local
cador
TCP
210
CHOKE_DMZ_IPADDR
1024:65535
Cualquiera
TCP ANYWHERE
210
CHOKE_DMZ_IPADDR 1024:65535
ACK
Descripcin
Respuesta del
servidor remoto
Las dos reglas siguientes permiten el acceso del cliente a servidores WAIS
remotos:
ipchains -A output -i $CHOKE_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR $UNPRIVPORTS \
-d $ANYWHERE 210 - j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp ! -y
-s $ANYWHERE 210 \
-d $CHOKE_DMZ_IPADDR $UNPRIVPORTS - j ACCEPT
Captulo 4
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Indi
Puerto local
cador
TCP
1024:65535
BASTION_EXTERNAL_I 554
PADDR
Cual
quiera
Respuesta del
servidor remoto
1024:65535 E
BASTION_EXTERNAL_I 554
PADDR
ACK
TCP ANYWHERE
1024:65535
BASTION_EXTERNAL_I 7070:7071
PADDR
Cual
quiera
Respuesta del
servidor remoto
TCP ANYWHERE
1024:65535 E
BASTION_EXTERNAL_I 7070:7071
PADDR
ACK
Respuesta del
servidor remoto
TCP ANYWHERE
1024:65535 E
BASTION_EXTERNAL_I 6970:7170
PADDR
Las siguientes reglas permiten la comunicacin de control del cliente entre la mquina bastin y los servidores remotos de RealAudio:
211
212
Captulo 4
ipchains -A
-s
-d
ipchains -A
-s
-d
-p tcp \
\
-p tcp 1 -y
-j
ACCEPT
ipchains -A
-s
-d
ipchains -A
-s
-d
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Indi-
Puerto local
ANYWHERE
Respuesta del
servidor remoto
TCP
ANYWHERE
1024:65535
ANYWHERE
Respuesta del
servidor remoto
TCP
ANYWHERE
1024:65535
CHOKE_DMZ_IPADDR 7070:7071
Respuesta del
servidor remoto
UDP
ANYWHERE
1024:65535
CHOKE_DMZ_IPADDR 6970:7170
CHOKE_DMZ_IPADDR 554
cador
TCP
Cual
quiera
ACK
Cualquiera
ACK
Captulo 4
-y \
-y \
213
214
Captulo 4
Tabla 4.58.
Descripcin
Proto-
colo
Direccin remota
TCP ANYWHERE
Puerto
remoto
1024:65535
Indl-
Puerto local
CHOKE_DMZ_IPADDR 554
cador
TCP
Cual-
quiera
1024:65535 E
1024:65535
CHOKE_DMZ_IPADDR 554
CHOKE_DMZ_IPADDR 7070:7071
ACK
Cual-
quiera
Respuesta del
servidor remoto
TCP ANYWHERE
1024:65535 E
CHOKE_DMZ_IPADDR 7070:7071
Respuesta del
servidor remoto
UDP ANYWHERE
1024:65535 E
CHOKE_DMZ_IPADDR 6970:7170
ACK
Las siguientes reglas permiten a un cliente local intercambiar comunicacin de datos con un servidor de RealAudio remoto usando conexiones
TCP:
ipchains -A output -i $CHOKE_DMZ_INTERFACE -p tcp \
-s $CHOKE_DMZ_IPADDR 7070:7071 \
-d $ANYWHERE $UNPRIVPORTS -j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p tcp
-s $ANYWHERE $UNPRIVPORTS \
-d $CHOKE_DMZ_IPADDR 7070:7071 -j ACCEPT
-y \
Las siguientes reglas permiten a un cliente local intercambiar comunicacin de datos con un servidor de RealAudio remoto usando datagramas
UDP:
ipchains -A output -i $CHOKE_DMZ_INTERFACE -p udp \
-s $CHOKE_DMZ_IPADDR 6970:6999 \
-d $ANYWHERE $UNPRIVPORTS -j ACCEPT
ipchains -A input -i $CHOKE_DMZ_INTERFACE -p udp \
-s $ANYWHERE $UNPRIVPORTS \
-d $CHOKE_DMZ_IPADDR 6970:6999 -j ACCEPT
Captulo 4
De5cripcin
Proto-
colo
Direccin remota
Puerto
remoto
6667
TCP ANYWHERE
6667
Respuesta del
servidor remoto
Puerto local
1024:65535
BASTION_EXTERNAL_
Indi
cador
TCP
Cual
quiera
IPADDR
1024:65535
BASTION_EXTERNAL_
1024:65535
Cual
quiera
IPADDR
TCP ANYWHERE
ACK
ACK
Respuesta del
cliente remoto
al cliente
de contencin
Respuesta
del cliente
de contencin
al cliente remoto
TCP ANYWHERE
1024:65535
BASTION_EXTERNAL_
lPADDR
1024:65535
Cual
quiera
215
216
Captulo 4
Descripcin
Proto-
colo
Direccin remota
Puerto
remoto
Puerto local
Indicador
TCP
6667
CHOKE_DMZ_IPADDR 1024:65535
Cualquiera
TCP ANYWHERE
6667
CHOKE_DMZ_IPADDR 1024:65535
ACK
1024:65535 E
CHOKE_DMZ_IPADDR 1024:65535
Cual
quiera
TCP ANYWHERE
Respuesta
del cliente remoto
al cliente
de contencin
1024:65535
CHOKE_DMZ_IPADDR 1024:65535
ACK
1024:65535
CHOKE_DMZ_IPADDR 1024:65535
ACK
1024:65535 E
CHOKE_DMZ_IPADDR 1024:65535
Cual
quiera
Respuesta del
servidor remoto
Respuesta
del cliente
de contencin
al cliente remoto
TCP ANYWHERE
Captulo 4
Tabla 4.61.
Descripcin
Profl>.
Direccin remota
colo
Puerto
remoto
Indi
Puerto local
cador
TCP
6667
CHOKE_DMZ_IPADDR 1024:65535
Cualquiera
TCP ANYWHERE
6667
E CHOKE_DMZ_IPADDR 1024:65535
ACK
1024:65535
1024:65535
Cualquiera
TCP ANYWHERE
Repuesta
del cliente remoto
al cliente
de contencin
1024:65535 E
CHOKE_DMZ_IPADDR 1024:65535
ACK
Respuesta del
servidor remoto
CHOKE_DMZ_IPADDR
217
218
Captulo 4
Tabla 4.61.
Descripcin
Proto-
colo
Direccin remota
Puerto
remoto
Puerto local
Indicador
TCP
1024:65535 E
CHOKE_DMZ_IPADDR 1024:65535
ACK
TCP ANYWHERE
Respuesta
del cliente remoto
al cliente
de contencin
1024:65535
CHOKE_DMZ_IPADDR 1024:65535
Cual-
lquim
-y
Captulo 4
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Indi
cador
TCP
Puerto local
BASTIN_EXTERNAL_
IPADDR
!024:65535
BASTIN_EXTERNAL_
IPADDR
!024:65535
BASTIN_EXTERNALIPADDR
!024:65535
Respuesta del
servidor remoto
BASTIN_EXTERNAL_
IPADDR
1024:65535
BASTIN_EXTERNAL_
IPADDR
!024:65535
Cualquiera
BASTIN_EXTERNAL_
IPADDR
1024:65535
ACK
Respuesta del
servidor remoto
Respuesta del
servidor remoto
CU-SeeMe
Para obtener ms informacin sobre cuestiones de firewall relacionadas con CU-SeeMe, consulte las direcciones http://www.cu-seeme.com y http://www.wpine.com.
219
220
Captulo 4
Tabla 4.63.
Descripcin
Proto-
colo
Direcdn remota
Puerto
remoto
Puerto local
CHOKE_DMZ_IPADDR 1024:65535
Respuesta del
servidor remoto
CHOKE_DMZ_IPADDR 1024:65535
CHOKE_DMZ_IPADDR 1024:65535
CHOKE_DMZ_IPADDR 1024:65535
CHOKE_DMZ_IPADDR 1024:65535
Respuesta del
servidor remoto
Respuesta del
servidor remoto
Indicador
TCP
Cual-
quiera
CHOKE_DMZ_IPADDR 1024:65535
ACK
Captulo 4
Tabla 4.64.
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Puerto local
Indlcador
TCP
CHOKE_DMZ_IPADDR !024:65535
Respuesta del
servidor remoto
CHOKE_DMZ_IPADDR !024:65535
CHOKE_DMZ_IPADDR 1024:65535
Respuesta del
servidor remoto
CHOKE_DMZ_IPADDR !024:65535
CHOKE_DMZ_IPADDR !024:65535
Cual
quiera
Respuesta del
servidor remoto
CHOKE_DMZ_IPADDR 1024:65535
ACK
221
222
Captulo 4
Tabla 4.65.
Proto-
Puerto
remoto
Puerto local
BASTIN_EXTERNAL_
IPADDR
1024:65535
BASTIN_EXTERNAL_
IPADDR
1024:65535
BASTIN_EXTERNAL_
IPADDR
1024:65535
BASTIN_EXTERNAL_
IPADDR
1024:65535
Descripcin
Peticin
de conexin
del cliente
de contencin
colo
Direccin remota
Indicador
TCP
Quake
Si se desea ms informacin sobre las cuestiones de firewall relacionadas con Quake,
consulte la direccin:
http://www.gamers.org/dEngine/quake/spec.
Captulo 4
Tabla 4_66.
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Puerto local
CHOKE_DMZ_IPADDR 1024:65535
Respuesta
UDP Servidor de Quake 26000
de conexin
del servidor remoto
CHOKE_DMZ_IPADDR 1024:65535
CHOKE_DMZ_IPADDR 1024:65535
Respuesta
UDP Servidor de Quake 1025:1200
del servidor remoto
CHOKE_DMZ_IPADDR 1024:65535
Peticin
de conexin
del cliente
de contencin
Indicador
TCP
223
224
Captulo 4
De5crlpcln
Peticin
de conexin
del cliente
de contencin
!'rolo-
colo
Direccin remota
UDP ANYWHERE
Puerto
remoto
1024:65535 E
BASTION_EXTERNAL_
IPADDR
Puerto local
26000
BASTION_EXTERNAL_ 26000
IPADDR
UDP ANYWHERE
Respuesta
de conexin
del servidor remoto
1024:65535
1024:65535 E
BASTION_EXTERNAL_
IPADDR
1025:1200
Respuesta del
servidor bastin
1024:65535
BASTION_EXTERNAL_
IPADDR
1025:1200
UDP ANYWHERE
Indlcador
TCP
Captulo 4
Descripcin
ProtoDireccin remota
colo
Puerto
remoto
Jndl.
Puerto local
CHOKE_DMZ_IPADDR 1024:65535
Respuesta
UDP Servidor de Quake 26000
de conexin
del servidor remoto
CHOKE_DMZ_IPADDR 1024:65535
Peticin
del cliente
de contencin
CHOKE_DMZ_IPADDR 1024:65535
Respuesta
UDP Servidor de Quake 1025:1200
del servidor remoto
CHOKE_DMZ_IPADDR 1024:65535
Peticin
de conexin
del cliente
de contencin
cador
TCP
225
226
Captulo 4
Tabla 4.69.
Descripcin
ProtoDireccin remota
colo
Puerto
E/S Direccin local
remoto
Puerto local
UDP
BASTIN_DMZ_IPADDR
123
CHOKE_DMZ_IPADDR 1024:65535
BASTIN_DMZ_IPADDR
123
CHOKE_DMZ_IPADDR 1024:65535
lJDP
BASTIN_DMZ_IPADDR
123
E CHOKE_DMZ_IPADDR 123
BASTIN_DMZ_IPADDR
123
CHOKE_DMZ_IPADDR 123
Captulo 4
Puerto
E/S Direccin local
remoto
UDP
BASTION_DMZ_IPADDR
123
UDP
BASTION_DMZ_IPADDR
123
E CHOKE_DMZ_IPADDR 1024:65535
UDP
BASTION_DMZ_IPADDR
123
UDP
BASTION_DMZ_IPADDR
123
E CHOKE_DMZ_IPADDR 123
Descripcin
Puerto local
CHOKE_DMZ_IPADDR 1024:65535
CHOKE_DMZ_IPADDR 123
227
228
Captulo 4
Tabla 4. 71.
Descripcin
ProtoDireccin remota
colo
Puerto
E/S Direccin local
remoto
UDP
514
CHOKE_DMZ_IPADDR
Puerto local
BASTION_DMZ_IPADDR 514
Captulo 4
@choke
* *
Descripcin
Registro del servidor
bastin
J>roto.
colo
UDP
Direccin mnota
Puerto
remolo
BASTION_DMZ_IPADDR 514
Puerto local
In CHOKE_DMZ_IPADDR
514
agregado la opcin -r para indicar al servidor que escuche el socket de dominio de Internet en el puerto UDP 514, al igual que para que escuche en los
socket de dominio UNIX normil:
daemon syslogd -r
La siguiente regla permite los mensajes de registro entrantes desde el servidor syslogd del bastin:
229
230
Captulo 4
Tabla 4.73.
Puerto
E/S Direccin local
remoto
DHCPDISCOVER;
DHCPREQUEST
UDP
O.O.O.O
68
E 255.255.255.255
67
DHCPOFFER
UDP
255.255.255.255
68
O.O.O.O
67
DHCPOFFER
Descripcin
Puerto local
UDP
255.255.255.255
68
s
s
CHOK.E_IAN_IPADDR
67
DHCPREQUEST;
DHCEPDECLINE
UDP
O.O.O.O
68
E CHOKE_IAN_IPADDR
67
DHCPACK;
DHCPNAK
UDP
CHOKE_I.AN_NETMASK 68
CHOKE_I.AN_IPADDR
67
DHCPACK
UDP
CHOKE_DMZ_IPADDR
68
CHOK.E_I.AN_IPADDR
67
DHCPREQUEST;
DHCPRELEASE
UDP
CHOK.E_DMZ_IPADDR
68
E CHOK.E_I.AN_IPADDR
67
Aunque nunca se deben enviar mensajes de servidor DHCP a Internet, algunas personas ejecutan un servidor DHCP privado para asignar direcciones
IP a mquinas locales. DHCP puede ser til no slo para asignar direcciones
IP en una IAN grande con muchas mquinas, sino tambin para pequeas
IAN personales. De hecho, algunas personas con un sistema independiente
de una sola mquina ejecutan el servidor dhcpd de forma local si usan un
equipo porttil entre casa y el trabajo. Si el entorno de trabajo asigna direcciones IP de forma dinmica, el uso de DHCP en casa facilita el transporte del
equipo porttil entre redes.
Para este ejemplo, el servidor dhcpd se est ejecutando en la mquina de
contencin, ofreciendo asignacin de direcciones IP dinmicas para mquinas de la IAN privada:
ipchains -A input -i $CHOKE_LAN_INTERFACE -p udp \
-s $BROADCAST_0 68 \
-d $BROADCAST_1 67 - j ACCEPT
ipchains -A output -i $CHOKE_LAN_INTERFACE -p udp \
-s $BROADCAST_0 67 \
-d $BROADCAST_1 68 -j ACCEPT
ipchains -A output -i $CHOKE_LAN_INTERFACE -p udp \
-s $CHOKE_LAN_IPADDR 67 \
-d $BROADCAST_1 68 - j ACCEPT
ipchains -A input -i $CHOKE_LAN_INTERFACE -p udp \
-s $BROADCAST_0 68 \
-d $CHOKE_LAN_IPADDR 67 -j ACCEPT
ipchains -A output -i $CHOKE_LAN_INTERFACE -p udp \
-s $CHOKE_LAN_IPADDR 67 \
-d $CHOKE LAN_ADDRESSES/CHOKE_LAN_NETMASK 68 - j ACCEPT
Captulo 4
Registro
Registrar los paquetes descartados en las interfaces internas puede que no
sea especialmente til en los entornos relativamente seguros en los que se
231
232
Captulo 4
centra este libro. Sin embargo, el registro es una herramienta principal para
depurar problemas de firewalls y comprender los protocolos de comunicacin. Como se permite el trfico entre la LAN privada y la mquina de contencin, el registro se habilitar de forma especifica en funcin del puerto.
Resumen
En este captulo se explican algunas de las opciones disponibles a la hora
de proteger una LAN. Las directivas de seguridad se definen de forma relativa al nivel de seguridad necesaria del sitio, la importancia de los datos que se
estn protegiendo y el coste que supondra la perdida de datos o de privacidad. Se empieza con una LAN particular sencilla y con el firewall programado en el Captulo 3; posteriormente se explican las opciones de configuracin de la LAN y del firewall, incrementado la complejidad de las
configuraciones.
Lo que ms se resalta en este captulo es cmo usar el ejemplo de firewall
del Captulo 3 como base para programar un tipo de firewall de referencia,
elaborado y formal. El firewall bastin tiene dos interfaces de red: una conectada a Internet y otra conectada a una red de permetro o DMZ. Se ofrecen los servicios de Internet pblicos desde mquinas que pertenecen a la
red DMZ. Un segundo firewall, el firewall de contencin, tambin se conecta a la red DMZ, separando las redes privadas internas de las mquinas de servidor casi pblicas en la red de permetro. Las mquinas privadas se protegen
detrs del firewall de contencin situado en la LAN interna. El firewall de contencin protege la LAN interna de la mquina bastin comprometida y de
cualquier otra mquina situada en la red de permetro.
Algunos servicios, como IRC o RealAudio, no se prestan para filtrar paquetes, debido a sus protocolos de comunicacin de aplicacin, tales como
solicitar conexiones entrantes desde el servidor o intercambios cliente/servidor mltiples tanto sobre TCP como UDP. Estos tipos de servicios requieren
ayuda adicional, ya sea desde los mdulos de compatibilidad de enmascaramiento que incluye el ncleo o desde servidores proxy del nivel de aplicacin. Tambin se presentan en este captulo varios conjuntos de reglas de firewall para algunos de estos servicios, los que no se pueden proteger de
forma sencilla mediante los ejemplos de firewall del Captulo 3.
234
Captulo 5
purar las reglas cuando algo sale mal. En general, los siguientes consejos pueden facilitar algo el proceso:
Ejecute siempre las reglas desde una secuencia de comandos completa de prueba. Asegrese de que la secuencia de comandos purga todas
las reglas existentes y restablece primero las directivas predeterminadas. Si se hace de otra forma, no se puede estar seguro de que reglas
se ejecutan o en qu orden lo harn.
No ejecute nuevas reglas desde la lnea de comandos. Especialmente
no ejecute las reglas de directiva predeterminada desde la lnea de comandos. Se le impedir el acceso inmediatamente si tiene una sesin
iniciada en X Window, o una sesin iniciada de forma remota desde
otro sistema, incluso si el sistema pertenece a la LAN.
Ejecute la secuencia de comandos de prueba desde la consola. No
pruebe a depurar desde una mquina remota. Trabajar desde X Window en la consola puede ser ms cmodo, pero sigue presente el peligro de perder el acceso a X Window de forma local. Preprese por si
es necesario cambiar a una consola virtual para volver a obtener el
control.
Siempre que sea posible, trabaje en un servicio cada vez. Agregue reglas una a una o como pares de reglas de entrada y salida. Prubelas
conforme las introduce. Esto facilita mucho poder aislar directamente
las reas problemticas de las reglas.
Recuerde que la primera regla que coincide gana. El orden es importante. Use los comandos de listado de ipchains conforme trabaja para
comprobar cmo se ordenan las reglas. Haga el seguimiento de un paquete imaginario a travs de la lista.
Recuerde que existen al menos dos cadenas independientes: input y
output. Si las reglas input parecen correctas, el problema puede estar
en la cadena output, o viceversa.
Si la secuencia de comandos parece que se bloquea, es probable que
exista una regla que hace referencia a un nombre de host simblico en
vez de a una direccin IP antes de haber habilitado las reglas DNS.
Cualquier regla que use un nombre de host en vez de una direccin IP
debe colocarse despus de las reglas DNS.
Realice una doble comprobacin de la sintaxis de ipchains. Es fcil equivocarse en la direccin de la regla, invertir las direcciones o los puertos origen y destino, o cambiar opciones sensibles a las maysculas.
Si encuentra un error de sintaxis, la secuencia de comandos del firewall finaliza sin instalar las siguientes reglas y los mensajes de error del
programa ipchains son enigmticos. Si tiene dificultades para identificar la regla problemtica, ejecute la secuencia de comandos con la opcin de shell -x o -v para listar las reglas conforme se ejecuta la secuencia de comandos; por ejemplo, sh -v /etc/rc.d/rc.firewall. La
opcin -v imprime la lnea de la secuencia de comandos segn la lee
Captulo 5
>
/proc/sys/net/ipv4/ip_forward
235
236
Captulo 5
En lugar de usar ipchains para definir reglas reales, se puede utilizar para
listar las reglas existentes desde la lnea de comandos. La salida se dirige al
terminal o puede redirigirse a un archivo.
En las siguientes secciones se usan cuatro reglas de ejemplo de la cadena
input para mostrar las diferencias entre las distintas opciones de formato de
listado disponibles y para explicar lo que significan los campos output. Usando las diferentes opciones de formato de listado, se listan las mismas cuatro
reglas de ejemplo con diferentes grados de detalle y legibilid:>.d. Las opciones
de formato de listado son las mismas para las cadenas input, output y forward.
Entrada ipchains -L
La siguiente es una lista abreviada de cuatro reglas para una tabla de la cadena input usando las opciones de listado predeterminadas:
>
1.
2.
3.
4.
5.
6.
ipchains L input
Chain input (policy DENY):
source
target prot opt
--1 mi.host.dominio
DENY
al!
anywhere
ACCEPT icmp
anywhere
ACCEPT al!
ACCEPT tcp
!y-- anywhere
destination
anywhere
mi.host.dominio
anywhere
mi.host.dominio
ports
n/a
eooo-reply
n/a
www-> 1024:65535
La lnea 1 identifica el listado como procedente de la cadena input. La directiva predeterminada de la cadena input es DENY.
La lnea 2 contiene los siguientes encabezados de columna:
target se refiere a la disposicin del destino de un paquete que coincide con la regla, ACCEPT, DENY o REJECT.
prot es la abreviatura de protocolo, que puede ser all, tcp, udp o icmp.
opt es la abreviatura de opciones de paquete, o bits de indicador. Los
cuatro indicadores ms habituales que se pueden ver sern none, 1(registra un paquete que coincida con la regla), y (debe activarse el indicador SYN) e !y (debe activarse el indicador ACK).
source es la direccin origen del paquete.
destination es la direccin destino del paquete.
ports lista tanto el puerto origen como el destino, el tipo de mensaje
ICMP, o n/a si no se han especificado puertos en la regla.
Captulo 5
talle que se olvid en este caso es la interfaz, lo. Esta es la regla que acepta
todas las entradas en la interfaz de bucle invertido.
La lnea 6 acepta los paquetes procedentes de servidores web remotos
con los que se ha contactado. El protocolo es el tcp. Las respuestas entrantes
de servidor hacia el navegador deben tener el bit ACK activado (!y). El puerto origen del servidor web es el puerto 80, www. El navegador web, como
programa cliente que es, contact con el servidor desde uno de los puertos
no privilegiados, 1024-65535.
ipchains -L input -n
La opcin -n muestra todos los campos como valores numricos en vez de
como nombres simblicos. Esta opcin puede ahorrar tiempo si las reglas del
firewall usan muchos nombres de host simblicos, pues de lo contrario sera
necesario realizar bsquedas DNS antes de listarlas. Adems, un intervalo de
puertos indica mejor si se lista como 23:79 en lugar de telnet:finger.
Si se usan las mismas cuatro reglas de ejemplo de la cadena input , los siguientes muestran cmo aparece la salida del listado usando la opcin numrica -n:
>
1.
2.
3.
4.
5.
6.
ipchains -L input -n
Chain input (policy DENY):
target prot opt
source
DENY
192.168.10.30
all
l
ACCEPT icmp
0.0.0.0/0
ACCEPT all
0.0.0.0/0
ACCEPT tcp
!y--0.0.0.0/0
destination
0.0.0.0/0
192.168.10.30
0.0.0.0/0
192.168.10.30
ports
n/a
0 -> *
n/a
80
-> 1024:65535
La lnea 1 identifica el listado como procedente de la cadena input. La directiva predeterminada de la cadena input es DENY.
La lnea 2 contiene los siguientes encabezados de columna:
target se refiere a la disposicin del destino de un paquete que coincide con la regla, ACCEPT, DENY o REJECT.
prot es la abreviatura de protocolo, que puede ser all, tcp, udp o icmp.
optes la abreviatura de opciones de paquete, o bits de indicador. Los
cuatro indicadores ms habituales que se pueden ver sern none, 1(registra un paquete que coincida con la regla), y (debe activarse el indicador SYN) e !y (debe activarse el indicador ACK).
source es la direccin origen del paquete.
destination es la direccin destino del paquete.
ports lista tanto el puerto origen como el destino, el tipo de mensaje
ICMP, o n/a si no se han especificado puertos en la regla.
La lnea 3 es la regla de usurpamiento bsica de IP, que deniega los paquetes entrantes que dicen proceder de una mquina cuya la direccin IP
es 192.168.10.30, con el registro habilitado.
237
238
Captulo 5
ipchains -L input -v
La opcin -v produce una salida ms detallada, que incluye el nombre de
la interfaz. La presentacin del nombre de la interfaz es de especial ayuda
cuando la mquina tiene ms de una interfaz de red.
Usando las mismas cuatro reglas de ejemplo de la cadena input, las siguientes muestran el aspecto de la salida del listado usando la opcin de detalle -v:
>
ipchains -L input -v
anywhere
mi. host. dominio
anywhere n/a
mi. host. dominio
La lnea 1 identifica el listado como procedente de la cadena input. La directiva predeterminada de la cadena input es DENY. Han pasado 60018 paquetes a travs de las reglas de la cadena input, contabilizando 4120591 bytes
de trfico de red.
La lnea 2 contiene los siguientes encabezados de columna:
Captulo 5
La lnea 3 es la regla de usurpamiento bsica de IP, que deniega los paquetes entrantes que dicen proceder de la mquina del usuario, con el registro habilitado.
La lnea 4 acepta contestaciones entrantes ping a las peticiones salientes
ping.
La lnea 5 muestra cmo el comando -L de listado, con la opcin de detalle, proporciona algn detalle clarificador cuando las reglas se refieren a mltiples interfaces. Con la opcin -v, est claro que la regla se refiere a la interfaz de bucle invertido, lo. Esta es la regla que acepta todas las entradas en la
interfaz de bucle invertido.
La lnea 6 acepta los paquetes procedentes de servidores web remotos
con los que se ha contactado. El protocolo es el tcp. Las respuestas entrantes
de servidor hacia el navegador deben tener el bit ACK activado (!y). El puerto origen del servidor web es el puerto 80, www. El navegador web, como
programa cliente que es, contact con el servidor desde uno de los puertos
no privilegiados, 1024-65535.
239
240
Captulo 5
0xFF 0x00 lo
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
192 .168.10.30
La lnea 1 identifica el listado como procedente de la cadena input. La directiva predeterminada de la cadena input es DENY. Han pasado 60018 paquetes a travs de las reglas de la cadena input, contabilizndose 4120591 bytes de trfico de red.
La lnea 2 contiene los siguientes encabezados de columna:
Captulo 5
con la regla.
target se refiere a la disposicin del destino de un paquete que coincide con la regla, ACCEPT, DENY o REJECT.
prot es la abreviatura de protocolo, que puede ser ali, tcp, udp o icmp.
opt es la abreviatura de opciones de paquete, o bits de indicador. Los
cuatro indicadores ms habituales que se pueden ver sern none, 1(registra un paquete que coincida con la regla), y (debe activarse el indicador SYN) e !y (debe activarse el indicador ACK).
Las mscaras Tipo de servicio (TOS, Type of Service), tosa y tosx, son
mscaras and y xor, respectivamente. Cuatro de los bits corresponden
a cuatro formas diferentes de manejar la prioridad de entrega del paquete: Mnimum Delay (Demora mnima), Maximum Throughput (Mximo rendimiento), Maximum Reliability (Mxima confiabilidad) y Mnimum Cost (Coste mnimo). Se puede especificar uno de los bits de
prioridad de servicio y ste se activa en la mscara and para seleccionar el bit. El resultado de la operacin and se hace un xor con la mscara xor para activar o borrar el indicador.
ifname es el nombre de la interfaz de red, como ethO, eth 1, lo o pppO,
a la que se aplica esta regla. Slo los paquetes de esta interfaz especfica de red coincidirn con la regla. Este campo se convierte en algo
importante si se tiene una LAN con reglas de firewall independientes
para las distintas interfaces.
* es un contenedor para los dos campos que no se usan y se incluyen
en la salida. En este caso se han reemplazado estos campos, mark y
outsize, para ahorrar espacio:
mark no se usa o no est todava bien documentado.
outsize no est documentado.
source es la direccin origen del paquete.
destination es la direccin destino del paquete.
ports lista tanto el puerto origen como el destino, el tipo de mensaje
ICMP, o n/a si no se han especificado puertos en la regla.
La lnea 3 es la regla de usurpamiento bsica de IP, que deniega los paquetes entrantes que dicen proceder de la mquina del usuario, con el registro habilitado.
La lnea 4 acepta contestaciones entrantes ping a las peticiones salientes
ping.
La lnea 5 muestra cmo el comando -L de listado, con la opcin de detalle, proporciona algn detalle clarificador cuando las reglas se refieren a mltiples interfaces. Con la opcin -v, est claro que la regla se refiere a la interfaz de bucle invertido, lo. Esta es la regla que acepta todas las entradas en la
interfaz de bucle invertido.
La lnea 6 acepta los paquetes procedentes de servidores web remotos
con los que se ha contactado. El protocolo es el tcp. Las respuestas entrantes
241
242
Captulo 5
de servidor hacia el navegador deben tener el bit ACK activado (!y). El puerto origen del servidor web es el puerto 80, www. El navegador web, como
programa cliente que es, contact con el servidor desde uno de los puertos
no privilegiados, 1024--65535.
ipchains -L input
Chain input (policy DENY):
target prot opt
source
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
destination
ports
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
source-quench
time-exceeded
parameter-problem
domain -> domain
domain ->
mi.host.dominio domain
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
->
La directiva predeterminada para los paquetes entrantes es DENY. Los paquetes denegados simplemente se descartan sin devolver ninguna notificacin a las direcciones origen. Hay 14 reglas en la cadena:
Lnea 1: Los mensajes de error ICMP Destination Unreachable entrantes se aceptan, procedan de donde procedan.
Captulo 5
Lnea 2: Los mensajes de flujo de control ICMP Source Quench entrantes se aceptan, procedan de donde procedan ..
Lnea 3: Los mensajes de error ICMP Time Exceeded entrantes se
aceptan, procedan de donde procedan.
Lnea 4: Los mensajes de error ICMP Parameter Problem entrantes se
aceptan, procedan de donde procedan.
Lnea 5: Se acepta un paquete UDP con la misma direccin origen que
el servidor de nombres del ISP si los puertos origen y destino son ambos el puerto 53 del servicio domain. Este tipo de paquete debera ser
una comunicacin servidor a servidor, en la que el servidor de nombres local enva una peticin de bsqueda al servidor de nombres del
ISP. Este paquete contiene la respuesta a la peticin.
Lnea 6: Se acepta un paquete con la direccin origen igual al servidor
de nombres del ISP si el puerto origen es el puerto 53 del servicio domain, dirigido a esta interfaz y a un puerto destino no privilegiado.
Este tipo de paquete debera ser una respuesta UDP servidor a cliente
con la informacin de la bsqueda DNS que solicit un cliente de la
mquina.
Lnea 7: Un paquete TCP con la direccin origen del servidor de nombres del ISP se acepta si el puerto origen es el puerto 53 del servicio
domain, el bit ACK est activado en el campo indicador del paquete, y
el puerto destino pertenece al intervalo de los puertos no privilegiados. Si la mquina est configurada como un cliente DNS, este paquete debera ser una respuesta TCP de servidor a cliente con la informacin de la bsqueda DNS que ha solicitado un cliente de la mquina,
despus de una peticin inicial UDP errnea.
Lnea 8: Se rechazan todos los paquetes destinados al servidor local
identd en el puerto 113 del servicio auth. Se devuelve una notificacin
de error ICMP de tipo 3 a la direccin origen.
Lnea 9: Se aceptan todos los paquetes entrantes TCP procedentes del
puerto 113 del servicio auth y dirigidos a un puerto destino no privilegiado, suponiendo que el bit ACK est activado. Estos paquetes contienen respuestas a peticiones auth que inici uno de los clientes.
Lnea 10: Se aceptan los paquetes TCP entrantes procedentes de cualquier direccin origen con un puerto origen no privilegiado si estn
dirigidos al puerto de servicio del servidor web, el puerto 80. Se aceptan los paquetes con el indicador SYN o sin el indicador ACK.
Lnea 11: Se aceptan los paquetes de respuesta TCP entrantes desde
cualquier direccin origen y del puerto origen 80, si estn dirigidos a
un puerto no privilegiado local y el bit ACK est activado. Estos paquetes son respuestas entrantes de servidores web remotos con los
que se ha contactado a travs del navegador web.
Lnea 12: Se aceptan los paquetes de respuesta entrantes TCP procedentes de una direccin origen igual al servidor de noticias del ISP y
del puerto origen nntp 119, si estn dirigidos a un puerto no privilegiado local y el bit ACK est activado. Estos paquetes son respuestas
243
244
Captulo 5
ipchains -L output
Chain output (policy REJECT):
target prot opt
source
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
icmp
icmp
icmp
icmp
udp
udp
tcp
tcp
tcp !y- -. tcp
tcp
tcp !y- .. tcp
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
mi.host.dominio
destination
ports
anywhere
anywhere
isp.address.range
anywhere
isp.name.server
isp.name.server
isp.name.server
anywhere
anywhere
anywhere
isp.news.server
anywhere
anywhere
destination-unreachable
source-quench
time-exceeded
parameter-problem
domain -> domain
1024:65535-> domain
1024:65535-> domain
1024:65535 -> auth
WNW -> 1024:65535
1024:65535 -> WNW
1024:65535 -> nntp
smtp -> 1024:65535
1024:65535 -> smtp
La directiva predeterminada para la cadena output es REJECT. Los programas locales recibirn una observacin de error inmediatamente si una conexin no tiene permiso. La cadena tiene 13 reglas:
Captulo 5
245
246
Captulo 5
puerto destino no privilegiado y el bit ACK est activado. Estos paquetes son respuestas salientes a clientes de correo remotos que han
contactado con el usuario para entregar el correo entrante.
Lnea 13: Se aceptan los paquetes TCP salientes procedentes de un
puerto no privilegiado, si estn dirigidos al puerto destino 25 del servicio smtp. Estos paquetes son peticiones de conexin salientes y conexiones activas con servidores de correo remotos con los que se ha
contactado para enviar correo saliente.
La directiva predeterminada es REJECT, de forma que no se enviar ningn paquete sin una regla explcita.
Enmascaramiento ICMP en Linux
Hasta ahora, los mensajes ICMP que no fueran mensajes de error no se enmascaraban,
a menos que se compilara de forma explcita un servicio de enmascaramiento en el
ncleo. El servicio no estaba habilitado de forma predeterminada. En la versin 6.0 de
Red Hat, el enmascaramiento ICMP est habilitado de forma predeterminada. Esto significa que es posible que una nica mquina haga ping a un host remoto o ejecute traceroute sin necesidad de volver a compilar el ncleo.
En este caso, la opcin -v tambin puede ser de ayuda. La regla dice que
los paquetes que llegan desde la LAN interna, $1NTERNAL_LAN_ADDRES-
Captulo 5
247
248
Captulo 5
sintaxis -e est cayendo en desuso. Las diferencias pueden confundir al usuario, porque las ilegalidades que se producen usando la opcin -e son perfectamente legales a la hora de definir una regla real.
ipchains no implica los valores predeterminados cuando se usa la opcin
-c. Es necesario especificar valores de argumentos de lnea de comandos
exactos. Las descripciones de los paquetes de prueba deben usar la opcin -i
para especificar una interfaz. Deben especificarse puertos origen y destino
explcitos individuales. No se pueden utilizar intervalos, no estn permitidos.
Por lo tanto, en los siguientes ejemplos, la constante $UNPRIVPORTS se reemplaza por el puerto 5000, un puerto individual de dicho intervalo. Como
es necesario especificar los puertos origen y destino, tambin debe especificar las direcciones origen y destino. No se permite el operador de negacin, !. Se puede usar la opcin -y, pero no se puede usar la opcin ! -y. Se
pueden utilizar tanto los identificadores numricos como los nombres simblicos para las direcciones y los puertos origen y destino.
Los siguientes ejemplos -C de ipchains suponen que se tiene un firewall
instalado, segn se describe en el Captulo 3, "Creacin e instalacin de un
firewall."
Un paquete que coincida con la siguiente descripcin se deniega, incluso
si se alberga un servidor web. Las reglas recomendadas contra el usurpamiento de direcciones IP no permiten los paquetes entrantes que dicen proceder de la direccin origen:
> ipchains -C input -i eth0 -p tcp -y \
-s <mi.host.dominio> 5000 \
-d <mi.host.dominio> 80
denied
Captulo 5
Un paquete que coincida con esta descripcin est enmascarado. Cualquier paquete procedente de una mquina de la LAN y destinada a una direccin irresoluble (es decir, una direccin remota) se enmascara y se enva
al exterior a travs de la interfaz externa:
> ipchains -C forward -i eth0 -p tcp
-s <my.lan.ip.address> 5000
-d any /0 80
masqueraded
netstat -a [ -n -p -A inet ]
netstat crea un informe con distinta informacin de estado de la red. Documentaremos unas cuantas opciones de la lnea de comandos para seleccionar la informacin que mostrar netstat. Las siguientes opciones son tiles
para identificar puertos abiertos, informando si estn en uso actualmente y
por quin, e informando sobre qu programas y procesos especficos escuchan en los puertos:
-a lista todos los puertos que estn en uso actualmente o escuchan los
servidores locales.
-n muestra los nombres de host y los identificadores de puerto en formato numrico. Sin la opcin -n, los nombres de los host y los identificadores de los puertos aparecen como nombres simblicos, tantos
como quepan en 80 columnas. El uso de la opcin -n evita una espera potencialmente larga mientras los nombres de host se traducen a di-
249
250
Captulo 5
netstat -a -p -A inet
1-
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
PID/
ESTABLISHED
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
638/httpd
588/named
588/named
574/inetd
574/inetd
574/inetd
574/inetd
588/named
588/named
588/named
Captulo 5
La lnea 3 muestra que existe una conexin telnet activa sobre la interfaz
LAN de la red interna procedente de un Macintosh. El comando netstat se ha
introducido desde esta conexin.
La lnea 4 muestra que el programa sendmail escucha el correo entrante en
el puerto del servicio SMTP asociado con todas las interfaces de red, incluyendo la interfaz externa conectada a Internet, la interfaz LAN interna y la interfaz del host local de bucle invertido.
La lnea 5 muestra que existe un servidor web que escucha las conexiones en la interfaz externa a Internet.
La lnea 6 muestra que el servidor de nombres escucha, en la interfaz LAN
interna, las peticiones de conexin de bsqueda DNS desde mquinas locales sobre TCP.
La lnea 7 muestra que el servidor de nombres escucha, en la interfaz de
bucle invertido, las peticiones de conexin de bsqueda DNS desde clientes
en esta maquina sobre TCP.
La lnea 8 muestra que inetd escucha las conexiones en el puerto del servicio auth asociado con todas las interfaces a favor de identd.
La lnea 9 muestra que inetd escucha las conexiones en el puerto pop-3
asociado con todas las interfaces, a favor de popd (inetd escucha en todas las
interfaces las conexiones POP entrantes. Si llega una peticin de conexin,
inetd inicia un servidor popd para atender la peticin). Tanto el firewall como
los mecanismos de seguridad de ms alto nivel en el nivel tcp_wrapper y el
nivel de configuracin de popd restringen las conexiones entrantes a las mquinas LAN.
La lnea 10 muestra que inetd escucha las conexiones en el puerto telnet
asociado con todas las interfaces a favor de telnetd (inetd escucha en todas las
interfaces las conexiones telnet entrantes. Si llega una peticin de conexin,
inetd inicia un servidor telnetd para atender la peticin.) Tanto el firewall
como los mecanismos de seguridad de alto nivel a nivel de tcp_wrapper restringen las conexiones entrantes a las mquinas LAN.
La lnea 11 muestra que inetd escucha las conexiones en el puerto ftp asociado con todas las interfaces a favor de ftpd. (inetd escucha en todas las interfaces las conexiones telnet entrantes. Si llega una peticin de conexin,
inetd inicia un servidor telnetd para atender la peticin.) Tanto el firewall
como los mecanismos de seguridad de alto nivel a nivel de tcp_wrapper y el
nivel de configuracin del servidor ftpd restringen las conexiones entrantes a
las mquinas LAN.
251
252
Captulo 5
La lnea 12 muestra que el servidor de nombres escucha, en todas las interfaces, las comunicaciones servidor a servidor DNS y acepta las peticiones
de bsqueda locales sobre UDP.
La lnea 13 muestra que el servidor de nombres escucha la interfaz de red
LAN interna esperando las comunicaciones servidor a servidor DNS y las peticiones de bsqueda sobre UDP.
La lnea 14 muestra que el servidor de nombres escucha la interfaz de bucle invertido esperando las peticiones de bsqueda DNS desde clientes locales en esta mquina sobre UDP.
Los servidores ociosos que escuchan el protocolo TCP se muestran como
LISTENing para una peticin de conexin. Los servidores detenidos que escuchan sobre el protocolo UDP se muestran en blanco. UDP no tiene estado.
La salida de netstat simplemente est haciendo una distincin entre el protocolo TCP con estado y el protocolo UDP sin estado.
Las siguientes secciones describen dos herramientas de otros fabricantes
disponibles en Internet, strobe y nmap.
Convenciones para los informes de salida de netstat
En la salida de netstat, las direcciones locales y externas (es decir, remotas) se listan
como <direccin:puerto>. Debajo de la columna Local Address, la direccin es el nombre o direccin IP de una de las tarjetas de interfaz de red. Cuando la direccin aparece en el listado como*, significa que el servidor escucha en todas las interfaces de
red, en lugar de en una nica interfaz. El puerto es el identificador, numrico o simblico, del puerto de servicio que usa el servidor. Debajo de la columna Foreign Address, la direccin es el nombre de la direccin IP del cliente remoto que participa actualmente en una conexin. Cuando el puerto est ocioso, aparece *.* en el listado.
El puerto es el puerto del cliente en su extremo.
strobe
strobe es una exploracin de puerto TCP simple. Se debe usar para hacer
un informe sobre qu puertos TCP estn abiertos en las interfaces de red.
Se puede conseguir la herramienta strobe en la direccin
http://metalab.unc.edu/pub/Linux/system/network/admin.
La siguiente salida de ejemplo de strobe informa sobre los puertos TCP en
los que strobe ha encontrado servidores escuchando. La salida predeterminada de strobe incluye el nombre del host explorado y la entrada de /etc/services que describe el puerto. Si se tiene un firewall instalado, puede haber
servidores adicionales ejecutndose en la mquina, as como otros ocultos
detrs de puertos bloqueados de forma pblica:
>
strobe f irewall
strobe 1.02
firewall
firewall
firewall
firewall
firewall
Captulo 5
nmap
nmap es una herramienta de auditoa de red bastante nueva que incluye
muchas de las nuevas tcnicas de exploracin que se usan actualmente. Es
necesario revisar la seguridad del sistema con nmap. Es un hecho que otras
personas lo harn. Se puede conseguir la herramienta nmap en la direccin
http://metalab.unc.edu/pub/Linux/system/network/admin/.
La siguiente salida de ejemplo de nmap informa sobre el estado de todos
los puertos TCP y UDP. Como no se usa la versin completa, nmap slo informa sobre los puertos que estn abiertos o que tienen servidores escuchando en ellos. La salida de nmap incluye el nombre del host explorado, la
direccin IP, el puerto, el estado abierto o cerrado, el protocolo de transporte en uso en dicho puerto y el nombre del puerto de servicio simblico del
archivo /etc/services. Como sebastion es un host interno, los puertos adicionales de telnet y de Xl 1 estn abiertos para acceso LAN interno:
>
WARNING:
-su is now UDP sean - for TCP FIN sean use -sF
253
254
Captulo 5
Descargu, compil e instal ssh. Configur las claves de autenticacin localmente en uno de los ISP. Las conexiones salientes de ssh hacia el ISP funcionaron sin ningn problema. Las conexiones entrantes de ssh procedentes
del ISP funcionaron sin problemas. Todo iba sobre ruedas.
No tard mucho tiempo en descubrir que las conexiones entrantes ssh
procedentes de un empleado no funcionaban. Al intentar utilizar ssh desde el
trabajo para conectar con la mquina de casa, me solicit la contrasea. Fue
aceptada. Apareci el titular de inicio de sesin local y una lnea de comandos de shell bajo mi cuenta de inicio de sesin. Luego, nada. El teclado no
responda. Por el contrario, si usaba ssh para conectarme al ISP desde el trabajo y luego usaba ssh para iniciar una sesin en el equipo de casa desde la
mquina ISP, todo funcionaba como era de esperar. Era posible iniciar una sesin desde el ISP. Se poda iniciar una sesin en el ISP desde el trabajo. Pero
no era posible iniciar una sesin directamente desde el trabajo.
La nica opcin era utilizar ssh en el ISP y, desde all, utilizar ssh para conectar con la mquina local, y usar las herramientas del sistema, ps y netstat,
para ver las diferencias que haba entre usar ssh desde el ISP y usar ssh desde
el trabajo.
No entenda el protocolo SSH, por lo que no entenda lo que suceda. En
realidad, interpret de forma errnea todo lo que suceda, pero que suceda
con las reglas del firewall que yo mismo haba creado?
El primer pensamiento fue que fallaba el servidor local sshd. Usando ps -ax,
comprob que haba tres copias del servidor sshd en ejecucin. Una era el demonio del servidor maestro. Otra era el servidor que se haba falsificado para
manejar la conexin activa desde el ISP. La tercera era el servidor que se haba
iniciado para manejar la conexin activa desde el trabajo, la conexin entrante
que se haba bloqueado. Correcto. Los servidores estaban en ejecucin.
El siguiente paso era usar netstat -a -A inet para ver el estado de las conexiones. El servidor sshd maestro escuchaba las nuevas conexiones en el puerto 22, como era de esperar. El servidor que manejaba la conexin en marcha
desde el ISP escuchaba el puerto 22, y el cliente ISP remoto usaba un puerto
no privilegiado, de nuevo, como era de esperar. El servidor que manejaba la
conexin activa desde el trabajo escuchaba el puerto 22, pero el cliente de
trabajo remoto usaba el puerto privilegiado, 1023 ! Esto era confuso. El cliente del trabajo usaba un puerto privilegiado y el cliente ISP usaba un puerto
no privilegiado.
Luego, qu sucede con SSH? Mirando en el archivo /etc/services, SSH aparenta ser un servicio TCP estndar que usa el puerto 22. Si fuera as, el siguiente conjunto de reglas de E/S para conexiones entrantes funcionara:
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp
-s $ANYWHERE $UNPRIVPORTS \
-d $IPADDR 22 -j ACCEPT
ipchains -A output -i $EXTERNAL INTERFACE -p tcp
-s $IPADDR'22 \
-d $ANYWHERE $UNPRIVPORTS -j ACCEPT
-y \
Captulo 5
De hecho, estas reglas funcionaron para la conexin ISP. Las reglas eran
correctas, pero ssh se bloqueaba desde el trabajo despus de iniciar la sesin.
A medida que se quitaban, estas dos reglas fueron tambin las que permitieron llegar desde el trabajo hasta la solicitud de contrasea, el titular de inicio
de sesin y la lnea de comandos del shell. Estas dos reglas no eran suficientes para abarcar todo el protocolo SSH.
Para volver a revisar lo que vea, habilit el registro para todo el trfico entrante y saliente relacionado con el puerto 22, tanto el que se aceptaba como
el que se denegaba. El registro de paquetes del firewall comprob la situacin. Todos los paquetes salientes procedentes del puerto 22 se aceptaban.
Los paquetes salientes procedentes del puerto 22 al puerto no privilegiado se
aceptaban. Los paquetes salientes del puerto 22 al puerto privilegiado se
aceptaban. Los paquetes entrantes procedentes del puerto privilegiado,
1023, se denegaban. Al final, esto explicaba por qu el inicio de sesin de ssh
desde el trabajo devolvi el eco del titular de inicio de sesin y el smbolo del
sistema del shell.
En ese momento, las reglas del firewall eran bastante primitivas. El firewall
usaba una directiva denegar todo lo que entra de forma predeterminada y una
directiva permitir que salga todo de forma predeterminada. Se permita mucho ms de lo que se permite actualmente. Las reglas del protocolo TCP estndar eran suficientes para la conexin desde el ISP. La combinacin de las
directivas denegar todo lo que entra y permitir todo lo que sale, complicaban
el asunto para la conexin desde el trabajo. Entonces el firewall permita los
paquetes salientes del servidor en los puertos privilegiados, pero no permita los paquetes entrantes del cliente remoto. El servidor era capaz de enviar
el titular y el smbolo del sistema del shell. El cliente no pudo responder al
servidor.
Como nunca se prob a tener ms de una o dos conexiones SSH entrantes, tena la impresin de que sshd haca la conexin entre un puerto no privilegiado y el puerto 22 y luego, cuando se conectaba al trabajo, cambiaba a
una conexin entrante con la copia falsificada de s mismo entre el puerto
1022 1023 y el puerto 22. Por supuesto, el servidor no elega el puerto del
cliente. El cliente elega el puerto, privilegiado o no privilegiado.
Hasta entonces no haba ledo el cdigo fuente de ssh. Dependiendo de
los parmetros de la configuracin local, el cliente ssh se inicia en el puerto
1023 y busca un puerto en sentido descendente hasta el puerto 513, asignando la conexin al primer puerto libre que encuentra. Con otros parmetros de configuracin, el cliente usa un puerto no privilegiado. El servidor
acepta las conexiones activas desde cualquiera de ellos:
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp
-s $ANYWHERE 1022:1023 \
-d $IPADDR 22 -j ACCEPT
ipchains -A output -i $EXTERNAL_INTERFACE -p tcp
-s $IPADDR 22 \
-d $ANYWHERE 1022:1023 -j ACCEPT
-y \
255
256
Captulo 5
Resumen
En este captulo se ha introducido el mecanismo de listado de ipchains, la
informacin disponible del demonio de red y de puerto de Linux mediante
netstat, as como unas cuantas herramientas de otros fabricantes que se pueden conseguir para comprobar que las reglas de firewall estn instaladas y ordenadas como se espera. Tambin se ha explicado la opcin de coincidencia
de paquetes de ipchains para comprobar tipos de paquetes concretos con las
reglas de firewall instaladas.
En este captulo se hace especial nfasis en las reglas de firewall y en los
puertos que protegen. El siguiente captulo desplaza el centro de la atencin
ligeramente para enfatizar qu programas de servidor usan estos puertos, as
como el firewall, el sistema y la informacin de servidor que generan los archivos de registro del sistema.
III
Supervisin y seguridad
a nivel de sistema
6
7
8
6
Comprobacin de que el sistema
funciona como se espera
El Captulo 5, "Depuracin de las reglas del firewall", hace especial nfasis en el uso del programa ipchains como una herramienta de diagnstico
para validar y probar las reglas del firewall y los puertos de servicio que stas protegen, con el fin de determinar que las reglas estn en su sitio y funcionan correctamente. Este captulo se centra en los programas de servidor que usan estos puertos. Es necesario determinar que los nicos
programas y servicios en ejecucin son aquellos que se espera encontrar.
Despus de comprobar los programas y puertos que se usan, se debe determinar lo que indican estos programas y el firewall cuando introducen
informes de mensajes de estado y de error en los archivos de registro del
sistema. En este captulo se presentan herramientas de administracin adicionales e informacin de los archivos de registro que puede utilizar el
usuario.
Nunca es posible tener una certeza absoluta de que un sistema UNIX se
ejecuta correctamente. Slo se puede tener un grado razonable de confianza basndose en el hecho de que el sistema se ejecuta como se espera,
tal y como se intenta. Los sistemas UNIX son demasiado complejos, las
cuestiones de la configuracin cruzan demasiadas fronteras, como para estar completamente seguro de que todo se ejecuta correctamente. Los archivos de registro ayudan a comprobar que el sistema se ejecuta como se
espera e informa de sucesos y estados que se apartan del comportamiento
normal.
260
Captulo 6
ifconfig
eth0
lo
Cuando existe un problema, lo principal que se querr saber es si la interfaz est activa. La tercera lnea de cada informe de la interfaz indica el estado de la interfaz y su configuracin. La interfaz ethO, UP, en este ejemplo
est activa.
Observe que ifconfig muestra otra informacin de estado en la que puede
estar interesado en algn momento. Se informa de la direccin Ethernet hardware MAC, Hwaddr, la direccin IP, inet addr, la direccin de difusin, Bcast,
y la mscara de red, Mask. La restante informacin que muestra suele ser menos til, como el tamao de la trama mxima predeterminada, MTU, el nmero de paquetes recibidos, RX. y el nmero de paquetes transmitidos, TX.
Captulo 6
PING
64
64
64
64
64
>
ms
ms
ms
ms
ms
'C
--- smtp.my.isp.domain ping statistics --5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 3.9/4.4/5.4 ms
Hacer ping a una mquina no significa que los servicios en dicha mquina
estn en ejecucin o que estn disponibles para su uso. Simplemente significa que un paquete ping atraves la red y que una respuesta ha encontrado el
camino de vuelta. Si un servicio de red en particular no est disponible, o un
261
262
Captulo 6
host remoto en particular no responde, por lo menos se sabe que la red est
activa y funcionando, si algn host en algn sitio responde.
En este ejemplo, se sabe que la mquina del servidor de correo del ISP
est funcionando. No se sabe si el programa del servidor de correo est en
ejecucin. Es decir, si el servicio de correo est bloqueado y se hace un ping
a la mquina del servidor de correo del ISP, la salida anterior indicar que el
servidor est en lnea. Es posible que el propio programa servidor de correo
no se est ejecutando.
Contestacin a solicitudes ping
Tenga en cuenta que el host remoto puede no responder a los mensajes ping Echo Request desde un sitio remoto de Internet, incluso aunque el host est activo. Como
ping es una herramienta bsica y sencilla, tambin tiene una larga historia de uso
como herramienta de piratera para denegacin de servicio. Como tal, los ejemplos
de firewall que se incluyen este libro contestan a las peticiones ping slo desde los servidores del ISP, como cortesa aadida de la necesidad de anlisis interno de red que
tienen los ISP.
1.
2.
netstat -a -p
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State
I-Node PID/Program name Path
588/named
521/syslogd
532/klogd
661/xfs
@0000007b
/dev/log
@00000075
588/named
3674/sendmail
1/init
893/sshd
521/syslogd
@00000722
@00000016
@0000008a
/dev/log
Captulo 6
12.
13.
14.
15.
unix
unix
unix
unix
l
[ l
[ l
[ l
STREAM
STREAM
STREAM
STREAM
CONNECTED
CONNECTED
CONNECTED
CONNECTED
492328
1350
953
865
521/syslogd
521/syslogd
521/syslogd
521/syslogd
/dev/log
/dev/log
/dev/log
/dev/log
263
264
Captulo 6
La lnea 9 muestra que init, el padre de todos los procesos UNIX, est escuchando para reiniciar las sesiones de terminal y aceptar los comandos de
cambio de nivel de ejecucin.
La lnea 10 muestra que sshd est conectado para aceptar sesiones ssh locales y para iniciar y activar servidores individuales para cada conexin.
El sistema funciona como se esperaba. init debe estar en ejecucin. syslogd y klogd deberan estar en ejecucin. Se intenta que los restantes servidores opcionales, named, xfs, sendmail y sshd, estn en ejecucin en esta mquina.
ps -ax
TTY
1.
PID
2.
3.
4.
5.
6.
7.
?
2 ?
3 ?
4 ?
5 ?
202 ?
8.
9.
STAT
TIME
COl.tMND
0:03
0:02
0:00
0:01
0:00
0:00
init
[kflushd]
(kpiod]
[kswapd]
[mdrecoveryd]
s
/sbin/dhcpcd
-e /etc/sysconfig/network-scripts/ifdhcp
0:03 syslogd -m 0
521 ?
s
s
0:00 klogd
532 ?
SN
SN
SN
SN<
Captulo 6
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
546
560
574
588
638
661
893
928
930
1428
3674
17531
17532
17533
17542
s
s
s
s
s
s
s
tty2 s
?
s
tty1 s
?
s
?
s
pts/1 s
pts/1 s
?
?
?
?
?
?
?
pts/1
0:00
0:01
0:01
0:10
0:02
0:01
0:07
0:00
0:04
0:00
0:00
0:00
0:00
0:00
0:00
/usr/sbin/atd
crond
inetd
named
httpd
xf s
/usr/local/sbin/sshd
/sbin/mingetty tty2
update (bdflush)
/sbin/mingetty tty1
sendmail: accepting connections on port 25
in.telnetd -n
login - bob
-ksh
ps -ax
La lnea 2 muestra que init est en ejecucin, el padre de todos los dems
procesos. Siempre est en ejecucin. Casi todos los tipos de UNIX se bloquean si init muere.
La lnea 3 muestra que kflushd est en ejecucin. kflushd no es un proceso, es un subproceso del ncleo que devuelve a disco peridicamente los bfer del sistema de archivos modificados.
La lnea 4 muestra que kpiod est en ejecucin. kpiod no es un proceso,
es un subproceso del ncleo que administra la demanda de paginacin.
La lnea 5 muestra que kswapd est en ejecucin. kswapd no es un proceso. Es un subproceso del ncleo que selecciona pginas de memoria fsica
para paginadas desde memoria a espacio de paginacin en disco, con el fin
de liberar memoria para otros procesos.
La lnea 6 muestra que mdrecoveryd est en ejecucin. Mdrecoveryd no es
un proceso. Es un subproceso del controlador del ncleo que administra mltiples dispositivos de disco como si fueran una sola unidad, es decir, RAID.
La lnea 7 muestra que dhcpcd est en ejecucin, es el cliente DHCP que
recibe una asignacin de memoria dinmica desde un servidor DHCP.
La lnea 8 muestra que syslogd est en ejecucin, es quien registra los
mensajes del sistema. Recopila los mensajes de los programas del sistema y
los escribe en los archivos de registro especificados, en la consola, en los terminales, etc.
265
266
Captulo 6
La lnea 9 muestra que klogd est en ejecucin, es quien registra los mensajes del ncleo. Recopila los mensajes desde los bfer de mensajes del ncleo y los escribe en los archivos de registro especificados y en la consola,
junto con syslogd.
La lnea 1O muestra que atd est en ejecucin, es el demonio que planifica los programas de usuario para ejecutarlos en momentos predefinidos. atd
es el equivalente en el nivel de usuario de crond.
La lnea 11 muestra que crond est en ejecucin, es el demonio que ejecuta programas de sistema y administrativos en momentos predefinidos.
La lnea 12 muestra que inetd est en ejecucin, es el superservidor de servicio de red que escucha las conexiones en nombre de otros servicios, de forma que los demonios de servicio individuales no necesitan estar en ejecucin
en segundo plano cuando no hay peticiones de servicios activas.
La lnea 13 muestra que named est en ejecucin, ste es el servidor de
nombres DNS.
La lnea 14 muestra que httpd est en ejecucin, es el servidor de Web
Apache. inetd no administra el servidor, por lo que el proceso se ejecuta permanentemente en segundo plano.
La lnea 15 muestra que xfs est en ejecucin, es el servidor de fuentes de
XWindow.
La lnea 16 muestra que sshd est en ejecucin, es el servidor SSH. La administracin de SSH no la realiza inetd. por lo que el proceso se ejecuta permanentemente en segundo plano.
La lnea 17 muestra que mingetty (tty2) est en ejecucin. mingetty se inicia desde el archivo /etc/inittab para escuchar los inicios de sesin en las lneas de terminal. En este caso, tty2 es una consola virtual.
La lnea 18 muestra que update ( bdflush) est en ejecucin. update es el
componente del espacio de usuario de kflushd para volver a escribir bfers
modificados del sistema de archivos.
La lnea 19 muestra que mingetty (tty 1) est en ejecucin. mingetty se inicia desde el archivo /etc/inittab para escuchar los inicios de sesiones en las lneas de terminal. En este caso, tty 1 es la consola fsica.
La lnea 20 muestra que sendmail est en ejecucin; es el servidor de correo.
La lnea 21 muestra que in.telnetd est en ejecucin. inetd inici in.telnetd
cuando se hizo un telnet al sistema para generar la salida anterior de ps.
La lnea 22 muestra que login est en ejecucin. login es la sesin de inicio
de sesin creada despus de iniciar la sesin en el sistema para generar la salida de ps.
La lnea 23 muestra que ksh est en ejecucin; es el programa de shell bajo
el que se ejecuta la sesin de inicio de sesin.
La lnea 24 muestra que ps est en ejecucin; es la instancia de ps que cre
la salida.
Si aparecen procesos no familiares o inesperados, alguien podra haber tenido acceso a la mquina. El Captulo 8, "Deteccin de intrusos e informe de
incidentes", explica los pasos que se deben realizar en dicho caso.
Captulo 6
Qu se registra y dnde?
Los archivos de registro del sistema se escriben, de forma predeterminada, en el directorio /var/log. En el archivo de configuracin de syslog, /etc/syslog.conf, se definen los archivos que se escriben y lo que se escribe en cada
uno de ellos. Esto vara segn las versiones y distribuciones de UNIX. La distribucin de Linux est preconfigurada para escribir mensajes, como mnimo, en el archivo messages. Red Hat 6.0 est preconfigurado para escribir la
informacin de registro del sistema en cuatro archivos independientes: messages, secure, maillog y spooler:
/var/log/messages es el archivo del sistema que registra todo. En realidad, puede ser el nico archivo de registro que se use. Contiene
una copia de cualquier mensaje que se escriba en la consola, cualquier mensaje del sistema operativo que se escriba en el bfer del registro interno del ncleo y cualquier mensaje producido por los programas que usan la llamada de sistema syslog(), como named,
sendmail y login.
/var/log/secure contiene informes de inicios de sesin como root, inicios de sesin de usuario e intentos de su a otros usuarios. Aqu tambin se escriben informes de conexiones desde otros sistemas e inicios de sesin fallidos como root. Se registra todo inicio de sesin.
/var/log/maillog contiene un registro del trfico de correo entrante y saliente y el estado del servidor.
/var/log/spoole no lo utilizarn la mayora de los sistemas. El archivo
contiene mensajes de error procedentes de los demonios de uucp y
del servidor de noticias (innd).
Configuracin de syslog
No todos los mensajes tienen la misma importancia ni el mismo inters.
Aqu es donde aparece el archivo / etc/syslog.conf. Se puede personalizar la salida del registro para que se ajuste a sus necesidades y preferencias. El archivo de configuracin /etc/syslog.conf permite confeccionar la salida del registro para que se ajuste a sus necesidades.
267
268
Captulo 6
Utilidad
auth o security
authpriv
e ron
daemon
Seguridad/autorizacin.
Seguridad privada/autorizacin.
Mensajes del demonio cron.
Mensajes generados por el demonio del sistema.
Mensajes del servidor FTP.
Mensajes del ncleo.
Subsistema de impresin.
Subsistema de correo.
Subsistema de noticias de red.
Mensajes generados por syslogd.
Mensajes generados por un programa de usuario.
Subsistema UUCP.
ftp
kern
lpr
mail
news
syslog
user
uucp
Prioridad
Tipo de mensaje
debug
info
notice
warning o warn
err o error
crit
alert
emerg o panic
Mensajes de depuracin.
Mensajes que informan de estado.
Condiciones normales pero importantes.
Mensajes de alerta.
Mensajes de error.
Condiciones criticas.
Se solicita atencin inmediata.
No se puede usar el sistema.
Captulo 6
Estas dos entradas escriben todos los mensajes del ncleo, tanto en la consola como en el archivo /var/log/messages. Los mensajes pueden duplicarse en
mltiples destinos:
kern.*
kern.*
/dev/console
/var/log/messages
Esta entrada escribe mensajes de alerta en todas las ubicaciones predeterminadas, incluyendo el archivo /var/log/messages, la consola y todas las sesiones de terminal de usuario:
*.emerg
Las dos entradas siguientes escriben informacin de autenticacin relacionada con el privilegio de root y con las conexiones, en el archivo
/var/log/secure, e informacin de autorizacin de usuario en el archivo
/var/log/auth. Con la prioridad definida en el nivel info, los mensajes debug no
se escribirn:
authpriv.info
auth.info
/var/log/secure
/var/log/auth
daemon.notice
mail.info
/var/log/daemon
/var/log/maillog
Los mensajes de los demonios de las prioridades debug e info y los mensajes de correo de la prioridad debug no se registran (estas son las preferencias de quien escribe este libro). named y la revisin sistemtica del correo
producen, de forma regular, mensajes de informacin sin inters.
La ltima entrada registra todas las categoras de mensajes de prioridad
info, o de mayor prioridad, en el archivo / var/log/messages, con la excepcin
de auth, authpriv, daemon y mail. En este caso, las ltimas cuatro utilidades de
mensajes se establecen a none ( ninguno) , porque los mensajes se dirigen a
sus propios archivos de registro dedicados:
*.info;auth,authpriv,daemon,mail.none
/var/log/messages
269
270
Captulo 6
/var/log/fwlog
Asimismo, todos los mensajes del ncleo se dirigen a la consola y al archivo /var/log/messages. Cuando se inicia, el ncleo no genera muchos mensajes de informacin, aparte de los mensajes de registro del firewall.
Como ejemplo, esta regla que deniega el acceso al puerto 111 de portmap/sunrpc producir el siguiente mensaje en el archivo /var/log/messages:
ipchains -A input -p udp -i $EXTERNAL_INTERFACE \
-d $IPADDR 111 -j DENY -1
(1)
Jun
(2)
(3)
(4)
(5)
(6)
(7)
(8)
Captulo 6
El campo 5 es la cadena de firewall a la que est asociada la regla, input. Las cadenas incorporadas son input, output y forward.
El campo 6 es la accin que se realiza con este paquete, DENY. Las opciones son ACCEPT, REJECT, DENY, MASQ, REDIRECT y RETURN.
El campo 7 es la interfaz de red por la que llega o sale el paquete, ethO.
El campo 8 es el tipo de protocolo de mensaje que contiene el paquete, PROTO= 17. Los valores del campo pueden ser 6 (TCP), 17
(UDP), 1 (ICMP/<code>) y PROTO=<nmero> para otros tipos de protocolos.
El campo 9 es la direccin origen del paquete, 10.10.22.85.
El campo 10 es el puerto origen del paquete, 14386.
El campo 11 es la direccin destino del paquete, 192.168. I 0.30.
El campo 12 es el puerto destino del paquete, 111.
Los campos restantes no tienen un inters especial desde la perspectiva
del registro:
El campo 13 es la longitud total del paquete en bytes, L=3 l 6, incluyendo tanto el encabezado del paquete como los datos.
El campo 14 es el campo tipo de servicio (TOS, Type of Service),
S=OxOO.
El campo 15 es el identificador del datagrama de paquete, I= 14393. El
identificador el datagrama es el Id. del paquete o el segmento al que
pertenece este fragmento TCP.
El campo 16 es el desplazamiento del byte del fragmento, F=OxOOOO.
Si este paquete contiene un fragmento TCP, el desplazamiento del
fragmento indica a qu parte del segmento reconstruido pertenece
este fragmento.
El campo 17 es el campo tiempo de vida (TTL, Time to live) del paquete, T=52. El tiempo de vida es el mximo nmero de saltos (es decir, enrutadores visitados) que quedan antes de que el paquete caduque.
A la hora de interpretar el registro, los campos ms interesantes son
Jun
271
272
Captulo 6
De todos los puertos posibles, la Tabla 6.3 lista los puertos que se sondean habitualmente. Los puertos de la Tabla 6.3 estn asociados con servicios
LAN inherentemente inseguros, que se sabe histricamente que albergan fallos de seguridad y son los objetivos de clases especficas de ataques o forman
parte de las tpicas herramientas de piratera. Los puertos de la Tabla 6.3 son
los puertos de los que ms se habla en los documentos del CERT y los puertos que, personalmente, he visto que se sondean con ms frecuencia en los
ltimos aos, e incluye muchos de los puertos sobre los que alerta el libro Firewalls and Internet Security-Repelling the Wily Hacker (AddisonWesley), escrito por Cheswick y Bellovin.
Tabla 6.3.
Servicio
Puerto
Protocolo
Hostilidad
Explicacin
reserved
TCP/UDP
Alta
0-5
echo
systat
TCP
7
11
Alta
TCP/UDP
TCP
Firma de sscan
Alta
Alta
netstat
15
TCP
Alta
chargen
ftp
ssh
ssh
telnet
smtp
19
21, 20
22
22
23
25
TCP/UDP
TCP
TCP
UDP
TCP
TCP
Alta
Baja-Alta
Media-Alta
Baja
Alta
Alta
domain
53
TCP
Alta
Ataque UDP.
Informacin del proceso de
usuario (ps).
Estado de la red: conexiones
abiertas, tablas de enrutamiento, etc.
Ataque UDP.
Servicio FTP.
Servicio SSH.
Versin antigua de PC Anywhere
Servicio telnet.
Busca transmisin SPAM o antiguas debilidades.
Transferencia de zona TCP:
usurpamiento DNS.
Captulo 6
Tabla 6.3.
Servicio
Puerto
Protocolo
Hostilidad
Explicacin
bootps
tftpd
finger
link
67
69
79
87
UDP
UDP
TCP
TCP
Baja
Media-Alta
Baja
Alta
pop-3
110, 109
TCP
Alta
sunrpc
nntp
111
119
TCP/UDP
TCP
Alta
Media-Alta
ntp
123
UDP
Baja
netbios-ns
netbios-dgm
netbios-ssn
imap
13 7
138
139
143
TCP/lJDP
TCP/lJDP
TCP
TCP
Baja-Alta
Baja-Alta
Baja-Alta
Alta
NeWS
144
TCP
Alta
snmp
161, 162
UDP
Media
xdmcp
177
UDP
Alta
exec
biff
login
who
shell
syslog
printer
talk
ntalk
ro ute
uucp
mount
socks
512
512
513
513
514
514
515
517
518
520
540
635
1080
TCP
UDP
TCP
UDP
TCP
UDP
TCP
UDP
UDP
UDP
TCP
UDP
TCP
Alta
Alta
Alta
Alta
Alta
Alta
Alta
Media
Media
Alta
Media
Alta
Alta
SQL
openwin
NFS
pcanywhere
XII
NetBus
1114
2000
2049
5632
6000+n
12345,
TCP
TCP
TCP/UDP
UDP
TCP
TCP
Alta
Alta
Alta
Baja
Alta
Alta
BackOrifice
31337
UDP
Alta
Posible error.
Alternativa al Ffp inseguro.
Informacin de usuario.
Enlace tty; Jo suelen utilizar Jos
intrusos.
Uno de Jos tres puertos que ms
se explota.
El puerto que ms se explota.
Noticias pblicas o transmisin
SPAM.
Sincronizacin de la hora de Ja
red; correcto, pero poco educado.
Inofensivo para UNIX.
Inofensivo par.t UNIX.
Inofensivo par.t UNIX.
Uno de Jos tres puertos que ms
se explota.
Sistema de administracin de
Window.
Peticiones y administr.icin de
Ja red remota.
X Display Login Manager (Admi
nistrador de inicio de sesin X).
Slo intranet.
Slo intranet.
Slo intranet.
Slo intranet.
Slo intranet.
Slo intranet.
Slo intranet.
Slo intranet.
Slo intranet.
Tablas de enrutamiento.
Servicio UU CP.
mountd explotado.
Transmisin de SPAM; explosin
del servidor proxy.
Firma de sscan.
OpenWindows.
Acceso a archivo remoto.
PC Anywhere.
Sistema X Window.
Inofensivo para UNIX 12346,
20034.
Inofensivo para UNIX.
273
274
Captulo 6
Tabla 6.3.
Servicio
Puerto
Protocolo
Hostilidad
Explicacin
traceroute
ping
redirect
traceroute
33434-
Baja
Baja-Alta
11
UDP
ICMP
ICMP
ICMP
Bomba de redireccin.
Respuesta traceroute saliente.
TCP/lJDP
Alta
Baja
Alta
UNIX OS
probe
Difusin a la destino.
direccin O.O.O.O.
23(fCP-telnet:
input DENY eth0 PROT0=6 10.10.22.85:14386 192.168.10.30:23
25(fCP-smtp:
input DENY eth0 PROT0=6 10.10.22.85:14386 192.168.10.30:25
79(fCP-finger:
input DENY eth0 PROT0=6 10.10.22.85:14386 192.168.10.30:79
l lO(fCP-pop-3:
input DENY eth0 PROT0=6 10.10.22.85:14386 192.168.10.30:110
111/UDP-sunrpc:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:111
l l 9(fCP-nntp:
input DENY eth0 PROT0=6 10.10.22.85:14386 192.168.10.30:119
123/UDP-ntp:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:123
l 43(fCP-imap:
input DENY eth0 PROT0=6 10.10.22.85:14386 192.168.10.30:143
161/UDP -snmp:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:161
520/lJDP-route:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:520
635/UDP-mount:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:635
Captulo 6
1080(fCP-socks:
input DENY eth0 PROT0=6 10.10.22.85:14386 192.168.10.30:1080
2049/UDP-nfs:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:2049
5632/UDP-PC Anywhere:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:5632
l 2345(fCP-NetBus:
input DENY eth0 PROT0=6 10.10.22.85:14386 192.168.10.30:12345
3133 7/UDP-BackOrifice:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:31337
33434:33523/lJDP-traceroute:
input DENY eth0 PROT0=17 10.10.22.85:14386 192.168.10.30:33434
8/ICMP-ping echo_request:
input DENY eth0 PROT0=1 10.10.22.85:8 192.168.10.30:0
autobuse
autobuse examina peridicamente las nuevas entradas del registro para
identificar sondeos habituales. Los resultados dudosos se envan por correo
electrnico. Grant Taylor es el propietario de los derechos de autor de autobuse desde 1998 y puede encontrarse esta herramienta en la direccin
http://www.picante.com/-gtaylor/download/autobuse/.
logcheck
logcheck examina peridicamente las nuevas entradas en el registro buscando violaciones de la seguridad y actividad inusual. Los resultados dudosos
se envan por correo electrnico. logcheck es un don de un paquete parecido procedente del paquete de firewall Gauntlet de TIS. logcheck viene pre-
275
276
Captulo 6
configurado para reconocer muchos modelos diferentes de entradas de registros (el autor del libro lo usa. Es un gran paquete!). logcheck lo ha escrito
Craig H. Rowland (crowland@psionic.com) y puede encontrarse en la direccin http://www.psionic.com.
swatch
swatch es un sencillo programa observador, un filtro y un supervisor del
archivo de registro que se configura con facilidad. swatch supervisa los archivos de registros y acta para realizar de forma selectiva una o ms acciones que especifique el usuario basndose en los modelos de coincidencia que
aparecen en las entradas del registro. Se puede ejecutar peridicamente con
crond o de forma continua en segundo plano como un supervisor del registro en tiempo real. swatch se incluye como parte de la distribucin Red Hat.
Resumen
Este captulo se centra en cmo comprobar que se ejecutan los programas
y servicios que ha seleccionado el usuario, as como en comprobar los puertos de servicio en que escuchan estos programas. Algunas de las herramientas tiles son ifconfig, ping, netstat y ps. Los programas de servidor y el ncleo
informan de mensajes de estado y error en los archivos de registro del sistema, que se encuentran en /var/log. Se explica brevemente el archivo de configuracin del demonio de registro del sistema, /etc/syslog.conf, como introduccin para explicar lo que indican las entradas del registro del firewall. Se
explican los puertos que se sondean habitualmente. Es decir, los puertos a los
que se har referencia, con ms frecuencia, en el registro del firewall. Para finalizar, se describe la supervisin del registro y la herramienta de anlisis del
registro que se incluye con la distribucin de Linux, adems de dos herramientas adicionales de otros fabricantes. Las herramientas de supervisin del
registro pueden configurarse para que avisen o realicen alguna accin en respuesta a modelos que aparecen en los archivos de registro.
Ahora que se conocen los servicios que se ejecutan, los puertos que usan
y lo que indican los mensajes del registro del firewall, el Captulo 7, "Problemas a nivel de administracin del sistema de UNIX", abandona todas estas
cuestiones de menor nivel y examina medidas de seguridad de mayor nivel.
El firewall de filtrado de paquetes no es una solucin completa de seguridad.
A nivel de administracin del sistema, se puede proteger mejor cada servicio
en el nivel de configuracin de la aplicacin. Aunque el nivel de filtrado de
paquetes se centra en el acceso de conexin a puertos especficos, el nivel
de aplicacin se centra en un host especfico y en el control de acceso de
usuario a los programas que se ejecutan en dichos puertos.
7
Problemas a nivel
de administracin
del sistema UNIX
Este captulo abandona el nivel inferior que subyace a las tareas del firewall y se adentra en algunas de las medidas de mayor nivel que se pueden
afrontar. Un firewall de filtrado de paquetes no es una solucin completa de
seguridad. A nivel de administracin del sistema, cada servicio puede protegerse fuertemente a nivel de configuracin de la aplicacin. El nivel de filtrado de paquetes se centra en el acceso de conexin entre las direcciones IP y
los puertos de servicio, y el nivel de aplicacin se centra en la red, el host y
el control de acceso de usuario, especficos para los programas individuales
que se ejecutan en dichos puertos y en los archivos individuales a los que acceden estos programas.
278
Captulo 7
Contraseas secundarias
De forma predeterminada, UNIX cifra y almacena las contraseas en el archivo /etc/passwd. El archivo /etc/passwd es pblicamente legible (es decir,
cualquier cuenta o cualquier programa del sistema puede leer el archivo), ya
que contiene informacin necesaria de la cuenta de usuario para diferentes
programas, incluyendo el Id. del usuario, el Id. del grupo del usuario, la contrasea, el nombre de usuario, campos para localizacin fsica y nmero de
telfono, el directorio raz del usuario y el shell predeterminado, el preferido
por el usuario.
Como el archivo es pblicamente legible, un hacker puede aplicar mtodos
extraordinarios para buscar las contraseas, probando todas las combinaciones
de hasta ocho caracteres e intentando hacer coincidir dichas combinaciones
cifradas con la contrasea cifrada. Este mtodo suele ser extremadamente caro
en un equipo normal. A medida que los equipos han aumentado su potencia,
ahora resulta sencillo ejecutar una herramienta para buscar y descifrar las contraseas como algo rpido y que se realiza en segundo plano.
Las contraseas secundarias son un intento de evitar esta debilidad, desplazando la contrasea cifrada a un archivo de contrasea secundario creado
para este propsito. La informacin de la cuenta de usuario permanece en el
archivo / etc/passwd de lectura pblica. La contrasea real se almacena en el
archivo / etc/shadow, que es un archivo que slo puede leer el root.
La versin Linux de Red Hat ofrece, desde hace tiempo, cierto nivel de
compatibilidad con las contraseas secundarias. En la versin 6.0, la compatibilidad con las contraseas secundarias se integra en las interfaces GUI de
instalacin y configuracin. Se pueden habilitar las contraseas secundarias
simplemente activando la opcin en una casilla de verificacin. Las versiones
anteriores de Linux exigan que el usuario convirtiera manualmente las contraseas a contraseas secundarias usando el programa pwconv.
Acceso remoto al archlvo de contraseas
Como /etc/passwd es legible pblicamente, los usuarios remotos pueden obtener una
copia del archivo de forma no autenticada. Un servidor FTP mal configurado es un
Captulo 7
buen punto de acceso. Un sistema de archivos root montado NFS y accesible de forma remota puede ser otro punto de acceso. El acceso remoto a la base de datos NIS
es un regalo para el hacker. El acceso con direcciones usurpadas a travs del mecanismo de autenticacin rhost es otra posibilidad. El acceso clandestino mediante el
shell a travs del servidor sendmail es otro mecanismo. Cada una de estas tres posibilidades se explica en este captulo.
279
280
Captulo 7
Captulo 7
281
282
Captulo 7
2.
3.
Cambie los bits de permiso de acceso del programa su para establecer el Id. del usuario (el propsito del programa su). Asigne al propietario del programa su, root, permisos de lectura, escritura y ejecucin. No permita ningn otro acceso por parte de nadie:
chmod 4750 /bin/su
tcp_wrappers
El programa empaquetador de TCP, tcpd, proporciona la capacidad de definir listas de control de acceso, permitiendo o denegando el acceso desde redes, sistemas o usuarios especficos. Como tal, tcp_wrappers permite definir
exactamente qu sistemas remotos tienen o no tienen permiso para acceder
a cada servicio de red individual que se ofrece desde el sistema. tcpd es un
programa empaquetador. Esto significa que inetd est configurado para ejecutar tcpd en vez del programa de servidor especfico pedido. tcpd realiza varias comprobaciones de autorizacin y luego ejecuta l mismo el servicio.
Como tcpd es un programa filtro que se ejecuta slo entre inetd y el programa servidor solicitado, tcpd no es un demonio de sistema que se ejecute continuamente. Nos referimos a todo el mecanismo de autorizacin como
tcp_wrappers. tcp_wrappers es tanto una herramienta de autenticacin como
una herramienta de autorizacin.
En la versin Red Hat de Linux, el archivo /etc/inetd.conf est preconfigurado para usar tcp_wrappers sobre los servicios que se pueden aplicar. Los
principales servicios que se pueden aplicar son ftp, telnet, acceso a correo remoto pop-3, acceso a correo remoto imap, finger y el servicio in.identd auth.
TCP no puede empaquetar todos los servicios. Por lo general, inetd debe
administrar el servicio. Esto significa que inetd debe ejecutar una instancia individual del programa por cada conexin TCP entrante o por cada peticin
de datagrama UDP. Es posible administrar servidores, como el servidor web
Apache y el servidor SSH de otros fabricantes, bajo inetd, pero estos servidores se ejecutan continuamente como demonios. httpd se ejecuta en modo independiente por razones de rendimiento, ya que la conexin inetd puede sobrepasar el tiempo de espera en sistemas ms lentos cuando se usa un cifrado
ms potente. Sin embargo, sshd tiene la opcin de aceptar los archivos
hosts_access de su propiedad.
Captulo 7
tcp_wrappers proporciona niveles de comprobacin de autorizacin mucho ms potentes para los servicios basados en TCP que para los servicios basados en lJDP.
Para los servicios TCP, si la mquina del cliente ofrece el servicio identd,
tcpd realizar bsquedas basndose en el nombre del usuario para registrar el
nombre del usuario junto con el nombre del host y el nombre del servicio. Si
se invierten las bsquedas por nombres de host, se ofrece cierto grado de
proteccin contra el usurpamiento de la direccin IP origen y del nombre de
host DNS. El nombre de host que devuelve el servicio DNS de una bsqueda
de direccin IP a nombre de host, debe coincidir con la direccin IP que devuelve el servicio DNS de una bsqueda posterior de nombre de host a direccin. No se permiten las opciones de la conexin de socket enrutados
desde el origen.
Para los servicios UDP, slo est disponible el control de acceso bsico basado en el nombre de host o en la direccin, incluyendo las bsquedas inversas del servicio DNS para protegerse contra el usurpamiento de direccin
origen y del nombre de host DNS. Sin embargo, el control de acceso no es
tan riguroso para los servicios UDP. No se puede configurar inetd para iniciar
los servidores UDP con una opcin wait, que indica al servidor que espere
unos cuantos minutos despus de recibir el ltimo datagrama. El propsito
es evitar la sobrecarga de reiniciar el servidor si, poco tiempo despus, se recibe otra peticin. Si llegan nuevas peticiones desde algn host mientras el
servidor est esperando, tcp_wrappers no tendr efecto en los posteriores intercambios cliente-servidor.
Al igual que con las reglas de firewall, la primera regla de tcp_wrappers
que coincida gana, y el control de acceso toma el valor predeterminado de
aceptar. La lista de permisos siempre se procesa antes que la lista de denegaciones. A continuacin se muestra el orden en que se aplican las listas de
acceso:
1.
2.
3.
283
284
Captulo 7
Captulo 7
ALL: ALL
Deniega el acceso a todos los servicios tcp_wrappered desde todos los
clientes. Como las reglas del archivo hosts.deny se aplican despus de las reglas del archivo hosts.allow, esta entrada define, en realidad, una directiva denegar todo de forma predeterminada. Las reglas del archivo hosts.allow definen las excepciones a esta directiva.
Si se desea ms informacin sobre los tcp_wrappers, consulte las siguientes pginas man: tcpd(S), hosts_access(S), hosts_options(S), tcpdchk(S), tcpdmatch(S), inetd(S) e inetd.conf(S).
Dependiendo de lo que se haya instalado con la versin Linux, se encontrarn unos cuantos archivos legibles pblicamente. Los archivos de puntuacin de juegos que aparecen en el directorio / var/lib/games, suelen ser legibles pblicamente. Este es un defecto en la seguridad de las actuales
versiones del Linux de Red Hat. En algunas ocasiones, se encontrarn archivos fuente o archivos de documentacin legibles pblicamente. Los permisos
285
286
Captulo 7
Los servicios basados en RPC no los puede iniciar tcpd, pero el demonio portmap de
RPC puede acceder a las listas de control de acceso en /etdhosts.allo y /etdhosts.deny
por su cuenta. El nombre del servicio de lista de acceso es portmap, que no tiene
nada que ver con el nombre actual del demonio portmap (algunas veces se hace referencia al demonio o se le conoce con el nombre de rpcbind).
Sin embargo, las listas de control de acceso son slo una solucin parcial para los servidores RPC, porque la exploracin de puerto podria identificar los puertos abiertos
de RPC de cualquier manera. Un hacker podria pasarse por alto tanto el demonio
portmap como las listas de control de acceso.
Para obtener ms informacin sobre el uso de hosts.allow y hosts.deny con el demonio
portmap, consulte las pginas man, portmap(S).
Captulo 7
Servicios chroot
Los servicios accesibles pblicamente que leen o escriben en una parte
del sistema de archivos, pueden tener restringido su acceso al sistema de archivos a un rbol de directorio especfico. chroot cambia la visin de un proceso del sistema definiendo un directorio particular como el sistema de archivos root para ese proceso. El proceso no tiene permiso para ver nada por
encima de ese punto. La definicin de una vista virtual restringida del sistema de archivos es una proteccin de seguridad adicional que se sita por encima de cualquier restriccin de acceso especfica definida en el servidor.
Los servicios que se ejecutan en entornos chroot pueden necesitar que se
dupliquen otras piezas del sistema de archivos que ahora estn fuera del entorno chroot. Por ejemplo, ftp usa el programa Is para permitir a los usuarios
ver un listado de directorios del directorio actual de ftp. En un entorno chroot,
estos programas binarios estn fuera del directorio chroot, de forma que dichos programas binarios deben duplicarse dentro de la estructura del directorio chroot. Es posible que los archivos de configuracin del sistema, las bibliotecas compartidas y los archivos de registro del servidor necesiten
tambin duplicarse dentro de la estructura del directorio chroot. Si se desea
ms informacin sobre el programa chroot, consulte la ayuda en lnea de la
pgina man, chroot( 1).
287
288
Captulo 7
sario, desactvelo. Si un servicio concreto es necesario, actvelo. Si un servicio concreto es necesario, se debe prestar atencin a los valores de configuracin del servidor.
En esta seccin se examinan las opciones de configuracin de servidores
individuales desde la perspectiva de la seguridad.
stream
tcp
nowait
root
/usr/sbin/tcpd
in.telnetd -h
Captulo 7
Security explica que para el cifrado de claves de host mayores de 512 bits (768
bits es el tamao de la clave de host predeterminada), el intercambio de claves cifradas de host RSA puede sobrepasar el tiempo de respuesta de inetd.
Como los servidores estn normalmente tcp_wrapped desde el archivo
/ etc/inetd.conf, SSH se ha escrito para ser compatible con tcp_wrappers.
A continuacin se muestra la forma de compilar e instalar tanto el cdigo
fuente de la versin 1.2.26 de SSHl original, como el cdigo fuente de la versin nueva, la versin 2.0.13 SSH2:
. /configure -with-libwrap
make all
make install
Para SSH 1, se modifica el archivo de configuracin del servidor,
/etc/sshd_config, y el archivo de configuracin del cliente, / etc/ssh_config,
para ajustarlo a las necesidades del sitio particular. Se crean claves RSA para
los dominios que contienen host con los que se supone que se van a compartir conexiones:
make-ssh-known-hosts <domainname>
Luego, para iniciar el demonio sshd de forma automtica en tiempo de inicio, se modifica el archivo /etc/rc.d/rc.local y se agrega la siguiente lnea:
/usr/local/sbin/sshd
Para SSH2, se modifica el archivo de configuracin del servidor,
/etc/ssh2/sshd2_config, y el archivo de configuracin del cliente,
/ etc/ssh2/ssh2_config, para que coincidan con las necesidades del sitio. Las
claves RSA se han creado automticamente durante el proceso de instalacin.
Luego, para iniciar el demonio sshd2 de forma automtica en tiempo de
inicio, se modifica el archivo /etc/rc.d/rc.local y se agrega la siguiente lnea:
/usr/local/sbin/sshd2
Si desea ms informacin sobre el uso de ssh, consulte las pginas man de
ssh( 1), sshd(8), ssh-keygen( 1) y make-ssh-known-hosts( 1) o ssh2( 1), sshd2(8) y
ssh-keygen2( 1).
289
290
Captulo 7
localhost.localdomain
localhost
windows.private.lan
linux2.private.lan
macintosh.private.lan
RE LAY
RE LAY
RE LAY
RE LAY
RE LAY
Los archivos de configuracin en / etc/mail son pares de archivos, un archivo ASCII y un archivo de base de datos hash creado a partir del archivo ASCII. Despus de modificar uno de los archivos ASCII, debe actualizarse sucorrespondiente archivo hash. Los siguientes comandos actualizan la tabla hash
del archivo /etc/mail/access, el archivo /etc/mail/access.db:
<
/etc/mail/access
Se puede encontrar informacin adicional sobre la configuracin de sendmail en las siguientes pginas man: sendmail(S), aliases(S) y newaliases( 1). Se
puede encontrar informacin importante en el directorio /usr/doc/sendmail.
La informacin ms actual se puede encontrar en la direccin
http://www.sendmail.org/.
Es necesario asegurarse que se dispone de la ltima versin de sendmail y
que se utiliza smrsh, el shell seguro diseado especficamente para funcionar
con sendmail.
smrsh
Los usuarios pueden hacer uso de sendmail para que ejecute comandos en
su nombre. El programa vacation es un ejemplo de esto, que genera automticamente respuestas de correo para el correo entrante. El resultado es que
los usuarios pueden ejecutar cualquier programa en el sistema, pero con privilegios del nivel de sistema en vez de con los suyos propios. smrsh es un
shell restringido para sendmail. Si se reemplaza el shell / bin/sh con el shell
/usr/sbin/smrsh en el archivo de configuracin de sendmail, /etc/sendmail.cf,
slo se permite que los usuarios utilicen los programas que puede ejecutar
sendmail. smrsh ejecuta slo los programas que ha instalado el usuario o a los
que se han creado vnculos en el directorio /etc/smrsh /. El directorio est va-
Captulo 7
co de forma predeterminada. En concreto, no ponga ninguno de los siguientes shell: sed, awk, peri, ni ningn otro programa de interpretacin en
el directorio /etc/smrsh /. La mayora de los sitios pequeos no necesitarn
poner nada en el directorio /etc/smrsh /.
Para reemplazar el shell estndar con el shell smrsh, se modifica el archivo / etc/sendmail.cf y se cambia la lnea que empieza por:
Mlocal,
P=/bin/sh,
Mlocal,
P=/usr/sbin/smrsh,
/etc/ resolv.conf
El solucionador es el componente cliente de DNS. En lugar de ser un programa cliente especfico, el solucionador es la parte de las bibliotecas de C
que se compila en cualquier programa que necesita tener acceso a la red. El
cdigo del solucionador es, de hecho, lo que enva la peticin DNS a algunos
291
292
Captulo 7
domain my.isp.net
nameserver 192.168.47.81
nameserver 192.168.60.7
nameserver 192.168.60.8
option rotate
Para un sistema que ejecuta un servidor de nombres named local, una directiva nameserver sencilla apunta a la mquina local. Un ejemplo del archivo resolv.conf puede contener:
domain my.isp.net
nameserver 127.0.0.1
Para un sistema que ejecuta un named local para una LAN, se puede utilizar una tercera directiva, search, en lugar de la directiva domain. La directiva
search toma una lista de dominios desde los cuales realizar peticiones a los
servidores de nombres. Un ejemplo del archivo resolv.conf puede contener:
Captulo 7
med.127.0.0, que todos los servidores de nombres deben tener para servir
bsquedas locales por s mismos:
1. 0.0.127.in-addr.arpa.
2.
SOA
28800
14400
3600000
604800
3.
4.
5.
6.
7.
8.
9.
IN
1
localhost. root.localhost. (
serial
refresh
retry
expire
default_ ttl
IN
IN
NS
PTR
localhost.
localhost.
Las lneas 1 a 7 contienen la informacin de control de la zona. Las lneas 8 y 9 son registros de recurso:
La lnea 1 comienza un registro de control SOA (Start of Authority, Inicio de autoridad) para la zona. 0.0.127.in-addr.arpa. es el origen de la
zona. Como el origen y el dominio son los mismos, debera reemplazarse el origen con el smbolo @. IN indica que los datos de este registro pertenecen a la clase de datos de Internet (al contrario que, por
ejemplo, que la clase de datos hesiod). SOA indica que este registro
de recurso es un registro Inicio de autoridad. localhost. es el nombre
del dominio. root.localhost. indica la direccin de correo electrnico
de la persona de contacto que es el responsable de la informacin de
zona. Los parntesis abiertos indican el principio de un registro multilnea.
La lnea 2 es un nmero de serie. Si se ofrece servicio a servidores de
nombres secundarios, un cambio en el nmero de serie indicar que
los datos de la zona han cambiado y que stos necesitarn actualizar
sus copias locales de la base de datos de la zona.
La lnea 3 es la frecuencia de actualizacin, en segundos, que indica la
frecuencia con la que los servidores secundarios deben comprobar el
nmero de serie de los datos de la zona. En este caso. todos los servidores secundarios comprobarn el nmero de serie cada ocho horas.
La lnea 4 es la frecuencia de reintento, en segundos. que indica el
tiempo que debe esperar un servidor secundario si fall a la hora de
intentar contactar con el servidor primario durante el tiempo de actualizacin. En este caso, un servidor secundario seguir intentando
contactar con el servidor cada cuatro horas.
La lnea 5 es el tiempo de caducidad. en segundos, que indica el momento en que un servidor secundario eliminar la informacin de la
zona de la cach si falla a la hora de contactar el servidor primario durante este tiempo. En este caso, el servidor secundario caduca los datos de la zona si no fue capaz de contactar con el servidor primario
durante los ltimos 41 das.
La lnea 6 es el intervalo de tiempo de vida, en segundos, que indica
el tiempo que los servidores remotos pueden mantener en la cach la
293
294
Captulo 7
informacin que se devuelve como respuesta a una peticin. Estas peticiones no sern cualquier peticin al localhost procedentes de servidores remotos, pero si lo fueran, el intervalo de tiempo de vida es, en
este caso, de una semana.
La lnea 7 contiene el parntesis cerrado del registro SOA multilnea.
La lnea 8 es un registro de recurso del nombre de servidor (NS), que
indica que el localhost es el servidor de nombres para este dominio.
Para los registros siguientes al registro SOA, el origen, @, 0.0.127.inaddr.arpa. se considera como el valor del primer campo.
La lnea 9 es registro de recurso puntero (PTR), que indica que la traduccin de direccin a nombre para la direccin 127.0.0. I es el nombre de host localhost. El 1 del principio del registro indica que este registro define la traduccin de direccin a nombre para la direccin
127.0.0. I . Como el origen se expresa en el antiguo estilo de dominio
IP de la red arpanet, empezando con la direccin del dominio IP en
formato inverso de tuplas separadas por puntos, el 1 del principio es
una abreviatura de 1.0.0.127.in-addr.arpa.
Actualizacin de named.boot a named.conf
Las versiones anteriores de BINO usaban /etc/named.boot como archivo de configuracin de servidor. Una secuencia de comandos de Peri, /usr/doc/bind-8.2/named-bootconf/Grot/named-bootconf.pl convertir un archivo existente named.boot al nuevo formato:
cd /usr/doc/bind-8.2/named-bootconf/Grot
perl ./named-bootconf.pl < /etc/named.boot
>
/tmp/named.conf
/etc/named.conf
named es el componente de servidor DNS. El servidor encuentra la informacin solicitada en su cach local o enva la peticin DNS a algn otro servidor de nombres. /etc/named.conf es el archivo de configuracin del demonio de named.
El nombre del archivo / etc/named.conf y su formato son nuevos en
BIND 8.2, que es la versin de BIND que se incluye con Red Hat Linux 6.0.
named.conf se puede configurar de muchas formas diferentes. Consulte al
archivo /usr/doc/bind-8.2/html/config.html para ver una lista completa y las descripciones. Aqu slo se describirn las sentencias que se usan en las siguientes secciones para configurar servidores especficos.
Captulo 7
DNS a host remotos en Internet. El servidor de reenvo simplemente introduce en la cach la informacin de las bsquedas de forma local despus de
reenviar inicialmente las peticiones no resueltas a uno de los servidores de
nombres del ISP. Esta seccin muestra ejemplos del archivo /etc/resolv.conf, la
base de datos /var/named/ y los archivos de configuracin /etc/named.conf
para un servidor de nombres de reenvo local.
domain my.isp.net
nameserver 127.0.0.1
El archivo de la base de datos de la zona del localhost, /var/named/named.127.0.0, es el nico archivo necesario de informacin de zona.
El archivo de configuracin del servidor named local, /etc/named.conf, contiene lo siguiente:
1. options {
2.
directory '/var/named';
3.
forward only;
4. /1
forward first;
5.
forwarders {
6.
my.name.server.1;
my.name.server.2;
7.
8.
my.name.server.3;
9.
} ;
10.
11 .
12.
13. 11
14.
15.
16.
17. 11
18.
19. } ;
allow -que ry {
127.0.0.1;
192 . 168. 1 / 24;
}
listen-on port 53 {
127.0.0.1;
192. 168. 1 . 1 ;
type hint;
file 'root.cache';
295
296
Captulo 7
Captulo 7
La lnea 17 es una interfaz de red adicional en la que escuchar, en espera de peticiones. Si existe una LAN conectada a una interfaz de red
interna, se debe especificar la direccin de la direccin IP de la interfaz interna.
La lnea 18 cierra el registro listen-on, indicado por una llave derecha.
La lnea 19 cierra el registro options, indicado por una llave derecha.
La lnea 20 abre un registro zone multilnea para la red de bucle invertido. Los nombres de dominio de la zona se especifican como dominios de ARPANET, como la direccin de red loopback, 127.0.0, se especifica en orden inverso de tuplas separada por puntos, como el
dominio ARPANET 0.0.127.in-addr.arpa.
La lnea 21 declara los datos de la zona que se describen en este registro como la copia maestra. Este servidor de nombres es el servidor
autorizado para esta zona.
La lnea 22 indica que no es necesario notificar a otros servidores si
cambian los datos de zona.
La lnea 23 proporciona el nombre del archivo de la base de datos de
la zona. Como named.127.0.0 es un nombre de trayectoria relativo, se
supone que puede ubicarse de forma relativa en el directorio /var/named/, especificado como el valor directory en el registro options.
La lnea 24 cierra el registro zone, indicado por una llave derecha.
La lnea 25 abre un registro zone multilnea para la cach de dominio
del root, ofreciendo la ubicacin de los servidores de dominio del root
de Internet. Un servidor de nombres forward only no necesita la zona
root, ya que todas las peticiones se reenvan al host especfico declarado en el registro forwarders. Un servidor de nombres forward first,
al igual que un servidor de nombres normal, necesita este registro
zone como una sugerencia de donde empezar a buscar servidores de
nombres autorizados.
La lnea 26 declara los datos de la zona que describe este registro
como una sugerencia. Es decir, es slo un sitio donde empezar.
La lnea 27 proporciona el nombre del archivo de la base de datos de
la zona. Como root.cache es un nombre de trayectoria relativo, se supone que se ubica de forma relativa en el directorio /var/named / , especificado como el valor directory en el registro options.
La lnea 28 cierra el registro zone, indicado por una llave derecha.
297
298
Captulo 7
domain my.private.lan
nameserver 192.168.1.1
Esto es todo lo que necesitan las mquinas cliente para realizar peticiones
de bsqueda DNS.
Si es necesario ejecutar servidores de nombres en mquinas LAN, tambin
es posible realizar peticiones de reenvo locales slo al servidor de nombres
maestro, peticiones de reenvo locales a los servidores de nombres del ISP
(igual que hace el maestro) o peticiones de reenvo a los dems servidores de
nombres locales.
La siguiente seccin describe otra posibilidad ms de configuracin cuando se ejecuta un servidor de nombres local en una mquina interna. En este
caso, el servidor de nombres pblico ser un servidor tonto que dice ser el
autorizado. El servidor interno ser realmente el servidor autorizado para la
LAN privada interna, invisible para Internet.
Captulo 7
Como el servidor pblico no sabe nada sobre la LAN, los clientes DNS locales de la mquina no usan el servidor de nombres que se ejecuta en su propia mquina. Por el contrario, los clientes locales usan el servidor de nombres
privado que se ejecuta en una mquina interna. Como ejemplo, la mquina
interna es el firewall de contencin que se describi en el Captulo 4. El archivo /etc/resolv.conf contiene:
search my.local.lan my.isp.net
nameserver 192.168.11.2
El servidor de nombres siempre necesita el archivo de la base de datos de
la zona del localhost,
/var/named/named.127.0.0.
Como ejemplo, supongamos que el sitio pertenece al bloque de direcciones entre la red 192.168. I O.O y la red 192.168. I 1.0, que la direccin IP externa de la mquina firewall es 192.168. I 0.30, y que la red DMZ pertenece al espacio de direcciones 192.168.11.0.
Adems del archivo local de host, se almacenan dos archivos ms de zona
en el directorio /var/named/. El primero es el archivo de traduccin de direccin a nombre del servidor pblico, named.public:
1. 10.168.192.in-addr.arpa.
2.
3.
4.
5.
6.
7.
8.
IN
IN
NS
MX
bastion.my.domain.com.
10 bastion.my.domain.com.
9. 30
IN
PTR
Las lneas 1 a 6 contienen la informacin de control de la zona. Las lneas 7, 8 y 9 son registros de recurso:
La lnea 1 comienza un registro de control SOA para la zona_
10.168.192.in-addr.arpa. es el origen de la zona. IN indica que los datos
de este registro pertenecen a la clase de datos de Internet. SOA indica que este registro de recurso es el registro inicio de autoridad.
my.domain.com. es el nombre del dominio. postmaster.my.domain.com.
indica la direccin de correo electrnico de la persona de contacto
responsable de la informacin de la zona. Los parntesis abiertos indican el principio de un registro multilnea.
La lnea 2 es un nmero de serie. Si se ofrece servicio a servidores de
nombres secundarios, un cambio en el nmero de serie indicar que los
datos de la zona han cambiado y que necesitarn actualizar sus copias
299
300
Captulo 7
Captulo 7
6.
7.
8.
IN
IN
my.domain.com.
1999072701
28800
14400
3600000
86400 )
Serial
Refresh after 8 hours
Retry 4 hours
Expire after 41 days
Minimum
bastion.my.domain.com.
10 bastion.my.domain.com.
NS
MX
SOA
IN
La lnea 9 es un registro de recurso A, direccin, que indica que la traduccin de nombre a direccin para el nombres de host bastion.my.domain.com. es
la direccin 192.168.10.30.
El archivo de configuracin del servidor named local, /etc/named.conf contiene las siguientes lneas:
1. options {
2.
directory '/var/named';
3.
forward first;
4.
forwarders {
5.
my.name.server.1;
6.
my.name.server.2;
7.
my.name.server.3;
8.
} ;
9.
10.
11.
12.
13.
14.
15.
allow-query {
! 127/8;
192. 168. 11 . 2;
! 192. 168. 11 / 24;
*.
16.
17.
allow-transfer {
allow-update {
18.
19.
20.
21.
22. } ;
listen-on port 53 {
192 . 168. 10. 30;
192 . 168 . 11 . 1 ;
'
! *; }
*; }
301
302
Captulo 7
type hint;
file "root.cache";
El archivo /etc/name.conf contiene dos clases <le registros <le este ejemplo:
el registro options (opciones) y el registro zone (zona). Se pueden definir las opciones de forma global para el servidor en el registro options, y los
valores de opcin individuales se pueden definir en los registros zone individuales que se aplican slo a dicha zona. Las lneas 1 a 22 definen el registro
options:
La lnea 1 declara el tipo de registro como un registro options y abre
un registro multilnea con una llave izquierda.
La lnea 2 define el directorio de trabajo del servidor de nombres,
/var/named /, donde se guardan los archivos maestro de zona.
La lnea 3 indica al servidor que funcione como un servidor de nombres forward only (slo de reenvo). Es decir, el servidor dirigir las peticiones no resueltas slo a los host listados en el registro forwarders.
Si estos host son incapaces de resolver la peticin, o no responden, el
servidor intentar resolver la peticin por s mismo, funcionando
como un servidor de nombres normal.
La lnea 4 abre un registro forwarders multilnea, indicado por la llave
izquierda. El registro forwarders contiene una lista de servidores a los
que reenviar las peticiones.
Las lneas 5 a 7 listan los servidores de nombres individuales a los que
reenviar las peticiones. Se pueden listar hasta tres servidores.
La lnea 8 cierra el registro forwarders, indicado por la llave derecha.
La lnea 9 es necesaria cuando se mantiene un firewall entre el servidor local e Internet. Esta lnea define el puerto origen <le! servidor
para que sea el puerto 53 cuando este enva peticiones de bsqueda
de igual a igual a otros servidores. Es decir, el servidor usa el puerto
UDP 53 tanto como puerto origen como puerto destino, para peticiones servidor a servidor.
La lnea 1O abre un registro allow-query multilnea, indicado por una
llave izquierda. El registro allow-query contiene una lista de direcciones IP de red de las que se aceptan y deniegan peticiones. El orden de
Captulo 7
303
304
Captulo 7
La lnea 24 declara los datos de zona que describe este registro, para
que sean la copia maestra. Este servidor de nombres es el servidor autorizado para esta zona.
La lnea 25 indica que no se notificar a ningn otro servidor si se cambian los datos de la zona.
La lnea 26 proporciona el nombre del archivo de la base de datos de
la zona. Como named.127.0.0 es un nombre de trayectoria relativo, se
supone que se localiza de forma relativa en el directorio /var/named/,
especificado como el valor directory en el registro options.
La lnea 27 cierra el registro zone, indicado por una llave derecha.
La lnea 28 abre un registro zone multilnea para el dominio pblico,
my.domain.com. La informacin de zona de este fichero se usa para
bsquedas inversas de nombre a direccin.
La lnea 29 declara los datos de zona descritos por este registro como
la copia maestra. Este servidor de nombres es el servidor autorizado
para esta zona.
La lnea 30 indica que no se notificar a ningn otro servidor si los datos de la zona cambian.
La lnea 31 proporciona el nombre del archivo de la base de datos de
zona. Como named.public.reverse es un nombre de trayectoria relativo,
se supone que se ubica de forma relativa en el directorio /var/named/,
especificado como el valor directory en el registro options.
La lnea 32 cierra el registro zone, indicado por una llave derecha.
La lnea 33 abre un registro zone multilnea para el dominio pblico,
10.168.192.in-addr.arpa, utilizado para bsquedas de direccin a nombre.
La lnea 34 declara los datos de la zona descritos por este registro
como la copia maestra. Este nombre de servidor es el servidor autorizado para esta zona.
La lnea 35 indica que no se notificar a ningn otro servidor si cambian los datos de la zona.
La lnea 36 proporciona el nombre del archivo de la base de datos de
la zona. Como named.public es un nombre de trayectoria relativo, se
supone que se ubica de forma relativa en el directorio /var/named/, especificado como el valor directory en el registro options.
La lnea 37 cierra el registro zone, indicado por una llave derecha.
La lnea 38 abre un registro zone multilnea para la cach del dominio
de root, dando la ubicacin de los servidores de dominio del root de
Internet. El servidor de nombres forward first, as como un servidor de
nombres normal, necesita este registro zone como una sugerencia de
por donde empezar a buscar servidores de nombres autorizados.
La lnea 39 declara los datos de la zona que describe este registro
como una sugerencia. Es decir, es slo un lugar desde donde empezar.
La lnea 40 proporciona el nombre del archivo de base de datos de la
zona. Como root.cache es un nombre de trayectoria relativo, se supone que se ubica de forma relativa en el directorio /var/named/, especificado como el valor directory en el registro options.
La lnea 41 cierra el registro zone, indicado por una llave derecha.
Captulo 7
IN
SOA
my.dmz.lan.
1999072701
28800
14400
3600000
86400 )
2.
3.
4.
5.
6.
Serial
Refresh after 8 hours
Retry 4 hours
Expire after 41 days
Minimum
7.
8.
IN
IN
MX
choke.my.dmz.lan.
10 bastion.my.dmz.lan.
9.
IN
IN
PTR
PTR
bastion.my.dmz.lan.
choke.my.dmz.lan.
10. 2
NS
305
306
Captulo 7
responsable de la informacin de la zona. Los parntesis abiertos indican el principio de un registro multilnea.
La lnea 2 es un nmero de serie. Si se ofrece servicio a servidores de
nombres secundarios, un cambio en el nmero de serie indicar que los
datos de la zona han cambiado y que necesitarn actualizar sus copias
locales de la base de datos de la zona. En este caso, el nmero de serie
se expresa en la convencin comn de ao, mes, da y nmero de veces que la base de datos fue cambiada en dicha fecha: YYYYMMDDNN.
La lnea 3 es la frecuencia de actualizacin, en segundos, que indica la
frecuencia con la que los servidores secundarios deben comprobar el
nmero de serie de los datos de la zona. En este caso, todos los servidores secundarios comprobarn el nmero de serie cada ocho horas.
La lnea 4 es la frecuencia de reintento, en segundos, que indica el
tiempo que debe esperar un servidor secundario si fall a la hora de
intentar contactar con el servidor primario durante el tiempo de actualizacin. En este caso, un servidor secundario seguir intentando
contactar con el servidor cada cuatro horas.
La lnea 5 es el tiempo de caducidad, en segundos, que indica el momento en que un servidor secundario eliminar la informacin de la
zona de la cach si falla a la hora de contactar el servidor primario durante este tiempo. En este caso, el servidor secundario caduca los datos de la zona si no fue capaz de contactar con el servidor primario durante los ltimos Tiempo de vida (TTL, time-to-live) segundos. En este
caso, el servidor secundario caduca los datos de la zona si no fue capaz
de contactar con el servidor primario durante los ltimos 41 das.
La lnea 6 es el intervalo de tiempo de vida, en segundos, que indica
el tiempo que los servidores remotos pueden mantener en la cach la
informacin que se devuelve como respuesta a una peticin. El intervalo de tiempo de vida para la informacin que se proporciona a las
peticiones remotas es, en este caso, de una semana.
La lnea 7 es un registro de recurso NS, servidor de nombres, que indica que choke.my.dmz.lan. , la mquina firewall pblica, es el servidor
de nombres para este dominio ..
La lnea 8 es un registro de recurso MX, intercambiador de correo, que
indica que bastion.my.domain.com . es el host de correo o el reenviador
de correo para este dominio. El valor 1O, el intervalo de preferencia
del intercambiador, no tiene sentido en este ejemplo. Para los sitios
con mltiples intercambiadores de correo, cada host puede recibir un
intervalo de prioridad preferida entre O y 65535. Se intenta transmitir
el correo a cada host de uno en uno, desde el intervalo inferior al superior, hasta que el envo finaliza con xito.
La lnea 9 es un registro de recurso PTR, puntero, que indica la traduccin de direccin a nombre para el nombre de host bastion.my.dmz.lan.
El 1 que aparece al principio en el registro indica que este registro define la traduccin de nombre a direccin para la direccin 192.168.1 1.1 .
Captulo 7
La lnea 10 es un registro de recurso PTR, puntero, que indica la traduccin de direccin a nombre para el nombre de host choke.my.dmz.lan.
El 2 que aparece al principio en el registro indica que este registro define la traduccin de direccin a nombre para la direccin 192.168.1 1.2.
El archivo de la base de datos de la zona nombra direccin de la DMZ es
el archivo /var/named/named.dmz.reverse. Las primeras ocho lneas son idnticas a las del archivo de zona direccin a nombre, incluyendo el registro
SOA, el registro NS y el registro MX. Los registros PTR se reemplazan con el
registro A, de address (direccin):
1. 11.168.192.inaddr.arpa.
postmaster.my.dmz.lan. (
IN
my.dmz.lan.
1999072701
28800
14400
3600000
86400 )
2.
3.
4.
5.
6.
7.
8.
SOA
IN
IN
NS
MX
9. bastion.my.dmz.lan.
10. choke.my.dmz.lan.
Serial
Refresh after 8 hours
Retry 4 hours
Expire after 41 days
Minimum
choke.my.dmz.lan.
10 bastion.my.dmz.lan.
IN
IN
A
A
192 . 168 . 11 . 1
192 . 168. 11 . 2
La lnea 9 es un registro recurso A, direccin, que indica que la traduccin de nombre a direccin para el nombre de host bastion.my.dmz.lan. es la
direccin 192. 168. 11. 1.
La lnea 10 es un registro recurso A, direccin, que indica que la traduccin de nombre a direccin para el nombre de host choke.my.dmz.lan. es la direccin 192.168. I 1.2.
El archivo de la zona de la base de datos direccin a nombre de la LAN privada es el archivo /var/named/named.local.lan. Contiene:
1. 1.168.192.in-addr.arpa. IN
postmaster. my. local. lan. (
SOA
2.
1999072701
28800
14400
3600000
86400 )
3.
4.
5.
6.
7.
8.
9.
10. 2
11. 3
my.local.lan.
Serial
Refresh after 8 hours
Retry 4 hours
Expire after 41 days
Minimum
IN
IN
NS
MX
choke.my.local.lan.
10 bastion.my.dmz.lan.
IN
PTR
PTR
PTR
choke.my.local.lan.
macintosh.my.local.lan.
bsd.my.local.lan.
IN
IN
Las lneas 1 a 6 contienen la informacin de control de la zona. Las lneas 7 a 11 son registros de recurso:
307
308
Captulo 7
YYYYMMDDNN.
La lnea 3 es la frecuencia de actualizacin, en segundos, que indica la
frecuencia con la que los servidores secundarios deben comprobar el
nmero de serie de los datos de la zona. En este caso, todos los servidores secundarios comprobarn el nmero de serie cada ocho horas.
La lnea 4 es la frecuencia de reintento, en segundos, que indica el
tiempo que debe esperar un servidor secundario si fall a la hora de
intentar contactar con el servidor primario durante el tiempo de actualizacin. En este caso, un servidor secundario seguir intentando
contactar con el servidor cada cuatro horas.
La lnea 5 es el tiempo de caducidad, en segundos, que indica el momento en que un servidor secundario eliminar la informacin de la
zona de la cach si falla a la hora de contactar el servidor primario durante este tiempo. En este caso, el servidor secundario caduca los datos de la zona si no fue capaz de contactar con el servidor primario
durante los ltimos 3600000 segundos. En este caso, el servidor secundario caduca los datos de la zona si no fue capaz de contactar con
el servidor primario durante los ltimos 41 das.
La lnea 6 es el intervalo de tiempo de vida, en segundos, que indica
el tiempo que los servidores remotos pueden mantener en la cach la
informacin que se devuelve como respuesta a una peticin. El intervalo de tiempo de vida para la informacin que se proporciona a las
peticiones remotas es, en este caso, de una semana.
La lnea 7 es un registro de recurso NS, servidor de nombres, que indica que choke.my.local.com., la mquina firewall interna, es el servidor
de nombres para este dominio.
La lnea 8 es un registro de recurso MX, intercambiador de correo,
que indica que bastion.my.dmz.lan. es el host de correo o el reenviador
de correo para este dominio. El valor 1O, el intervalo de preferencia
del intercambiador, no tiene sentido en este ejemplo. Para los sitios
con mltiples intercambiadores de correo, cada host puede recibir un
intervalo de prioridad preferida entre O y 65535. Se intenta transmitir
Captulo 7
el correo a cada host de uno en uno, desde el intervalo inferior al superior, hasta que el envo finaliza con xito.
La lnea 9 es un registro de recurso PTR, puntero, que indica la traduccin de direccin a nombre para el nombre de host bastion.my.local.lan. El 1 que aparece al principio en el registro indica que este registro define la traduccin de direccin a nombre para la direccin
192. 168. l. 1
La lnea 10 es un registro de recurso PTR, puntero, que indica la traduccin de direccin a nombre para el nombre de host
macintosh.my.local.lan. El 2 que aparece al principio en el registro indica que este registro define la traduccin de direccin a nombre para
la direccin 192.168.1.2.
La lnea 11 es un registro de recurso PTR, puntero, que indica la traduccin de direccin a nombre para el nombre de host bsd.my.local.lan.
El 3 que aparece al principio en el registro indica que este registro define la traduccin de direccin a nombre para la direccin 192.168.1.3.
El archivo de la zona de la base de datos nombre a direccin de la LAN privada es el archivo /var/named/named.local.lan.reverse. Las primeras ocho lneas
son idnticas a las del archivo de la zona direccin a nombre, incluyendo el
registro SOA, el registro NS y el registro MX. Los registros PTR se reemplazan con el registro A, de address (direccin):
1. 1.168.192.in-addr.arpa. IN
postmaster. my. local. lan. (
my.local.lan.
1999072701
28800
14400
3600000
86400 )
2.
3.
4.
5.
6.
7.
8.
SOA
IN
IN
NS
MX
9. choke.my.local.lan.
10. macintosh.my.local.lan.
11 . bsd.my.local.lan.
Serial
Refresh after 8 hours
Retry 4 hours
Expire after 41 days
Minimum
choke.my.local.lan.
10 bastion.my.dmz.lan.
IN
IN
IN
A
A
A
192.168.1.1
192 . 168 . 1 . 2
192 . 168. 1 . 3
La lnea 9 es un registro recurso A, direccin, que indica que la traduccin de nombre a direccin para el nombre de host choke.my.local.lan. es la
direccin 192. 168. 1. 1.
La lnea 1O es un registro recurso A, direccin, que indica que la traduccin de nombre a direccin para el nombre de host macintosh.my.local.lan. es
la direccin 192.168.1.2.
La lnea 11 es un registro recurso A, direccin, que indica que la traduccin de nombre a direccin para el nombre de host bsd.my.local.lan . es la direccin 192.168.1.3.
El archivo de configuracin del servidor named local, /etdnamed.conf, contiene lo siguiente:
309
310
Captulo 7
1. options {
2.
directory '/var/named';
3.
forward only;
4.
forwarders {
5.
192. 168. 11 . 1 ;
6.
7.
} ;
8.
9.
10.
11 .
12.
13.
allow-query {
127/8;
192 . 168 . 11 . 1 ;
! 192 . 168. 11 / 24;
192.168.1/24;
14.
15.
allow-transfer {
allow-update {
16.
17. } ;
;
! *; } ;
*; }
*; }
Captulo 7
311
312
Captulo 7
Captulo 7
313
314
Captulo 7
Captulo 7
acceso, /etc/ftpaccess. Si se alberga un servicio pblico de ftp annimo, se recomiendan otras dos opciones ms, -i y -o. La opcin -i registra todas las
transferencias de archivo entrantes en el archivo /var/log/xferlog. La opcin -o
registra todas las copias de archivo salientes en el archivo /var/log/xferlog.
Para obtener ms informacin: Configuracin de FfP
Par.1 obtener ms informacin sobre la configuracin de ftp, consulte las pginas man
ftpd(8), ftpaccess(S), ftpconversion(S) y xfer-log(S). Parn obtener ms informacin sobre
la contigur.1cin de ftp annimo, consulte los documentos "Anonymous FTP Configur.1tion Guidelines"' (Directrices gener.11es sobre la configuracin de FTP annimo),
que se puede obtener en ftp://ftp.cert.org/pub/tech_tips/anonymous_ftp_config, "UNIX
Configuration Guidelines" (Directrices genernles sobre UNIX), que se puede conseguir en http://www.cert.org/ftp/tech_tips/UNIX_configuration_guidelines y "UNIX Computer Security Checklist" (Lista de comprobacin de seguridad de UNIX), que se puede conseguir en http://www.cert.org/ftp/tech_tips/AUSCERTchecklist. I. Para obtener
ms informacin sobre los problemas de la seguridad de ftp, consulte los documentos
"Anonymous FTP Abuses" (Abusos de FTP annimo), que puede obtener en
http://www.cert.org/ftp/tech_tips/anonymous_ftp_abuses y "Problems With The FTP
PORT Command" (Problemas con el comando PORT de FTP), que puede obtener en
http://www.cert.org/ftp/tech_tips/FTP_PORT _attacks.
La cuenta bob tiene permiso para acceso autenticado desde cualquier host
de la LAN privada. La cuenta jake tiene permiso para acceso autenticado slo
desde el host remoto en la direccin 10.10.47. I 12.
315
316
Captulo 7
friends
1. class
friends
2. class
other
3. # class
real 192.168.1.*
real 10.10.47.112
anonymous *
7. message /welcome.msg
8. message .message
9. email root@localhost
10.
11.
12.
13-
loginfails 5
limit-time anonymous 30
anonymous-root /home/ftp
defaultserver private
14.
15.
16.
17.
18.
19.
compress
tar
chmod
delete
overwrite
rename
yes
yes
no
yes
yes
yes
friends
friends
friends
friends
friends
friends
/home/ftp *
/home/ftp /incoming yes
/home/ftp /incoming yes
anonymous
anonymous
no
bob
jake
inbound,outbound
Captulo 7
317
318
Captulo 7
Captulo 7
319
320
Captulo 7
usehostname
2. noipdefault
3. auth
4. login
5. require-pap
server
192. 168. 1 . 1
secret
IP addresses
192.168.1.3 host.local.lan
Captulo 7
3. root
4. bin
5. mail
6. games
7. nobody
server
192. 168. 1 . 1
192. 168. 1 . 1
192 . 168 . 1 . 1
192 . 168. 1 . 1
192 . 168 . 1 . 1
192. 168. 1 . 1
secret
IP addresses
11*11
u*
11
"*u
11*11
H
11
321
322
Captulo 7
Al ser un servicio pblico restringido, es necesario realizar un par de cuestiones ms relacionadas con la configuracin, con el fin de mejorar la seguridad. Primero, toda direccin IP remota, o todo nombre de host que tiene permisos, debe listare como un cliente del servidor ipop3d en el archivo
/etc/hosts.allow. En segundo lugar, deben definirse las reglas de firewall individuales con el fin de permitir que cada uno de estos host remotos acceda al
servidor POP local.
Captulo 7
Si el demonio se ejecuta en la mquina firewall, en vez de en una mquina interna, puede que sea necesario agregar una entrada de tabla de enrutamiento para la interfaz de red interna. Si es as, se debe agregar la siguiente
lnea al archivo /etc/rc.d/rc.local:
route add -host 255.255.255.0 dev eth1
El archivo de configuracin del servidor dhcpd es /etc/dhcpd.conf; el archivo puede contener parmetros globales. El archivo debe contener un registro de declaracin para cada subred conectada al servidor. Un ejemplo sencillo para una LAN privada, que cambia dinmicamente, sera:
1. option domain-name 'local.lan';
2. option domain-name-servers 192.168.1 .1;
3. option subnet-mask 255.255.255.0;
4. subnet 192.168.1 .0 netmask 255.255.255.0 {
5.
range 192. 168. 1 . 2 192. 168. 1 . 254;
6.
default-lease-time 86400;
7.
max-lease-time 2592000;
8.
option broadcast -address 192. 168. 1 . 255;
9.
option routers 192.168.1 .1;
10.
323
324
Captulo 7
La lnea 7 define el max-lease-time en segundos. 2.592.000 segundos equivalen a 30 das, por lo que el mximo tiempo de concesin a; de un mes.
La lnea 8 muestra la broadcast-address de la LAN.
La lnea 9 especifica el enrutador pasarela de la LAN.
La lnea 10 cierra el registro de subred para la interfaz de red particular.
Si se desea ms informacin sobre la configuracin de dhcpd, consulte las
siguientes pginas man: dhcpd(8) y dhcpd.conf(S).
La lnea 1 define el nivel de confianza en los host remotos. De forma predeterminada, los host remotos son seguros para la hora, pero no tienen per-
Captulo 7
La lnea 1 define el nivel de confianza predeterminado en los host remotos. De forma predeterminada, los host remotos son confiables en cuanto a
la hora, pero no tienen permiso para realizar modificaciones a la configuracin del servidor local.
La lnea 2 indica que el servidor remoto ser la interfaz de red interna de
la mquina firewall. En este caso, no se especifican los intervalos de sondeo
mnimo y mximo. El valor minpoll predeterminado es 6, que equivale a aproximadamente a un minuto. El valor predeterminado de maxpoll es 10, que
equivale aproximadamente a 15 minutos.
La lnea 3 declara la mquina local como un servidor horario.
La lnea 4 elimina las restricciones predeterminadas del servidor local para
que se pueda modificar la configuracin del servidor localmente en tiempo
de ejecucin.
325
326
Captulo 7
Captulo 7
Controlar de forma cuidadosa el contenido de la entrada de usuario en las secuencias de comandos es algo ms dificil, ya que la entrada que espera un prcr
grama dado es nica. Un documento que puede conseguir del CERT, "How To
Remove Meta-characters From User-Supplied Data In CGI Scripts" (Cmo quitar metacaracteres de las secuencias de comandos CGI proporcionadas por el
usuario), en la direccin http://www.cert.org/tech_tips/cgi_metacharacters.html,
describe una aproximacin general al cdigo de comprobacin de errores y
ofrece ejemplos de secuencias de comandos Peri y cdigo fuente C. La idea general es que se debe comprobar toda la entrada de usuario. Es necesario descartar el flujo de datos que proporciona el usuario por encima de un mximo
esperado. Este paso slo protege la secuencia de comandos de las explosiones
por desbordamiento del bfer. En lugar de intentar escribir cdigo para anticipar cada entrada de usuario indefinida e inesperada, los documentos recomiendan definir exactamente los caracteres ASCII que son legales y descartar cualquier entrada que incluya caracteres ilegales.
327
328
Captulo 7
desde el servidor remoto que desea. Para servicios multiprotocolo, como RealAudio, que usa una conexin TCP como canal de control y UDP para el flujo de datos, SOCKS asocia el extremo del host remoto con el origen de donde se esperan los datagramas UDP entrantes.
La posibilidad que tiene SOCKS de realizar un uso correcto de los protocolos del nivel de aplicacin tambin resulta atractiva para los servicios de devolucin de llamada de TCP, como FTP, en el modo de puerto de canal de datos. SOCKS asegura que la conexin del canal de datos entrante procedente
del puerto TCP 20 se origin desde el host remoto al que el cliente est conectado cuando se estableci el canal de comandos en el puerto TCP 21.
En resumen, SOCKS es una alternativa atractiva a los mdulos de enmascaramiento IP que incluye Linux, ya que todos sus programas cliente son
compatibles con SOCKS. Aunque los mdulos de enmascaramiento incluidos
con Linux son compatibles con varios servicios conocidos, SOCKS es compatible con cualquier servicio de red.
En un entorno proxy SOCKS, se deber bloquear la LAN del acceso a Internet, en vez de permitir el acceso LAN slo a la interfaz de red interna. Es
especialmente importante bloquear los intentos de conexin entrantes procedentes de Internet al servidor SOCKS en el puerto TCP 1080. El servidor
nunca debera aceptar conexiones procedentes de sitios remotos.
Como servicio proxy, en realidad SOCKS realiza enmascaramiento IP para
los clientes LAN. Cuando SOCKS proporciona el nico conducto entre la LAN
e Internet, no es necesario el enmascaramiento IP a nivel de paquete.
Se puede obtener SOCKS tanto gratuitamente como en forma de producto comercial. El mejor sitio web de SOCKS se encuentra en la direccin
http://www.socks.nec.com/. La versin de referencia no comercial de la versin
5 de SOCKS se puede conseguir en http://www.socks.nec.com/socksS.html.
Captulo 7
Aunque, de forma predeterminada, no se permite iniciar una sesin a estas cuentas del sistema debido a los campos de contrasea deshabilitados, es
necesario tener en cuenta dos precauciones de seguridad ms profundas: definir / bin/false como el shell de inicio de sesin para las cuentas necesarias
que no tienen un shell o un programa y eliminar las cuentas que quedan de
los archivos /etc/passwd y /etc/group. Un conjunto mnimo de cuentas del sistema en el archivo /etc/passwd consta de las siguientes entradas:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
adm:x:3:4:adm:/var/adm:/bin/false
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/bin/false
nobody:x:99:99:Nobody:/:/bin/false
Las restantes cuentas del sistema predeterminadas son cuentas con un propsito especial. Es posible eliminar cualquiera de las cuentas de la Tabla 7 .1
que no necesite tanto del archivo de contraseas como del archivo de grupos.
No recorte en exceso los grupos del sistema
/etc/group contiene otros grupos de sistemas adems <le los grupos asociados con
cuentas <lel sistema de propsito especial. No quite ms nombres <lel grupo de sistema de /etc/group. Estos grupos adicionales sirven como mecanismo de control <le acceso para los subsistemas de software, como los directorios <le las pginas man y para
ciertos dispositivos, como la consola, el ncleo, la memoria fsica, las unidades <le disco y las terminales fsicas.
Tabla 7.1.
Cuenta
daemon
lp
news
uucp
operator
games
gopher
ftp
xfs
gdm
postgres
squid
329
330
Captulo 7
shell busca en los directorios en el orden en que se haya definido en la variable PATH.
El orden de bsqueda de directorios introduce un posible problema de seguridad, especialmente en sistemas multiusuario. A menudo, es conveniente
agregar el directorio actual, ., a la variable PATH. Si se usa el punto en las variables PATH de las cuentas de usuario, el punto debera ser el ltimo directorio que se liste. Nunca debera preceder a los directorios binarios del sistema. De lo contrario, alguien podra colocar un programa de caballo de Troya
con el mismo nombre que Is, por ejemplo, en un directorio que se quiera listar. En ningn caso debe usarse el punto en la variable PATH del root. La
bsqueda de directorios del shell para el root debe restringirse a los directorios binarios del sistema estndar. La cuenta root debera ejecutar los programas en otros directorios proporcionando de forma explcita el nombre completo de ruta en la lnea de comandos.
Las variables PATH individuales se definen en el archivo de inicializacin
del shell del usuario. Dependiendo del shell que se use, el archivo se llama
.profile, .login, .cshrc, .kshrc, .bashrc, etc. Una variable estndar PATH del
estilo de sh para el root podra ser: PATH=/bin:/sbin:/usr/bin:/usr/sbin.
Una variable PATH estndar para un usuario normal que ejecuta X Window podra ser:
PATH=/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:.
/ etc/issue.net
/etc/issue.net contiene el titular de login que se muestra cuando alguien intenta un login remoto. Aparece el titular, seguido de las solicitudes de nombre de usuario y de contrasea. /etc/issue contiene la misma informacin para
los logins locales.
Uno de los problemas a la hora de ofrecer el servicio telnet es que el titular de login aparece antes de que comience el proceso de autenticacin de
usuario. Cualquiera puede abrir una conexin telnet a la mquina y leer la informacin del titular. De forma predeterminada, la mayora de los sistemas
UNIX, Linux incluido, muestran el nombre del sistema operativo y la versin,
as como el tipo de CPU del equipo. Por ejemplo, el archivo issue.net de la
versin Linux 6.0 de Red Hat muestra lo siguiente:
Red Hat Linux release 6.0 (Hedwig)
Kernel 2.2.5-15 on an i686
Este es exactamente el tipo de informacin que los programas de exploracin de puerto intentan determinar. El titular de login remoto ofrece la informacin gratis si el servicio telnet est abierto a Internet.
Tanto /etc/issue como /etc/issue.net se crean cada vez que el sistema se inicia. Los archivos los crea la secuencia de comandos del shell /etc/rc.d/rc.local.
Si se necesita ofrecer servicio de telnet remoto, ser necesario modificar el
Captulo 7
archivo /etc/rc.d/rc.local para escribir informacin ms restringida en /etc/issue.net o para eliminar el cdigo de re.local y crear su propio / etc/issue.net a
mano.
Por ejemplo, se puede crear un titular de login remoto sencillo escribiendo las siguientes lneas en /etc/issue.net:
Welcome to Bastion
%d
Aparecer el siguiente mensaje cuando alguien intente una conexin remota telnet a la mquina:
Welcome to Bastion
13:45 on Saturday, 24 July 1999
331
332
Captulo 7
En la mquina local que crea los registros del sistema, se modifica el archivo de configuracin de syslogd, /etc/syslog.conf, y se agregan lneas que especifican las facilidades de registro y prioridades que se desean escribir en el
host remoto. Por ejemplo, la siguiente lnea copia toda la informacin de los
registros al hostname:
* *
@hostname
Captulo 7
Resumen
Aunque se instale un firewall de filtrado de paquetes, un sistema UNIX
puede verse fcilmente comprometido si no se toman consideraciones de seguridad y precauciones a nivel de administracin del sistema. Ningn nivel
de seguridad ni ningn mecanismo ofrecen proteccin completa contra los
sistemas comprometidos. En este captulo se explican varias opciones de administracin del sistema y de configuracin del servidor que deberan usarse
para ayudar a asegurar el sistema.
Unas cuantas reas requieren la atencin del administrador, incluyendo la
autenticacin, as como las ventajas que ofrecen las contraseas secundarias
y la contrasea MDS de hash frente al mecanismo de contraseas predeterminado de UNIX. Despus de la autenticacin, se muestran las tareas de administracin del sistema centradas en la autorizacin. Se explica el mecanismo de empaquetamiento TCP Se discute el peligro de los archivos y los
directorios legibles pblicamente, adems de las herramientas para ayudar a
localizar los objetos legibles pblicamente en el sistema de archivos. Se explican las cuestiones de seguridad y los mecanismos especficos a unos cuantos servicios habituales de Internet, incluyendo servicios como telnet, smtp,
ftp, pop y DNS.
333
8
Informes de incidentes
y deteccin de intrusos
336
Captulo 8
COPS
El Computer Oracle and Password System (COPS) de Dan Farmer es una
familia de programas que revisan de forma conjunta un gran conjunto de posibles reas de debilidad de seguridad en un sistema UNIX. cops se ha pensado para ejecutarlo de forma peridica como una tarea cron. Los resultados se
escriben en un archivo informe que, opcionalmente, se puede enviar por correo a un usuario especfico, normalmente a la cuenta de root.
Entre las comprobaciones que realiza cops se encuentra la comprobacin
de permisos de acceso a archivos y directorios, calidad de la contrasea, configuracin ftp, suma de comprobaciones de archivos ejecutables clave, acceso tftp, configuracin sendmail, configuracin del archivo inetd.conf y el estado de los diferentes archivos de configuracin del directorio /etc.
El paquete COPS se puede conseguir en muchos sitios. Dos fuentes son:
ftp://info.cert.org/pub/tools/cops/cops. l .04.tar.gz y http://metalab.unc.edu/pub/Linux/system/security/cops_ I04_1inux.tgz.
Captulo 8
Crack
Crack es un programa de adivinacin de contraseas independiente. Tambin incluye parte de las funciones que se encuentran en otro software de
comprobacin de integridad. La herramienta est diseada para ayudar a los
administradores del sistema a identificar las cuentas de usuario que tienen
contraseas dbiles, que se pueden adivinar fcilmente. Usa una combinacin de diccionarios generales y especializados y varios algoritmos heursticos para probar diferentes combinaciones de modelos. El programa Crack
ofrece compatibilidad incorporada para mezclar los archivos passwd y shadow, si se usan las contraseas de sombra. Crack usa el esquema de cifrado
DES en el que se han basado histricamente las contraseas UNIX. Durante
la instalacin, la versin Linux 6.0 de Red Hat ofrece la opcin de usar contraseas basadas en MDS. Crack no soporta actualmente MDS sin modificaciones.
Se puede conseguir el programa Crack en la direccin ftp://info.cert.
org/pub/tools/crack/crackS.O.tar.gz.
ifstatus
ifstatus comprueba las configuraciones de la interfaz de red del sistema. Se
informa de cualquier interfaz que se encuentre en modo depuracin o con
excesiva actividad. El que las interfaces de red se encuentren en estos estados puede ser un signo de que un intruso ha accedido al sistema y est usando un rastreador de paquetes de forma local, normalmente para leer las contraseas que estn en texto sin cifrar, como las que pasa el programa telnet
sobre una red.
Se puede conseguir la herramienta ifstatus en la direccin ftp://coast.cs.
purdue.edu/pub/tools/unix/ifstatus.
Tambin se puede encontrar informacin adicional sobre problemas relacionados con el rastreo de paquetes en la seccin "Ongoing Network Monitoring Attacks" (Supervisin de ataques de red en curso) en la direccin
http://www.cert.org/advisories/CA-94.0 l .ongoing.network.monitoring.attacks.html.
MD5
MDS es un algoritmo de cifrado de suma de comprobacin que se usa
para asegurar la integridad de los datos. MDS lee una cadena o un archivo y
genera una suma de comprobacin de 128 bits. La versin Red Hat de Linux
incluye ahora un programa de suma de comprobacin MDS y bibliotecas
compatibles para programar en C. Algunos de los paquetes para integridad
337
338
Captulo 8
del sistema que se presentan aqu incluyen sus propias bibliotecas MD5 para
crear bases de datos de sumas de comprobacin de los archivos de sistema
seleccionados.
SATAN
La Security Administrator Too! for Analyzing Networks (SATAN), de Wietse Venema y Dan Farmer, es una herramienta que ayuda a identificar fallos de
seguridad en las configuraciones de servicios de red. SATAN comprueba problemas comunes relacionados con NFS, NIS, tftp, ftp, y los comandos remotos BSD. Adems, realiza un examen de puerto para identificar puertos abiertos. Produce informes muy largos y tutoriales que describen los problemas
encontrados y las posibles soluciones a stos. SATAN necesita algo de ayuda
por parte del usuario para conseguir que funcione en un sistema Linux, pero
la calidad y la amplitud de los informes hace que el esfuerzo valga la pena. La
interfaz de usuario de SATAN se ha mejorado para ofrecer una interfaz de navegador web.
Si desea informacin ms detallada sobre SATAN, visite la direccin
ftp://ftp.porcupine.org/pub/security/index.html. Se puede conseguir la herramienta SATAN en muchos sitios, incluyendo los siguientes: ftp://ftp.porcupine.org/pub/security/satan- l. l. l .tar.Z, ftp://ftp.net.ohio-state.edu/pub/security/satan/ y ftp://sunsite.unc.edu/pub/packages/security/Satan-for-Linux/.
tiger
tiger es una coleccin de secuencias de comandos y programas en C diseados para comprobar posibles fallos de seguridad que pueden permitir el acceso no autorizado de root. tiger comprueba los valores de la configuracin del
sistema para variables PATH, inetd.conf, sistemas de archivos exportados NFS,
nombres de archivo no usuales, permisos de archivos y directorios y arch!.-,os
.rhost. tiger mantiene una base de datos de firmas digitales para archivos de sistema claves, con el fin de comprobar si se han modificado fraudulentamente.
Se puede conseguir en la siguiente direccin: http://metalab.unc.edu/pub/
Linux/system/security/tiger-2.2.4.tgz y http://www.net.tamu.edu/ftp/security/TAMU/
tiger-2.2.4p l .tar.gz, as como en muchas otras.
tripwire
tripwire crea y mantiene una base de datos de firmas digitales MDS para
todos o un conjunto de archivos y directorios del sistema. Su propsito es detectar adiciones, eliminaciones o cambios en archivos no autorizados. Se puede conseguir muy fcilmente la ltima versin de tripwire, la 1.2, en las siguientes direcciones: http://www.cert.org/ftp/tools/tripwire/tripwire- l .2.tar.Z y
ftp://ftp.auscert.org.au/pub/coast/COAST/Tripwire/tripwire- l .2.tar.Z.
Captulo 8
339
340
Captulo 8
dos, archivos de registro eliminados e informes de estado enviados por correo electrnico:
Archivos de registro del sistema. Las entradas sin explicacin que aparecen en los archivos de registro del sistema, la reduccin de los archivos de registro y la prdida de stos, indican que algo anda mal.
/var/log/auth contiene un registro de todos los accesos con cuenta.
/var/log/secure contiene los accesos con cuenta privilegiada.
/var/log/maillog registra todas las conexiones de correo. /var/log/xferlog
registra las transferencias de archivos ftp y uucp, si se ha configurado.
/var/log/messages contiene la mayora de la informacin histrica del
sistema.
Informes de estado de los demonios del sistema. En lugar, o adems,
de escribir los archivos de registro, algunos demonios, como crond,
envan informes de estado por correo electrnico. Los informes inusuales o desaparecidos sugieren que algo no va bien.
Mensajes de consola y de terminal anmalos. Los mensajes sin explicacin durante un inicio de sesin, que anuncian la posible presencia
del hacker, son claramente sospechosos.
Intentos de acceso repetidos. Los intentos de acceso activos o los intentos de acceder de forma ilegal a los archivos a travs de ftp o de un
servidor web, particularmente los intentos para modificar los guiones
CGI, son sospechosos si son persistentes, incluso cuando parezcan
terminar en errores repetidos.
Captulo 8
341
342
Captulo 8
usuario de informes de cuentas o prdida del proceso de informes de cuentas, cambios en los archivos de usuario, especialmente archivos de entorno,
y prdida de acceso de cuenta:
Cuentas de usuario nuevas y modificadas. La aparicin de nuevas cuentas en /etc/passwd y los procesos que se ejecutan con identidades de
usuario nuevas o inesperadas, segn muestra ps, son claras indicaciones de la existencia de nuevas cuentas. Las cuentas con contraseas
que se pierden repentinamente indican que se ha abierto una cuenta.
Registros de cuentas de usuarios. Los informes con cuentas de usuario
no usuales, inicios de sesin inexplicables, archivos de registros perdidos o modificados (como /var/log/lastlog, /var/log/pacct o /var/log/usracct)
y la actividad irregular de usuario son claros indicios de problemas.
Cambios en las cuentas de root o de usuarios. Una clara seal de problemas es si se modifica un entorno de inicio de sesin de usuario, o
se daa hasta el punto que la cuenta se hace inaccesible. Son especialmente importantes los cambios en los archivos de usuario .rhost y
.forward y los cambios en la variable de entorno PATH.
Prdida de acceso de cuenta. La denegacin de acceso de forma intencionada se parece a los cambios en el entorno de inicio de sesin
de un usuario, ya sea cambiando la contrasea de la cuenta o eliminando la cuenta o, para usuarios normales, cambiando el nivel de ejecucin a modo monousuario.
Captulo 8
Compruebe los registros del sistema, qu procesos se estn ejecutando y a qu puertos estn conectados. Revise el contenido de los
343
344
Captulo 8
2.
3.
4.
5.
6.
7.
8.
9.
10.
Casi todas las personas con las que he hablado se sienten culpables y
como unos tontos despus de que se haya comprometido el sistema. Recuerde que la seguridad es una batalla diaria y que requiere gran agudeza entre los hacker y los administradores de sistemas. No se ha invitado al hacker
a entrar. Realizan un esfuerzo consciente, probablemente un esfuerzo muy
constante, para descubrir los fallos del sistema y aprovecharse de ellos. No se
haga la vctima. No est solo. Hay muchos sistemas comprometidos. Simplemente intente estar un poco ms alerta ante lo que hacen los chicos malos.
Informacin de incidentes
Un incidente puede ser varias cosas y debe definirlo el propio usuario. En
trminos ms generales, es cualquier acceso anmalo desde Internet. En tr-
Captulo 8
345
346
Captulo 8
genera problemas. Los administradores de sistemas suelen ser receptivos a la denuncia de un incidente. Los ISP tienden a detener a los
clientes que generan problemas antes de que otros clientes empiecen
a quejarse de que los sitios remotos han bloqueado el acceso desde su
bloque de direcciones y no puedan intercambiar correo con un amigo
o con la familia en un sitio remoto.
Para recibir una confirmacin del ataque. A veces simplemente se querr una confirmacin de si lo que aparece en los registros es problemtico o no. Quiz se quiera una confirmacin de si un sitio remoto
est realmente filtrando paquetes de forma no intencionada debido a
una configuracin errnea. El sitio remoto tambin agradece que se le
informe de que la red no funciona como se esperaba.
Para aumentar la conciencia y supervisin por todas las partes involucradas. Si se denuncia el incidente al sitio atacante, el sitio supervisar con ms cuidado la configuracin y las actividades de los usuarios.
Si se denuncia el incidente a un centro de informes de ataques, la plantilla del centro puede contactar con el sitio remoto con ms fuerza
que la que tiene una sola persona, estar pendiente de la actividad de
forma continuada y ayudar mejor a los clientes que han sido comprometidos. Si se denuncia el incidente a un grupo de noticias sobre seguridad, otras personas pueden tener una idea mejor sobre lo que se
debe vigilar.
Ataques por denegacin de servicio. Cualquier clase de ataque por denegacin de servicio es intencionadamente hostil. No resulta difcil realizar personalmente un ataque como ste. Estos ataques son la forma
electrnica de vandalismo, obstruccin y robo de servicio. Algunas formas de ataque por denegacin de servicio son posibles debido a la naturaleza inherente de los dispositivos de red, por lo que poco o nada se
puede hacer sobre algunas formas de ataque, aparte de denunciar los
incidentes y bloquear todo el conjunto de direcciones del atacante.
Intentos de volver a configurar el sistema. Un hacker no puede volver
a configurar los servidores sin una cuenta de inicio de sesin de root
en la mquina, pero s puede modificar el sistema cuando las tablas re-
Captulo 8
347
348
Captulo 8
Captulo 8
Qu informacin proporciona?
Una denuncia de incidente debe contener suficiente informacin como
para ayudar al equipo de respuesta de incidentes a localizar el problema.
Cuando se contacte con el sitio que origin el ataque, es necesario recordar
que la persona de contacto puede ser el individuo que intencionadamente
lanz el ataque. Lo que se debe incluir, adems de lo que aparece en la siguiente lista, depende de con quin contacte o de lo cmodo que se sienta
incluyendo la informacin:
349
350
Captulo 8
Referencias a avisos y noticias de seguridad que describan la naturaleza e importancia del ataque.
Qu se quiere que haga la persona (por ejemplo, arreglarlo, confirmarlo, explicarlo, supervisarlo o informarle de ello).
Captulo 8
Resumen
Este captulo se centra en la supervisin de la integridad del sistema y la
deteccin de intrusos. Se presentan herramientas de anlisis de otros fabricantes, que se pueden conseguir en muchos sitios de seguridad web y ftp, incluyendo herramientas como COPS, crack, SATAN, tiger y tripwire. Se muestra la importancia de las firmas digitales, como las que emiten MD5 y tripwire.
Si se sospecha que el sistema puede estar comprometido, se debe presentar
una lista de indicaciones de posibles problemas. Si aparece alguno de estos
indicios y se concluye que el sistema est comprometido, se explica una lista de pasos de recuperacin. Por ltimo, se muestran las consideraciones sobre la denuncia de incidentes, junto con las direcciones donde se debe denunciar un incidente.
351
--IVApndices
A
B
C
Recursos de seguridad.
Ejemplos de firewalls y secuencias de comandos compatibles.
Glosario.
A
Recursos de seguridad
Fuentes de informacin
Se puede encontrar informacin de seguridad de todos los tipos, noticias
y alertas, libros blancos, tutoriales, etc., en los siguientes sitios:
Centro de coordinacin CERT:
http://www.cert.org/
CIAC (Computer lncident Advisory Capability):
http://ciac.:lnl.gov/ciac/
Recursos de firewalls de Internet COAST:
http://www.cs.purdue.edu/coast/firewalls/
Archivo de seguridad de COAST:
ftp://coast.cs.purdue.edu/pub/
Pgina de seguridad de Dave Dittrich:
http://www.washington.edu/People/dad/
Archivo de lista de correo de asistentes para firewalls:
http://www.nfr.net/fircwall wizards/fwsearch.html
356
Apndice A
Recursos de seguridad
Colecciones de software
Los siguientes sitios estn especializados en mantener almacenes de software de todo tipo relacionado con la seguridad:
Archivo CERT:
http://www.cert.org/ftp/tools/
Herramientas de seguridad de COAST:
http://www.cs.purdue.edu/coast/coast-tools.html
Herramientas de seguridad de FreeFire:
http://sites.inka.de/sites/lina/freefire-l/tools.html
Proyecto de enrutador de Linux:
http://www.linuxrouter.org/
Software Linuxberg:
http://idirect.Linuxberg.com/software.html
Masquerading Applications:
http://www.tsmservices.com/masq
rea de seguridad Sunsite:
ftp://sunsite.unc.edu/pub/Linux/system/security/
Herramientas de seguridad
Las herramientas de software de seguridad estn reflejadas en muchos
sitios. Estas son algunas de las herramientas ms habituales, con punteros a
dnde encontrarlas:
Apndice A
Recursos de seguridad
argus:
ftp://ftp.sei.cmu.edu/pu b/argus/
COPS:
ftp://sunsite.unc.edu/pub/Linux/system/security/cops_ 104_1inux.tgz
ftp://coast.cs.purdue.edu/pub/tools/unix/cops
http://www.cert.org/ftp/tools/cops/
crack:
http://www.cert.org/ftp/tools/ crack/
http://www.cert.org/ftp/tools/cracklib/
ftp://coast.cs.purdue.edu/pub/tools/unix/crack
ftp://coast.cs.purdue.edu/pub/tools/unix/cracklib/
dig:
ftp://coast.cs.purdue.edu/pub/tools/unix/dig/
icmpinfo:
ftp://coast.cs.purdue.edu/pub/tools/unix/netmon/icmpinfo/
http://www.deter.com/unix/software/icmpinfo-1. IO.tar.gz
ifstatus:
ftp://coast.cs.purdue.edu/pub/tools/unix/ifstatus/
IPSec:
http://www.xs4all.nl/-freeswan/
ISS:
http://www.deter.com/unix/software/iss 13.tar.gz
Cadenas de firewalls IP de Linux:
http://www.rustcorp.com/linux/ipchains/
Herramienta de diseo de firewall IPFW de Linux IPFW:
http://linux-firewall-tools.com/linux/firewall/
logcheck:
ftp://coast.cs.purdue.edu/pub/tools/unix/logcheck/
lsof:
ftp://coast.cs.purdue.edu/pub/tools/unix/lsof/
mdS:
http://www.cert.org/ftp/tools/mdS/
ftp://coast.cs.purdue.edu/pub/tools/unix/mdS/
netcat:
ftp://coast.cs.purdue.edu/pub/tools/unix/netcat/
nmap:
ftp://coast.cs.purdue.edu/pub/tools/unix/nmap/
SATAN:
ftp://coast.cs.purdue.edu/pub/tools/unix/satan/satan/satan-1. l. l .tar.Z
http://www. fish. com/-zen/satan/satan. html
357
358
Apndice A
Recursos de seguridad
sbscan:
ftp://sunsite.unc.edu/pub/Linux/system/security/sbscan-0.04.tar.gz
Pgina de firewalls de SINUS:
http://www.ifi.unizh.ch/ikm/SINUS/firewall/
SOCKS:
http://www.socks.nec.com
SSH:
http://www.ssh.fi/sshprotocols2/
SSL:
http://psych.psy.uq.oz.au/-ftp/Crypto/
strobe:
ftp://coast.cs.purdue.edu/pub/tools/unix/strobe/
tiger (Linux):
ftp://sunsite.unc.edu/pub/Linux/system/security/tiger-2.2.4.tgz
http://www.net.tamu.edu/ftp/security/TAMU/tiger-2.2.4.tgz
Conjunto de herramientas de firewall TIS:
http://www.tis.com/ research/software/
tripwire:
http://www. tripwi resecu rity.com/
ftp://coast.cs.purdue.edu/pub/tools/unix/Tripwire/
http://www.cert.org/ftp/tools/tripwire/
Herramientas de J:irewall
Herramientas de diseo de firewalls:
http://linux-firewall-tools.com/linux/firewall/
FWCONFIG:
http://www.mindstorm.com/-sparlin/fwconfig.shtml
Filtro IP:
http://cheops.anu.edu.au/-avalon/
Mdulo Dotfile ipfwadm:
http://www.wolfenet.com/-jhardin/ipfwadm.html
Firewall PPP Isinglass:
http://www.tummy.com/isinglass/
Mason:
http://www.pobox.com/-wstearns/mason/
Firewall SINUS:
http://www.ifi.unizh.ch/ikm/SINUS/firewall/
Apndice A
Recursos de seguridad
Seguridad de UNIX
FfP annimo Abuses:
http://www.cert.org/ftp/tech_tips/anonymous_ftp_abuses
Directrices de configuracin de FfP annimo:
http://www.cert.org/ftp/tech_tips/anonymous_ftp_config
Ataques de denegacin de servicio:
http://www.cert.org/ftp/tech_tips/denial_of_service
Lista de comprobacin de deteccin de intrusos:
http://www.cert.org/ftp/tech_tips/intruder_detection_checklist
Problemas con el comando PORT de FfP:
http://www.cert.org/ftp/tech_tips/FTP_PORT_attacks
Protegerse de ataques de archivos de contrasea:
http://www.cert.org/ftp/tech_tips/passwd_file_protection
Pasos para recuperarse de un compromiso raz en UNIX:
http://www.cert.org/tech_tips/root_compromise.html
Lista de comprobacin de seguridad de equipos UNIX:
http://www.cert.org/ftp/tech_tips/AUSCERT_checklist 1.1
Directrices de configuracin de UNIX:
http://www.cert.org/ftp/tech_tips/UNIX_configuration_guidelines
Cuestiones de f1rewall
Derrotas de ataques de denegacin de servicio que emplean usurpamento de direcciones fuente IP:
http://www.ietf.cnri.reston.va.us/rfc/rfc2267.txt
Gua de directivas de firewalls (ICSA):
http://www.icsa.net/services/consortia/firewalls/fwpg.shtml
Preguntas comunes acerca de firewalls de Internet:
http://www.clark.net/pub/mjr/pubs/fwfaq/
359
360
Apndice A
Recursos de seguridad
Documentacin en lnea
Linux se distribuye con un conjunto completo de documentacin en varios formatos. Los documentos HTML que se listan aqu son especialmente
importantes para problemas relacionados con la seguridad de redes:
Cmo instalar firewalls y servidores proxy:
/usr/doc/HOWTO/other-formats/html/Firewall-HOWTO.html
Preguntas:
/usr/doc/HOWTO/other-formats/html/HOWTO-INDEX.html
Apndice A
Recursos de seguridad
361
362
Apndice A
Recursos de seguridad
SlashDot:
http://slashdot.org/
SUNET (Swedish University Network):
http://ftp.sunet.se/pub/os/Linux/
Sunsite:
http://metalab.unc.edu/pub/Linux/
Libros
Apache Server for Dummies, by Ken A. L. Coar. Foster City, CA: IDG Books
Worklwide, lnc., 1998.
Building Internet Firewalls, by D. Brent Chapman and Elizabeth
D. Zwicky. Sebastopol, CA: O'Reilly & Associates, Inc., 1995.
Firewalls and Internet Security: Repelling the Wily Hacker, by William
R. Cheswick and Steven M. Bellovin. Reading, MA: Addison-Wesley, 1994.
Linux Network Toolkit, by Paul G. Sery. Foster City, CA: IDG Books Worldwide, lnc., 1998.
B
Ejemplos de f1rewalls
y secuencias de comandos
compatibles
Un firewall para un sistema independiente, o para proteger una LAN particular, se describe en el Captulo 3, "Creacin e instalacin de un firewall".
El ejemplo independiente se ampla en el Captulo 4, "Redes de permetro, firewalls mltiples y problemas con las LAN", para que ste funcione como un
firewall bastin con un conjunto completo de reglas de firewall aplicadas tanto a la interfaz de Internet externa como a la interfaz LAN interna. El propio
firewall independiente del Captulo 3 se rehace para que funcione como un
firewall de contencin secundario. El bastin sirve como pasarela tanto para
Internet como para una red DMZ que contiene servidores pblicos. El firewall de contencin sirve como pasarela entre una LAN privada y la DMZ o el
firewall bastin, dependiendo del diseo de la DMZ.
En el Captulo 3, el firewall de ejemplo se presenta de forma poco sistemtica. Este apndice muestra el mismo ejemplo de firewall como si apareciera en una secuencia de comandos de firewall, tanto con semntica ipchains
como con semntica ipfwadm. De nuevo, el ejemplo no est optimizado. Las
versiones ipchains e ipfwadm se presentan casi con una correspondencia de
uno a uno.
En este libro no se explica la optimizacin de las reglas. Aqu se muestran
algunas optimizaciones sencillas, tanto usando ipchains como ipfwadm, basndose en una secuencia de comandos de firewall sencillo para un solo equipo.
Por ltimo, se muestran unas cuantas secuencias de comandos compatibles. No es fcil asignar direcciones dinmicas a los sistemas UNIX. DNS, en
particular, espera una visin estable de las direcciones de equipo. Muchos sistemas dependen de DHCP para las direcciones IP asignadas dinmicamente,
especialmente los sistemas particulares con conexiones a Internet 24n. Tanto DNS como la secuencia de comandos de firewall requieren algo de ayuda,
tanto cuando se asigna una direccin IP por primera vez, como posteriormente si se asigna una nueva direccin IP dinmicamente mientras la mquina est en lnea.
364
Apndice B
IPADDR="mi.direccin.ip"
LAN_1="192.168.1.0/24"
LAN_IPADDR_1="192.168.1.1"
# su direccin IP
# cualquier intervalo (privado) que use
# direccin de interfaz interna
ANY'M-IERE="cualquiera/0"
DHCP_SERVER="mi.servidor.dhcp"
MY_ISP="mi.intervalo.direcciones.psi"
NAMESERVER 1="mi.nombre.servidor.1"
# si utiliza un intervalo de
# direcciones de PSI y NOC
# todos deben tener al menos uno
SMTP_SERVER="cualquiera/0"
SMTP_GATEWAY="mi.servidor.psi"
POP_SERVER="mi.servidor.pop"
IMAP_SERVER='mi. servidor. imap.psi"
NEWS_SERVER="mi.servidor.noticias"
WEB_PROXY_SERVER="mi.www.proxy"
WEB_PROXY_PORT="www.puerto.proxy"
#
#
#
#
#
#
#
#
#
LOOPBACK="127.0.0.0/8"
bucle inverso
CLASS_A=" 10 .0. 0 .0/8"
CLASS_B=" 172 .16.0.0/12"
Apndice B
CLASS_C="192.168.0.0/16"
CLASS_D_MULTIC'AST="224.0.0.0/4"
CLASS_E_RESERVED_NET="240.0.0.0/5"
BROADCAST_SRC="0.0.0.0"
BROADCAST_DEST="255.255.255.255"
PRIVPORTS="0:1023"
UNPRIVPORTS="1024:65535"
TRACEROUTE_SRC_PORTS="32769:65535"
TRACEROUTE_DEST_PORTS="33434:33523"
# - --- ---- - --- ------- --- --- - --- - --- - --- - --- - --- - --- - --- - - --- - --- - --- - --- ---- ---#
#
#
#
#
if [ -f /etc/dhcpc/hostinfo-$EXTERNAL_INTERFACE ]; then
. /etc/dhcpc/hostinfo-$EXTERNAL_INTERFACE
elif [ -f /etc/dhcpc/dhcpcd-$EXTERNAL_INTERFACE.info ]; then
. /etc/dhcpc/dhcpcd-$EXTERNAL_INTERFACE.info
DHCP_SERVER=$DHCPSIADDR
else
echo "re. firewall: DHCP no est configurado. "
ipchains -F
ipchains -P input DENY
ipchains -P output DENY
ipchains -A input -i $LOOPBACK_INTERFACE -j ACCEPT
ipchains -A output -i $LOOPBACK_INTERFACE -j ACCEPT
ipchains -A input -i $L.AN_INTERFACE -j ACCEPT
ipchains -A output -i $L.AN_INTERFACE -j ACCEPT
exit 1
fi
# Si se usa la secuencia de comandos de ejemplo ifdhcpc-done, cualquier versin
# anterior de IPADDR y NAMESERVER se omitirn aqu correctamente.
# - --- - --- - --- --------- - --- ---- --- - ------ - --- - --- --- - ---- ---- ---- - --- --- --- - --- #
#
#
#
XWINOON_PORTS="6000"
#
#
(TCP) X Window
365
366
Apndice B
# conexiones simultneas
# -- -- -- - -- ---- ---- - ----- ---- ------- - -- --- --- - ---- -- --------- -- --- --- ---- - - -
SOCKS_PORT="1080"
OPEIWIINOO/v'S PORT= "2000"
NFS_PORT="2049"
# conectores (TCP)
# ventanas abiertas (TCP)
# (TCP/UDP) NFS
# BUCLE INVERSO
Apndice B
# Rechazar todos los paquetes que parezcan ir o proceder de la interfaz de bucle inverso.
ipchains -A input -i $EXTERNAL_INTERFACE -s $LOOPBACK -j DENY
ipchains -A output -i $EXTERNAL_INTERFACE -s $LOOPBACK -j DENY -1
# Rechazar paquetes de difusin mal formados.
ipchains -A input -i $EXTERNAL_INTERFACE -s $BROADCAST_DEST
ipchains -A input -i $EXTERNAL_INTERFACE -d $BROADCAST_SRC
ipchains -A output -i $EXTERNAL_INTERFACE -s $BROADCAST_DEST
ipchains -A output -i $EXTERNAL_INTERFACE -d $BROADCAST_SRC
-j
-j
-j
-j
DENY
DENY
DENY
DENY
-1
-1
-1
-1
367
368
Apndice B
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
input
input
input
input
input
input
input
input
input
input
input
input
input
# 65: 01000001
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
-s
1.0.0.0/8 -j DENY -1
2.0.0.0/8 -j DENY -1
5.0.0.0/8 -j DENY -1
7.0.0.0/8 -j DENY -1
23.0.0.0/8 -j DENY -1
27.0.0.0/8 -j DENY -1
31.0.0.0/8 -j DENY -1
37.0.0.0/8 -j DENY -1
39.0.0.0/8 -j DENY -1
41.0.0.0/8 -j DENY -1
42.0.0.0/8 -j DENY -1
58.0.0.0/7 -j DENY -1
60.0.0.0/8 -j DENY -1
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
-i
65-79
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
/4 enmascara 80-95
ipchains -A input -i $EXTERNAL_INTERFACE -s 80.0.0.0/4 -j DENY -1
# 80: 01010000
/4 enmascara 96-111
ipchains -A input -i $EXTERNAL_INTERFACE -s 96.0.0.0/4 -j DENY -1
# 96: 01100000
Apndice B
# 126: 01111110
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
-i
-i
-i
-i
-i
-i
-i
-i
-i
112-126
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
DENY
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
217-219
DENY -1
DENY -1
DENY -1
DENY -1
-j
#---------------------------------#
ICMP
#
#
(4)
Source_Ouench
Solicitudes entrantes y salientes para ralentizar (control de flujo)
Parameter_Problem
Mensajes de error entrantes y salientes
(3)
Dest_Unreachable, Service_Unavailable
Negociacin de tamao entrantes y salientes, no disponibilidad
del servicio o destino, respuesta final de traceroute
369
370
Apndice B
(11) Time_Exceeded
Condiciones de tiempo de espera entrantes y salientes,
adems de respuestas intermedias TTL para trazar rutas
#---------------------------------#
#
PUERTOS NO PRIVILEGIADOS
Evitar puertos sujetos a problemas de administracin de sistema y protocolo.
X Window:
ipchains -A
-s
-d
Apndice B
#---------------------------------#
#
#
#
NOTA:
Los nanbres simblicos que se usan en /etc/services para los nanbres de puerto
varan segn el proveedor. Usarlos es menos propenso a error y tiene ms
sentido.
# - - -- - - - - - - -- - - - - - - - - -- - - - - - -- - - -- - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - -- - -
Servicios necesarios
(53)
# -----------
(53)
-y \
371
372
Apndice B
#
#
# - - - -- - - -- - --- - -- - - -- -
Transferencias de zona
debido al posible dao de transferencias de zona,
permitir el trfico TCP slo a secundarios especficos.
Apndice B
-y \
OR
-y \
(25)
-y \
OR
Enviar correo a travs de un servidor SMTP local
-y \
373
374
Apndice B
-y \
# -- - --- - --- --- - --- --- - ---- - -- - --- --- - --- --- --- - -- - - -- - --- -- - --- -- --- --- -
-y 1
-y \
Usenet
Apndice B
-y \
-y 1
# - - -- - - -- - - -- --- - -- - -- - --- - --- - -- - - -- - -- - - -- - --- - -- - - -- - - - -- - - -- - - -- - -- # TELNET (23) - Permitir el acceso cliente saliente a sitios remotos
# - -- - - -- - - -- ---- --- --- - -- - --- --- - --- - -- - --- - --- - -- - --- - - --- - --- -
-y \
-y 1
375
376
Apndice B
# .................... ...................... .
# Cliente SSH (22) - Permitir el acceso cliente a servidores remotos
# .............................................. --- ............. -- -
SSH
-y \
-y \
-y \
-y \
# .... --- ......... --- - ............... --- ........ - ....... --- ....... --- -#
FTP (20, 21) - Permitir el acceso cliente saliente a servidores FTP remotos
Solicitud saliente
-y \
Apndice B
#
-y \
-y \
Solicitud entrante
-y \
-y \
-y \
377
378
Apndice B
#
# - -- - - -- - -- - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - -- - --
-y \
-y \
# HTTPS (443) - Acceder a sitios web remotos como cliente sobre SSL
# ----------------------------------------------------------------
-y 1
# - - - - - - - - - - - - - - - - -- - - - - - - -- - - ... -- - ............................. .
-y \
Y 1
Apndice B
# ...................................... - ............. - - - - - .
Y \
# ------------------
Y \
-y \
# .................... - - . - - - - - - - - - - - - - ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# - - - . - - - - - - - - - - - -.
379
380
Apndice B
-y \
# --- - --- --- --- ---- ---- --- - --- --- - -- - --- --- --- - -- - --- -- - --- - -- --- --- -- - -# Aceptar UDP slo en puertos seleccionados
# TRACEROUTE
# traceroute suele usar -S 32769:65535 -D 33434:33523
# --- - --- ---- --- --- - - --- --- - --- --- ------- --- ------ - --- - -#
# -----------------
Cambiando de nmero
Apndice B
hora
$LAN_1 i MASQ
# ...................................................................... .
echo "done"
exit 0
381
382
Apndice B
IPADDR="mi.direccin.ip"
LAN_1=" 192. 168.1 .0/24"
LAN_IPADDR_1="192.168.1.1"
# su direccin IP
# cualquier intervalo (privado) que use
# direccin de interfaz interna
ANYW-IERE="cualquiera/0"
DHCP_SERVER="mi.servidor.dhcp"
# si utiliza un intervalo de
MY_ISP=" mi. intervalo. direcciones. psi" # direcciones de PSI y NOC
NAMESERVER_1="mi.nombre.servidor.1"
# todos deben tener al menos uno
SMTP_SERVER="cualquiera/0"
SMTP_GATEWAY="mi. servidor. psi"
POP_SERVER="mi. servidor .pop"
IMAP_SERVER="mi.servidor. imap. psi"
NEWS_SERVER="mi.servidor.noticias"
WEB_PROXY_SERVER="mi.www.proxy"
WEB_PROXY_PORT="www.puerto.proxy"
#
#
#
#
#
#
#
#
LOOPBACK="127.0.0.0/8"
#
#
#
#
#
#
#
#
#
#
#
#
CLASS_A="10.0.0.0/8"
CLASS_B=" 172 .16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
CLASS_E_RESERVED_NET="240.0.0.0/5"
BROADCAST_SRC="0.0.0.0"
BROADCAST_DEST="255.255.255.255"
PRIVPORTS="0:1023"
UNPRIVPORTS="1024:65535"
TRACEROUTE_SRC_PORTS="32769:65535"
TRACEROUTE DEST PORTS="33434:33523"
# ...................................................................
Apndice B
#
#
#
#
#
#
#
#
#
#
#
if [ -f /etc/dhcpc/hostinfo-$EXTERNAL_INTERFACE J; then
. /etc/dhcpc/hostinfo-$EXTERNAL_INTERFACE
elif [ -f /etc/dhcpc/dhcpcd-$EXTERNAL_INTERFACE.info ]; then
. /etc/dhcpc/dhcpcd-$EXTERNAL_INTERFACE.info
else
NAMESERVER 1="mi. nombre. servidor .1"
IPADDR="mi.direccin.ip"
fi
# -- - - --- - - -- - --- --- -- - - -- - - --- - -- - - --- - -- - - .. - - -- - - --- - - . - - - - - - - - -- - - - - # MODIFIQUE ESTO PARA QUE SE AJUSTE AL NMERO DE SERVIDORES
# CONEXIONES QUE SE SOPORTEN.
#
#
XWINDOW_PORTS="6000"
#
#
(TCP) X Window
SSH_PORTS="1020:1023"
# conexiones simultneas
# - - - -- - - --- --- - -- - --- -- - --- - --- - --- ---- --- - --- - --- - --- - --- - - -- - - --- --- - -
SOCKS_PORT="1080"
OPENWINDOWS_PORT="2000"
NFS_PORT="2049"
# conectores (TCP)
# ventanas abiertas
# (TCP/UDP) NFS
(TCP)
# -----------------------------------------------------------------------
383
384
Apndice B
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done
# Deshabilitar paquetes de origen enrutado
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
# Estos mdulos son necesarios para el enmascaramiento
# de los servicios.
#/sbin/modprobe ip_masq_ftp.o
#/sbin/modprobe ip_masq_raudio.o
#/sbin/modprobe ip_masq_irc.o
#/sbin/modprobe/ip_masq_vdolive.o
#/sbin/modprobe/ip_masq_cuseeme.o
#/sbin/modprobe/ip_masq_quake.o
# - - --- - --- - --- --- - - -- - --- - --- - --- --- - --- --- - --- ---- -- - --- --- --- --- --- ---
# BUCLE INVERSO
# Trfico ilimitado en la interfaz de bucle inverso
ipfwadm -I -a accept -W $LOOPBACK_INTERFACE
ipfwadm -O -a accept -W $LOOPBACK_INTERFACE
# -- ---- --- ---- - ---- - -- - ---- - --- - -- - --- - --- --- - --- - --- --- ---- --- --- --- ---
# - --- - --- ---- --- - - -- - - --- - --- - --- ---- ---- ------- - --- ------- --- --- ------ -
Apndice B
#
#
Rechazar
clase A.
ipfwadm -I
ipfwadm -I
ipfwadm -O
ipfwadm -O
Rechazar
clase B.
ipfwadm -I
ipfwadm -I
ipfwadm -O
ipfwadm -O
Rechazar
clase C.
ipfwadm I
ipfwadm I
ipfwadm O
ipfwadm O
#
#
#
#
#
#
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
deny
deny
reject
reject
deny
deny
reject
reject
deny
deny
reject
reject
W
W
W
W
W
W
W
W
W
W
W
W
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
S
D
S
D
S
D
-S
D
S
D
S
D
$CLASS_A
$CLASS_A
$CLASS_A
$CLASS_A
$CLASS_B
$CLASS_B
$CLASS_B
$CLASS_B
$CLASS_C
$CLASS_C
$CLASS_C
$CLASS_C
O
O
O
O
O
O
O
O
O
O
O
#
#
# Rechazar
ipfwadm I
ipfwadm I
ipfwadm -O
ipfwadm -O
$BROADCAST_DEST O
$BROADCAST_SRC O
$BROADCAST_DEST O
$BROADCAST_SRC O
O
O
ipfwadm
ipfwadm
ipfwadm
ipfwadm
ipfwadm
ipfwadm
ipfwadm
I
I
I
I
.I
-I
I
-a
-a
-a
-a
-a
-a
-a
deny
deny
deny
deny
deny
deny
deny
W
W
W
W
W
W
W
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
-S
-S
-S
-S
-S
-S
-S
1.0.0.0/8 O
2.0.0.0/8 O
5.0.0.0/8 O
7.0.0.0/8 O
23.0.0.0/8 O
27.0.0.0/8 O
31.0.0.0/8 O
385
386
Apndice B
ipfwadm
ipfwadm
ipfwadm
ipfwadm
ipfwadm
ipfwadm
deny
deny
deny
deny
deny
deny
-I
-I
-I
-I
-I
-I
-a
-a
-a
-a
-a
-a
-W
-W
-W
-W
-W
-W
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
$EXTERNAL_INTERFACE
-S
-S
-S
-S
-S
-S
37.0.0.0/8
39.0.0.0/8
41.0.0.0/8
42.0.0.0/8
58.0.0.0/7
60.0.0.0/8
O
O
O
-O
O
O
80: 01010000
/4 enmascara 80-95
-W $EXTERNAL_INTERFACE -S 80.0.0.0/4 -o
ipfwadm -I -a deny
/4 enmascara 96-111
96: 01100000
-W $EXTERNAL_INTERFACE -S 96.0.0.0/4
ipfwadm -I -a deny
217: 11011001
/3 incluye 216 - es necesario escribir 217-219
-W $EXTERNAL_INTERFACE -S 217.0.0.0/8 -0
ipfwadm . I -a deny
-W $EXTERNAL_INTERFACE -S 218.0.0.0/8 O
ipfwadm . I -a deny
-W $EXTERNAL_INTERFACE -S 219.0.0.0/8 O
ipfwadm . I -a deny
223: 11011111
/6 enmascara 220-223
-W $EXTERNAL_INTERFACE -S 220.0.0.0/6 -o
ipfwadm -I -a deny
#---------------------------------#
ICMP
Apndice B
Source_Quench
Solicitudes entrantes y salientes para ralentizar (control de flujo)
ipfwadm -I -a accept -P icmp -W $EXTERNAL_INTERFACE \
-S $ANY'M-IERE 4 -O $IPADDR
#
#
(4)
#
#
#
#
#
(3)
#
#
#
$~XTERNAL_INTERFACE
#---------------------------------#
387
388
Apndice B
# ---- - --- --- - --- - --- ----- ---- --- ------- --- ---- --- --- --- --- - -- --- --- --- -#
# - --- - --- --- - - -- - ---- ---- - --- - - -- - --- - --- --- ---- ---- --- --- - -- - --- --- --- # PUERTOS UDP NO PRIVILEGIADOS
# Evitar puertos sujetos a problemas de administracin de sistema y protocolo.
# -- --- - - -- - - -- - - -- - - --- - --- - - -- - --- ---- --- - --- - --- - -- - --- - -- - -- - -- - -- - -# NOTA:
#
Los nOfltJres sini:Jlicos que se usan en /etc/services para los nOfltJres de
#
puerto
varan segn el proveedor. Usarlos es menos propenso a error y tiene ms
sentido.
(53)
# - - - -- - - - - - - -- - - - - - - - -
Apndice B
#
#
#
#
DNS
Transferencias de zona
debido al posible dao de transferencias de zona,
permitir el trfico TCP slo a secundarios especficos.
389
390
Apndice B
# --------
# --------
o
Rechazar solicitudes AUTH entrantes
Apndice B
# --------
391
392
Apndice B
-S $IPADOR 143 \
-D <mis.clientes.imap> $UNPRIVPORTS
# -- - - --- - -- ---- --- - --- - --- ---- --- - -- - --- - -- - -- --- ---- --- --------- ----- - #
Apndice B
# Solicitud saliente
ipfwadm -O -a accept -P tcp
-W $EXTERNAL_INTERFACE
-S $IPADDR $UNPRIVPORTS \
-D $ANY'M-IERE 21
ipfwadm -I -a accept -P tcp -k -w $EXTERNAL_INTERFACE
-S $ANY'M-IERE 21 \
-D $IPADDR $UNPRIVPORTS
# Creacin del canal de datos del modo NORMAL
ipfwadm -I -a accept -P tcp
-W $EXTERNAL_INTERFACE
-S $ANY'M-IERE 20 \
-D $IPADDR $UNPRIVPORTS
ipfwadm -O -a accept -P tcp -k -W $EXTERNAL_INTERFACE
-S $IPADDR $UNPRIVPORTS \
-D $ANY'M-IERE 20
# Creacin del canal de datos del modo PASSIVE
ipfwadm -O -a accept -P tcp
-w $EXTERNAL_INTERFACE
-S $IPADDR $UNPRIVPORTS \
-D $ANY'M-IERE $UNPRIVPORTS
ipfwadm -I -a accept -P tcp -k -W $EXTERNAL_INTERFACE
393
394
Apndice B
-S $ANYVYHERE $UNPRIVPORTS
-D $IPADDR $UNPRIVPORTS
#Servidor FTP (20, 21)
# - - - - - - - - - - -- - -- - - - - -
# Solicitud entrante
ipfwadm -I -a accept -P tcp
-W $EXTERNAL_INTERFACE
-S $ANYVYHERE $UNPRIVPORTS \
-D $IPADDR 21
ipfwadm -O -a accept -P tcp -k -W $EXTERNAL_INTERFACE
-S $IPADDR 21 \
-D $ANYVYHERE $UNPRIVPORTS
# Respuestas del canal de datos del modo PORT
ipfwadm -O -a accept -P tcp
-W $EXTERNAL_INTERFACE
-S $IPADDR 20 I
-D $ANYVYHERE $UNPRIVPORTS
ipfwadm -I -a accept -P tcp -k -W $EXTERNAL_INTERFACE
-S $ANYVYHERE $UNPRIVPORTS \
-D $IPADDR 20
# Respuestas del canal de datos del modo PASSIVE
ipfwadm -I -a accept -P tcp
-W $EXTERNAL_INTERFACE
-S $ANYVYHERE $UNPRIVPORTS \
-D $IPADDR $UNPRIVPORTS
ipfwadm -O -a accept -P tcp -k -W $EXTERNAL_INTERFACE
-S $IPADDR $UNPRIVPORTS \
-D $ANYVYHERE $UNPRIVPORTS
# -- - - - - - - -- - - --- - -- - - -- - - - -- - - -- - -- - - -- - --- - -- - - --- --- - -- - - -- - --- -- - -- - -
Apndice B
# - - - - - - - - - - - -- - - - - - -
# - - ............... .
395
396
Apndice B
#
# --- - - -- - -- ....... .
# -- - - -- ........... .
# - -- - - - - - -- - . - - - - - - -
# ................. .
TRACEROUTE
traceroute suele usar -S 32769:65535 -D 33434:33523
# .................................. - - - - - ............... -
Apndice B
predeterminada.
# - -- - - - -- - - -- - -- - --- -#
Cambiando de nmero
397
398
Apndice B
ipfwadm -I -a accept
-S $LAN_1
-W
$LAN_INTERFACE_1
ipfwadm -O -a accept
-D $LAN_1
-W
$LAN_INTERFACE_1
ipfwadm -F -a masquerade
-W
$EXTERNAL_INTERFACE -S $LAN_1
echo "done"
exit 0
Apndice B
relacionado con ftp. El recorrido de la lista acaba tan pronto como el paquete coincide con una regla, as que colocando las reglas http antes de las reglas
ftp se reduce la sobrecarga extra cuando se deben hacer coincidir los paquetes http que son ms habituales.
Tambin podemos optimizar las reglas de firewall colocando las reglas de
entrada y salida de forma relativa a otras reglas en sus cadenas respectivas, en
vez de agrupar juntas el par de reglas de E/S. Por ejemplo, el trfico de un navegador web a un servidor web es pequeo en comparacin con la cantidad
de trfico que se devuelve desde el servidor en respuesta a la peticin URL
del cliente. Lo mismo se puede decir para ftp. La cantidad de trfico de control que pasa a travs del puerto 21 es insignificante en comparacin con la
cantidad de trfico que pasa a travs del puerto 20.
Piense en un equipo concreto de Linux conectado a Internet. La mquina
usa el firewall que se present en el Captulo 3. La interfaz de red del equipo
tiene una direccin IP esttica asignada permanentemente por el ISP. El firewall enmascara las conexiones de Internet, para una LAN privada pequea.
La mquina ejecuta un servidor DNS local que primero reenva las peticiones al servidor de nombres del ISP, para continuar con las peticiones de
cliente a servidor a cualquier servidor de nombres en el caso de que el servidor de nombres del ISP no responda. Todos los servicios de correo SMTP
se ejecutan localmente, pero el firewall tambin soporta una conexin de
cliente POP saliente para recuperar el correo procedente de la cuenta de correo del ISP. El sitio alberga su propio servidor web. No hay servidor FfP pblico local.
Como se explica en este libro, una secuencia de comandos del firewall
para esta mquina debera parecerse a la siguiente:
#! /bin/sh
echo "Starting firewalling... "
# Algunas definiciones para mantenimiento sencillo.
# ------ - - -- --- --- - --- ------ - --- - -- - --- - --- - -- - --- - -- - - --- - ---- - --- --- - --
IPADOR="mi.direccin.ip"
LAN_IPADOR="192.168.1.1"
LAN_ADORRESSES="192.168.1.0/24"
# su direccin IP
# cualquier intervalo (privado) que use
# direccin de interfaz interna
ANYVvHERE="cualquiera/0"
399
400
Apndice B
SMTP_SERVER="cualquiera/0"
SMTP_GATEWAY="mi. servidor .psi"
POP_SERVER= "mi. servidor. pop"
NEWS SERVER="mi.servidor.noticias"
WEB_PROXY_SERVER="mi.www.proxy"
WEB_PROXY_PORT='www.puerto.proxy"
BUCLE INVERS0="127.0.0.0/8"
#
#
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_t1JLTICAST="224.0.0.0/4"
BROADCAST_SRC='0.0.0.0"
BROADCAST_DEST="255.255.255.255"
PRIVPORTS= "0: 1023'
#
#
#
#
#
#
#
#
#
#
#
#
conectores (TCP)
(TCP) openwindows
(TCP/UDP) NFS
UNPRIVPORTS="1024:65535"
TRACEROUTE_SRC_PORTS="32769:65535"
TRACEROUTE_DEST_PORTS="33434:33523"
SOCKS_PORT="1080"
OPEf'N/I NOOllS_PORT ="2000 "
NFS PORT="2049"
# ................................................................... .
# MODIFIQUE ESTO PARA QUE SE .AJUSTE AL NLJ.4ERO DE SERVIDORES
# CONEXIONES QUE SE SOPORTEN.
')IYIINOON_PORTS=" 6000"
(TCP) X Window
conexiones simultneas
# --- - --- ---- ---- - --- - - --- - --- - -- - - --- - -- - --- - - -- - --- --- - --- --- - -- - --- - --
Apndice B
# BUCLE INVERSO
# Trfico ilimitado en la interfaz de bucle inverso
ipchains A input i $LOOPBACK_INTERFACE i ACCEPT
ipchains A output i $LOOPBACK_INTERFACE i ACCEPT
# ...................................................................... .
401
402
Apndice B
ipchains -A input
-i $EXTERNAL_INTERFACE -d $BROADCAST_SRC
-j DENY -1
#
#
#
# - - -- - ---- --- - --- - ---- ---- - -- - - -- - --- - -- - --- ---- -- - --- ------ --- --- - -- --# ICMP
Source_Quench
Solicitudes entrantes y salientes para ralentizar (control de flujo)
ipchains -A input -i $EXTERNAL_INTERFACE -p icmp \
-s $ANY'MiERE 4 -d $IPADDR -j ACCEPT
#
#
(4)
# (12)
#
(3)
(11) Time_Exceeded
Apndice B
PUERTOS NO PRIVILEGIADOS
Evitar puertos sujetos a problemas de administracin de sistema y protocolo.
# --- ---- ---- --- --- - -- - --- ---- - -- - ------- - --- --- - --- - - -- - - -- - - --- - -- - --- #
# - -- - - --- - -- - - . - - -- - -- -
403
404
Apndice B
-y \
AUTH (113)
-y \
-y
# - --- - - -- - --- - - - . - - -- - - - -- - - - - - -- - -- - - . - - -- - - -- - - -- - -- - - -- - . - - -- - -- - -- #
-y \
-y \
Apndice B
#---------------------------------#
# ---------------
-y \
# - - - --- - --- --- - -- - --- --- - --- ---- --- - - -- - - -- - - -- - --- - - -- - - -- - - --- - - -- - ---
-y \
# --- ---- --- ---- --- - -- - -- - --- - --- - -- - --- - --- - --- - --- ---- ----- ---- ---- --- # POP (110) - Obtener correo como cliente POP
# - - --- - --- - -- - --- --- --- - --- - -- - - -- - - -- - ---- ---
-y \
# --------- ---- --- ------ --- - --- ---- ------- ---- --- - --- - -- - - --- - --- - --- - -- -
-y \
405
406
Apndice 8
-y \
# - - --- - --- --- - --- --- - - --- - -- - --- - -- - --- --- - -- - --- --- --- - --- -- - --- -- - -- - #
-y \
# - - - --- - -- - --- - --- - --- - - --- ---- ------- --- - -- - --- - -- - --- - -- - -- - ---
-y \
-y \
# - - ---- --- - --- - --- - ---- - --- - --- - -- - - --- --- - -- - -- - - --- --- - -- - -- - --- --- --#
FTP (20, 21) - Permitir el acceso cliente saliente a servidores FTP remotos
# - - - - --- --- - -- - - -- - - --- - - -- - - -- - --- - --- --- - -- - --- - --- --- - --- --- --- --- - -#
Solicitud saliente
-y \
Apndice B
-y \
-y \
# --- - ---- ---------- ---- --- --- - --- -------- ---- ------- --------- ---- - --- ---
-y \
# --- ---- ------- --- - -- - --- --- - --- ---- --- ---- ---- --- - -------- - ---------- - -
# TRACEROUTE
# - --- - --- -# Habilitar solicitudes traceroute salientes
# ------------ ------ --- ------- ---- ------
407
408
Apndice B
echo "done"
exit 0
IPADDR="mi.direccin.ip"
LAN_IPADDR="192.168.1.1"
LAN_ADDRRESSES="192.168.1.0/24"
# su direccin IP
# direccin de interfaz interna
# direccin de red LAN
ANYVvHERE="cualquiera/0"
Apndice B
#
#
#
#
#
LOOPBACK="127.0.0.0/8"
bucle inverso
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
BROADCAST_SRC="0.0.0.0"
BROADCAST_DEST="255.255.255.255"
PRIVPORTS="0:1023"
#
#
#
#
#
#
#
#
#
(TCP) SDCKS
UNPRIVPORTS="1024:65535"
TRACERDUTE_SRC_PORTS="32769:65535"
TRACEROUTE_DEST_PORTS="33434:33523"
SOCKS_PORT="1080"
OPE~INOONS_PORT="2000"
# (TCP) OpenWindows
NFS_PORT="2049"
(TCP/UDP) NFS
# ...................................................................
#
#
XWINOOll_PORTS="6000"
(TCP) X Window
conexiones simultneas
# -- - - --- - ------ ---- -- - ------- -- - ---- ---- --- - --- - --- --- - ----- ---------- - -
#
#
409
410
Apndice B
ipfwadm -I -f
ipfwadm -O -f
ipfwadm -F -f
# Establecer la directiva predeterminada a denegar
ipfwadm -I -p deny
ipfwadm -O -p reject
ipfwadm -F -p reject
# - --- - --- --- - --- ---- - -- - - ------ - --- ---- -- - -- - - -- - --- --- --- - -- --- - -- - -- - -
# BUCLE INVERSO
# Trfico ilimitado en la interfaz de bucle inverso
ipfwadm -I -a accept -W $LOOPBACK_INTERFACE
ipfwadm -O -a accept -W $LOOPBACK_INTERFACE
# - - --- - --- - --- --- - - --- - --- - ------ - - --- -- - - -- - -- - --- - -- - -- - --- --- --- - -- - -
Apndice B
ipfwadm -I -a deny
-W $EXTERNAL_INTERFACE -D $BROADCAST_SRC -o
#
#
#
ICMP
#
#
#
#
#
#
#
#
(0)
(3)
411
412
Apndice B
# - - --- ---- - --- - --- ---- ---------- --- ------- --- - --- --- ---- --- ------ ------#
#
#
#
#
#
Apndice B
# --- --- - ---- --- --- --- ------------------- - -- - ---- - -- - - --- ---- - ------- ---#
#
#
#
# ------ ---- --- - -- - ------- --- ---- - --- ---- --- - - -- - --- - --- - - --- ---- - --- ----
# Cliente SSH (22) - Permitir el acceso inicial al cliente a servidores remotos SSH
# - -- - - --- - -- - --- --- --- - --- - -- - --- - --- - -- - -- - - -- - - -- - ---- - --- - --- -
413
414
Apndice B
#
#
PUERTOS NO PRIVILEGIADOS
Evitar puertos sujetos a problemas de administracin de sistema y protocolo.
#
#
#
# - - ---- - -- - --- - --- - --- - --- - --- - --- --- - --- - -- - --- --- --- - -- - --- ------ --- -#
FTP (20, 21) - Permitir el acceso cliente saliente a servidores FTP remotos
# --- - ---- -- - --- - - -- - - --- - -- - - --- --- - - -- - -- - --- --- - --- --- - -- --- --- --- --- #
hora
Apndice B
Time_Exceeded
Condiciones de tiempo de espera de salida,
415
416
Apndice B
# --- ---- ---- ---- --- ---- - --- --- ------- --- ------------------ --------- -----
echo "done"
exit 0
IPADOR="mi.direccin.ip"
LAN_IPADOR=" 192. 168.1 .1"
LAN_ADORESSES="192.168.1.0/24"
# su direccin IP pblica
# direccin de interfaz interna
# direccin de red LAN
Apndice B
ANYV.HERE="cualquiera/0"
MY_ISP="mi.intervalo.direcciones.psi"
NAMESERVER 1="mi.nombre.servidor.1"
#
#
SMTP_SERVER="cualquiera/0"
SMTP_GATEWAY="mi. servidor .psi"
POP_SERVER="mi. servidor. pop"
NEWS_SERVER= "mi. servidor. noticias"
WEB_PROXY_SERVER="mi.www.proxy"
WEB_PROXY_PORT="www.puerto.proxy"
#
#
#
#
#
#
#
LOOPBACK="127.0.0.0/8"
CLASS_A="10.0.0.0/8"
CLASS_B=" 172. 16. 0. 0/ 12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
BROADCAST_SRC="0.0.0.0"
BROADCAST_DEST="255.255.255.255"
PRIVPORTS="0:1023"
#
#
#
#
#
#
#
#
#
#
#
conectores (TCP)
(TCP) openwindows
(TCP/UDP) NFS
UNPRIVPORTS="1024:65535"
TRACEROUTE_SRC_PORTS="32769:65535"
TRACEROUTE_DEST_PORTS="33434:33523"
SOCKS_PORT=" 1080"
OPENWINOOtVS_PORT="2000"
NFS_PORT="2049"
# - - --- - --- --- - -- - -- - --- - -- - - -- - - -- - --- - --- - -- - - --- ---- - --- - ---- ---- --- # MODIFIQUE ESTO PARA QUE SE AJUSTE AL NMERO DE SERVIDORES
# CONEXIONES QUE SE SOPORTEN.
XWINOON_PORTS="6000"
(TCP) X Window
conexiones simultneas
# - ---- ---- --- ------ - --- --- - --- - --- ---- --- - --- - --- - -- - - ---- --- - --- - --- ---
#
#
417
418
Apndice B
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
# -- - - - -- -- - - -- - - -- - - - -- - - -- - --- - -- - -- - - -- - -- - - -- - -- -
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
spoofed
tcp-c-o
tcp-s-i
udp-c-o
udp-s-i
tcp-c-i
tcp-s-o
mise-out
mise-in
icmp-in
icmp-out
log-in
log-out
# --- - - -- - -- - - --- - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - -- - - - - - - - - - -- - -- - - - - - - - - - -
# INTERFAZ LAN
Apndice B
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
spoofed
tcp-c-o
tcp-s-i
udp-c-o
udp-s-i
tcp-c-i
tcp-s-o
mise-out
mise-in
icmp-in
icmp-out
log-in
log-out
# - - - - - - - - -- - - -- - -- - -- - - -- - - -- - - - - - - - - - - - - - - - - - -- - - -- - - - - - - - -- - - -- - - - - - - -
(spoofed)
419
420
Apndice B
#
#
#
# ...................................................................... .
Cliente SSH (22) - Permitir el acceso inicial al cliente a servidores remotos SSH
Apndice B
# FTP (20, 21) Permitir el acceso cliente saliente a servidores FTP remotos
#
solicitud saliente
#
#
421
422
Apndice B
# - - --- - - -- - --- - --- ---- --- - -- - --- - -- - --- --- - --- --- - --- --- - -------- ------#
FTP (20, 21) - Permitir el acceso cliente saliente a servidores FTP remotos
Solicitud saliente
Apndice B
#
#
-j
ACCEPT
# - - --- - --- - --- - -- - -- - - -- - --- --- - ---- --- - - . - - - -- --- - - -- - - -- - --- - - -- - --- - -
423
424
Apndice B
PUERTOS NO PRIVILEGIADOS
Evitar puertos sujetos a problemas de administracin de sistema y protocolo.
Apndice B
HTIP (80)
AUTH (113)
Cliente SSH (22) - Permitir el acceso inicial al cliente a servidores remotos SSH
TRACEROUTE
-j
ACCEPT
#
#
-j
ACCEPT
425
426
Apndice 8
PING
# - - - -- - - -- - - -- - - -- - - -- - - - - - --- - -- - -- - - -- - - - - - -- - -- - - -- - -- - -- - -- - -- - --- - #
Cliente SSH (22) - Permitir el acceso inicial al cliente a servidores remotos SSH
FTP (20, 21) - Permitir el acceso cliente saliente a servidores FTP remotos
TRACEROUTE
PING
Apndice B
ipchains
ipchains
ipchains
ipchains
ipchains
-A
-A
-A
-A
-A
icmp-in
icmp-in
icmp-in
icmp-in
icmp-in
-p
-p
-p
-p
-p
icmp
icmp
icmp
icmp
icmp
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
echo-reply -j ACCEPT
destination-unreachable -j ACCEPT
source-quench -j ACCEPT
time-exceeded -j ACCEPT
parameter-problem -j ACCEPT
ipchains
ipchains
ipchains
ipchains
-A
-A
-A
-A
icmp-out
icmp-out
icmp-out
icmp-out
-p
-p
-p
-p
icmp
icmp
icmp
icmp
--icmp-type
--icmp-type
--icmp-type
--icmp-type
fragmentation-needed -j ACCEPT
source-quench -i ACCEPT
echo-request -j ACCEPT
parameter-problem -i ACCEPT
# - - - -- - - - - - - -- - - - - - -- - -- - - -- - - -- - - -- - - -- - - -- - - -- - - -- - - - - - - -- - - - - -- - - -- - # Filtrado de paquetes
ipchains -A input
-i $EXTERNAL_INTERFACE -j log-in
427
428
Apndice B
# -- ---- - ---- --- --- - --- ---- --- ---- --- - --- ------ ---- --- ---- --- -- - ------ ---
echo "done"
exit 0
Permitir todo
La secuencia de comandos accept-all (permitir todo) es una de depuracin. De vez en cuando, puede que sea necesario comprobar si un servicio en particular est fuera de servicio debido a algo que estn haciendo las
reglas.
Una descripcin de la secuencia de comandos accept-all, con el formato
de una pgina man es:
NOMBRE:
accept-all
SINOPSIS:
accept-all
DESCRIPCIN:
Elimina cualquier regla actual de firewall y establece el valor predeterminado a aceptar.
Se debe ejecutar como raz.
La secuencia de comandos del shell accept-all contiene:
#! /bin/sh
# Eliminar todas las reglas que pertenezcan a esta cadena
ipchains -F input
ipchains -F output
ipchains -F forward
# Establecer la directiva predeterminada de la cadena para aceptar.
ipchains -P input
ACCEPT
ipchains -P output ACCEPT
ipchains -P forward ACCEPT
Apndice B
Denegar todo
La secuencia de comandos deny-all (permitir todo) es en parte una herramienta de depuracin, en parte un error de detencin cuando una secuencia
de comandos del nuevo firewall contiene errores sintcticos y no est completo, y en parte una medida contra el pnico. De vez en cuando, puede que
sea necesario bloquear el acceso desde Internet y volver a empezar.
Una descripcin de la secuencia de comandos deny-all, formateada como
una pgina man sera:
NOMBRE:
deny-all
SINOPSIS:
deny-all
DESCRIPCIN:
Eliminar cualquier regla de firewall actual y establecer las directivas predeterminadas para la interfaz de red externa a denegar.
Se debe ejecutar como raz.
La secuencia de comandos del shell deny-all contiene:
#!/bin/sh
LOOPBACK_INTERFACE="lo"
LAN_INTERFACE="eth1"
# Eliminar todas las reglas que pertenezcan a esta cadena
ipchains -F input
ipchains -F output
ipchains -F forward
# Establecer la directiva predeterminada de la cadena para denegar
ipchains -P input
DENY
ipchains -P output REJECT
ipchains -P forward REJECT
ipchains -A input -i $LOOPBACK_INTERFACE
ipchains -A output -i $LOOPBACK_INTERFACE
-j
-j
ACCEPT
ACCEPT
429
430
Apndice B
SINOPSIS:
block-ip <direccin>[/mscara]
DESCRIPCIN:
Inserta una regla de denegacin de firewall en el encabezado de la cadena input. direccin puede ser un nombre de equipo completo, una direccin IP o un intervalo de direcciones IP especificadas como una direccin
y una mscara.
Si /etc/rc.d/rc.firewall.blocked no existe, se crea. La regla de firewall tambin se anexa al final de /etc/rc.d/rc.firewall.blocked por lo que la regla est
permanentemente incluida en la lista bloqueada.
Se debe ejecutar como root.
La secuencia de comandos del shell block-ip contiene:
#!/bin/sh
EXTERNAL_INTERFACE="eth0"
# Si el archivo bloqueado no existe, crearlo.
if [ ! -f /etc/rc.d/rc.firewall.blocked J; then
touch /etc/rc.d/rc.firewall.blocked
fi
# insertar la regla en el encabezado de la cadena de entrada existente
ipchains -i input -i $EXTERNAL_INTERFACE -s $1 -j DENY
# anexar la nueva regla al final del archivo bloqueado
echo ipchains -i input . i $EXTERNAL_INTERFACE -s $1 - j DENY \
>> /etc/rc.d/rc.firewall.blocked
SINOPSIS:
unblock-ip <direccin>[/mscara]
Apndice B
DESCRIPCIN:
Elimina una regla existente de denegacin de firewall de la cadena input.direccin puede ser un nombre de equipo completo, una direccin IP
o un intervalo de direcciones IP especificadas como una direccin y una
mscara. direccin debe coincidir exactamente con el argumento que se
usa para crear la regla de denegacin.
Debe ejecutarse como root.
La secuencia de comandos del shell unblock-ip contiene:
#!/bin/sh
EXTERNAL_INTERFACE='eth0'
ipchains -O input -i $EXTERNAL_INTERFACE -s $1 -j DENY
de nombres
El programa cliente DHCP de Linux ha sido siempre dhcpcd. Con la versin 6.0 de Red Hat, se ha reemplazado dhcpcd con un nuevo programa cliente, pump. Sin embargo, dhcpcd todava se incluye con las versiones actuales
de Linux. Aunque el nuevo programa pump funciona muy bien para una conexin telefnica ppp, pump no es muy compatible con una conexin de red
permanente. Los sitios con una conexin de modem o DSL, por ejemplo, deben seguir usando dhcpcd.
DHCP ofrece la direccin IP pblica, las direcciones del servidor de nombres, la mscara de red, la direccin de difusin y probablemente la direccin
del servidor DHCP. Esta informacin puede cambiar cada vez que se inicie la
mquina, as como al final de cada periodo de concesin DHCP. Cuando se
inicializa el firewall, la secuencia de comandos debe incluir las direcciones
IPADDR y NAMESERVER. La informacin que proporciona DHCP se almacena en lugares diferentes, dependiendo de la versin de Linux que se utilice.
Puede insertar los siguientes comandos shell en la secuencia de comandos
del firewall en algn punto despus de cualquier definicin introducida en el
cdigo de IPADDR, NAMESERVER y DHCP_SERVER:
#
if [ -f /etc/dhcpc/hostinfo-$EXTERNAL_INTERFACE J; then
# Red Hat Release < 6.0 - dhcpcd
. /etc/dhcpc/hostinfo-$EXTERNAL_INTERFACE
elif [ -f /etc/dhcpc/dhcpcd-$EXTERNAL_INTERFACE.info l; then
# Red Hat Release 6.0 - dhcpcd
. /etc/dhcpc/dhcpcd-$EXTERNAL_INTERFACE.info
DHCP_SERVER=$DHCPSIADDR
431
432
fi
# Si se usa la secuencia de comandos de ejemplo ifdhcpc -done,
# cualquier definicin anterior de
# IPADDR, NAMESERVER y DHCP_SERVER se omitir aqu.
bre de la interfaz de red, por ejemplo, ethO o eth 1. La informacin se almacena como asignaciones de variables de shell, de forma que se puede incluir
el archivo en otras secuencias de comandos. Por ejemplo, el archivo contiene definiciones para IPADDR, NETMASK, NETWORK, BROADCAST, GATEWAY, DOMAIN y para la direccin del servidor DHCP, DHCPSIADDR.
/etc/dhcpc/dhcpcd-eth0.info
# Actualizar el nombre de dominio
domainname $DOMAIN
# Actualizar /etc/hosts
# Reemplazar <you> con su nombre de equipo.
<you>.$DOMAIN
<you>/" /etc/hosts \
433
434
Apndice B
{ I { active =
/} ; I {
if ( active
1 . print
'
== 1 ) {
active = 0print "\ t\' t" f1
print "\ t\ t" f2
print "\ t\ t" f3
......
' '
' '
' '
}
{
if ( active
print;
0 )
sh /etc/rc.d/rc.firewall
echo "Firewalling enabled."
>
cp /etc/dhcpc/resolv.conf /etc
exit 0
/dev/console
-n "$PUMP" ] ; then
echo -n "Determinando la informacin IP de $DEVICE ... "
if /sbin/dhcpcd; then
/etc/rc.d/rc.firewall
el se
echo "f ailed. "
exit
fi
el se
435
436
#!/bin/sh
SLEEPPIDFILE=/var/run/dhcp-wait-${ IFNAME} .pid
# Si no existe el archivo de espera, se sobrepas el tiempo de espera
# del primario o el servidor dhcp dispone de una nueva direccin IP.
if [ -f $SLEEPPIDFILE ]; then
SLEEPPID='cat $SLEEPPIDFILE'
rm -f $SLEEPPIDFILE
kill $SLEEPPID
fi
# Obtener el pid del proceso, que est esperando a esto para finalizar.
# Actualizar hostinfo
. /etc/dhcpc/hostinfo-eth0
# Actualizar domainname
domain='fgrep domain /etc/dhcpc/resolv.conf
domainname $domain
# Actualizar /etc/hosts
# Algunos servicios dejarn de funcionar con esto, a menos que use localhost
# Reemplazar <you> con su nombre de equipo.
Apndice B
<you>.$domain
<you>/" /etc/hosts \
437
438
Apndice B
!et cnt=$cnt+1
done
awk '/forwarders { / { active= 1; print}
/} ; / {
if ( active == 1 ) {
active = 0;
print "
print "
print "
if ( active
print;
" f1
" f2
11.11.
' '
' '
' '
11.11.
" f3
0 )
cp /etc/dhcpc/resolv.conf /etc
sh /etc/rc.d/rc.firewall
echo "Firewalling enabled."
>
/dev/console
e
Glosario
Este glosario define trminos y acrnimos que se usan en el libro. Los trminos
con varias palabras estn ordenados alfabticamente por el nombre principal del trmino, seguido de una coma y del resto del trmino.
ACCEPT, Una regla de decisin de filtrado de firewall para pasar el paquete a travs del firewall hasta el siguiente destino.
ACK El indicador de TCP que confirma la recepcin de un segmento TCP recibido
anteriormente.
ataque por denegacin de servicio Un ataque basado en la idea del envo de datos inesperados o de inundar un sistema con paquetes para interrumpir o ralentizar seriamente su conexin a Internet, disminuyendo el rendimiento de los servidores hasta el extremo de que no es posible atender las peticiones legitimas, o
en el peor de los casos, bloqueando todo el sistema.
autenticacin
autorizacin
entidad.
bastin
BINO Berkeley Internet Name Domain, (Dominio de nombres Internet de Berkeley), la implementacin del UNIX de Berkeley del protocolo DNS.
BOOTP Bootstrap Protocol (Protocolo de secuencia de inicio); que usan las estaciones sin disco para averiguar su direccin IP y la ubicacin del servidor de inicio, as como para iniciar la descarga del sistema sobre tftp antes de iniciar el sistema. BOOTP se ha desarrollado para reemplazar a RARP
BOOTPC
bootpd
Puerto de servicio UDP 68, asociado con los clientes BOOTP y DHCP.
440
Apndice C
BOOTPS
Glosario
Puerto de servicio UDP 67, asociado con los servidores BOOTP y DHCP.
cadena Lista de reglas que define los paquetes que entran y salen a travs de una
interfaz de red.
capa de red En el modelo de referencia OSI, la tercera capa, que representa la comunicacin punto a punto entre dos equipos, como el enrutamiento y la entrega
de un datagrama IP desde un equipo origen hacia algunos equipos destino externos. En el modelo de referencia TCP/IP, se conoce como la segunda capa, la capa
de Internet.
capa de subred En el modelo de referencia TCP/IP, la primera capa, que representa el medio fisico que se usa para transportar las seales elctricas entre dos dispositivos de red adyacentes, como cable de cobre, fibra ptica, tasa de paquetes
o infrarrojos. Tambin incluye el envo de seales de datos punto a punto entre
dos dispositivos de red adyacentes, como el envo de una trama Ethernet de un
equipo al enrutador externo.
capa de transporte En el modelo de referencia OSI, la cuarta capa, que representa la comunicacin punto a punto entre dos programas, como el envo de un paquete de un programa cliente a un programa servidor. En el modelo de referencia TCP/IP, esto se conoce como la tercera capa, tambin la capa de transporte.
Sin embargo, el nivel de abstraccin de la capa de transporte 3 de TCP/IP incluye el concepto de la quinta capa de sesin de la capa OSI, que incluye los conceptos de un intercambio de mensajes ordenado y sincronizado.
capa de vnculo de datos En el modelo de referencia OSI, la segunda capa, que representa la entrega de seal de datos punto a punto entre dos dispositivos de red
adyacentes, como la entrega de una trama Ethernet desde un equipo a nuestro enrutador externo (en el modelo de referencia TCP/IP, se incluye esta funcionalidad
como parte de la primera capa, la capa de subred).
capa tsica En el modelo de referencia OSI, la primera capa, que representa el medio fisico que se usa para transportar las seales elctricas entre dos dispositivos
de red adyacentes, como un cable de cobre, fibra ptica, paquete de radio o infrarrojos. En el modelo de referencia TCP/IP, se incluye como parte de la primera capa, la capa subred.
CERT Computer Emergency Response Team, (Equipo informtico de respuestas
de emergencia), un centro de coordinacin de informacin de seguridad de Internet creado en el Instituto de ingeniera de software de la Universidad Carnegie
Mellon despus del incidente Internet Worm. en 1988.
CGI
circuito de pasarela
clase, direccin de red Una de las cinco clases de direcciones de red. Una direccin IPv4 es un valor de 32 bit. El espacio de direcciones se divide en direcciones de clase A hasta E, en funcin del valor del los 4 bits ms significativos del valor de 32 bits. El espacio de direcciones de red de clase A asigna 126 redes
independientes, donde cada una direcciona ms de 16 millones de host. El espacio de direcciones de red de clase B asigna redes de 16 K, donde cada una direcciona hasta 64 K host. El espacio de direcciones de red de clase C asigna 2 millones de redes, donde cada una direcciona hasta 254 host. La clase D se usa para
direcciones multidifusin. La clase E est reservada par.i propsitos experimentales no especificados.
Apndice C
Glosario
Concentrador Un hardware repetidor de seales que se usa para conectar fsicamente mltiples segmentos de red, extender la distancia de una red fsica o conectar segmentos de red de distintos tipos fsicos.
contencin
COPS
Crack
cron Un sistema demonio llamado crond y unos archivos de configuracin y secuencias de comandos que ponen en marcha tareas del sistema programadas.
chroot Tanto un progr.ima como una llamada de sistema que define que un directorio es la raz del sistema de archivos y, a continuacin, ejecuta un programa de
forma restringida a ese sistema de archivos virtual.
DARPA
DHCP
dhcpcd Uno de los programas cliente DHCP que localiza un servidor DHCP, solicita una direccin IP y renueva su concesin en la direccin que se ha asignado.
dhcpd El programa servidor de DHCP, que atiende las solicitudes de los clientes sobre un servidor disponible y solicita una asignacin de direccin IP, adems de renovar peridicamente la concesin de las direcciones del cliente.
difusin mltiple Un paquete IP direccionado especialmente para una direccin
IP multidifusin de clase D. Los clientes multidifusin se registran con los enrutadores intermedios para recibir paquetes direccionados a una direccin multidifusin particular.
difusin Un paquete IP que se dirige y enva a todas las interfaces conectadas a la
misma red.
direccin asignada de forma dinmica Direcciones IP asignadas temporalmente a una interfaz de red de cliente por un servidor centrnl, como un servidor
DHCP. Las direcciones asignadas dinmicamente se suelen asignar a mquinas de
clientes o empleados de un grupo de direcciones IP registradas, propiedad de un
ISP o de un negocio.
direccin asignada de forma esttica Direcciones IP impresas, asignadas de forma permanente, tanto si son direcciones registradas pblicamente como direcciones privadas.
441
442
Apndice C
Glosario
DNS
doble tarjeta
Filtro, firewall Una regla de filtrado de paquetes de un firewall, o paquete de exploracin, que define las caractersticas del paquete, que si coinciden, determina
si se permite que el paquete pase a travs de la interfaz de red o se elimina. Los
filtros se definen en trminos de un origen de paquetes y direcciones destino,
Apndice C
Glosario
Internet
Internet
Enmascaramiento/NAT
1Servidor DNS 1
Servidor
de correo
1 Servidor web 1
1Servidor FTP 1
Figura C.1.
443
444
Apndice C
Glosario
r-----
Internet
Internet
Firewall bastin
Firewall bastin
1
Servidor DNS
Servidor DNS
Servidor
de correo
Servidor web
Servidor FTP
----'------------"'-----, ,..........................
Firewall de contencin
: 1
ILAN
PC
... ...........................
LANI
:
i
l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j
PC
Figura C.2.
FfP
fl'P,
FfP, autenticado Servicio FTP accesible a cuentas previamente definidas y que deben autenticarse antes de utilizar el servicio.
host explorado
Apndice C Glosario
IANA Internet Assigned Numbers Autbority (Autoridad de nmeros asignados de
Internet).
ICMP Internet Control Message Protocol, (Protocolo de control de mensajes internet); un estado IP de la capa de red y un mensaje de control.
identd
interfaz de bucle invertido Una interfaz de red software especial que utiliza el sistema para entregar mensajes de red locales destinados a la mquina local, pasando por alto la interfaz de red hardware y el controlador de red asociado.
inundacin, paquete Un ataque por denegacin de servicio en el que el host vctima, o la red, recibe ms paquetes de un cierto tipo de los que puede aceptar la
vctima.
IP
Internet Re/ay Cbat, se utiliza para comunicacin de escritura electrnica entre usuarios y grupos en red.
IRC
ISP
klogd
El demonio de registro del ncleo que recopila errores del sistema operativo
y mensajes de estado desde los bfers de mensaje del ncleo y, junto con syslogd,
legibles por el mundo Objetos del sistema de archivos, archivos, directorios o sistemas de archivos completos, que son legibles por cualquier cuenta o programa
del sistema.
localhost Nombre simblico que se suele utilizar para la interfaz de bucle invertido
de una mquina en /etc/hosts.
445
446
Apndice C
Glosario
MD5 Un algoritmo de suma de comprobacin cifrado que se usa para asegurar la integridad de los datos creando firmas digitales de objetos, llamadas sntesis del
mensaje.
modelo cliente/servidor Modelo para los servicios de red distribuidos, en el que
un programa centralizado, un servidor, proporciona un servicio a programas
cliente remotos que solicitan ese servicio, tanto si el servicio escribe una copia
de una pgina web, descarga un archivo desde un almacn central, realiza una
bsqueda en una base de datos, enva o recibe correo electrnico, realiza algn
tipo de clculo sobre datos proporcionados por un cliente o establece conexiones de comunicacin entre dos o ms personas.
modelo de referencia OSI (Open Systems Interconnection, Interconexin de
sistemas abiertos) Un modelo de siete capas de la Organizacin internacional
para la estandarizacin (OSI, International Organization for Standardization)
que marca una lnea de trabajo o directrices para los estndares de interconexin
de redes.
modelo de referencia TCP/IP Un modelo de comunicacin de red informal desarrollado cuando TCP/IP se convirti en el estndar de facto para las comunicaciones de Internet entre mquinas UNIX a finales de los aos 70 y comienzos de
los aos 80. En lugar de ser un ideal acadmico y formal, el modelo de referencia
TCP/IP se basa en lo que los fabricantes y programadores se pusieron de acuerdo que debera ser la comunicacin en Internet.
MTIJ Maximum Transmission Unit (Unidad de transmisin mxima): el mximo
tamao de paquete en funcin de la red subyacente.
multitarjeta Un equipo que tiene dos o ms interfaces de red. Vase tambin de
doble tarjeta.
named
NAT Network address translation (Traduccin de direcciones de red o enmascaramiento IP); el proceso de sustituir una direccin de origen local de un paquete
con la de un firewall o mquina de pasarela, de forma que permanezcan ocultas
las direcciones IP de la LAN. El paquete parece proceder de una mquina de pasarela en lugar de una mquina interna de la LAN. El proceso se invierte para paquetes de respuesta entrantes desde servidores remotos. La direccin destino del
paquete, la direccin IP de la mquina firewall, se sustituye con la direccin de
la mquina cliente en la LAN interna.
netstat Un programa que registra distintos tipos de estados de red en funcin de
varias tablas de ncleo relacionadas con la red.
NFS Network File System (Sistema de archivos de red), se usa para compartir sistemas de archivos entre equipos que funcionan en red.
NIS
Network Information Service (Servicio de informacin en red), se usa para administrar de forma centralizada y proporcionar cuentas de seguridad e informacin de host.
Apndice C
Glosario
nmap Una nueva herramienta de auditora de seguridad en red (por ejemplo, exploracin de puertos) que incluye muchas de las nuevas tcnicas de exploracin
que se utilizan actualmente.
NNTP Network News Transfer Protocol; el protocolo de transferencia de noticias
de red que utiliza Usenet.
NTP Network Time Protocol, el protocolo de hora de red que utilizan xntpd y ntpdate.
pasarela de aplicacin
pasarela Un equipo o programa que sirve como conducto, o transmisin, entre dos
redes.
PATH La variable de entorno del shell que define los directorios que debera examinar el shell en busca de comandos ejecutables no cualificados y el orden en
que el shell debera buscar en esos directorios.
PID
Process ID (Id. de proceso) es un identificador numrico nico para el proceso del sistema, que suele estar asociado con la ranura del proceso en la tabla de
procesos del sistema.
ping Una herramienta sencilla de anlisis de red que se usa para determinar si es posible contactar con un host remoto y est preparado para responder. ping enva
un mensaje de solicitud de eco ICMP. El host receptor devuelve un mensaje de
respuesta de eco ICMP.
POP Post Office Protocol (Protocolo de oficina de correos); se usa para recuperar el
correo de los host que ejecutan un servidor POP.
portmap Un demonio que administra RPC y se usa para asignar entre un nmero
de servicio RPC particular al que un cliente solicita acceso y el puerto de servicio al que est enlazado el servidor asociado.
proxy Un programa que crea y mantiene una conexin de red en beneficio de otro
programa, proporcionando un conducto en el nivel aplicacin entre un cliente y
un servidor. El cliente y el servidor, en realidad, no tienen comunicacin directa.
El proxy aparenta ser el servidor para el programa cliente y parece ser el cliente
para el programa servidor. Como se muestra en la Figura C.3, los servidores proxy
447
448
Apndice C
Glosario
Firewall bastin
Firewall bastin
Proxy de circuito
Figura C.3.
Apndice C
Glosario
puerto En TCP o UDP, el designador numrico de un canal particular de comunicacin de red. Las asignaciones de puerto las administra el IANA. Algunos puertos se asignan a protocolos de comunicacin de una aplicacin particular como
parte del estndar del protocolo. Algunos puertos se registran como asociados
con un servicio particular por convencin. Algunos puertos tienen libertad de
asignacin para que los usen los clientes y los programas de usuario:
privilegiado Un puerto del intervalo que va desde O hasta 1023. Muchos de
estos puertos los asigna el estndar internacional a protocolos de aplicacin.
El acceso a puertos privilegiados requiere privilegios del nivel de sistema.
no privilegiado Un puert~ del intervalo que va desde 1024 hasta 65535. Algunos de estos puertos se registran y se usan segn una convencin para ciertos programas. Cualquier puerto que pertenezca a este intervalo lo puede utilizar un programa cliente para establecer una conexin con un servidor de la red.
punto a punto Un modo de comunicacin que se usa para la comunicacin entre
dos programas servidor. Un protocolo de comunicacin de igual a igual suele ser,
pero no siempre, distinto de los protocolos que se utilizan para la comunicacin
entre el servidor y el cliente.
QoS
Calidad de servicio.
RARP Reverse Address Resolution Protocol (Protocolo de resolucin de direcciones inversas); desarrollado para permitir a las mquinas sin disco solicitar su direccin IP basndose en la direccin hardware MAC.
reenviar Para enrutar paquetes desde una red a otra en el proceso de envo de un
paquete desde un equipo a otro.
regla REJECT Una decisin de regla de filtrado firewall para eliminar un paquete
y devolver al emisor un mensaje de error ICMP.
regla
RFC
RIP
RPC
449
450
Apndice C
Glosario
incrementando el nmero de secuencia del servidor en uno para indicar la recepcin del mensaje. La conexin se ha establecido.
SATAN Security Administrator Too/ far Analyzing Networks (Herramienta del administrador de seguridad para anlisis de redes); una herramienta que ayuda a identificar posibles debilidades de seguridad en configuraciones de servicios de red.
secuencia de comandos Una secuencia de comandos ejecutable ASCII del shell,
como un archivo que contiene comandos sh, csh, bash, ksh o peri.
segmento, TCP
Un mensaje TCP.
setgid
Un programa que, cuando se ejecuta, asume el Id. del grupo del propietario
del programa, en lugar de la Id. del grupo del proceso que ejecuta el programa.
setuid Un programa que cuando se ejecuta asume la Id. del propietario del programa, en lugar de la Id. del usuario del proceso que ejecuta el programa.
shell
smrsh
SMTP Simple Mail Transport Protocol (Protocolo simple de transferencia de correo); se usa para intercambiar correo entre servidores de correo y entre programas de correo y servidores de correo.
SNMP Simple Network Management Protocol (Protocolo simple de administracin
de redes); se usa para administrar la configuracin de dispositivos de red desde
una estacin de trabajo.
socket El nico punto de conexin de red definido por el par de una direccin IP
con un puerto de servicio UDP o TCP particular.
SOCKS Un conocido paquete proxy de pasarela de circuito, que puede conseguirse desde NEC.
solucionador Programas de cliente DNS. Los solucionadores se implementa como
un cdigo de biblioteca que se vincula a programas que necesitan tener acceso a
la red. El archivo de configuracin del cliente DNS es /etc/resolv.conf.
sondeo Para enviar algn tipo de paquete al puerto de servicio del host de alguien.
El propsito de un sondeo es determinar si una respuesta la ha generado el host
destino.
SSH
Protocolo Secure shell (Shell seguro); se usa para conexiones de red cifradas y
autenticadas de forma ms segura.
SSL
Protocolo Secure Socket Layer (Nivel de socket seguro); se usa para comunicacin cifrada. SSL se suele usar habitualmente en servidores y navegadores web
para intercambiar informacin personal de comercio electrnico.
strobe
subred explorada
Apndice C
Glosario
syslogd El demonio de inicio de sesin del sistema, que recopila mensajes de estado y error generados por los programas que envan mensajes mediante la llamada al sistema syslog().
TCP
TOS Tipo de servicio, campo de la cabecera del paquete IP que se ha intentado que
proporcione una sugerencia como directiva de enrutamiento preferida o enrutamiento de paquetes preferida.
traceroute Una herramienta de anlisis de red que se usa para determinar la ruta de
un equipo a otro a travs de la red.
Trama Ethernet
Ethernet.
451
452
Apndice C
Glosario
transferencia de zona El proceso de copiar la base de datos de nombres de equipo del servidor de nombres autorizado DNS y las direcciones IP que pertenecen
a una seccin contigua de un dominio a un servidor de nombres secundario.
tripwire Un programa que genera y mantiene una base de datos de firmas digitales
MD5 para todo un conjunto de archivos o directorios del sistema. Su propsito
es detectar agregaciones no autorizadas o cambios en los archivos.
1TL
UDP User Datagram Protocol (Protocolo de datagrama de usuario); se usa para enviar mensajes de red individuales entre programas, sin ninguna garanta de envo
u orden de envo.
WWW
X Window
UNIX.
xntpd El servidor de hora de red NTP, que proporciona a los clientes de red tanto
la fecha actual como informacin de intercambio de hora con otros servicios.