Você está na página 1de 107

Sistemas UNI

Implementacin y disposicin del Firewall en una LAN


1.1 Introduccin
Un firewall es un dispositivo que funciona como dispositivo de seguridad (cortafuegos) entre
redes, permitiendo o denegando las transmisiones de una red a la otra. Un uso tpico es
situarlo entre una red local y la red Internet, como dispositivo de seguridad para evitar que los
intrusos puedan acceder a informacin confidencial.
Un firewall es simplemente un conjunto de filtros que controlan todas las comunicaciones que
pasan de una red a la otra y en funcin del tipo de informacin que se trate, permite o deniega
su paso. Para permitir o denegar una comunicacin, el firewall examina el tipo de servicio al
que corresponde, como pueden ser el web, el correo o el IRC. Dependiendo del servicio el
firewall decide si lo permite o no. Adems, el firewall examina si la comunicacin es entrante o
saliente y dependiendo de su direccin puede permitirla o no.
RED LOCAL

FIREWALL

Trfico
no
Autorizado

Trfico Autorizado
Internet
Diagrama 1: ubicacin y funcin del firewall

De este modo un firewall puede permitir desde una red local hacia Internet acceso a servicios
de web, correo y ftp, pero no a IRC que puede ser innecesario para nuestro trabajo. Tambin
podemos configurar los accesos que se hagan desde Internet hacia la red local y podemos
denegarlos todos o permitir algunos servicios como el de la web, (si es que poseemos un
servidor web y queremos que accesible desde Internet). Dependiendo del firewall que
tengamos tambin podemos permitir algunos accesos a la red local desde Internet si el usuario
se ha autentificado como usuario de la red local.

1.2 Tipos de firewalls

Firewall de capa de red.- Funciona al nivel de la red de la pila de protocolos (TCP/IP)


como filtro de paquetes IP, no permitiendo que estos pasen el cortafuego a menos que
se atengan a las reglas definidas por el administrador del cortafuego o aplicadas por
defecto como en algunos sistemas inflexibles de cortafuego. Una disposicin ms
permisiva podra permitir que cualquier paquete pase el filtro mientras que no cumpla
con ninguna regla negativa de rechazo.
Firewall de capa de aplicacin.- Trabaja en el nivel de aplicacin. Analizando todo el
trfico de HTTP, (u otro protocolo), puede interceptar todos los paquetes que llegan o
salen desde y hacia las aplicaciones que corren en la red. Este tipo de cortafuegos usa
ese conocimiento sobre la informacin transferida para proveer un bloqueo ms

Linux Seguridad en Redes

Pg. 1

Sistemas UNI

selectivo y para permitir que ciertas aplicaciones autorizadas funcionen


adecuadamente. A menudo tienen la capacidad de modificar la informacin
transferida sobre la marcha, de modo de engaar a las aplicaciones y hacerles creer
que el cortafuego no existe. Otros tambin tienen adosado software para revisar por
virus el correo electrnico.

Figura 1: NEFILTER

Figura 2: proxy Squid

1.3 Disposiciones generales para la instalacin del S.O. Debian


Debian no impone requisitos de hardware ms all de los que establecen el ncleo Linux y el
conjunto de herramientas GNU. En cualquier caso, cualquier arquitectura o plataforma a la
que se haya adaptado el ncleo Linux, libc, gcc, etc., y para los que exista una adaptacin de
Debian, puede ejecutar Debian. Por favor, dirjase a las pginas de adaptaciones en
http://www.debian.org/ports/i386/ para ms informacin sobre sistemas de arquitectura Intel
x86 probados con Debian.

Linux Seguridad en Redes

Pg. 2

Sistemas UNI

1.3.1. Arquitecturas de hardware soportadas


Debian 5.0 soporta once arquitecturas principales y algunas variaciones de cada
arquitectura conocidas como sabores.
Arquitectura

Designacin de
Debian

Subarquitectura

Sabor

Basada en Intel x86 i386


AMD64 e Intel
EM64T

amd64

DEC Alpha

alpha
Arm

Netwinder y CATS

netwinder

Armel

Versatile

versatile

Intel IOP32x

iop32x

Intel IXP4xx

ixp4xx

Marvell Orion

orion5x

PA-RISC 1.1

32

PA-RISC 2.0

64

SGI IP22 (Indy/Indigo 2)

r4k-ip22

SGI IP32 (O2)

r5k-ip32

MIPS Malta (32 bit)

4kc-malta

MIPS Malta (64 bit)

5kc-malta

Broadcom BCM91250A
(SWARM)

sb1bcm91250a

Broadcom BCM91480B
(BigSur)

sb1abcm91480b

Cobalt

cobalt

MIPS Malta (32 bit)

r4k-malta

MIPS Malta (64 bit)

5kc-malta

Broadcom BCM91250A
(SWARM)

sb1bcm91250a

Broadcom BCM91480B
(BigSur)

sb1abcm91480b

PowerMac

pmac

PReP

prep

ARM
arm and armel

HP PA-RISC

Hppa

Intel IA-64

ia64

MIPS (big endian)

MIPS (little endian)

Mips

Mipsel

IBM/Motorola
PowerPC

Powerpc

Sun SPARC

Sparc

IBM S/390

s390

Linux Seguridad en Redes

sun4u
sun4v

sparc64

IPL del lector VM y DASD

genrico

IPL de cinta

cinta
Pg. 3

Sistemas UNI

1.3.2 Componentes de software a instalar


Solo instale aquellos componentes que realmente va a utilizar. Las herramientas GNU
son libres, por lo tanto estn en constante desarrollo y evaluacin y poseen bugs; por
lo tanto mientras no sea herramientas estables (stable), no las instale.
Una relacin de componentes a instalar en el firewall detallamos a continuacin:

anacron
atd
gpm
network
random
sendmail y/o postfix
sshd
rsyslog y/o syslog
Componentes bsicos de linux

No instale:
Herramientas de desarrollo
Escritorios y el servidor X11
Ningn servicio adicional aparte del Web server.

1.3.3 Requisitos de hardware del servidor firewall


El firewall es un dispositivo de red que pertenece a ambas redes: a la red local y a la
red internet. Si se conecta una tercera red, esta debe estar conectada necesariamente
al firewall. De lo contrario, no se podr asegurar el control del trfico de red y sus
contenidos. Muy por todo lo contrario, estaramos estableciendo un hueco de
seguridad potencial y altamente peligroso.
Por lo tanto, por cada red este que conecte al firewall, el firewall debe tener una
tarjeta de red anexada a ella. Las reglas se aplicaran a cada tarjeta de red,
dependiendo del flujo de datos entre redes.

1.4 Defensa de la red perimetral


La seguridad perimetral es uno de los mtodos posibles de defensa de una red, basado en el
establecimiento de recursos de seguridad en el permetro externo de la red y a diferentes
niveles.
Esto nos permite definir niveles de confianza, permitiendo el acceso de determinados usuarios
internos o externos a determinados servicios, y denegando cualquier tipo de acceso a otros.
El permetro externo de la red debe presentar un fortalecimiento basado en:

Control de puntos finales: los tneles no se establecen unilateralmente


Conectividad: uso de Puertas de Enlace gateways

Linux Seguridad en Redes

Pg. 4

Sistemas UNI

Direccionamiento NAT
Vulnerabilidades: Fundamentales (por la tecnologa) o inducido por la
implementacin.
Combinacin de mtodos de acceso: SSH, RAS, VPN.
Defensas por niveles: Ultima defensa
Hardware mejor que software
Evitar el flujo de trfico de una red a otra a travs de dispositivos conectados a
2 redes.

1.4.1 Qu elementos deberan protegerse?


Se deberan proteger todos los elementos de la red interna, incluyendo hardware,
software e informacin, no solo de cualquier intento de acceso no autorizado desde el
exterior sino tambin de ciertos ataques desde el interior que puedan preverse y
prevenirse.
1.4.2 Uso de firewalls
Un firewall puede ser un sistema (software o hardware), es decir, un dispositivo fsico
que se conecta entre la red y el cable de la conexin a Internet, como en el caso del
CISCO PIX, o bien un programa que se instala en el sistema que tiene la interface que
conecta con Internet, con otra conectada a la red local. Incluso podemos encontrar
PCs muy potentes y con paquetes de software especficos que lo nico que hacen es
monitorear en tiempo real las comunicaciones entre redes.
1.4.3 Uso de proxis
Adems del filtrado de paquetes, es habitual que se utilicen aplicaciones (software)
para reenviar o bloquear conexiones a servicios como por ejemplo telnet, HTTP o FTP.
A tales aplicaciones se les denomina "servicios proxy", mientras que al sistema donde
se ejecutan se le llama "gateway de aplicacin".
Los servicios proxy poseen una serie de ventajas tendientes a incrementar la
seguridad; en primer lugar, permiten nicamente la utilizacin de servicios para los
que existe un proxy, por lo que si en la organizacin el "gateway de aplicacin"
contiene nicamente proxies para telnet, HTTP y FTP, el resto de servicios no estarn
disponibles para nadie.

1.5 Puertos y servicios


En el momento que nuestro ordenador se conecta a internet, ste pasa a ser un elemento ms
dentro de la Red, es decir, forma parte de toda la Red y como tal se tiene que comunicar con
el resto. Para poder comunicarse, lo primero que necesita es tener una direccin electrnica y
poder identificarse con los dems. Si haces una peticin, por ejemplo de una pgina web, el
servidor tiene que saber a quin se la enva. Esa direccin electrnica es la direccin IP, qu es
un nmero de 4 grupos de ocho bits cada uno. Pero eso no es suficiente, ya que en internet se
pueden utilizar muchos y diversos servicios y es necesario poder diferenciarlos. La forma de
"diferenciarlos" es mediante los puertos.
Imaginemos un edificio de oficinas, ste tiene una puerta de entrada al edificio (que en
nuestro caso sera la IP) y muchas oficinas que dan servicios (que en nuestro caso seran los
puertos). Eso nos lleva a que la direccin completa de una oficina viene dada por la direccin
Linux Seguridad en Redes

Pg. 5

Sistemas UNI

postal y el nmero de la oficina. En el caso de Internet viene dado por la direccin IP y por el
nmero de puerto. As por ejemplo, un servidor web escucha las peticiones que le hacen por el
puerto 80, un servidor FTP lo hace por el puerto 21, etc.

Servidor Web Internet


Cliente XP local

Sentido de Conexin:
Cliente XP local a Servidor Web en Internet
LAN WAN

LAN

Internet
Sentido de Conexin:
Cliente XP en Internet a Servidor Web Local
WAN LAN
Servidor Web Local
Cliente XP Internet

Diagrama 2: sentido de las conexiones entre los equipos involucrados.

Servidor Web Internet


IP = 210.27.16.185

Inicio de la Conexin Servidor WEB Internet


Cliente XP Local
IP = 192.168.1.96

Ejecuto IE
Puerto 16558

Cabeceras IP
IP Origen = 192.168.1.96
IP Destino = 210.27.16.185
Puerto Origen = 16558
Puerto Destino = 80

Cabeceras IP
IP Origen = 210.27.16.185
IP Destino = 195.56.44.58
Puerto Origen =80
Puerto Destino = 16558

Ejecuto Apache
En Puerto 80
Servidor Web Internet
IP = 210.27.16.185

Servidor Web Internet


IP = 210.27.16.185

Respuesta Servidor WEB de Internet

558

558

195.56.44.58
192.168.1.1

Servidor Web Local


IP = 192.168.1.9

Cliente XP Local
IP = 190.26.225.14

Diagrama 3: estructura de las cabeceras IP y TCP (IP y Puertos respectivamente) segn el sentido de la
conexin

Observe las conexiones en la parte superior e inferior del firewall. Ambas son conexiones que
pasan por el firewall necesariamente; en cada caso, el extremo izquierdo del firewall posee IP
privadas. Es el firewall quien debe convertirlas en IP pblica cuando la conexin se establece
de izquierda a derecha de la figura. Es importante tener en cuenta ese detalle: en la red
Internet solo se consigue la comunicacin con otros equipos si se posee IP PUBLICA.
Linux Seguridad en Redes

Pg. 6

Sistemas UNI

Es decir, los puertos son los puntos de enganche para cada conexin de red que realizamos. El
protocolo TCP (el utilizado en internet) identifica los extremos de una conexin por las
direcciones IP de los dos nodos (ordenadores) implicados (servidor y cliente) y el nmero de
los puertos de cada nodo. Recuerde que los puertos identifican a las aplicaciones involucradas
en la comunicacin, aplicaciones de red por supuesto.

1.6 Definicin de la POLITICA de SEGURIDAD


Asegurar sus datos involucra algo ms que conectarse en un firewall con una interface
competente. Lo que se necesita es un plan comprensivo de defensa. Y se necesita comunicar
este plan en una manera que pueda ser significativo para la gerencia y usuarios finales. Esto
requiere educacin y capacitacin, conjuntamente con la explicacin, claramente detallada, de
las consecuencias de las violaciones. A esto se le llama una poltica de seguridad y es el
primer paso para asegurar responsablemente la red. La poltica puede incluir instalar un
firewall, pero no necesariamente se debe disear su poltica de seguridad alrededor de las
limitaciones del firewall.
El desarrollo de una poltica de seguridad comprende la identificacin de los activos
organizativos, evaluacin de amenazas potenciales, la evaluacin del riesgo, implementacin
de las herramientas y tecnologas disponibles para hacer frente a los riesgos, y el desarrollo de
una poltica de uso. Debe crearse un procedimiento de auditoria que revise el uso de la red y
servidores de forma peridica.
1.6.1 Identificacin de los activos organizativos
Consiste en la creacin de una lista de todas las cosas que precisen proteccin.
Por ejemplo: Hardware: ordenadores y equipos de telecomunicacin Software: programas fuente, utilidades, programas de diagnstico, sistemas
operativos, programas de comunicaciones. Datos: copias de seguridad, registros de auditoria, bases de datos.
1.6.2 Valoracin del riesgo:
Conlleva la determinacin de lo que se necesita proteger. No es ms que el proceso de
examinar todos los riesgos, y valorarlos por niveles de seguridad.
1.6.3 Definicin de una poltica de uso aceptable:
Las herramientas y aplicaciones forman la base tcnica de la poltica de seguridad,
pero la poltica de uso aceptable debe considerar otros aspectos:

Quin tiene permiso para usar los recursos?


Quin est autorizado a conceder acceso y a aprobar los usos?
Quin tiene privilegios de administracin del sistema?
Qu hacer con la informacin confidencial?
Cules son los derechos y responsabilidades de los usuarios?

Linux Seguridad en Redes

Pg. 7

Sistemas UNI

Por ejemplo, al definir los derechos y responsabilidades de los usuarios:

Si los usuarios estn restringidos, y cules son sus restricciones.


Si los usuarios pueden compartir cuentas o dejar que otros usuarios utilicen
sus cuentas.
Cmo deberan mantener sus contraseas los usuarios.
Con qu frecuencia deben cambiar sus contraseas.
Si se facilitan copias de seguridad o los usuarios deben realizar las suyas.

1.7 Instalacin del servidor y las herramientas de administracin de firewall


Para el proceso de instalacin del sistema operativo, se deber contar con las herramientas
adecuadas para simular el ambiente de la red local y de la red internet. Cada alumno contara
con una PC y a travs de herramientas de virtualizacin, creara sus servidores virtuales
instalando los sistemas operativos que corresponda segn la funcin de la mquina y de su
ubicacin con respecto al firewall.
1.7.1 Maquina del alumno:

Pentium D o superior
Memoria de 2 GB o ms
Espacio en disco duro de 40 GB o ms

1.7.2 Software por alumno:

Linux CentOS 5.6 o superior instalado en la particin antes mencionada.


Maquina HOST principal.
Herramienta de virtualizacin: VMWare Server y/o VMWare Workstation 8 o
superior.
Archivo ISO de Linux CentOS 5.6 o superior
Archivo ISO de Linux Debian 6.0 o superior
Archivo ISO de Windows XP SP2 o SP3
Se deber crear tres (03) mquinas virtuales:
o
o
o

Una maquina firewall con Linux Debian (se enseara su instalacin en


clase)
Una maquina Web Server con Linux CentOS (servidor local)
Una maquina cliente con Windows XP (cliente local)

La mquina HOST principal con Linux CentOS actuara como las maquinas
cliente y servidor de internet respectivamente.

El equipo cliente local deber tener instalado SP3 de preferencia.

Linux Seguridad en Redes

Pg. 8

Sistemas UNI

Firewall a nivel de capa de RED: Filtrado con NETFILTER


2.1 Introduccin
Netfilter es un framework (zona de trabajo) disponible en el ncleo Linux que permite
interceptar y manipular paquetes de red a nivel de la capa de red (IP). Dicho framework
permite realizar el manejo de paquetes en diferentes estados del procesamiento. Netfilter es
tambin el nombre que recibe el proyecto que se encarga de ofrecer herramientas libres para
cortafuegos basados en Linux.
El componente ms popular construido sobre Netfilter es iptables, una herramienta de
cortafuegos que permite no solamente filtrar paquetes, sino tambin realizar traduccin de
direcciones de red (NAT) para IPv4 o mantener registros de log. El proyecto ofreca
compatibilidad hacia atrs con ipchains hasta hace relativamente poco, aunque hoy da dicho
soporte ya ha sido retirado al considerarse una herramienta obsoleta. El proyecto Netfilter no
slo ofrece componentes disponibles como mdulos del ncleo sino que tambin ofrece
herramientas de espacio de usuario y libreras.
iptables es el nombre de la herramienta de espacio de usuario mediante la cual el
administrador puede definir polticas de filtrado del trfico que circula por la red. El nombre
iptables se utiliza frecuentemente de forma errnea para referirse a toda la infraestructura
ofrecida por el proyecto Netfilter. Sin embargo, el proyecto ofrece otros subsistemas
independientes de iptables tales como el Connection Tracking System o sistema de
seguimiento de conexiones, o queue, que permite encolar paquetes para que sean tratados
desde espacio de usuario. iptables es un software disponible en prcticamente todas las
distribuciones de Linux actuales.

2.2 Configurar la segunda tarjeta de red y opciones de red del ncleo


El servidor firewall debe pertenecer a las redes que se desea controlar, en el ejemplo del
curso, la red local y la red internet. Dependiendo del tipo de conexin establecida, se tendr
entonces dos (02) interfaces de red (entindase tarjetas), una para cada conexin de red
establecida.
En algunos casos se puede aadir una red ms al firewall; en este caso, se deber aadir una
interface de red adicional para conectar la nueva red al sistema.
Por cada tarjeta de red aadida se debe configurar una direccin IP independiente y que
pertenezca a la red indicada. Observe el diagrama 4 para aclarar el tema:
Hacia la red
local

Hacia la red
internet

FIREWALL

Tarjeta de red
eth1

Tarjeta de red
eth0

Diagrama 3: estableciendo la conexin de cada tarjeta de red en el firewall.

Linux Seguridad en Redes

Pg. 9

Sistemas UNI

2.3 Opciones de red del ncleo: caractersticas de networking intrnsecas del kernel
En Red Hat Linux 6.2, muchas opciones del kernel relacionados con la seguridad de redes, tales
como descartar los paquetes que entran a travs de interfaces que no deben, o haciendo caso
omiso de respuestas ping, etc se puede establecer en el nuevo archivo /etc/sysctl.conf en lugar
del archivo /etc/rc.d/rc.local.
Una consideracin importante es el parmetro de reenvo de IPv4 (ip_forwarding), que ahora
se hace a travs del programa sysctl, en lugar de ser controlado por el contenido del archivo en
/etc/sysconfig/network. Tambin se activa para IPV6.
La configuracin de sysctl se almacenan en /etc/sysctl.conf, y se carga en cada arranque antes
de que el archivo /etc/rc.d/rc.local se lea y se active su contenido.

2.3.1 Algunas opciones de networking de este archivo

Prevenir que el sistema responda a solicitudes ping


net.ipv4.icmp_echo_ignore_all = 1

Rechazar respuestas a pedido broadcast


net.ipv4.icmp_echo_ignore_broadcasts = 1

Activar encaminamiento IP para IPV4


net.ipv4.ip_forward = 1

2.4 Herramienta de usuario iptables


Definicin
iptables es una estructura genrica de tablas que define las reglas y los comandos, como parte
del sistema NETFILTER que facilita Network Address Translation (NAT), filtrado de paquetes y
alteracin de paquetes de la versin 2.4 del kernel de Linux y sistemas operativos posteriores.
NAT es el proceso de convertir una direccin IP en otra direccin IP. El filtrado de paquetes es
el proceso de aprobacin o el bloqueo de los paquetes en una interfaz de red basado en
direcciones de origen y destino, puertos o protocolos. Alteracin de paquetes es la capacidad
de alterar o modificar los paquetes antes y/o despus del enrutamiento.
iptables y netfilter son el sucesor de ipchains e ipfwadm en versiones anteriores de Linux.
Netfilter e iptables se combinan a menudo en la nica expresin de NETFILTER/IPTABLES, que
se refiere a Linux 2.4 y posteriores subsistemas de NAT, cortafuegos, y el procesamiento de
paquetes avanzados.

Linux Seguridad en Redes

Pg. 10

Sistemas UNI

2.4.1 Terminologa

Concepto
Tablas
Cadenas
Reglas

Objetivo

Significado
Conjunto de cadenas
Conjunto de reglas
Las unidades de construccin; me dice a quien le aplico lo que
quiero hacer
Objetivo del filtrado

2.4.2 Sintaxis general del comando:


iptables [-t tabla] comando [cadena] [reglas] [ -j objetivo]
tabla: tipo de tabla a trabajar (filter, nat, mangle, raw)
comando:
L listar reglas
A aadir reglas
X eliminar reglas de usuario
F eliminar reglas previas
I Insertar reglas
P establecer poltica de filtrado
D eliminar regla
R reemplazar regla
N crear nueva regla (por lo general de usuario)
cadena: son reglas agrupadas que se aplican a determinados paquetes
que entran y/o salen del firewall.
Tabla filter:

INPUT: reglas que se aplican a paquetes que llegan al firewall


OUTPUT: reglas que se aplican a paquetes que salen del firewall
FORWARD: reglas que se aplican a paquetes que atraviesan el
firewall

Tabla nat:

PREROUTING: aplicada antes de la decisin de ruteo DNAT


POSTROUTING: aplicada despus de la decisin de ruteo SNAT

Tabla mangle:
o

Se utiliza para alterar los paquetes en trnsito. Usado en QoS


(calidad de servicio)

reglas: criterios para realizar el filtrado. Los principales son:

Linux Seguridad en Redes

-i interface de entrada
-o interface de salida
-p protocolo encapsulado (tcp,udp)
Pg. 11

Sistemas UNI

--dport puerto destino


--sport puerto origen
-s IP origen de los paquetes
-d IP destino de los paquetes
-m cuando coinciden con algn parmetro especial (match)

2.5 Poltica ACCEPT versus Poltica DROP: seguridad perimetral


Usted probablemente sabe que necesita la seguridad de un firewall, de hecho, es posible que
incluso ya tiene un programa de gestin de servidor de seguridad en su lugar. Pero, qu es la
seguridad de firewall, y que implica la gestin de servidor de seguridad?
El palabra firewall originalmente se refera literalmente a una pared construida para detener la
propagacin de un incendio. En el mundo de la proteccin de equipos por firewall, un servidor
de seguridad se refiere a un dispositivo de red que bloquea ciertos tipos de trfico de la red,
formando una barrera entre la red de confianza y una red insegura. Es anlogo a un servidor
de seguridad fsica en el sentido de que la seguridad del firewall bloque intentos de
propagacin de ataques informticos.
Antes de comenzar el diseo de su firewall con Linux, usted necesita determinar si va a
proteger un nico equipo o su red. Tambin tendr que decidir si cualquier usuario de Internet
tendr acceso a su computadora o red. Tambin debe pensar si quiere bloquear el acceso a
ciertos servicios en Internet. Es posible que desee bloquear el trfico saliente con destino a
determinados servicios peer-to-peer para compartir archivos o tal vez los servicios de
intercambio de archivos de Windows. Investigar todo esto puede tener una buena cantidad de
tiempo, especialmente si usted es nuevo en Linux y no est familiarizado con el uso de la lnea
de comandos e iptables.
Al comenzar su investigacin, usted probablemente querr comenzar con una visita a la pgina
de inicio de iptables y tambin tener algo de tiempo para leer la Gua del administrador de la
red de Linux en el Proyecto de Documentacin de Linux.
Despus de terminar su investigacin, usted probablemente querr comenzar a escribir su
conjunto de reglas. Un principiante que quiere proteger a un nico equipo podra terminar con
algo como lo siguiente despus de algunas investigaciones en los sitios mencionados
anteriormente:
#!/bin/bash
iptables -F
iptables -P INPUT
DROP
iptables -P OUTPUT
DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
El cdigo anterior es un firewall simple y efectivo. Usted podra utilizar esta lista de cdigo
simple como la base para un servidor de seguridad ms complejos, o simplemente copia el
Linux Seguridad en Redes

Pg. 12

Sistemas UNI

cdigo y gurdelo en un guin que ser lanzado en el arranque. Ahora vamos paso a paso a
travs del script lnea a lnea.
La primera lnea es obvio, el omnipresente "bang hash" que le dice al shell que interprete a
utilizar cuando se ejecuta el script. La siguiente lnea limpia cualquier norma iptables que
puede estar ya cargado. Tenga en cuenta que esto slo limpia las reglas en la tabla de filtros.
Es posible que haya normas ms avanzadas en las tablas nat y mangle que no se borrarn con
esta regla. En la mayora de distribuciones no se cargan reglas iptables por defecto as que
probablemente no tiene que preocuparse acerca de estas otras tablas en este momento.
Las siguientes tres lneas establecen las polticas por defecto del filtrado. Estas tres reglas de
decirle al ncleo que debe dejar caer los paquetes que son entrantes, salientes o encaminados.
Esto se conoce como la configuracin "negar de forma predeterminada" y si no aade reglas
en este punto, no sera capaz de acceder a Internet o a cualquier otro equipo en la red.
Tambin puede configurar las polticas por defecto para ACCEPT (ACEPTAR) o DENY
(RECHAZAR). Si se establece en ACEPTAR entonces su servidor de seguridad acepta toda
conexin por defecto. Establecer las polticas para RECHAZAR es similar a NEGAR (DROP), solo
que el ncleo enva una respuesta al que envi el paquete en lugar de descartarlo
silenciosamente. Al establecer el servidor de seguridad para negar de forma predeterminada
est trabajando en lo que podra llamarse el modo "Stealth" (silencioso). Si alguien fuera a
escanear su ordenador desde Internet, aparecer como si no hay equipo all.

2.5 Traduccin de direcciones de red - NAT


Este mecanismo, implementado en todos los equipos routers, permite que dos o ms redes IP
puedan intercambiar datos incluso si no se encuentran en la misma red lgica y/o fsica (capa
de red). Las direcciones IP se clasifican en Publicas y privadas. Las pblicas permiten la
comunicacin entre equipos conectados a internet directamente. Las privadas son de uso
interno para redes locales, pero no estn permitidas para conectar dispositivos a la red
internet; el protocolo no lo permite.
La funcin de este mecanismo permite, usando unas pocas, e incluso una sola direccin IP,
conectar toda una red local con direcciones IP privadas a la red internet. La idea es compartir
una misma direccin IP pblica, as como cuando se comparte un mismo nmero telefnico y
es sistema de anexos de una empresa.
Esto es necesario debido al progresivo agotamiento de las direcciones IPv4. Se espera que con
la pronta implementacin de IPv6 no sea necesario continuar con esta prctica.
2.5.1 Mecanismos NAT
Existen dos tipos bsicos de mecanismos NAT a implementar en el servidor cortafuegos
o firewall:

SNAT o NAT de origen (Source NAT)


DNAT o NAT de destino (Destination NAT)

Veremos a continuacin como trabajan estos mecanismos bsicos de NATeo.


Linux Seguridad en Redes

Pg. 13

Sistemas UNI

2.6 Nateo de puertos especficos SNAT y DNAT en accin


2.6.1 Mecanismos SNAT
Consiste en cambiar la IP Privada Origen (source IP) por la direccin IP de la tarjeta de
red del firewall conectada a la red WAN. Esta tarjeta es la nica interface que posee IP
PUBLICA; por lo tanto, en teora es la nica interface con conexin directa a la red
Internet. SNAT comparte esta IP PUBLICA con todas las interfaces de la red local para
que estas puedan navegar libremente por la red Internet. El retorno (respuesta) de los
equipos desde la Internet est asegurada gracias a que el kernel proporciona un
mecanismo de monitorio (tracking) de las conexiones entrantes y salientes. La tabla
NAT es para este fin.
Ejemplo.- Imaginemos el siguiente escenario de trabajo SNAT:

WEB Server

LAN

IP = 200.56.17.234

Firewall
eth1

eth0

Internet

eth0 = 190.12.45.186
eth1 = 192.168.1.1
Cliente XP
IP = 192.168.1.56

Cuando el Cliente XP con IP = 192.168.1.56 (IP Origen, privada) desea establecer contacto con
el Servidor WEB con IP = 200.56.17.234 (IP Destino, publica), su solicitud debe pasar de todas
maneras a travs del firewall. Sin el mecanismo SNAT activo, se alcanza el host solicitado pero
la respuesta no retorna. Esto se debe a que el origen y el destino del paquete se encuentran en
diferentes redes. Con el SNAT activo, la IP origen del paquete del cliente XP se cambia por la IP
publica del firewall, es decir, por la IP de la interface eth0=190.12.45.186; de esta manera se
asegura que el servidor de internet (200.56.17.234) pueda enviar la respuesta al firewall.
Finalmente, como el firewall mantiene un registro de dicha conexin, el firewall lleva la
respuesta al Cliente XP. Esto es totalmente transparente para el usuario. Observe el diagrama
4:

Linux Seguridad en Redes

Pg. 14

Sistemas UNI

Paquete IP Original

Paquete IP con SNAT

IP Origen = 192.168.1.81
IP Destino = 200.56.37.23

IP Origen = 190.12.45.186
IP Destino = 200.56.37.23

190.12.45.186

192.168.1.1
Cliente XP
IP = 192.168.1.81

Se cambia la
IP origen 192.168.1.81
por la IP del firewall
190.12.45.186

Servidor WEB
IP = 200.56. 37.23

Sentido de la conexin

Diagrama 4: mecanismo SNAT, cliente accediendo a un Web server.

En la segunda etapa, al paquete que llega al firewall se le aplica el proceso inverso: se le cambia
la IP Destino (que es la IP Publica del firewall) por la IP del cliente XP en la red local. El kernel
mantiene una tabla NAT para asegurar que el destino sea el cliente XP original. El siguiente
diagrama muestra el cambio en las cabeceras restableciendo la IP original del cliente XP
(observe el sentido de la conexin):
Respuesta del Web Server

Paquete respuesta, cabeceras invertidas

IP Origen = 200.56.37.23
IP Destino = 190.12.45.186

IP Origen = 200.56.37.23
IP Destino = 192.168.1.81

192.168.1.1

190.12.45.186

Sentido de la conexin

Cliente XP
IP = 192.168.1.81

Servidor WEB
IP = 200.56. 37.23

Diagrama 5: mecanismo SNAT, respuesta del Web server al cliente XP.


Observe las cabeceras de los paquetes IP.

Dentro del kernel, se realiza la siguiente operacin:


IP Origen
190.12.45.186

LAN -- > WAN

IP Destino
200.56.17.234

DATA

WAN -- > LAN


IP Destino
190.12.45.186
IP Origen
200.56.17.234

IP Origen
192.168.1.56

DATA

IP Destino
192.168.1.56

Linux Seguridad en Redes

Pg. 15

Sistemas UNI

2.7 Diagrama de flujo de anlisis de las reglas de NETFILTER

Ingreso de Paquetes

Chequeo de Integridad

PREROUTING

ROUTING

INPUT

Destino
Local?

IP
Forward
activo?

Proceso Local

ROUTING
FORWARD
OUTPUT

ROUTING

POSTROUTING

Salida de Paquetes

Linux Seguridad en Redes

Pg. 16

Sistemas UNI

Ejemplos de Pizarra.
Escenario 1. Un cliente desea conectarse va putty a un servidor usando el protocolo telnet. El
cliente posee IP=192.168.1.94 y el servidor IP=192.168.1.9. El servidor esta bloqueado en
poltica DROP. Indique que reglas permitir el acceso va telnet al servidor desde el cliente.
Diagrama del escenario 1:
Cliente
192.168.1.94

Inicio de conexin: el cliente


solicita conexin al puerto 23 del servidor

Servidor
192.168.1.9

Respuesta del servidor: se acepta el


pedido del cliente. Conexin establecida.

Reglas:
a) Regla para aceptar la solicitud del cliente:
iptables -A INPUT -i eth0 -p tcp -s 192.168.1.94 --sport 1024: -d 192.168.1.9 --dport 23 -j
ACCEPT
b) Regla para permitir respuestas al cliente y establecer la conexin:
iptables -A OUTPUT -o eth0 -p tcp -s 192.168.1.9 --sport 23 -d 192.168.1.94 --dport 1024:
-j ACCEPT
Desglosado de las reglas de filtrado:

Elemento
iptables
-A INPUT
-i eth0
-p tcp
-s 192.168.1.94
--sport 1024:
-d 192.168.1.9
--dport 23
-j ACCEPT

Elemento
iptables
-A OUTPUT
-o eth0
-p tcp
-s 192.168.1.9
--sport 23
-d 192.168.1.94
--dport 1024:
-j ACCEPT

Linux Seguridad en Redes

Cadena INPUT
Se invoca (ejecuta) la herramienta de usuario
Aadir una Cadena INPUT
Regla 1. Paquete entra por interface eth0
Regla 2. Protocolo encapsulado TCP
Regla 3. Origen del paquete IP=192.168.1.94
Regla 4. Puerto origen del paquete desde 1024 hasta 65535
Regla 5. Destino del paquete IP=192.168.1.9
Regla 6. Puerto destino del paquete: puerto 23
Objetivo de la regla: aceptar la entrada del paquete

Cadena OUTPUT
Se invoca (ejecuta) la herramienta de usuario
Aadir una Cadena OUTPUT
Regla 1. Paquete sale por interface eth0
Regla 2. Protocolo encapsulado TCP
Regla 3. Origen del paquete IP=192.168.1.9
Regla 4. Puerto origen del paquete: puerto 23
Regla 5. Destino del paquete IP=192.168.1.94
Regla 6. Puerto destino del paquete desde 1024 hasta 65535
Objetivo de la regla: aceptar la salida del paquete
Pg. 17

Sistemas UNI

Escenario 2. Los clientes de la red local desean conectarse a servidores ubicados en la red
Internet. Dichos clientes utilizan aplicaciones clientes de diferentes tipos. Establecer reglas en
el firewall que permitan el paso de los paquetes entre ambas redes atravesando el firewall.
Diagrama del escenario 2:
FIREWALL
Cliente en
Servidor en
red local - LAN

Regla 1: permitir paquetes


de LAN a WAN

red internet -WAN

Regla 2: permitir paquetes


de WAN a LAN

Reglas:
1) Regla para permitir el paso de paquetes desde la red LAN hacia la red WAN:
iptables -A FORWARD -i eth1 -o eth0 -p tcp -s 192.168.1.0/24 --sport 1024: ! -d 192.168.1.0/24
--dport :1023 -j ACCEPT
2) Regla para permitir el paso de paquetes desde la red WAN hacia la red LAN:
iptables -A FORWARD -i eth0 -o eth1 -p tcp -s 0.0.0.0/0 --sport :1024 -d 192.168.1.0/24 -dport 1024: -j ACCEPT
Desglosado de las reglas de filtrado:

Elemento
iptables
-A FORWARD
-i eth1
-o eth0
-p tcp
-s 192.168.1.0/24
--sport 1024:
! -d 192.168.1.0/24
--dport :1023
-j ACCEPT

Elemento
iptables
-A FORWARD
-i eth0
-o eth1
-p tcp
-s 0.0.0.0/0
--sport :1023
-d 192.168.1.0/24
--dport 1024:
-j ACCEPT

Linux Seguridad en Redes

Cadena FORWARD: LAN WAN


Se invoca (ejecuta) la herramienta de usuario
Aadir una Cadena FORWARD
Regla 1. Paquete entra por interface eth1
Regla 2. Paquete sale por interface eth0
Regla 3. Protocolo encapsulado TCP
Regla 4. Origen del paquete: red 192.168.1.0/24
Regla 5. Puerto origen del paquete desde 1024 hasta
65535
Regla 6. Destino del paquete: que no sea la red local
Regla 7. Puerto destino del paquete desde 0 hasta 1023
Objetivo de la regla: aceptar el paso del paquete

Cadena FORWARD: WAN LAN


Se invoca (ejecuta) la herramienta de usuario
Aadir una Cadena FORWARD
Regla 1. Paquete entra por interface eth0
Regla 2. Paquete sale por interface eth1
Regla 3. Protocolo encapsulado TCP
Regla 4. Origen del paquete: la red internet (cualquier
origen)
Regla 5. Puerto origen del paquete desde 0 hasta 1023
Regla 6. Destino del paquete la red local (192.168.1.0/24)
Regla 7. Puerto destino del paquete desde 1024 hasta
65535
Objetivo de la regla: aceptar el paso del paquete
Pg. 18

Sistemas UNI

Control de Navegacin WWW: Servidor Proxy SQUID


3.1 Breve historia de Squid
En el principio era el servidor HTTP CERN. Adems de funcionar como un servidor HTTP, fue
tambin el primer proxy cach. El mdulo de almacenamiento en cach fue escrito por Ari
Luotonen en 1994.
Ese mismo ao, el Internet Research Task Force Group sobre el Resource Discovery (IRTF-RD)
inici el proyecto Harvest. Se trata de "un conjunto integrado de herramientas para recoger,
extraer, organizar, bscar, cach y reproducir " la informacin de Internet. Me un al proyecto
Harvest cerca del final de 1994. Aunque la mayora de la gente usaba Harvest como motor de
bsqueda local (o distribuido), el componente Object Cach era muy popular tambin. El cach
Harvest se jact de tres grandes mejoras en la cach del CERN: el uso del sistema de archivos
ms rpido, un diseo de nico proceso, y almacenamiento en cach de las jerarquas a travs
del protocolo de Cach de Internet.
Hacia el final de 1995, muchos miembros del equipo de Harvest se trasladaron al apasionante
mundo de las compaas recin creadas basadas en Internet. Los autores originales del cdigo
de cach de Harvest, Peter Danzig y Anawat Chankhunthod, lo convirtieron en un producto
comercial. Su empresa fue ms tarde adquirida por Network Appliance. A principios de 1996,
me incorpor al Laboratorio Nacional de Investigacin de Aplicaciones de Red (NLANR) para
trabajar en el proyecto Cach de Recursos de Informacin (IRCache), financiado por la National
Science Foundation. En relacin con este proyecto, que tom el cdigo de cach de Harvest, se
le cambi el nombre a SQUID, y se liber bajo la licencia GNU General Public License.
Desde ese tiempo Squid ha crecido en tamao y caractersticas. Ahora soporta un nmero de
cosas increbles tales como el redireccionamiento de URL, de trfico, controles sofisticados de
acceso, numerosos mdulos de autenticacin, opciones avanzadas de almacenamiento en
disco, HTTP intercepcin, y el modo sustituto (tambin conocido como HTTP servidor de
aceleracin).
La financiacin del proyecto IRCache termin en julio de 2000. Hoy en da, un nmero de
voluntarios siguen desarrollando y apoyando Squid. A veces, recibimos financiamiento de otro
tipo de apoyo de empresas que se benefician de Squid.
Mirando hacia el futuro, estamos reescribiendo Squid en C + + y, al mismo tiempo, en la
correcin de un nmero de problemas de diseo en el cdigo ms antiguo que se limita a las
nuevas prestaciones. Estamos aadiendo apoyo para protocolos como Edge Side Incluye (ESI) e
Internet Content Adaptation Protocol (ICAP). Tambin tenemos previsto hacer Squid con
soporte IPv6. Unos pocos desarrolladores estn constantemente haciendo correr mejor Squid
en plataformas Microsoft Windows. Por ltimo, vamos a aadir ms y ms HTTP/1.1
caractersticas y el trabajo hacia el cumplimiento pleno con la ltima especificacin del
protocolo.
Tomado del libro Squid The definitive Guide de Duane Wessels
Publisher: O'Reilly
Pub Date: January 2004
ISBN: 0-596-00162-2
Pages: 496

Linux Seguridad en Redes

Pg. 19

Sistemas UNI

3.2 Qu es un Servidor Proxy?


El trmino en ingles Proxy tiene un significado muy general y al mismo tiempo ambiguo,
aunque invariablemente se considera un sinnimo del concepto de Intermediario. Se suele
traducir, en el sentido estricto, como delegado o apoderado (el que tiene el poder sobre otro).
Un Servidor Intermediario (Proxy) se define como una computadora o dispositivo que ofrece
un servicio de red que consiste en permitir a los clientes realizar conexiones de red indirectas
hacia otros servidores de red ubicados en la Internet. Durante el proceso ocurre lo siguiente:
Cliente se conecta hacia un Servidor Intermediario (Proxy).
Cliente solicita una conexin, fichero u otro recurso disponible en un servidor
distinto.
Servidor Proxy proporciona el recurso ya sea conectndose hacia el servidor
especificado o sirviendo ste desde un cach.
En algunos casos el Servidor Proxy puede alterar la solicitud del cliente o bien
la respuesta del servidor para diversos propsitos.
Los Servidores Proxys generalmente se hacen trabajar simultneamente como firewalls
operando en el Nivel de Red, actuando como filtro de paquetes, como en el caso de iptables, o
bien operando en el Nivel de Aplicacin, controlando diversos servicios, como es el caso de
TCP Wrapper. Dependiendo del contexto, el muro cortafuegos tambin se conoce como BPD o
Border Protection Device o simplemente filtro de paquetes.
Una aplicacin comn de los Servidores Proxys es funcionar como cach de contenido de Red
(principalmente HTTP), proporcionando en la proximidad de los clientes un cach de pginas y
archivos disponibles a travs de la Red en servidores HTTP remotos, permitiendo a los clientes
de la red local acceder hacia stos de forma ms rpida y confiable.
Cuando se recibe una peticin para un recurso de Red especificado en un URL (Uniform
Resource Locator) el Servidor Proxy busca el resultado del URL dentro del cach. Si ste es
encontrado, el Servidor Proxy responde al cliente proporcionado inmediatamente el contenido
solicitado. Si el contenido solicitado no estuviera disponible en el cach, el Servidor Proxy lo
traer desde servidor remoto, entregndolo al cliente que lo solicit y guardando una copia en
el cach. El contenido en el cach es eliminado luego a travs de un algoritmo de expiracin de
acuerdo a la antigedad, tamao e historial de respuestas a solicitudes (hits) (ejemplos: LRU,
LFUDA y GDSF).
Los Servidores Proxy para contenido de Red (Web Proxies) tambin pueden actuar como filtros
del contenido servido, aplicando polticas de censura de acuerdo a criterios arbitrarios.
En resumen:

Funcionan como cortafuegos y como filtro de contenidos.


Son un mecanismo de seguridad implementado por el ISP o los
administradores de la red en un entorno de Intranet para desactivar el acceso o
filtrar las solicitudes de contenido para ciertas sedes web consideradas
ofensivas o dainas para la red y los usuarios.
Mejoran el rendimiento.

Linux Seguridad en Redes

Pg. 20

Sistemas UNI

Guardan en la antememoria las pginas web a las que acceden los sistemas de
la red durante un cierto tiempo. Cuando un sistema solicita la misma pgina
web, el servidor proxy utiliza la informacin guardada en la memoria cach en
lugar de recuperarla del proveedor de contenidos. De esta forma, se accede
con ms rapidez a las pginas Web.

3.3 Como trabaja el servidor proxy SQUID (mecanismo aproximado).-

Transito de datos
sin SQUID

Firewall Linux
Kernel
Linux

Trnsito HTTP

Cliente XP
Local

Trnsito HTTP

2
Proxy Squid
Puerto 3128

Transito de datos
sin SQUID

Servidor
Web
Internet

4
3

Diagrama 3.3.1. El transito de datos HTTP va por las flechas azules (pasos 1 al 5)

En el diagrama se muestra la forma aproximada en que el programa Squid trabaja.


Trataremos de dar un alcance del procedimiento de control ilustrado en la figura:

1. El cliente abre un cliente WEB (Internet Explorer y/o Mozilla) y solicita una pgina
web determinada.
2. El kernel de Linux deriva la solicitud, mediante una operacin NAT, a la aplicacin que
responde al puerto 3128, el cual es, en este caso, nuestro servidor proxy Squid.
3. Este programa utiliza las Listas de Control de Acceso para restringir la navegacin.
Estas listas, como su nombre lo indica, contiene las restricciones de navegacin, WEBS
NO PERMITIDAS. El servidor consulta las listas y determinada si est permitida la
navegacin o no.
4. Si la navegacin no est permitida para la URL solicitada, entonces se le enva un
mensaje de prevencin al usuario a travs del cliente navegador web. De esta manera
ya se encuentra en aviso.
5. Si la URL solicitada no se encuentra bloqueada por las listas, entonces se procede a
traer la pgina web solicitada.
Cuando la pagina es trada se almacena una copia en el cache dentro del disco duro que el
programa Squid ha preparado en la ruta /var/spool/squid. Aca se almacena el cache del
servidor proxy Squid.

Linux Seguridad en Redes

Pg. 21

Sistemas UNI

Transito de datos
sin SQUID

Transito de datos
sin SQUID

Kernel
Linux

Trnsito HTTP

Trnsito HTTP

8
Cliente XP
Local

Servidor
Web
Internet

Proxy Squid
Puerto 3128

Diagrama 3.3.2
Una vez establecido la conexin con el servidor web, se trae la pgina web solicitada; cuando
llega al firewall este enva la pgina al cliente de la siguiente manera:
6. El servidor web responde a la solicitud de pgina web hecha por el firewall. Entonces
este responde directamente al proxy squid, no al cliente XP de la red local.
7. Cuando llega la pgina web solicitada al firewall, el squid toma una copia y lo guarda
en su cache para posteriores solicitudes.
8. Finalmente, se entrega la pgina solicitada al cliente de la red local

3.4 Instalacin y configuracin del servidor proxy Squid.


La instalacin de aplicaciones en servidores basados en Linux por lo general se resuelve
utilizando la herramienta de instalacin de la distribucin utilizada (Debian, CentOS, Mandriva,
etc); sin embargo sera mejor utilizar las herramientas en formato fuente (squid-3.1.1.tar.gz).
La pregunta es: porque no usar simplemente la versin pre-compilada binaria y esperar que
funcione bien? La primera razn es que el cdigo de squid necesita saber acerca de ciertos
parmetros del sistema operativo. De forma particular, el mximo nmero de descriptores de
archivos abiertos. El script configure prueba estos valores antes de compilar el programa. Si se
instala squid compilado en un sistema con ciertos valores y se utiliza en otro con diferentes
valores, se pueden encontrar errores de funcionamiento.

Otra razn para usar las fuentes en vez de los pre-compilados, son las opciones disponibles al
tiempo de compilacin. Si instala los binarios compilados por otros, y estos no incluyen las
opciones que usted necesita, deber compilar squid en forma personalizada.
Para nuestra suerte, Debian ya posee los binarios listos para instalar incluyendo la versin 3.0
de Squid. Si el lector desea, puede descargar los fuentes desde:
Linux Seguridad en Redes

Pg. 22

Sistemas UNI

http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz
Usando los mirrors de Debian, simplemente ejecute el siguiente comando

# aptitude install squid


Si su sistema est bien configurado, no habr problemas durante la instalacin de los paquetes.

3.5 Parmetros de configuracin inicial del Squid.El archivo de configuracin de squid normalmente se ubica en el directorio /etc/squid. Sin
embargo, si usted compilo squid desde los fuentes, revise las opciones de compilacin para
determinar el directorio personalizado de instalacin del archivo de configuracin del squid.
Asumiremos que el archivo se encuentra ubicado en el directorio /etc/squid. Entonces la ruta
absoluta al archivo ser:
/etc/squid/squid.conf
Parmetro http_port.- Se utiliza para establecer el puerto a travs del cual squid escucha las
peticiones desde los clientes. Existen diversas opciones para este parmetro; sin embargo
tambin puede utilizarse para establecer el proxy transparente para la red local.
Ejemplo:
http_port 3128
http_port 3128 transparent
http_port 192.168.1.1:3128

# establece el puerto a 3128


# establece el puerto a 3128 con proxy
transparente
# de igual forma pero enlazado a la IP
192.168.1.1 de manera exclusiva

Parmetro coredump_dir.- Establece la ubicacin donde squid almacenara el cache. Por lo


general se ubica en el directorio /var/spool/squid.
Ejempo:
coredump_dir /var/spool/squid
# Ubicacin del cache de squid
Parmetro cache_mem.- Este parmetro establece cuanto de memoria RAM utilizara squid
como cache de objetos (solicitudes de los usuarios).
Ejemplo:
cache_mem

8 MB

Linux Seguridad en Redes

Pg. 23

Sistemas UNI

Parmetro cache_dir.- El parmetro cache_dir se utiliza para establecer que tamao se desea
que tenga el cach en el disco duro para Squid.
Ejemplo:
cache_dir ufs /var/spool/squid 100 16 256
Esto establece un cache en disco con 100 MB de capacidad, con 16 directorios subordinados y
256 niveles subordinados bajo cada uno de los 16 anteriores. Si desea un cache de 780 MB, 24
directorios de primer nivel con 180 subniveles cada uno, la lnea deber verse de esta manera:
cache_dir ufs /var/spool/squid 780 24 180

Parmetro access_log.- Establece la ubicacin del archivo de log y su formato de


almacenamiento y/o registro. Por defecto utiliza el formato squid, pero se puede modificar
usando la etiqueta logformat.
Ejemplo:
access_log /var/log/squid/access.log squid

3.6 Herramientas: Listas de Control de Acceso (ACL).


Esta etiqueta permite crear los elementos que sern procesados por el demonio squid y
estarn sujetas a las restricciones que el administrado establezca para ellos. Se definen listas de
control de acceso (Access Control List ACL) para cada elemento que utilice el demonio squid
ya sea como miembro de la red local o como elemento de restriccin de navegacin.
Cada lista de control de acceso definida debe empezar con un nombre y un tipo, seguido de los
argumentos segn el tipo especificado de lista. Los argumentos pueden estar definidos
explcitamente o agrupados en archivos cuyo nombre debe estar entre comillas dobles.
Ejemplos de listas de control de acceso:
a)
b)
c)
d)

acl
acl
acl
acl

redlocal src 192.168.1.0/24


adultos src /etc/squid/bloqueados/sin-acceso
gerencia src 192.168.1.34-192.168.1.45/32
porno url_regex src -i /etc/squid/negados

En estos ejemplos redlocal, adultos, gerencia y porno son los nombres de las listas de control
definidas. La etiqueta src establece los parmetros que forman parte de las listas. Se pueden
establecer los parmetros en archivos como en el ejemplo b) y d). En estos casos, se debe
colocar un argumento por lnea. La etiqueta url_regex define otro tipo de lista la cual busca la
presencia de los argumentos almacenados en el archivo sin-acceso, en la URL del navegador
web del cliente. Luego, se aplica las restricciones correspondientes.

Linux Seguridad en Redes

Pg. 24

Sistemas UNI

3.7 Mecanismos de control de navegacin: etiqueta http_access.Esta etiqueta permite establecer la salida a la navegacin o negar dicho permiso segn lo
establezca en administrador de la red. Una vez definida la lista de control y establecidos sus
argumentos, procedemos a permitir o negar la salida segn criterio.
Ejemplo:
Para el ejemplo anterior, la lista c) debe navegar sin ninguna restriccin; entonces
establecemos su etiqueta de la siguiente manera:

acl gerencia src 192.168.1.34-192.168.1.45/32


http_access allow gerencia
De esta forma, los miembros de la lista gerencia pueden empezar a navegar sin problema a
travs del proxy squid.
Las listas adultos y porno definen listas con elementos restringidos para su navegacin; por
lo tanto ambas estarn definidas de la siguiente manera:

acl adultos src /etc/squid/bloqueados/sin-acceso


acl porno url_regex src -i /etc/squid/negados
http_access deny adultos porno
Si las listas de control de acceso pertenecen todas a una misma red local, podemos establecer
nuestras reglas de la siguiente manera:
acl
acl
acl
acl

gerencia src 192.168.1.34-192.168.1.45/32


adultos src /etc/squid/bloqueados/sin-acceso
porno url_regex src -i /etc/squid/negados
redlocal src 192.168.1.0/24

http_access
http_access
http_access
http_access

allow gerencia
deny adultos
deny porno
allow redlocal

Reinicie el demonio squid ( /etc/init.d/squid restart ) y verifique la navegacin de los clientes y


las restricciones correspondientes. No se olvide de crear los archivos sin-acceso y negados
con los argumentos a restringir. Coloque los elementos a restringir en ambos archivos.

Linux Seguridad en Redes

Pg. 25

Sistemas UNI

FIREWALL AntiVirus Control de contenido malicioso usando Linux


4.1 Firewall antivirus
Las conexiones a internet son puertas traseras subestimadas para los malware en su
computador. Si usted transfiere informacin sin filtrar desde internet a su computador
personal, lo que esta logrando es propagar toso tipo de archivos maliciosos aparte de
contagiarse de todo tipo de malware hacia la red local de su empresa u oficina.
Un firewall trabaja a nivel de la capa de red y de transporte segn ambos modelos de red
vigentes en el mundo de las redes informticas:
Modelo OSI

Modelo TCP/IP

Aplicacin
Presentacin

Aplicacin

Sesin
Transporte

TCP

UDP

Red

IP

Enlace

Soporte
De
Red

Fsica

Firewall en capa de
APLICACION:
SQUID, ANTIVIRUS.
Firewall en capa de
RED y TRANSPORTE:
NETFILTER.

En este punto, veremos como aadir un nivel ms de proteccin contra este tipo de software
malicioso que fcilmente se propaga por internet simplemente por el hecho de estar
conectado sin ningn tipo de proteccin.
NOTA: este mecanismo de ninguna manera trata de remplazar a las protecciones que cada
computadora de la red local posea. De ninguna manera desactive o peor aun, desinstale el
antivirus de cada maquina de la red local. Este procedimiento solo aade un nivel de
proteccin adicional al antivirus personal de cada PC.

4.2 Implementar un firewall antivirus usando AVIRA antivirus


AVIRA antivirus es una buena eleccin para implementar un firewall antivirus por una buena
razn: es muy fcil de implementar usando Linux. No hay configuraciones avanzadas, tampoco
hay que instalar software muy avanzado (aparte del antivirus, claro esta) sino que una vez
instalado el antivirus, configuramos el software y reiniciamos el programa. El costo es
promedio comparado con algunos programas del mismo nivel.
Para este procedimiento se necesita reconfigurar el acceso de los clientes de la red local para
que accedan directamente al software antivirus instalado en el servidor firewall.
Este software es bastante sencillo de configurar. Es uno de los mas baratos del mercado; sin
embargo el usuario siempre debe verificar si esta en el ranking de los TOPS frente a otros
competidores del mercado.
Linux Seguridad en Redes

Pg. 26

Sistemas UNI

4.3 Los tipos de malware


Para entender qu tipos de amenazas para sus datos existen, es til saber qu tipos de
malware existen y cmo esos funcionen. En general se puede dividir el malware en los
siguientes clases:

Tipo
Virus clsicos

Gusanos de red

Caballos de Troya, troyanos

Spyware

Caractersticas
Programas que infectan a otros programas por aadir su cdigo
para tomar el control despus de ejecucin de los archivos
infectados. El objetivo principal de un virus es infectar. La
velocidad de propagacin de los virus es algo menor que la de
los gusanos.
Este tipo de malware usa los recursos de red para distribuirse.
Su nombre implica que pueden penetrar de un equipo a otro
como un gusano. Lo hacen por medio de correo electrnico,
sistemas de mensajes instantneos, redes de archivos
compartidos (P2P), canales IRC, redes locales, redes globales,
etc. Su velocidad de propagacin es muy alta.
Al penetrar un equipo, el gusano intenta obtener las
direcciones de otros equipos en la red para empezar enviarles
sus copias. Tambin suelen usar los datos del libro de contactos
del cliente de correo electrnico. La mayora de los gusanos se
propagan en forma de archivos pero existe una pequea
cantidad de gusanos que se propagan en forma de paquetes de
red y penetran directamente la memoria RAM del equipo
vctima, donde a continuacin ejecutan su cdigo.
Esta clase de programas maliciosos incluye una gran variedad
de programas que efectan acciones sin que el usuario se d
cuenta y sin su consentimiento: recolectan datos y los envan a
los criminales; destruyen o alteran datos con intenciones
delictivas, causando desperfectos en el funcionamiento del
ordenador o usan los recursos del ordenador para fines
criminales, como hacer envos masivos de correo no solicitado.
No son virus clsicos porque no infecta otros programas o
datos. Los troyanos no pueden penetrar a los equipos por si
mismo, sino se propagan por los criminales bajo la vela de
algn software deseable. Son capaz de causar mucho ms
dao que los virus clsicos.
Software que permite colectar la informacin sobre un
usuario/organizacin de forma no autorizada. Su presencia
puede ser completamente invisible para el usuario.
Pueden colectar los datos sobre las acciones del usuario, el
contenido del disco duro, software instalado, calidad y
velocidad de la conexin, etc.
Pero no es su nica funcin. Son conocidos por lo menos dos
programas (Gator y eZula) que permiten tambin controlar el
equipo. El otro ejemplo de programas espas son los programas

Linux Seguridad en Redes

Pg. 27

Sistemas UNI

Phishing

Adware

Riskware

Bromas

Rootkits

Otros programas maliciosos

Spam

Linux Seguridad en Redes

que instalan su cdigo el navegador de Internet para


redireccionar el trfico. Posiblemente haya visto cmo
funcionan, cuando en cambio de la pgina web solicitada se
abre una otra.
Es una variedad de programas espas que se propaga a travs
de correo. Metan recibir los datos confidenciales del usuario,
de carcter bancario preferente. Los emails phishing estn
diseadas para parecer igual a la correspondencia legal enviada
por organizaciones bancarias, o algunos brands conocidos.
Tales emails contienen un enlace que redirecciona al usuario a
una pgina falsa que va a solicitar entrar algunos datos
confidenciales, como el numero de la tarjeta de crdito.
Muestran publicidad al usuario. La mayora de programas
adware son instalados a software distribuido gratis. La
publicidad aparece en la interfaz. A veces pueden colectar y
enviar los datos personales del usuario.
No son programas maliciosos pero contienen una amenaza
potencial. En ciertas situaciones ponen sus datos a peligro.
Incluyen programas de administracin remota, marcadores,
etc.
Este grupo incluye programas que no causan ningn dao
directo a los equipos que infectan. No obstante, muestran
advertencias falsas sobre supuestos daos ocurridos o por
ocurrir. Pueden ser mensajes advirtiendo a los usuarios de que
los discos se han formateado, que se ha encontrado un virus o
se han detectado sntomas de infeccin. Las posibilidades son
limitadas slo por el sentido del humor del autor del virus.
Un rootkit es una coleccin de programas usados por un hacker
para evitar ser detectado mientras busca obtener acceso no
autorizado a un ordenador. Esto se logra de dos formas:
reemplazando archivos o bibliotecas del sistema; o instalando
un mdulo de kernel. El hacker instala el rootkit despus,
obteniendo un acceso similar al del usuario: por lo general,
craqueando una contrasea o explotando una vulnerabilidad,
lo que permite usar otras credenciales hasta conseguir el
acceso de raiz o administrador.
Son una serie de programas que no afectan directamente a los
ordenadores, pero que se usan para crear virus, troyanos o
para realizar actividades ilegales como ataques DoS y penetrar
en otros ordenadores, etc.
Los mensajes no solicitados de remitente desconocido
enviados en cantidades masivas de carcter publicitario,
poltico, de propaganda, solicitando ayuda, etc. Un otro clase
de spam hacen las propuestas relacionadas con varias
operaciones ilegales con dinero o participacin en algn
supernegocio. Tambin hay emails dedicados a robo de
contraseas o nmeros de tarjetas de crdito, cartas de
cadena, etc. Spam genera una carga adicional a los servidores
de correo y puede causar prdidas de la informacin deseada.
Pg. 28

Sistemas UNI

4.4 Como trabaja SQUID con AVIRA antivirus


El siguiente diagrama ilustrara un poco el manejo de este antivirus y su sencilla configuracin
para aadir un nivel ms de proteccin a nuestra red local SOHO o empresarial:

KERNEL
Solicitud
HTTP al
kernel

Cliente XP

Squid
solicita
pgina
WEB

Servidor
WEB

SQUID
puerto 3128
Esquema de trabajo entre el kernel y el proxy squid. La doble lnea de color rojo a la derecha indica
que la solicitud HTTP del cliente XP la realiza el proxy squid directamente.

Ahora, aadimos el antivirus AVIRA al firewall, lo configuramos y debe quedar de la siguiente


manera:

KERNEL
Solicitud
HTTP al
kernel

Cliente XP

AVIRA
puerto 3128

Squid
solicita
pgina
WEB

Servidor
WEB

SQUID
puerto 8080

Esquema de trabajo con el antivirus aadido al firewall. Note los cambios en los puertos de las
aplicaciones en cuestin.

En el caso del firewall antivirus, se realiza un cambio en los puertos en los cuales escucha cada
aplicacin involucrada:

El proxy squid cambia del puerto 3128 al puerto 8080.


El antivirus AVIRA toma el puerto 3128 y deriva las solicitudes al puerto 8080
del squid.

Linux Seguridad en Redes

Pg. 29

Sistemas UNI

La comunicacin entre el proxy y el antivirus es vital para el filtrado de los


virus.

Los mejores antivirus del mercado para un servidor firewall por lo general son con licencia. La
mayora tienen un costo accesible para el entorno empresarial. Es preferible invertir en una
licencia anual cuyo costo aproximado varia entre 80 y 170 dlares americanos. Existen para
todos los gustos, pero en mi modesta opinin, AVIRA se ajusta a un costo accesible para un
buen producto antivirus.

4.5 Mdulos de AVIRA Antivirus Webgate


Este software de seguridad antivirus consiste en los siguientes mdulos:

Motor Antivirus
Actualizador
Programa Principal Webgate
Libreras de filtrado URL
Libreras de control de acceso y contenidos Web

Motor Antivirus. Representa el motor de bsqueda y reparacin de mdulos del software


antivirus.

Actualizador. Este programa descarga las actualizaciones desde los servidores web de Avira
Antivirus y los instala a intervalos regulares, manual o automticamente. Tambin enva
notificaciones de actualizaciones a travs del correo electrnico. Puede actualizar el software
en su totalidad o por componentes: motor, firmas o el scanner de virus.

Programa Principal Webgate. Este programa es el sistema central del antivirus. Supervisa el
acceso a los servicios HTTP y FTP a travs de la red internet. Detecta virus y programas no
deseados utilizando el Motor Antivirus.

Librera de Filtrado de URL Avira. El Antivirus WEBGATE de AVIRA usa un filtro local para
determinar si un URL es peligroso, basado en una lista de URL, agrupados en tres categoras:
Malware, Phishing y Fraude. Para incrementar su seguridad, Avira URL Filter esta activada
encada instalacin valida de AVIRA WEBGATE.
Librera de Control de Acceso y Contenido AVIRA. AntiVir WebGate permite a los clientes filtrar
las solicitudes de salida sobre la base de categoras de URL, tales como Violencia, Juegos de
Azar, Ertico, etc.

ALGUNOS ENLACES DE INTERES

PC-MAGAZINE.
http://www.pcmag.com/article2/0,2817,2372364,00.asp
http://dottech.org/freeware-reviews/14151/

Linux Seguridad en Redes

Pg. 30

Sistemas UNI

Cifrado de datos y Clave Pblica


5.1 Criptografa: Seguridad en la transferencia de datos
5.1.1 Trminos ms usados en criptografa.
Texto claro o texto plano: Es la informacin original, generada usando programas

tpicos de software tales como procesadores de texto y/o bases de datos, hojas de
clculo, etc. Puede ser leda sin ningn problema.
Texto cifrado o codificado: La informacin resultante despus de cifrar un texto plano.
Esta informacin no es legible (no es posible de entender).
Cifrar: Operacin de pasar un texto claro a texto codificado.
Descifrar: Paso contrario a cifrar, convertir un texto cifrado o criptograma a texto
plano.
Clave: Informacin secreta que es usada para codificar y descodificar los textos. Es la
llave (o las llaves) que abre la puerta.
Algoritmo de clave simtrica: Algoritmo de cifrado que utiliza para cifrar y descifrar la
misma clave. Estos algoritmos se caracterizan por ser muy rpidos en cifrar-descifrar,
no aumenta el volumen de informacin y son casi imposible de romper obtener la
informacin del texto claro sin saber la clave. Como ejemplo de algoritmo de clave
simtrica tenemos a AES, 3DES o LOKI por citar dos de los muchos. El problema es
que solo deben ser usados en forma local, pues por cada pareja de usuarios se debe
crear, en teora, una clave simtrica.
Algoritmo de clave pblica o asimtricos: Algoritmos que utilizan diferentes clave
para cifrar (clave pblica) y descifrar (clave privada). Son ms lentos, aumentan el
volumen de informacin, necesitan una longitud de clave mayor para alcanzar o
intentar aproximarse a los algoritmos simtricos, requieren ms potencia de clculo
por lo cual ms tiempo, para cifrar y descifrar. Todos los algoritmos modernos
RSA y El Gamal por nombrar algunos son asimtricos.

5.2 Qu es la criptografa?
La criptografa es la ciencia de usar las matemticas para cifrar y descifrar datos. Una vez que la
informacin ha sido cifrada, puede ser almacenada en un medio inseguro o enviada a travs de
una red insegura (como Internet) y aun as permanecer secreta. Luego, los datos pueden
descifrase a su formato original.

5.3 Qu es el proceso de encriptacin y des-encriptacin?


La encriptacin es el proceso en el cual los datos a proteger son traducidos a algo que parece
aleatorio y que no tiene ningn significado (los datos encriptados o cifrados). La desencriptacin es el proceso en el cual los datos encriptados son convertidos nuevamente a su
forma original (es decir, informacin totalmente legible).

5.4 Qu es un algoritmo criptogrfico?


Un algoritmo criptogrfico, o de cifrado, es una funcin matemtica usada en los procesos de
encriptacin y des-encriptacin. Un algoritmo criptogrfico trabaja en combinacin con una
llave (un nmero, palabra, frase, o contrasea) para cifrar y descifrar datos. Para cifrar, el
Linux Seguridad en Redes

Pg. 31

Sistemas UNI

algoritmo combina matemticamente la informacin a proteger con una llave provista. El


resultado de este clculo son los datos encriptados. Para descifrar, el algoritmo hace un clculo
combinando los datos encriptados con una llave provista, siendo el resultado de esta
combinacin los datos originales (exactamente igual a como estaban antes de ser encriptados
si se us la misma llave). Si la llave o los datos son modificados el algoritmo produce un
resultado diferente. El objetivo de un algoritmo criptogrfico es hacer tan difcil como sea
posible descifrar los datos sin utilizar la llave. Si se usa un algoritmo de encriptacin realmente
bueno, entonces no hay ninguna tcnica significativamente mejor que intentar metdicamente
con cada llave posible. Incluso para una llave de slo 40 bits, esto significa 240 (poco ms de 1
trilln) de llaves posibles.

5.5 Qu diferencias hay entre los algoritmos simtricos y los asimtricos?


Los algoritmos simtricos cifran y descifran con la misma llave. Las principales ventajas de los
algoritmos simtricos son su seguridad y su velocidad. Los algoritmos asimtricos cifran y
descifran con diferentes llaves. Los datos se cifran con una llave pblica y se descifran con una
privada, siendo sta su principal ventaja. Los algoritmos asimtricos, tambin conocidos como
algoritmos de llave (clave) pblica, necesitan al menos una llave de 3.000 bits para alcanzar un
nivel de seguridad similar al de uno simtrico de 128 bits. Y son increblemente lentos, tanto
que no pueden ser utilizados para cifrar grandes cantidades de informacin. Los algoritmos
simtricos son aproximadamente 1.000 veces ms rpidos que los asimtricos.

5.6 Que es una VPN (Virtual Private Network = Red Privada Virtual)
Hace unos aos no era tan necesario conectarse a Internet por motivos de trabajo. Conforme
ha ido pasando el tiempo las empresas han visto la necesidad de que las redes de rea local
superen la barrera de lo local permitiendo la conectividad de su personal y oficinas en otros
edificios, ciudades, comunidades autnomas e incluso pases.
Desgraciadamente, en el otro lado de la balanza se encontraban las grandes inversiones que
era necesario realizar tanto en hardware como en software y por supuesto, en servicios de
telecomunicaciones que permitiera crear estas redes de servicio.
Afortunadamente con la aparicin de Internet, las empresas, centros de formacin,
organizaciones de todo tipo e incluso usuarios particulares tienen la posibilidad de crear una
Red Privada Virtual (VPN) que permita, mediante una moderada inversin econmica y
utilizando Internet, la conexin entre diferentes ubicaciones salvando la distancia entre ellas.
Realmente una VPN no es ms que una estructura de red corporativa implantada sobre una
red de recursos de carcter pblico, como la red internet, pero que utiliza el mismo sistema de
gestin y las mismas polticas de acceso que se usan en las redes privadas. Al fin y al cabo no es
ms que la creacin, sobre una red pblica, de un entorno de carcter confidencial y privado
que permitir trabajar al usuario como si estuviera en su misma red local.

5.7 Por que una VPN


Cuando deseo enlazar mis oficinas centrales con alguna sucursal u oficina remota tengo tres
opciones:

Linux Seguridad en Redes

Pg. 32

Sistemas UNI

Modem: Las desventajas es el costo de la llamada, ya que el costo de esta llamada


sera por minuto conectado, adems sera una llamada de larga distancia, a parte no
contara con la calidad y velocidad adecuadas.

Lnea Privada: Tendra que tender mi cable ya sea de cobre o fibra ptica de un punto
a otro, en esta opcin el costo es muy elevado porque si por ejemplo necesito enlazar
mi oficina central con una sucursal que se encuentra a 200 Kilmetros de distancia el
costo sera por la renta mensual por Kilmetro. Sin importar el uso.

VPN: Los costos son bajos porque solo realizo llamadas locales, adems de tener la
posibilidad de que mis datos viajen ENCRIPTADOS Y SEGUROS, con una buena calidad
y velocidad.

5.8 Como funciona una VPN


Como hemos indicado en un apartado anterior, desde el punto de vista del usuario que se
conecta a ella, el funcionamiento de una VPN es similar al de cualquier red normal, aunque
realmente para que el comportamiento se perciba como el mismo hay un gran nmero de
elementos y factores que hacen esto posible.
La comunicacin entre los dos extremos de la red privada a travs de la red pblica se hace
estableciendo tneles virtuales entre esos dos puntos y usando sistemas de encriptacin y
autentificacin que aseguren la confidencialidad e integridad de los datos transmitidos a travs
de esa red pblica. Debido al uso de estas redes pblicas, generalmente Internet, es necesario
prestar especial atencin a las cuestiones de seguridad para evitar accesos no deseados.
La tecnologa de tneles (Tunneling) es un modo de envo de datos en el que se encapsula un
tipo de paquetes de datos dentro del paquete de datos propio de algn protocolo de
comunicaciones, y al llegar a su destino, el paquete original es desempaquetado volviendo as
a su estado original.
En el traslado a travs de Internet, los paquetes viajan encriptados, por este motivo, las
tcnicas de autenticacin son esenciales para el correcto funcionamiento de las VPNs, ya que
se aseguran a emisor y receptor que estn intercambiando informacin con el usuario o
dispositivo correcto.
La autenticacin en redes virtuales es similar al sistema de inicio de sesin a travs de usuario
y contrasea, pero tienes unas necesidades mayores de aseguramiento de validacin de
identidades.
La mayora de los sistemas de autenticacin usados en VPN estn basados en sistema de claves
compartidas.
La autenticacin se realiza normalmente al inicio de una sesin, y luego, aleatoriamente,
durante el transcurso de la sesin, para asegurar que no haya algn tercer participante que se
haya podido entrometer en la conversacin.
Todas las VPNs usan algn tipo de tecnologa de encriptacin, que empaqueta los datos en un
paquete seguro para su envo por la red pblica.

Linux Seguridad en Redes

Pg. 33

Sistemas UNI

La encriptacin hay que considerarla tan esencial como la autenticacin, ya que permite
proteger los datos transportados de poder ser vistos y entendidos en el viaje de un extremo a
otro de la conexin.
Existen dos tipos de tcnicas de encriptacin que se usan en las VPN: Encriptacin de clave
secreta, o privada, y Encriptacin de clave pblica.
En la encriptacin con clave secreta se utiliza una contrasea secreta conocida por todos los
participantes que van a hacer uso de la informacin encriptada. La contrasea se utiliza tanto
para encriptar como para desencriptar la informacin. Este tipo de sistema tiene el problema
que, al ser compartida por todos los participantes y debe mantenerse secreta, al ser revelada,
tiene que ser cambiada y distribuida a los participantes, lo que puede crear problemas de
seguridad.
La encriptacin de clave pblica implica la utilizacin de dos claves, una pblica y una secreta.
La primera es enviada a los dems participantes. Al encriptar, se usa la clave privada propia y la
clave pblica del otro participante de la conversacin. Al recibir la informacin, sta es
desencriptada usando su propia clave privada y la pblica del generador de la informacin. La
gran desventaja de este tipo de encriptacin es que resulta ser ms lenta que la de clave
secreta.
En las redes virtuales, la encriptacin debe ser realizada en tiempo real, de esta manera, los
flujos de informacin encriptada a travs de una red lo son utilizando encriptacin de clave
secreta con claves que son vlidas nicamente para la sesin usada en ese momento.
Cliente Remoto

LAN Remota

LAN Remota

INTERNET
TUNEL CIFRADO - VPN

Extremos del Tnel Cifrado

Linux Seguridad en Redes

Pg. 34

Sistemas UNI

Red Privada Virtual con OpenVPN Introduccin


6.1 OpenVPN
OpenVPN es una solucin de conectividad basada en software: SSL (Secure Sockets Layer) para
VPN (Virtual Private Network, Red Virtual Privada). OpenVPN ofrece conectividad punto-apunto con validacin jerrquica de usuarios y host conectados remotamente, resulta una muy
buena opcin en tecnologas Wi-Fi (redes inalmbricas EEI 802.11) y soporta una amplia
configuracin, entre ellas balanceo de cargas. Est publicado bajo la licencia GPL, de software
libre. Trabaja en la capa de Transporte del modelo TPC/IP.
El proyecto OpenVPN desarrolla una implementacin de VPS basadas n SSL/TLS. Las razones de
su desarrollo son las limitaciones y problemas de IPSec y el rpido desarrollo de SSL. Se trata
de un producto de software libre liberado bajo los trminos de la GPL que fue creado por
James Yonan en el ao 2001.

6.2 Caractersticas principales

El componente principal es el driver tun/tap utilizado para simular interfaces de red,


que se encarga de levantar el tnel y encapsular los paquetes a travs del enlace
virtual
Encriptacin y autenticacin con OpenSSL
Utiliza un nico puerto TCP o UDP fcil para firewalls
Multiplataforma misma herramienta funcionando sobre distintos SO vs
implementaciones diferentes de un mismo estndar en distintas arquitecturas
Compresin de datos LZO

6.3 Algunos problemas

No es compatible con IPSec, el estandar para soluciones VPN


Comunidad no muy amplia
Faltan dispositivos con clientes OpenVPN integrados

6.4 Modos de funcionamiento

Modo tnel

Emplea el driver tun y es utilizado para crear tneles virtuales operando con el protocolo IP

Modo puente

Utiliza el driver tap y es empleado para tneles que encapsulan directamente paquetes
Ethernet. Se recomienda en las siguientes situaciones:

La VPN necesita encapsular protocolos no-IP


Se ejecutan aplicaciones que necesitan network broadcasts
No se cuenta con un servidor Samba y se necesita que los usuarios puedan navegar
por los ficheros compartidos

Linux Seguridad en Redes

Pg. 35

Sistemas UNI

6.5 Autenticacin
La autenticacin de los extremos remotos de una conexin SSL/TLS est basada en el modelo
de claves asimtricas RSA.
Los participantes intercambian sus claves pblicas a travs de certificados digitales X.509, que
han sido firmados previamente por una Autoridad de Certificacin en la que se confa.

Estructura de un cliente OpenVPN conectndose a la red local

Linux Seguridad en Redes

Pg. 36

Sistemas UNI

Gua
de
Actividades de
Laboratorios

Linux Seguridad en Redes Gua de Laboratorios

Pg. 37

Linux Seguridad en Redes Gua de laboratorios

Actividad 1.1.1: Creacin del entorno de trabajo


Objetivos de aprendizaje
Al completar esta actividad usted podr:
Identificar la funcin de un ruteador en la red.
Crear un ruteador bsico usando la maquina host aplicando IP Alias.
Activar la funcin de encaminamiento en dispositivos Linux.
Revisin de la tabla de rutas de la maquina.

Informacin bsica
El ruteador es un dispositivo fundamental en las redes basadas en el protocolo TCP/IP. Este
dispositivo permite que las redes conectadas entre si formen una internet usando direcciones
lgicas para su total identificacin y comunicacin entre ellas.
Simularemos la funcin de este dispositivo utilizando las caractersticas del sistema operativo
Linux de permitir el encaminamiento IP (IP-Forward) entre direcciones IP asignadas a una
misma interface de red mediante la caracterstica IP Alias. Luego revisaremos la tabla de
rutas de un router. Esta tarea se probara en la maquina real CentOS.
Una vez aclarados estos conceptos, crearemos la red de trabajo en el laboratorio. Cada alumno
tendr asignado una direccin IP a su maquina virtual firewall Linux y deber activar el
encaminamiento IP. La IP asignada estar en el rango de red 172.17.0.0 con mascara de 22
bits; luego se asignara una direccin IP privada en el rango 192.168.0.0 con mascara de 24
bits. As el firewall podr alcanzar la red internet de manera directa.

Escenario
Esta actividad se llevara a cabo en la maquina host. Esta maquina deber tener instalado el
sistema operativo CentOS 5.x. Adems, la tarjeta de red tendr una IP perteneciente a la red
lgica 172.17.0.0/22. Empezaremos con revisar el IP Alias y el IP Forwarding.

Tarea 1: Identificar la funcin de un ruteador en la red.


Paso 1: verifique que su host con Linux CentOS posea una IP en la red 172.17.0.0/16. La
mascara de red deber ser de 22 bits o depender de la configuracin del laboratorio. Ejecute
el comando ifconfig y deber observar lo siguiente:
[root@server ~]# ifconfig eth0
eth0
Link encap:Ethernet HWaddr 00:0C:29:24:DD:29
inet addr:172.17.1.21 Bcast:172.17.3.255 Mask:255.255.252.0
inet6 addr: fe80::20c:29ff:fe24:dd29/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:105 errors:0 dropped:0 overruns:0 frame:0
TX packets:129 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13374 (13.0 KiB) TX bytes:19252 (18.8 KiB)
Interrupt:67 Base address:0x2000

Paso 2: agregue la segunda IP asociada a la red 10.0.0.0/8. Para lo cual ejecute el comando
setup, seleccione Configuracin de red y luego tabule hasta llegar a Ejecutar una
herramienta, como se muestra en la figura:

Actividad 1.1.1 Creacin del entorno de trabajo

38

Linux Seguridad en Redes Gua de laboratorios

Presione Enter, presione Edit Device y luego <New Device>. La ventana que sigue le
preguntara por el tipo de dispositivo a agregar. Seleccione Ethernet y tabule hasta Aadir.
Presione Enter y en la siguiente ventana llene los datos de la segunda IP asignada (Alias).
Esto deber quedar de la siguiente manera:

Al presionar aparecer la ventana anterior y el dispositivo nuevo agregado:

Finalmente, presione Guardar, Guardar y Cerrar y finalmente Salir.

Actividad 1.1.1 Creacin del entorno de trabajo

39

Linux Seguridad en Redes Gua de laboratorios


Paso 3: reinicie el servicio de red y verifique que la nueva IP asignada este activa.
[root@server ~]# /etc/init.d/network restart
Interrupcin de la interfaz eth0:
Interrupcin de la interfaz de loopback:
Activacin de la interfaz de loopback:
Activando interfaz eth0:
[root@server ~]#

[
[
[
[

OK
OK
OK
OK

]
]
]
]

[root@server ~]# ifconfig


eth0
Link encap:Ethernet HWaddr 00:0C:29:24:DD:29
inet addr:172.17.1.21 Bcast:172.17.3.255 Mask:255.255.252.0
inet6 addr: fe80::20c:29ff:fe24:dd29/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1191 errors:0 dropped:0 overruns:0 frame:0
TX packets:1161 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:105611 (103.1 KiB) TX bytes:374918 (366.1 KiB)
Interrupt:67 Base address:0x2000
eth0:0

Link encap:Ethernet HWaddr 00:0C:29:24:DD:29


inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:67 Base address:0x2000

lo

Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4224 (4.1 KiB) TX bytes:4224 (4.1 KiB)

[root@server ~]#

Paso 4: A continuacin, verifique la conectividad entre las maquinas de sus compaeros


exclusivamente en la red 10.0.0.0/8. Para esto utilice el comando ping entra sus compaeros.
Debe responder cada una de las maquinas del laboratorio. Ejemplo:
[root@server ~]# ping 10.0.0.31 -c 3
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.31: icmp_seq=1 ttl=64 time=0.109 ms
64 bytes from 10.0.0.31: icmp_seq=2 ttl=64 time=0.109 ms
64 bytes from 10.0.0.31: icmp_seq=3 ttl=64 time=0.040 ms
--- 10.0.0.31 ping statistics --3 packets transmitted, 10 received, 0% packet loss, time 9005ms
rtt min/avg/max/mdev = 0.040/0.055/0.109/0.028 ms
[root@server ~]#

Verifique tambin que la configuracin actual este siempre activa aunque se reinicie la
maquina, ejecutando el comando init 6 en la maquina host.

Tarea 2: Activar encaminamiento IP (IP Forwarding) en el host.


Paso 1: edite el archivo sysctl.conf ubicado en el directorio /etc. Este archivo permite modificar
o alterar ciertos parmetros de configuracin de red en el kernel de Linux. Modifique la lnea
que contiene el parmetro net.ipv4.ip_forward = 0 y coloque al final el valor 1.
[root@server ~]# vim /etc/sysctl.conf

Una pequea parte del archivo que usted observara ser el siguiente:
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

Actividad 1.1.1 Creacin del entorno de trabajo

40

Linux Seguridad en Redes Gua de laboratorios


Paso 2: para activar esta funcin en el kernel y mantenerlo en forma permanente, ejecutamos
el comando sysctl p y veremos en pantalla lo siguiente:
[root@server ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536

Tarea 3: Activar IP Masquerading en el host.


Paso 1: crear el archivo firewall.sh en el directorio del usuario root y colocar lo siguiente:
#!/bin/bash
clear
echo Activando Masquerading en el host
IPT=/sbin/iptables
$IPT -F
$IPT -X
$IPT -F -t nat
$IPT -X -t nat
$IPT -t nat -A POSTROUTING -s 10.0.0.0/8 -j SNAT --to 172.17.1.21

Paso 2: colocar el archivo en el directorio /etc y asignarle los permisos 700:


[root@server
[root@server
[root@server
-rwx------ 1
[root@server

~]# cp firewall.sh /etc/


~]# chmod 700 /etc/firewall.sh
~]# ll /etc/firewall.sh
root root 197 ene 4 22:56 /etc/firewall.sh
~]#

Paso 3: aada la siguiente lnea al archivo /etc/rc.local y finalmente reinicie la maquina host.
sh

/etc/firewall.sh

Paso 4: analice la tabla de rutas del kernel de Linux y verifique que el acceso a la red 10.0.0.0
este activo.
Paso 5: instale una maquina WINXP y asgnele una IP en la red 192.168.0.0. Verifique que la
maquina pueda navegar sin problemas por internet.
Paso 6: elimine la IP Alias de la maquina real CentOS. Elimine el script firwall.sh y desactive el
IP Forwarding. Reinicie la maquina del laboratorio.

FIN DEL LABORATORIO

Actividad 1.1.1 Creacin del entorno de trabajo

41

Linux Seguridad en Redes Gua de laboratorios

Actividad 2.2.2: Instalacin del Firewall


Objetivos de aprendizaje
Al completar esta actividad usted podr:

Instalar un equipo como un dispositivo firewall.


Configurar las funciones bsicas del firewall.

Aadir interfaces de red adicionales al firewall.


Activar la funcin del ruteador en el firewall.

Informacin bsica
Una de las distribuciones Linux de mayor estabilidad y ergonmicas a diferencia de sus hermanas.
Esta distribucin es una de la mas antigua que fue fundado el ao 1993. Funciona para varias
arquitecturas (i386, amd63, sparc, alpha, powerpc entre otras). Los nombres de las versiones de
Debian son tomados de los personajes de la pelcula Toy Story.
Esta distribucin tiene la caracterstica de arrancar en el nivel de ejecucin 2. Esto permite reducir
el nmero de aplicaciones instaladas innecesariamente y evitar mayores riesgos por bugs en
paquetes en prueba. El kernel es bastante estable y para aplicaciones en produccin es bastante
ideal.
A diferencia de CentOS, para la configuracin de dispositivos de red se utiliza normalmente el
mismo archivo (/etc/network/interfaces). La configuracin de los parmetros de networking, se
utiliza el mismo archivo, es decir, /etc/sysctl.conf. Aqu activamos el IP Forwarding entre tarjetas
de red.
Finalmente, se revisan ciertos herramientas de lnea de comandos para manipular de manera
rpida y efectiva Linux Debian.

Escenario
A partir de esta ACTIVIDAD el escenario de trabajo se realiza ntegramente en maquinas virtuales
utilizando para este efecto el software VMWare para Linux. El firewall y la red local que se va a
utilizar como escenario de trabajo se virtualiza ntegramente bajo este software. Las direcciones IP
de red se asignaran durante el desarrollo del laboratorio.

Tarea 1: Instalar el firewall en maquina virtual.


Paso 1: instale la maquina virtual que se utilizara como firewall en la clase. Esta maquina debe
poseer las siguientes caractersticas:
a)
b)
c)
d)
e)

Procesador = 01 CPU, 01 Ncleo


RAM = 512 MB
Disco duro = 40 GB
Interface de disco duro = SCSI
Tarjeta de red = Bridged (deber aadir dos (02) tarjetas al firewall)

Actividad 2.2.2 Instalacin del Firewall

42

Linux Seguridad en Redes Gua de laboratorios


Paso 2: proceda con la instalacin del sistema operativo Linux Debian. Para este paso se le
suministrara el manual de instalacin y un video ilustrativo.

Tarea 2: Configurar las opciones bsicas del firewall.


Paso 1: una vez instalado debe configurar la conexin a los servidores espejo de Debian. Esto se
hace en el archivo /etc/apt/sources.list. Desactive el acceso a la unidad ptica DVD/CD para evitar
futuros pedidos de acceso a ese dispositivo.
# deb cdrom:[Debian GNU/Linux 6.0.1a _Squeeze_ - Official i386 DVD Binary-1
20110322-15:11]/ squeeze contrib main
#deb cdrom:[Debian GNU/Linux 6.0.1a _Squeeze_ - Official i386 DVD Binary-1
20110322-15:11]/ squeeze contrib main
deb http://ftp.us.debian.org/debian/ squeeze main contrib
deb-src http://ftp.us.debian.org/debian/ squeeze main contrib
deb http://security.debian.org/ squeeze/updates main contrib
deb-src http://security.debian.org/ squeeze/updates main contrib
# squeeze-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ squeeze-updates main contrib
deb-src http://ftp.us.debian.org/debian/ squeeze-updates main contrib

Paso 2: modifique el archivo .bashrc para facilitar el trabajo del Shell al estilo CentOS. Contenido
del archivo ya modificado:
# ~/.bashrc: executed by bash(1) for non-login shells.
#
#
#
#

Note: PS1 and umask are already set in /etc/profile. You should not
need this unless you want different defaults for root.
PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
Solo modifique estas lneas.
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
No modifique nada ms.
alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'

Paso 3: desconctese del sistema y vuelva a conectarse. Se activaran los cambios. No reinicie la
maquina virtual.
NOTA: recuerde que los datos asignados a cada servidor (direccin IP, nombre de host, dominio,
etc.) ser asignado por el profesor en clase. NO SE OLVIDE DE TOMAR NOTA PARA EVITAR
CONFUSIONES.

Actividad 2.2.2 Instalacin del Firewall

43

Linux Seguridad en Redes Gua de laboratorios


Tarea 3: Aadir interfaces de red adicionales al firewall.
Paso 1: apague la maquina virtual firewall y aada la segunda tarjeta de red la cual se reconocer
como dispositivo eth1.
Paso 2: vuelva a encender el equipo y verifique que la segunda tarjeta de red de la maquina virtual
este activa.
Paso 3: asigne la IP correspondiente a la segunda tarjeta de red (eth1). Recuerde que la segunda
tarjeta de red solo posee direccin IP y mascara de red. No aadir ningn otro parmetro IP
adicional. Para este paso, abra el archivo /etc/network/interfaces y modifquelo de la siguiente
manera:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 172.17.3.180
netmask 255.255.252.0
network 172.17.0.0
broadcast 172.17.255.255
gateway 172.17.3.254
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 200.48.225.130
dns-search redes.net
allow-hotplug eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

Solo aada las siguientes 4


lneas. Esto es suficiente para
activar la segunda tarjeta de
red.

Paso 4: cierre el archivo. Luego, proceda a activar la segunda


tarjeta
Una vez
activada
# and
howdetored.
activate
them
.
verifique que esta tarjeta este funcionando:

For more information, see

root@firewall:~# ifup eth1


root@firewall:~# ifconfig eth1
eth1

interfaces(5).

Link encap:Ethernet HWaddr 00:0c:29:5b:f5:b6


inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe5b:f5b6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:174 errors:0 dropped:0 overruns:0 frame:0
# The loopback
network
TX packets:10 errors:0 dropped:0 overruns:0
carrier:0
collisions:0 txqueuelen:1000
interface
RX bytes:22703 (22.1 KiB) TX bytes:636 (636.0
B)
Interrupt:19 Base address:0x2080

auto lo

Los comandos a ejecutar estn resaltados de amarillo.

iface lo inet loopback

Actividad 2.2.2 Instalacin del Firewall

# The primary network


interface

44

Linux Seguridad en Redes Gua de laboratorios


Tarea 4: Activar la funcin de ruteador en el firewall.
Paso 1: edite el archivo sysctl.conf ubicado en el directorio /etc. Este archivo permite modificar o
alterar ciertos parmetros de configuracin de red en el kernel de Linux. Modifique la lnea que
contiene el parmetro net.ipv4.ip_forward = 0 y coloque al final el valor 1.
[root@server ~]# vim /etc/sysctl.conf

Una pequea parte del archivo que usted observara ser el siguiente:
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additonal system variables
# See sysctl.conf (5) for information.
#
##############################################################3
# Functions previously found in netbase
#
# Uncomment the next two lines to enable Spoof protection (reverse-path
filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Paso 2: para activar esta funcin en el kernel y mantenerlo en forma permanente, ejecutamos el
comando sysctl p y veremos en pantalla lo siguiente:
[root@server ~]# sysctl -p
net.ipv4.ip_forward = 1

En este punto el firewall esta activado como ruteador.


Paso 3: verifique en este punto que:
a) Pueda hacer ping desde una maquina de la red local a la tarjeta eth1 del firewall.
b) Pueda hacer ping desde una maquina de la red local a la tarjeta eth0 del firewall.
c) No debe hacer ping a cualquier otra direccin IP mas all de la tarjeta eth0 (IP Pblica).

FIN DEL LABORATORIO

Actividad 2.2.2 Instalacin del Firewall

45

Linux Seguridad en Redes Gua de laboratorios

Actividad 3.3.3: Filtrado de paquetes IP


Objetivos de aprendizaje
Al completar esta actividad usted podr:

Entender el concepto de Filtrado de paquetes.


Implementar reglas de filtrado personalizadas.
Entender Network Address Translation (NAT).
Usar iptables para implementar NAT.
Filtrar puertos especficos.

Informacin bsica
El componente NETFILTER del ncleo de Linux es el elemento encargado de filtrar los paquetes IP
a travs del mismo ncleo. Recibe los paquetes IP y realiza las comprobaciones correspondientes
a las reglas implementadas.
Los ncleos actuales ya vienen con las opciones de NETFILTER activadas y compiladas (a partir
del ncleo 2.4); por lo tanto en la mayora de los casos solo necesitamos usar las opciones de
filtrado.
El filtrado de paquetes requiere tener bien claro el concepto de conexiones TCP/IP y el sentido en
que estas se llevan a cabo. Normalmente es el cliente quien realiza la tarea de conexin con un
host servidor. Sin embargo esto no siempre se cumple; en determinados casos, y en la mayora de
ellos cuando se trata de un firewall, es el host servidor quien realiza las conexiones por otros. Esto
se le llama Servidor Proxy.
En esta actividad realizaremos el filtrado de paquetes con una poltica DROP para cerrar el paso a
todos los intentos de intromisin al firewall. Estableceremos las conexiones externas desde el
firewall para que se pueda conectar a la red (internet), para luego terminar llevando a cabo el
proceso NAT correspondiente.

Escenario
Para esta actividad se necesita que el alumno tenga ya instalado los siguientes equipos virtuales:
a) Servidor firewall con dos tarjetas de red y encaminamiento activo.
b) Un equipo virtual con una tarjeta de red y configurado con IP de la red local. Este equipo
virtual tendr instalado Windows XP SP2/SP3.
c) Un equipo virtual con Linux CentOS con una tarjeta de red y configurado con IP de la red
local.
d) El equipo con Windows XP ser el cliente de la red local. Solo deber ver al firewall.
e) El equipo con CentOS ser el servidor de la red local que se desea proteger; a su vez, se
desea tener acceso a este servidor desde la red externa (internet).
f) No hay ningn tipo de acceso a la red local en forma directa desde la red externa
(internet).
g) El acceso a los servidores internos se hace a travs del firewall utilizando reglas de filtrado.

Actividad 3.3.3 Filtrado de paquetes IP

46

Linux Seguridad en Redes Gua de laboratorios


RED LOCAL

WEB Server

Firewall

Internet
eth1

eth0

Cliente DSL
Diagrama del escenario de trabajo

Tarea 1: Entender el concepto de Filtrado de paquetes.


Paso 1: abra un terminal de trabajo en la maquina host. Las mquinas virtuales deben estar
apagadas para esta tarea.
Paso 2: establezca la poltica de filtrado a DROP. De esta forma, el kernel no permitir el paso de
paquetes IP a travs de l.
# iptables -P OUTPUT DROP
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
Paso 3: realice un ping al dispositivo local. Deber recibir una respuesta de operacin no permitido
o similar.
# ping c 3 127.0.0.1
Paso 4: realice un ping a la direccin IP de la tarjeta de red de la maquina host. Deber recibir la
misma respuesta del paso 3.
# ping c 3 172.17.1.21
Paso 5: realice un ping a la IP del servidor DNS preferido de su proveedor. Deber recibir la misma
respuesta del paso 3.
# ping c 3 200.48.225.130
Paso 6: retorne la poltica de filtrado a ACCEPT en la maquina host.
# iptables -P OUTPUT ACCEPT
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
Deber poder hacer ping a cada IP de los pasos 3, 4 y 5. VERIFIQUELO.

Actividad 3.3.3 Filtrado de paquetes IP

47

Linux Seguridad en Redes Gua de laboratorios


Tarea 2: Entender el concepto de Filtrado de paquetes: aplicaciones y
puertos de red.
Paso 1: encienda la maquina firewall. En la mquina virtual firewall, instale los paquetes iptraf, lynx,
mtr y el iftop.
# aptitude install iptraf lynx mtr iftop
Paso 2: una vez instalado cada paquete, abra dos ventanas de terminal en la mquina host y
conctese al firewall en ambas ventanas usando el siguiente comando:
# ssh 172.17.3.180
Paso 3: en una ventana ejecute el comando iptraf. Una vez que aparezca la pantalla del
programa, presione una tecla, seleccione la opcin IP traffic monitor, y luego selecciona la
tarjeta de red eth0 que mira a la WAN.

Paso 5: desde la otra ventana ejecute el comando lynx y establezca conexin con la pagina web
de la UNI (http://www.uni.edu.pe):
# lynx www.uni.edu.pe
Paso 6: en la ventana anterior, iptraf muestra las conexiones activas desde el firewall a la red
externa internet. En ella podr apreciar: la IP origen, la IP destino, el puerto origen, el puerto
destino, el nmero de paquetes transmitidos, los flags, nmero de entradas. Observe la conexin al
puerto 80, es decir, al servidor web de la UNI:

Observe que las entradas estn formadas por parejas IP:puerto. La IP 172.17.1.21 corresponde a
la mquina que empieza la comunicacin (el firewall actuando como cliente). La IP 200.37.69.4 es
la mquina que responde al pedido de comunicacin o conexin (el servidor web de la UNI). El
puerto 45616 corresponde al browser (cliente). El puerto 80 corresponde al servicio web solicitado.
Cierre los terminales de conexin al firewall.

Actividad 3.3.3 Filtrado de paquetes IP

48

Linux Seguridad en Redes Gua de laboratorios


Tarea 3: Implementar reglas de filtrado de paquetes IP.
Paso 1: encienda la maquina firewall. Abra un terminal en la maquina host y conctese al firewall:
# ssh 172.17.3.180
Paso 2: crear un archivo llamado firewall.sh, establezca los permisos a 750 y editelo con vim:
# touch firewall.sh
# chmod 750 firewall.sh
# vim firewall.sh
Paso 3: para crear un buen script para implementar polticas de filtrado, defina algunas variables
de Shell que identifiquen ciertos aspectos de su red. Por ejemplo: la direccin de red local, la IP
pblica de la tarjeta eth0 del firewall, la IP de la tarjeta eth1, algunos puertos a filtrar, etc. Ejemplo:
#!/bin/sh
clear
echo Inicializando firewall personal....
echo ............
# Parametros basicos de la red
IP_INET=172.17.3.180
RED_LOC=192.168.1.0/24
IPT=/sbin/iptables
IP_ACCESO=172.17.1.21
# Estableciendo las polticas bsicas
$IPT -X
$IPT -F
$IPT -X -t nat
$IPT -F -t nat
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
echo OK
# Permitir paquetes hacia y desde el dispositivo local
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
echo Acceso libre localhost OK
# Permitir paquetes hacia y desde la red local
$IPT -A INPUT -i eth1 -j ACCEPT
$IPT -A OUTPUT -o eth1 -j ACCEPT
echo acceso red local OK
# Proteger la interface publica de paquetes que no tengan origen ni destino dicha interface
$IPT -A INPUT -i eth0 -s 0.0.0.0/0 ! -d $IP_INET -j DROP
$IPT -A OUTPUT -o eth0 ! -s $IP_INET -d 0.0.0.0/0 -j DROP
echo Proteger interface externa OK
# Permitir acceso desde una IP publica en la Internet - IP de la maquina del LABORATORIO
$IPT -A INPUT -i eth0 -s $IP_ACCESO -d $IP_INET -j ACCEPT
$IPT -A OUTPUT -o eth0 -s $IP_INET -d $IP_ACCESO -j ACCEPT
echo Acceso permitido maquina local OK
# Establezca reglas para permitir conexiones externas del tipo tcp y/o udp en la interface externa o publica
$IPT -A INPUT -i eth0 -p tcp -s any/0 --sport :1023 -d $IP_INET --dport 1024: -j ACCEPT
$IPT -A OUTPUT -o eth0 -p tcp -s $IP_INET --sport 1024: -d any/0 --dport :1023 -j ACCEPT

Actividad 3.3.3 Filtrado de paquetes IP

49

Linux Seguridad en Redes Gua de laboratorios


$IPT -A INPUT -i eth0 -p udp -s any/0 --sport :1023 -d $IP_INET --dport 1024: -j ACCEPT
$IPT -A OUTPUT -o eth0 -p udp -s $IP_INET --sport 1024: -d any/0 --dport :1023 -j ACCEPT
echo Permitir conexiones externas desde eth0 OK
# Configure reglas para permitir ping's de entrada y/o salida y otros paquetes ICMP
$IPT -A OUTPUT -o eth0 -p icmp -s $IP_INET -d any/0 --icmp-type 8 -j ACCEPT
$IPT -A INPUT -i eth0 -p icmp -s 0.0.0.0/0 -d $IP_INET --icmp-type 0 -j ACCEPT
$IPT -A INPUT -i eth0 -p icmp -s 0.0.0.0/0 -d $IP_INET --icmp-type 8 -j ACCEPT
$IPT -A OUTPUT -o eth0 -p icmp -s $IP_INET -d 0.0.0.0/0 --icmp-type 0 -j ACCEPT
echo Permitir hacer ping desde el fw OK
# Establezca una regla para rechazar solicitud de conexin al puerto 113 (IDENTD)
$IPT -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 -d $IP_INET --dport 113 -j REJECT
echo Restriccion al puerto 113 Oecho Restriccion al puerto 113 OKK
#Configure NAT de tal manera que todas las conexiones tcp, udp e icmp desde la maquina cliente a Internet
estn enmascaradas.
#Recuerde tener activo el encaminamiento IP en el kernel.
$IPT -t nat -A POSTROUTING -o eth0 -p tcp -s $RED_LOC --sport 1024: ! -d $RED_LOC --dport :1023 -j
SNAT --to $IP_INET
$IPT -t nat -A POSTROUTING -o eth0 -p udp -s $RED_LOC --sport 1024: ! -d $RED_LOC --dport :1023 -j
SNAT --to $IP_INET
$IPT -t nat -A POSTROUTING -o eth0 -p icmp -s $RED_LOC ! -d $RED_LOC -j SNAT --to $IP_INET
echo Activar SNAT para salida a red local a internet OK
# Recuerde que las reglas NAT siempre van acompaadas de reglas FORWARD para permitir el traslado de
los paquetes a travs del kernel
$IPT -A FORWARD -i eth1 -o eth0 -p tcp -s $RED_LOC --sport 1024: ! -d $RED_LOC --dport :1023 -j
ACCEPT
$IPT -A FORWARD -i eth0 -o eth1 -p tcp ! -s $RED_LOC --sport :1023 -d $RED_LOC --dport 1024: -j
ACCEPT
$IPT -A FORWARD -i eth1 -o eth0 -p udp -s $RED_LOC --sport 1024: ! -d $RED_LOC --dport :1023 -j
ACCEPT
$IPT -A FORWARD -i eth0 -o eth1 -p udp ! -s $RED_LOC --sport :1023 -d $RED_LOC --dport 1024: -j
ACCEPT
$IPT -A FORWARD -i eth1 -o eth0 -p icmp -s $RED_LOC ! -d $RED_LOC -j ACCEPT
$IPT -A FORWARD -i eth0 -o eth1 -p icmp ! -s $RED_LOC -d $RED_LOC -j ACCEPT
echo Reglas FORWARD para SNAT OK

Paso 4: guarde las reglas del Paso 3 en un script correctamente. Cpielo al directorio /etc/,
conservando los permisos. De preferencia, establezca los permisos a 700 para que solo el
administrador pueda modificarlo.
Paso 5: abra el archivo /etc/rc.local y coloque la siguiente lnea antes de la lnea exit 0:
sh /etc/firewall.sh
Paso 6: reinicie el firewall. Observe que las polticas de filtrado iniciales estn activas.

Actividad 3.3.3 Filtrado de paquetes IP

50

Linux Seguridad en Redes Gua de laboratorios


Tarea 4: Entender Network Address Translation - NAT.
Paso 1: encienda la maquina Windows XP y configure los parmetros de red. Estos deben verse
algo as:
IP
= 192.168.1.96
(Elija un valor encima de 80)
Mask = 255.255.255.0
GW
= 192.168.1.1
DNS = 200.48.225.130
Paso 2: en la maquina XP, abra una lnea de comando y ejecute ping hacia la maquina firewall:
Inicio Ejecutar cmd
C:\> ping 192.168.1.1
Debe recibir respuesta desde la maquina firewall.
Paso 3: en la maquina XP, abra un browser, el de su preferencia y proceda a navegar a travs de
internet. Deber poder navegar sin ningn problema y restriccin.
Paso 4: intente descargar algn tipo de software no malicioso, recuerde, su maquina aun es
vulnerable a los virus y a otros tipos de malwares.

Tarea 5: Filtrar puertos especficos.


Paso 1: instale un servidor Linux, asgnele una direccin IP dentro de la red local y active el
servicio web el cual responde al puerto 80. Disponga la red de la siguiente manera:

RED LOCAL
Servidor WWW

Cliente XP

FIREWALL

192.168.1.9
192.168.1.1

172.17.3.180

192.168.1.96

Internet

Cliente XP

Paso 2: para permitir el acceso al cliente XP ubicado en internet debemos realizar un proceso de
NAT de destino para cambiar la IP destino del paquete entrante; de esta manera el firewall cambia
esta cabecera y la solicitud del cliente llega al servidor web 192.168.1.9.
Paso 3: activar el proceso NAT de destino (DNAT) y establezca la IP de destino al servidor WEB
de la red local:

Actividad 3.3.3 Filtrado de paquetes IP

51

Linux Seguridad en Redes Gua de laboratorios

$IPT -t nat -A PRETROUTING -i eth0 -p tcp ! -s $RED_LOC --sport 1024: -d $IP_INET --dport 80 -j DNAT
--to $IP_WWW
$IPT -t nat -A PRETROUTING -i eth0 -p udp ! -s $RED_LOC --sport 1024: -d $IP_INET --dport 80 -j DNAT
--to $IP_WWW

Paso 4: aada las reglas FORWARD necesarias para permitir el paso de los paquetes a travs del
kernel. De lo contrario, segn la poltica DROP del firewall, estos no podrn pasar:
$IPT -A FORWARD -i
$IPT -A FORWARD -i
$IPT -A FORWARD -i
$IPT -A FORWARD -i

eth1 -o eth0 -p tcp -s $IP_WWW --sport 80 ! -d $RED_LOC --dport 1024: -j ACCEPT


eth0 -o eth1 -p tcp ! -s $RED_LOC --sport 1024: -d $IP_WWW --dport 80 -j ACCEPT
eth1 -o eth0 -p udp -s $IP_WWW --sport 80 ! -d $RED_LOC --dport 1024: -j ACCEPT
eth0 -o eth1 -p udp ! -s $RED_LOC --sport 1024: -d $IP_WWW --dport 80 -j ACCEPT

Paso 5: aada estas reglas al script firewall.sh. Aada las variables IP_WWW con el valor de la
IP del servidor web local. Las variables debern quedar el en script de la siguiente manera:
# Parametros basicos de la red
IP_INET=172.17.3.180
RED_LOC=192.168.1.0/24
IPT=/sbin/iptables
IP_ACCESO=172.17.1.21

IP_WWW=192.18.1.9
Paso 6: asegrese de aadir las reglas de PREROUTING y de FORWARD al script. Las reglas
PREROUTING adalas antes de las reglas POSTROUTING y las reglas FORWARD adalas
despus que las reglas FORWARD para SNAT de salida a internet.
Paso 7: grabe el script y ejectelo para actualizar las reglas actuales. Prubelo. Reinicie el servidor
firewall y realice las pruebas siguientes:
a) Desde la maquina XP pruebe la salida a internet. Deber navegar sin problemas
b) Desde la maquina XP pruebe el comando ping hacia el exterior, ejemplo,
www.google.com.pe. Deber obtener respuesta desde el host destino.
c) Desde la maquina host real pruebe conectarse al servidor web de la red local. Deber ver
la pgina web de prueba del servidor WWW CentOS.
Paso 8: reinicie las tres maquinas virtuales (firewall, cliente XP, servidor web Linux). Pruebe todas
las configuraciones hechas hasta el momento. Todas las configuraciones deben estar activas y
funcionando sin problemas.

FIN DEL LABORATORIO

Actividad 3.3.3 Filtrado de paquetes IP

52

Linux Seguridad en Redes Gua de laboratorios

Actividad 4.4.4: Servicio Proxy con Squid


Objetivos de aprendizaje
Al completar esta actividad usted podr:
Entender el concepto de Servicio PROXY.
Como funciona e implementar el servicio proxy con Squid.
Crear Lista de Control de Acceso (ACL).
Mecanismos de filtrado proxy comunes.
Implementar un proxy transparente.

Informacin bsica

Aplicacin
TCP

Zona de accin de un firewall


PROXY

UDP
Zona de accin de un firewall de

IP

filtrado de paquetes IP

Arquitectura de red

La arquitectura de red puede ser


ppp, Ethernet, token ring, etc.

El componente NETFILTER del ncleo de Linux es un elemento encargado de filtrar los paquetes
IP a travs del mismo ncleo. Este componente trabaja, segn la figura anterior, en las capas de
Red y Transporte del modelo TCP/IP. Sin embargo, este componente aun no posee herramientas
para filtrar contenidos a nivel de la capa de Aplicacin. En esta capa, el filtrado se puede hacer de
manera directa afectando las herramientas cliente, tales como los navegadores web (IE, Firefox,
Opera, Google Chrome, etc.). El filtrado puede afectar directamente a las URL y establecer de
manera precisa que URLs puede navegar el usuario y cuales no. Este es el principio bsico de los
proxis. Utilizaremos el programa proxy de mayor uso: SQUID Cache.

Escenario
Para esta actividad se necesita que el alumno tenga ya instalado los siguientes equipos virtuales:
a)
b)
c)
d)

Los equipos virtuales de la Actividad 3.


Instalar la aplicacin Squid Proxy .
Conexin permanente a la red internet.
La configuracin completa de la Actividad 3 y reglas de filtrado adicionales.

Actividad 4.4.4 Servicio Proxy con Squid

53

Linux Seguridad en Redes Gua de laboratorios


Tarea 1: Entender el concepto de servicio proxy.
Paso 1: encienda las maquinas virtuales utilizadas en la Actividad 3. Verifique que el firewall de
filtrado este operativo y funcionando correctamente. Verifique que las maquinas puedan conectarse
a la red internet.
Paso 2: abra un terminal desde la maquina host y conctese a la maquina virtual firewall. A
continuacin proceda a actualizar las cabeceras de los repositorios (mirrors) de Debian.
# ssh 172.17.3.180
# aptitude update
Paso 3: terminada la actualizacin desde los mirrors, proceda a instalar el proxy cache squid
versin 3. Esta versin tambin se usa para instalar proxy antivirus utilizando herramientas
adicionales.
# aptitude install squid3
Paso 4: una vez instalado el programa squid, ingrese al directorio /etc/squid/ y edite el archivo
squid.conf para configurar el servicio:
# vim squid.conf
Paso 5: configure los siguientes parmetros de tal manera que reflejen los siguientes valores
indicados:
http_port 3128
cache_mem 32 MB

cache_dir ufs /var/spool/squid 100 16 256


access_log /var/log/squid/access.log squid
Paso 6: crear las siguientes listas de control de acceso (ubquela en la zona de creacin de ACL):
acl redlocal src 192.168.1.0/24
Paso 7: crear la siguiente regla de acceso (ubquela debajo de la siguiente lnea
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS):
http_access allow redlocal
Paso 8: reinicie el servicio squid:
# /etc/init.d/squid3 restart
Paso 9: configure el acceso a la red en el navegador Internet Explorer o cualquier otro que tenga
en el cliente XP para navegar usando servidor proxy tal como se muestra en la imagen siguiente
(IE Herramientas Opciones de Internet Conexiones Configuracin de LAN):

Actividad 4.4.4 Servicio Proxy con Squid

54

Linux Seguridad en Redes Gua de laboratorios

Terminado el paso anterior debe poder navegar a travs del proxy squid sin ninguna restriccin.

Tarea 2: Crear Listas de Control de Acceso personalizadas.


Paso 1: abra el archivo /etc/squid/squid.conf y aada una nueva lista de control de acceso
llamado negados y que sea del tipo url_regex. Esta lista almacenara los criterios de filtrado en un
archivo de texto llamado blacklist.txt. Los criterios de filtrado se aaden al archivo uno por lnea.
Colocar esta lista arriba de la lnea que define la lista redlocal, de la siguiente manera:
acl negados url_regex -i src /etc/squid/blacklist.txt
acl redlocal src 192.168.1.0/24

Paso 2: aadir el criterio de restriccin a esta lista arriba de la lnea que permite navegacin a la
lista redlocal de la siguiente manera:
http_access
http_access

deny
allow

negados
redlocal

Paso 3: crear el archivo blacklist.txt y aada los criterios de filtrado uno por lnea; estos se
interpretaran como del tipo url_regex (patrn de caracteres regulares en la URL). Por ejemplo,
aada el patrn www.mtv.com , reinicie squid e intente navegar por esa web:
# vim /etc/squid/blacklist.txt
Aadir:

http://www.mtv.com

Luego, reiniciar squid y proceda a navegar por la URL restringida. Deber aparecer un mensaje
como el que aparece a continuacin:

Actividad 4.4.4 Servicio Proxy con Squid

55

Linux Seguridad en Redes Gua de laboratorios

Tarea 3: Crear Listas de Control de Acceso por tiempo.


Paso 1: detener el servicio squid.
# /etc/init.d/squid3 stop
Paso 2: aada una acl del tipo time y establezca los horarios de restriccin segn la fecha y hora
de desarrollo de esta tarea de laboratorio. Por ejemplo, si el laboratorio se desarrolla los sbados
de 15:00 a 21:00 horas, aada una lista de control de acceso con estos parmetros:
acl horario time A 15:00-21:00
Esto establece una regla del tipo time dentro del horario indicado (3 a 9 pm) los das sbados.
Paso 3: restringir la navegacin durante el horario indicado en la lista anterior. Aada la restriccin
siguiente antes de la regla negados:
http_access
http_access
http_access

deny
deny
allow

horario
negados
redlocal

Actividad 4.4.4 Servicio Proxy con Squid

56

Linux Seguridad en Redes Gua de laboratorios


Paso 4: intente navegar por internet. No podr hacerlo debido a la restriccin de tiempo.
Paso 5: modifique el orden de las restricciones de la siguiente manera:
http_access
http_access

deny
allow

negados
redlocal horario

Paso 6: intente navegar por internet. Deber poder hacerlo debido al retiro de la restriccin de
horario. Observe la segunda lnea: trabaja como operadores lgicos al establecer que ambas listas
deben cumplirse en la condicin de restriccin (redlocal y horario).
Paso 7: modifique las reglas anteriores. Establezca las restricciones de la siguiente manera:
http_access

allow

!horario negados redlocal

Paso 8: intente navegar por internet. La restriccin de tiempo esta activa debido al smbolo
negacin (!) delante del nombre de la lista horario.
Paso 9: retire el smbolo de negacin delante del nombre de la lista horario. Luego de este
cambio deber poder navegar por internet sin problemas.
NOTA: en los Pasos 3, 5, 7 y 9 no olvide reiniciar el servicio squid. De lo contrario los cambios
jams surtirn los efectos deseados.

Paso 10: pruebe la lista de control de acceso que definen el control de la navegacin por direccin
fsica MAC de las tarjetas de red (lista tipo arp). Crear una lista en un archivo independiente y
colocar all la lista de MAC ADDRESS restringidas en el formato AA:BB:CC:DD:EE:FF

FIN DEL LABORATORIO

Actividad 4.4.4 Servicio Proxy con Squid

57

Linux Seguridad en Redes Gua de laboratorios

Actividad 5.5.5: Firewall Antivirus con AVIRA


Objetivos de aprendizaje
Al completar esta actividad usted podr:

Entender el uso de un firewall con software antivirus de prevencin.


Instalar un software antivirus en el firewall.
Configurar el antivirus entre el proxy Squid y la red local.
Configurar los mecanismos de filtrado y proteccin del firewall antivirus.

Informacin bsica
El servicio proxy Squid es muy til cuando se trata de controlar el sistema de navegacin web y
realizar restricciones a los usuarios de la red local. Como se vio en la actividad de laboratorio
anterior, se puede restringir la navegacin de forma muy efectiva y precisa. Cabe resaltar que el
servicio proxy Squid introduce cierto nivel de retraso en la navegacin, debido a que trabaja en
la capa de aplicacin. Sin embargo, para las maquinas modernas, y con los precios de los
servidores cada vez mas baratos, este retardo pasa casi imperceptible cuando se trata de
aprovechar el ancho de banda de la conexin.
Sin embargo, este servicio no puede realizar tareas tales como control de contenidos, es decir,
saber que viaja en el interior de los paquetes IP que entran y salen de la red local o proviene desde
la red internet. Por ejemplo, no podemos saber si entre los archivos que estamos descargando se
encuentran software del tipo malicioso.
NOTA: Malware (del ingls malicious software), tambin llamado badware, cdigo maligno,
software malicioso o software malintencionado, es un tipo de software que tiene como objetivo
infiltrarse o daar una computadora sin el consentimiento de su propietario. El trmino malware es
muy utilizado por profesionales de la informtica para referirse a una variedad de software hostil,
intrusivo o molesto. El trmino virus informtico suele aplicarse de forma incorrecta para referirse a
todos los tipos de malware, incluidos los virus verdaderos.
El software se considera malware en funcin de los efectos que, pensados por el creador,
provoque en un computador. El trmino malware incluye virus, gusanos, troyanos, la mayor parte
de los rootkits, scareware, spyware, adware intrusivo, crimeware y otros softwares maliciosos e
indeseables.
Malware no es lo mismo que software defectuoso; este ltimo contiene bugs peligrosos, pero no de
forma intencionada.

Escenario
Para esta actividad se necesita que el alumno tenga ya instalado los siguientes equipos virtuales:
a) Los equipos virtuales de la Actividad 3.
b) Instalar la aplicacin Squid Proxy y configurarlo.
c) El software de AVIRA Antivirus disponible.

Actividad 5.5.5 Firewall Antivirus con AVIRA

58

Linux Seguridad en Redes Gua de laboratorios


d) Licencia de Prueba por un periodo determinado (30 das por lo general).
Paso 1: descargue el software de antivirus o solictelo al profesor. La web de descarga es la
siguiente:
http://www.avira.com/en/download/product/avira-antivir-webgate
Nombre del archivo solicitado: antivir-webgate-prof.tar.gz
Paso 2: descargue una licencia de prueba por 30 das para activar el software antivirus. Proceda a
descargar la licencia previa inscripcin gratuita en la web de AVIRA.
Nombre del archivo solicitado: HBEDV.KEY
Paso 3: desempaquete el archivo del antivirus en la ubicacin (directorio) deseado:
# tar -xvzf antivir-webgate-prof.tar.gz
Paso 4: copie el archivo de licencia dentro del directorio recin creado:
# cp HBEDV.KEY antivir-webgate-prof-3.2.0.34.-5/
Paso 5: ubquese en el directorio recin creado:
# cd antivir-webgate-prof-3.2.0.34.-5/
Paso 6: ejecute el script de instalacin del antivirus:
# ./install
Paso 7: deber confirmar los pasos de instalacin mostrados durante el proceso:
Starting Avira AntiVir WebGate (UNIX) 3.2.0.34-5 installation...
Before installing this software, you must agree to the terms
of the license.
Use the arrow keys to scroll through the license. When you
are finished reading, press 'q' to exit the viewer.
Press <ENTER> to view the license.

Presione ENTER en este punto

.
Avira GmbH
Kaplaneiweg 1
D-88069 Tettnang
Germany
Telephone: +49 (0) 7542-500 0
Fax: +49 (0) 7542-525 10
Internet: http://www.avira.com
Revised: 1 July 2006 (V3)
Do you agree to the license terms? [n] y

Presione y en este punto

Actividad 5.5.5 Firewall Antivirus con AVIRA

59

Linux Seguridad en Redes Gua de laboratorios


Presione ENTER en este punto

Enter the path to your key file: [HBEDV.KEY]


copying HBEDV.KEY to /usr/lib/AntiVir/webgate/avira.key ... done

installation of AntiVir Core Components (Engine, Savapi and Avupdate) complete

2) Configuring updates
An internet updater is available with Avira AntiVir WebGate (UNIX)
It will ensure that you always have the latest malware detection
patterns and engine updates. In order to trigger an update you
will need to run the command:
/usr/lib/AntiVir/webgate/avupdate-webgate

Presione y en este punto

Would you like to create a link in /usr/sbin for avupdate-webgate? [y]

linking /usr/sbin/avupdate-webgate to /usr/lib/AntiVir/webgate/avupdate-webgate ... done

Presione y en este punto

Would you like to setup Scanner update as cron task? [y]


Please specify the interval to check.
Recommended values are daily or 2 hours.
available options: d [2]
creating Scanner update cronjob ... done

Presione ENTER en este punto

Would you like to check for WebGate updates once a week? [n]

Presione ENTER en este punto

Se proceder a copiar archivos del programa


setup internet updater complete
3) installing main program
copying doc/antivir_webgate_en.pdf to /usr/lib/AntiVir/webgate/ ... done
copying doc/antivir_webgate_de.pdf to /usr/lib/AntiVir/webgate/ ... done
copying doc/RELEASE_NOTES_webgate_EN.txt to /usr/lib/AntiVir/webgate/ ... done
avinstall error: doc/RELEASE_NOTES_webgate_DE.txt missing
copying bin/linux_glibc22/avwebgate.bin to /usr/lib/AntiVir/webgate/ ... done
copying bin/wskeyfile to /usr/lib/AntiVir/webgate/ ... done
..

Would you like to create a link in /usr/sbin for avwebgate? [y] y


linking /usr/sbin/avwebgate to /usr/lib/AntiVir/webgate/avwebgate ... done
Please specify if boot scripts should be set up.
Set up boot scripts? [y] y
setting up boot script ... done
installation of main program complete

Presione y en este punto

Presione y en este punto

4) activate SMC support


If you are going to use Avira Security Management Center (SMC)
to manage this software remotely you need this
Would you like to activate SMC support? [y] n

Presione n en este punto

SMC will NOT be activated


creating /usr/lib/AntiVir/webgate/agent ... done
creating /usr/lib/AntiVir/agent ... done

Actividad 5.5.5 Firewall Antivirus con AVIRA

60

Linux Seguridad en Redes Gua de laboratorios


copying smcpkg/libuxwgt.so.linux_glibc22 to /usr/lib/AntiVir/webgate/agent/libuxwgt.so ... done
linking /usr/lib/AntiVir/webgate/agent/libuxwgt.so to /usr/lib/AntiVir/agent/libuxwgt.so ... done
creating /usr/lib/AntiVir/webgate/gui ... done
creating /usr/lib/AntiVir/webgate/gui/cert ... done
creating /usr/lib/AntiVir/webgate/gui/src ... done
creating /usr/lib/AntiVir/webgate/gui/bin ... done
copying bin/linux_glibc22/avwg_stats.lck to /usr/lib/AntiVir/webgate/gui/bin/ ... done
copying bin/linux_glibc22/avwg_stats to /usr/lib/AntiVir/webgate/gui/bin/ ... done
copying smcpkg/cert/client.jks to /usr/lib/AntiVir/webgate/gui/cert/ ... done
copying smcpkg/cert/server.pem to /usr/lib/AntiVir/webgate/gui/cert/ ... done
copying smcpkg/cert/cacert.jks to /usr/lib/AntiVir/webgate/gui/cert/ ... done
copying smcpkg/cert/cacert.pem to /usr/lib/AntiVir/webgate/gui/cert/ ... done
INFO: Your SMC plug-in was not registered.
You can register the SMC plug-in with the following command:
/usr/lib/AntiVir/agent/agent --install-plugin uxwgt /usr/lib/AntiVir/webgate/agent/libuxwgt.so
Installation of the following features complete:
AntiVir Core Components (Engine, Savapi and Avupdate)
Avira Internet Updater
Avira WebGate
AntiVir SMC plugin

***********************************************************
Configuration files:
/etc/avira/avwebgate.conf
(Avira WebGate main config)
/etc/avira/avwebgate-scanner.conf (Avira WebGate scanner config)
/etc/avira/avupdate-webgate.conf (Avira Avupdate options)
The new avwebgate.conf was installed to /etc/avira/avwebgate.conf.default,
because there was already a config file available.
***********************************************************
Note: It is highly recommended that you perform an update now to
ensure up-to-date protection. This can be done by running:
/usr/lib/AntiVir/webgate/avupdate-webgate --product=WebGate
Be sure to read the manual file for additional information.
Thank you for your interest in Avira AntiVir WebGate (UNIX).

En este punto acaba la instalacin


del programa antivirus. Se le
devolver el prompt del Shell.

root@firewall:~/antivir-webgate-prof-3.2.0.34-5#

Paso 8: configure el antivirus para que escuche en el puerto del SQUID (3128). Edite el archivo
avwebgate.conf y modifique los siguientes parmetros:
# vim /etc/avira/avwebgate.conf
Parmetros a modificar:
HTTPPort

3128

HTTPProxyServer

127.0.0.1

HTTPProxyPort

8080

DetectAllTypes

yes

Actividad 5.5.5 Firewall Antivirus con AVIRA

61

Linux Seguridad en Redes Gua de laboratorios


Paso 9: modifique la configuracin del proxy SQUID para que no exista conflictos con los
parmetros del antivirus:
http_port

27.0.0.1:8080 transparent

Paso 10: reinicie ambos servicios


root@firewall:~# /etc/init.d/squid3 restart
Restarting Squid HTTP Proxy 3.x: squid3 Waiting.....................done.
.
root@firewall:~# /etc/init.d/avwebgate restart
Stopping Avira AntiVir WebGate ...
Stopping: avwebgate.bin
Stopping: savapi
Starting Avira AntiVir WebGate ...
Starting: savapi
Starting: avwebgate.bin
root@firewall:~#

Paso 11: pruebe la configuracin del proxy antivirus. Ingrese a la siguiente pgina web y trate de
descargar desde algn link indicado en la parte inferior de la pgina ubicados en el margen
derecho:
http://www.spycar.org/Spycar.html
Deber aparecer un mensaje de prevencin del siguiente tipo:

FIN DEL LABORATORIO

Actividad 5.5.5 Firewall Antivirus con AVIRA

62

Linux Seguridad en Redes Gua de laboratorios

Actividad 6.6.6: Introduccin a las VPN con OpenVPN


Objetivos de aprendizaje
Al completar esta actividad usted podr:

Entender el uso de las conexiones cifradas.


Instalar el software VPN en el firewall - OpenVPN.
Configurar la conexin entre en cliente externo y la VPN.
Configurar los mecanismos de filtrado y proteccin del firewall.

Informacin bsica
Una Red Privada Virtual (VPN) es una forma de compartir y transmitir informacin entre un
crculo cerrado de usuarios que estn situados en diferentes reas geogrficas. Es una red de
datos de gran seguridad que utilizando la red Internet como medio de transmisin permite la
transmisin de informacin confidencial entre la empresa y sus sucursales, socios,
proveedores, distribuidores, empleados o clientes. Aunque Internet es una red pblica y
abierta, la transmisin de los datos se realiza a travs de la creacin de tneles virtuales,
asegurando la confidencialidad e integridad de los datos transmitidos.
Una Red Privada Virtual (VPN) conecta los componentes de una red LAN sobre otra, por medio
de la conexin de los usuarios de distintas redes a travs de un "tnel" que se construye sobre
la red Internet o sobre cualquier otra red pblica, negociando la de encriptacin y
autentificacin de los paquetes de datos para el transporte. Esto permite el acceso remoto a
servicios de red de forma transparente y segura con el grado de conveniencia y seguridad que
los usuarios conectados elijan. Las VPN se implementan de preferencia en firewalls para lograr
la encriptacin y esquemas de autentificacin deseadas.

Escenario
Para esta actividad se necesita que el alumno tenga ya instalado los siguientes equipos
virtuales:
a) Un equipo firewall con dos tarjetas de red y el mecanismo de filtrado de paquetes
activo como en la Actividad de Laboratorio 3.
b) El equipo anterior de preferencia deber tener instalado y configurado el servicio proxy
para el control de la navegacin.
c) Un equipo con Windows XP/2003 para las pruebas de conectividad. Este equipo
deber estar ubicado en la red protegida.
d) Un equipo con Windows XP/7. Este equipo deber esta ubicado en la red externa al
firewall. Este equipo actuara como el cliente remoto desde la red internet.

Actividad 5.5.5 VPN con OpenVPN

63

Linux Seguridad en Redes Gua de laboratorios


Tarea 1: Instalar el software OpenVPN.
Paso 1: conctese al servidor firewall de manera remota usando putty de preferencia. Actualice
los repositorios del servidor firewall.
root@firewall:~# aptitude update
Obj http://ftp3.nrc.ca squeeze Release.gpg
Ign http://ftp3.nrc.ca/debian/ squeeze/contrib Translation-en
Ign http://ftp3.nrc.ca/debian/ squeeze/contrib Translation-es
.....
Des:18 http://ftp3.nrc.ca squeeze-updates/main 2012-08-19-1411.58.pdiff [27 B]
Des:19 http://security.debian.org squeeze/updates/contrib i386 Packages [621 B]
Descargados 660 kB en 4seg. (132 kB/s).

root@firewall:~#

Paso 2: verifique la disponibilidad del software de OpenVPN en los repositorios de la versin


de Debian que esta usando:
root@firewall:~# aptitude search openvpn
p gadmin-openvpn-client
p gadmin-openvpn-client-dbg
p gadmin-openvpn-server
p gadmin-openvpn-server-dbg
p network-manager-openvpn
p network-manager-openvpn-gnome
p openvpn
p openvpn-auth-ldap
p openvpn-blacklist

- GTK+ configuration tool for openvpn (client)


- GTK+ configuration tool for openvpn (debug for client)
- GTK+ configuration tool for openvpn (server)
- GTK+ configuration tool for openvpn (debug for server)
- network management framework (OpenVPN plugin core)
- network management framework (OpenVPN plugin GNOME GUI)
- virtual private network daemon
Paquete solicitado
- OpenVPN LDAP authentication module
- list of blacklisted OpenVPN RSA shared keys

Paso 3: proceda a instalar el software indicado (openvpn):


root@firewall:~# aptitude install openvpn
Se instalarn los siguiente paquetes NUEVOS:
liblzo2-2{a} libpkcs11-helper1{a} openssl-blacklist{a} openvpn openvpn-blacklist{a}
0 paquetes actualizados, 5 nuevos instalados, 0 para eliminar y 24 sin actualizar.
Necesito descargar 7945 kB de ficheros. Despus de desempaquetar se usarn 16.3 MB.
Quiere continuar? [Y/n/?] y
Des:1 http://ftp3.nrc.ca/debian/ squeeze/main openssl-blacklist all 0.5-2 [6339 kB]
Des:2 http://ftp3.nrc.ca/debian/ squeeze/main liblzo2-2 i386 2.03-2 [62.4 kB]
Des:3 http://ftp3.nrc.ca/debian/ squeeze/main libpkcs11-helper1 i386 1.07-1 [43.8 kB]
Des:4 http://ftp3.nrc.ca/debian/ squeeze/main openvpn-blacklist all 0.4 [1068 kB]
Des:5 http://ftp3.nrc.ca/debian/ squeeze/main openvpn i386 2.1.3-2+squeeze1 [432 kB]
Descargados 7945 kB en 29seg. (273 kB/s).
Preconfigurando paquetes ...
Seleccionando el paquete openssl-blacklist previamente no seleccionado.
(Leyendo la base de datos ... 30982 ficheros o directorios instalados actualmente.)

..
Seleccionando el paquete openvpn previamente no seleccionado.
Desempaquetando openvpn (de .../openvpn_2.1.3-2+squeeze1_i386.deb) ...
Procesando disparadores para man-db ...
Configurando openssl-blacklist (0.5-2) ...
Configurando liblzo2-2 (2.03-2) ...
Configurando libpkcs11-helper1 (1.07-1) ...
Configurando openvpn-blacklist (0.4) ...
Configurando openvpn (2.1.3-2+squeeze1) ...
Restarting virtual private network daemon.:.
root@firewall:~#

Paso 4: verifique que se instalo correctamente el software indicado:

Actividad 5.5.5 VPN con OpenVPN

64

Linux Seguridad en Redes Gua de laboratorios


root@firewall:~# dpkg -l openvpn
Deseado=Desconocido/Instalar/Eliminar/Purgar/Retener
| Estado=No/Instalado/Config-files/Desempaquetado/Medio-conf/Medio-inst/espera-disparo/pendiente-disparo
|/ Err?=(ninguno)/Requiere-reinst (Estado,Err: maysc.=malo)
||/ Nombre
Versin
Descripcin
+++==========================================================================================
ii openvpn
2.1.3-2+squeeze1
virtual private network daemon
root@firewall:~#

Tarea 2: Crear el Certificado de Autoridad (CA) y la clave.


Paso 1: ubique el directorio easy-rsa en el firewall y cpielo dentro del directorio /etc/openvpn:
root@firewall:~# cp -rf /usr/share/doc/openvpn/examples/easy-rsa/
root@firewall:~#

/etc/openvpn/

Paso 2: desplcese al interior del directorio recin copiado:


root@firewall:~# cd /etc/openvpn/easy-rsa/2.0/

Paso 3: edite el archivo vars y modifique los parmetros KEY_COUNTRY, KEY_PROVINCE,


KEY_CITY, KEY_ORG y KEY_EMAIL. No deje en blanco ninguno de ellos:
root@firewall:~# vim vars
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=1024
# In how many days should the root CA key expire?
export CA_EXPIRE=3650
# In how many days should certificates expire?
export KEY_EXPIRE=3650
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="PE"
export KEY_PROVINCE="Lima"
export KEY_CITY="Rmac"
export KEY_ORG="UNI"
export KEY_EMAIL="jgonzales@uni.edu.pe"

Modifique las lneas


mostradas en negrita

Paso 4: a continuacin, proceda a generar el certificado del firewall. Este certificado ser valido
para esta instalacin. Utilizaremos este archivo para firmar nuestros propios certificados:
root@firewall:~# . ./vars
root@firewall:~# ./clean-all
root@firewall:~# ./build-ca

En el ultimo comando deber introducir el acpite Common Name manualmente:


root@firewall:/etc/openvpn/easy-rsa/2.0#
Generating a 1024 bit RSA private key
...........................++++++
....................++++++
writing new private key to 'ca.key'

./build-ca

Actividad 5.5.5 VPN con OpenVPN

65

Linux Seguridad en Redes Gua de laboratorios


----You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [PE]:
State or Province Name (full name) [Lima]:
Locality Name (eg, city) [Rimac]:
Organization Name (eg, company) [UNI]:
Organizational Unit Name (eg, section) []:Sistemas
Common Name (eg, your name or your server's hostname) [UNI CA]: server
Name []:
Email Address [jgonzales@uni.edu.pe]:

Paso 5: genere la clave y el certificado para el servidor. Otras dos preguntas requieren
respuesta afirmativas: "Sign the certificate? [y/n]" y "1 out of 1 certificate requests
certified, commit? [y/n]".
root@firewall:/etc/openvpn/easy-rsa/2.0# ./build-key-server server

Este valor se repite


en el comando

Generating a 1024 bit RSA private key


.....++++++
........................................++++++
writing new private key to 'server.key'
----You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [PE]:
State or Province Name (full name) [Lima]:
Locality Name (eg, city) [Rimac]:
Organization Name (eg, company) [UNI]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [server]:
Name []:
Email Address [jgonzales@uni.edu.pe]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:sistemas
An optional company name []:sistemas
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName
:PRINTABLE:'PE'
stateOrProvinceName
:PRINTABLE:'Lima'
localityName
:PRINTABLE:'Rimac'
organizationName
:PRINTABLE:'UNI'
commonName
:PRINTABLE:'server'
emailAddress
:IA5STRING:'jgonzales@uni.edu.pe'
Certificate is to be certified until Aug 26 03:58:53 2022 GMT (3650 days)
Sign the certificate? [y/n]:y

Actividad 5.5.5 VPN con OpenVPN

66

Linux Seguridad en Redes Gua de laboratorios


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Tarea 3: Crear el Certificado del cliente y la clave.


Paso 1: crear el certificado y la clave para cada cliente que se va a conectar a la red local a
travs de la VPN. Este certificado deber generarse e instalarse en cada cliente que necesite
conectarse a travs de la VPN. Para nuestro caso asumiremos que se trata de un solo cliente
Windows XP.
root@firewall:/etc/openvpn/easy-rsa/2.0# ./build-key cliente1
Generating a 1024 bit RSA private key
......++++++
.........++++++
writing new private key to 'cliente1.key'
----You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [PE]:
State or Province Name (full name) [Lima]:
Locality Name (eg, city) [Rimac]:
Organization Name (eg, company) [UNI]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [cliente1]:
Name []:XP
Email Address [jgonzales@uni.edu.pe]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:cliente1
An optional company name []:Sistemas
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName
:PRINTABLE:'PE'
stateOrProvinceName
:PRINTABLE:'Lima'
localityName
:PRINTABLE:'Rimac'
organizationName
:PRINTABLE:'UNI'
commonName
:PRINTABLE:'cliente1'
name
:PRINTABLE:'XP'
emailAddress
:IA5STRING:'jgonzales@uni.edu.pe'
Certificate is to be certified until Aug 26 04:20:10 2022 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Recuerde que por cada cliente deber ingresar un COMMON NAME distinto. Use un valor
distinto para cada cliente.

Actividad 5.5.5 VPN con OpenVPN

67

Linux Seguridad en Redes Gua de laboratorios


Paso 2: generar los parmetros DIFFIE-HELLMAN.
root@firewall:/etc/openvpn/easy-rsa/2.0# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
...........................+......+..............+.......................+...............+.........................................+.....+........................
......................++*++*++*
root@firewall:/etc/openvpn/easy-rsa/2.0#

Paso 4: reconocer los archivos de certificados y claves recin creados. Utilice la siguiente tabla
para ubicarlos y saber adonde va cada uno de ellos (ubquelos en directorio keys):
Archivo
ca.crt
ca.key

Ubicacin
Servidor y clientes
Equipo firmante *

Propsito
Certificado CA
Clave CA

Secreto
NO
YES

dh1024.pem
server.crt
server.key

Solo servidor
Solo servidor
Solo servidor

Parmetros Diffie-Hellman
Certificado del servidor
Clave del servidor

NO
NO
YES

cliente1.crt
cliente1.key

Solo cliente
Solo cliente

Certificado del cliente


Clave del cliente

NO
YES

El equipo firmante en nuestro caso es el mismo firewall. No olvidar que creamos


nuestro propio certificado y archivo de clave y lo firmamos.

Paso 5: copiar los archivos anteriores en el directorio correspondiente. En el caso del servidor
ubicarlos en el directorio /etc/openvpn/. Incluya el archivo de clave CA:
root@firewall:/etc/openvpn/easy-rsa/2.0# cp keys/{server.{crt,key},dh1024.pem,ca.crt,ca.key}
/etc/openvpn/
root@firewall:/etc/openvpn/easy-rsa/2.0#
root@firewall:/etc/openvpn/easy-rsa/2.0# ls -l /etc/openvpn/
-rw- r-- r-1 root root 1257
ago 29 12:18 ca.crt
-rw- --- --1 root root 887
ago 29 12:18 ca.key
-rw- r-- r-1 root root 245
ago 29 12:18 dh1024.pem
drwxr-xr-x 4 root root 4096
ago 27 22:15 easy-rsa
-rw- r-- r-1 root root 3888
ago 29 12:18 server.crt
-rw- --- --1 root root 887
ago 29 12:18 server.key
-rwxr-xr-x
1 root root 1352
feb
20 2012
update-resolv-conf

Tarea 4: Crear el archivo de configuracin del servidor.


Paso 1: el archivo de configuracin de ejemplo proporcionado por la distribucin seleccionada (en nuestro
caso Debian) es un buen punto de inicio para configurar el servicio. Este archivo crea una VPN usando
una interface de red virtual del tipo TUN, escuchando a los clientes en el puerto 1194 UDP, asignando
direcciones IP a los clientes en la subred 10.8.0.0/8. Copie este archivo al directorio de configuracin del
OpenVPN:
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/

Paso 2: ubquese en directorio de configuracin del servicio y desempaquete el archivo


anterior:
# cd /etc/openvpn/
# gzip -d server.conf.gz

Actividad 5.5.5 VPN con OpenVPN

68

Linux Seguridad en Redes Gua de laboratorios


Paso 3: edite el archivo anterior y configure los siguientes parmetros a los valores indicados:
local 192.168.40.90
port
1194
proto
udp
dev
tun
ca
ca.crt
cert
server.crt
key
server.key # This file should be kept secret
dh
dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist
ipp.txt
client-to-client
user
nobody
group nogroup

Si existen valores comentados, elimine los comentarios (los caracteres #).


Paso 4: reinicie el servicio y observe los logs en bsqueda de posibles errores:
root@firewall:/etc/openvpn# /etc/init.d/openvpn restart
Stopping virtual private network daemon: server.
Starting virtual private network daemon: server.
root@firewall:/etc/openvpn# cat /var/log/syslog
Aug 29 13:34:15 firewall ovpn-server[2627]: Diffie-Hellman initialized with 1024 bit key
Aug 29 13:34:15 firewall ovpn-server[2627]: /usr/bin/openssl-vulnkey -q -b 1024 -m <modulus omitted>
Aug 29 13:34:15 firewall ovpn-server[2627]: TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Aug 29 13:34:15 firewall ovpn-server[2627]: Socket Buffers: R=[124928->131072] S=[124928->131072]
Aug 29 13:34:15 firewall ovpn-server[2627]: ROUTE default_gateway=192.168.40.1
Aug 29 13:34:15 firewall ovpn-server[2627]: TUN/TAP device tun0 opened
Aug 29 13:34:15 firewall ovpn-server[2627]: TUN/TAP TX queue length set to 100
Aug 29 13:34:15 firewall ovpn-server[2627]: /sbin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Aug 29 13:34:15 firewall ovpn-server[2627]: /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Aug 29 13:34:15 firewall ovpn-server[2627]: Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1
]
Aug 29 13:34:15 firewall ovpn-server[2633]: GID set to nogroup
Aug 29 13:34:15 firewall ovpn-server[2633]: UID set to nobody
Aug 29 13:34:15 firewall ovpn-server[2633]: UDPv4 link local (bound): [AF_INET]192.168.40.90:1194
Aug 29 13:34:15 firewall ovpn-server[2633]: UDPv4 link remote: [undef]
Aug 29 13:34:15 firewall ovpn-server[2633]: MULTI: multi_init called, r=256 v=256
Aug 29 13:34:15 firewall ovpn-server[2633]: IFCONFIG POOL: base=10.8.0.4 size=62
Aug 29 13:34:15 firewall ovpn-server[2633]: IFCONFIG POOL LIST
Aug 29 13:34:15 firewall ovpn-server[2633]: Initialization Sequence Completed

Tarea 5: Crear el archivo de configuracin del cliente.


Paso 1: crear el archivo de configuracin del cliente. Un buen inicio es el archivo proporcionado
por el software incluido en la distribucin seleccionada, en nuestro caso, Debian . cambiarle la
extensin a client.conf, de la siguiente manera:
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf

/etc/openvpn/client.ovpn

Paso 2: copie los siguientes archivos a la mquina cliente, en nuestro caso, Windows XP.
Instale todos los requisitos necesarios en la maquina cliente. Para el caso de Windows XP,
instale los siguientes programas:
Archivo

Funcin

WindowsXP-KB936929-SP3-x86-ESN
dotnetfx35
openvpn-client

Service Pack SP3 para Windows XP


Microsoft .NET Framework 3.5 Service Pack 1
Cliente de conexin OpenVPN

Actividad 5.5.5 VPN con OpenVPN

69

Linux Seguridad en Redes Gua de laboratorios


Paso 3: ubique a los archivos creados en la Tarea 3 en un directorio dentro de la maquina
cliente. En nuestro caso, dentro de Mis documentos creamos un directorio llamado openvpn y
depositamos los siguientes archivos dentro de l:

ca.crt
cliente1.crt
cliente1.key
client.ovpn

Paso 4: proceda a instalar el programa cliente de OpenVPN en la mquina cliente. Para lo cual
ejecute doble click sobre el archivo openvpn-client y aparecer la siguiente pantalla:

Paso 5: cliquear en ejecutar y proceda con la instalacin. Al finalizar deber aparecer la


siguiente pantalla de confirmacin:

Actividad 5.5.5 VPN con OpenVPN

70

Linux Seguridad en Redes Gua de laboratorios


Paso 6: cliquee en el icono de la pantalla:

OpenVPN
Client
Paso 7: en la pantalla siguiente proceda a configurar la conexin a la VPN:

Paso 8: seleccione el botn Connection Profiles y marque la opcin Local file tal como
se muestra en la siguiente imagen:

Actividad 5.5.5 VPN con OpenVPN

71

Linux Seguridad en Redes Gua de laboratorios


Paso 9: presione Import e indique la ruta al archivo client.conf. Este archivo contiene la los
parmetros de configuracin del cliente de conexin.

Presione Abrir. Deber aparecer la siguiente pantalla:


Paso 10: marque la opcin Make this profile available to all users on this computer y
presione la tecla Save:

Actividad 5.5.5 VPN con OpenVPN

72

Linux Seguridad en Redes Gua de laboratorios


Paso 11: cuando aparezca la siguiente ventana, proceda a probar la conexin cliqueando en el
botn client:

Paso 12: una vez establecida la conexin, se mostrara una pantalla similar a la siguiente:

Actividad 5.5.5 VPN con OpenVPN

73

Linux Seguridad en Redes Gua de laboratorios


CONTENIDO DEL ARCHIVO DEL CLIENTE VPN (client.opvn)
client
;dev tap
dev tun
;dev-node MyTap
;proto tcp
proto udp
remote 192.168.40.90 1194
;remote my-server-2 1194
;remote-random
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
;mute-replay-warnings
ca ca.crt
cert cliente1.crt
key cliente1.key
ns-cert-type server
;tls-auth ta.key 1
;cipher x
comp-lzo
verb 3
;mute 20
Paso 13: aada las reglas del firewall necesarias para permitir el acceso a la VPN recin
creada. Si no agrega esta reglas, los clientes simplemente no podrn conectarse desde la red
internet.

FIN DEL LABORATORIO

Actividad 5.5.5 VPN con OpenVPN

74

Linux Seguridad en Redes Gua de laboratorios

APENDICES

Apndice 1: Instalacin de Linux Debian 6.0

75

Linux Seguridad en Redes Gua de laboratorios

APENDICE 1

Manual Prctico de Instalacin de Linux Debian


Squeeze 6.0.1
El presente manual tiene por objetivo instruir al lector en los procedimientos bsicos para
instalar Linux Debian Squeeze. Debian es una distribucin de Linux bastante estable y casi
podramos decir muy fina, pues permite realizar trabajos de acabado impecable.
Esta distribucin es ideal casi para cualquier tipo de servicio que la oficina, hogar y empresa
corporativa requiera con la garanta adelantada de ser un producto final del cual pocas quejas
se han reportado.

Procedimiento.Coloque el DVD 1 de Debian en la lectora y reinicie el computador; si el arranque est


establecido para la lectora como dispositivo inicial, deber aparecer la siguiente pantalla:

En este punto seleccione Advanced options y luego Graphical expert install lo cual lo
llevara a la siguiente pantalla:

Apndice 1: Instalacin de Linux Debian 6.0

76

Linux Seguridad en Redes Gua de laboratorios

Seleccione Choose languaje y vera la pantalla de seleccin de idioma:

Seleccione el idioma y presione Continue:

Apndice 1: Instalacin de Linux Debian 6.0

77

Linux Seguridad en Redes Gua de laboratorios

Y finalmente confirme el pas:

Escoja la localizacin para efectos de configuracin regional:

Apndice 1: Instalacin de Linux Debian 6.0

78

Linux Seguridad en Redes Gua de laboratorios


Si lo desea, puede instalar localizaciones. En nuestro caso bastara PERU:

Elija el siguiente paso: Configure el teclado:

Apndice 1: Instalacin de Linux Debian 6.0

79

Linux Seguridad en Redes Gua de laboratorios


Seleccione el mapa de teclado a usar (Latinoamericano):

Siguiente paso, Detectar y montar el CDROM (procedimiento de rutina):

Apndice 1: Instalacin de Linux Debian 6.0

80

Linux Seguridad en Redes Gua de laboratorios


El programa analiza el hardware y enva el siguiente mensaje:

En este punto se le preguntara por dispositivos PCMCIA (laptos). Presione CONTINUAR.

La deteccin de la lectora de CDROM se confirma:

Apndice 1: Instalacin de Linux Debian 6.0

81

Linux Seguridad en Redes Gua de laboratorios

Volvemos a la pantalla inicial y seleccionamos Cargar componentes del instalador desde CD

Apndice 1: Instalacin de Linux Debian 6.0

82

Linux Seguridad en Redes Gua de laboratorios


Puede seleccionar los componentes manualmente; sin embargo Deban lo har por usted
cuando tenga que instalar algn componente usando aptitude y/o apt-get; no seleccione
nada:

En este punto comienza la CONFIGURACION DE LA RED. Presione Continuar:

Se le preguntara si desea configurar la red mediante DHCP (automtico). Presione NO.

Apndice 1: Instalacin de Linux Debian 6.0

83

Linux Seguridad en Redes Gua de laboratorios

Proceda a la configuracin de los parmetros IP. Direccin IP:

Ingrese la MASCARA DE RED asociada a la tarjeta, puede variar si hay subredes:

Apndice 1: Instalacin de Linux Debian 6.0

84

Linux Seguridad en Redes Gua de laboratorios

Ingrese la PUERTA DE ENLACE o Gateway:

Ingrese la Direccin IP del servidor DNS PREFERIDO:

Apndice 1: Instalacin de Linux Debian 6.0

85

Linux Seguridad en Redes Gua de laboratorios

Se le pedir confirmar los parmetros de la tarjeta de red; confirme y contine.

Apndice 1: Instalacin de Linux Debian 6.0

86

Linux Seguridad en Redes Gua de laboratorios


A continuacin ingrese el NOMBRE DEL SERVIDOR:

Luego, el DOMINIO asociado a la maquina:

Apndice 1: Instalacin de Linux Debian 6.0

87

Linux Seguridad en Redes Gua de laboratorios


A continuacin deber ingresar las CLAVES de usuario root y de otro usuario (opcional):

Habilite las opciones para trabajar con las contraseas SHADOW para mayor seguridad:

Apndice 1: Instalacin de Linux Debian 6.0

88

Linux Seguridad en Redes Gua de laboratorios

Defina la contrasea para el usuario root:

Por medidas de seguridad, no crear cuentas de usuario adicional; es opcional:

Apndice 1: Instalacin de Linux Debian 6.0

89

Linux Seguridad en Redes Gua de laboratorios

A continuacin configure el reloj del sistema. De preferencia no habilite servidores de fecha:

No active el servidor NTP; puede ocasionar ligeros cambios de la hora indeseados. Marque
NO:

Apndice 1: Instalacin de Linux Debian 6.0

90

Linux Seguridad en Redes Gua de laboratorios


A continuacin, la Zona horaria estar establecida automticamente:

Detectar discos: ac comienza la seccin de particionado del disco duro:

A continuacin, proceda con el particionado propiamente dicho:

Apndice 1: Instalacin de Linux Debian 6.0

91

Linux Seguridad en Redes Gua de laboratorios

Seleccione el particionado GUIADO si no tiene mucha experiencia de particionado en Linux:

Apndice 1: Instalacin de Linux Debian 6.0

92

Linux Seguridad en Redes Gua de laboratorios


Se mostraran los discos instalados en su sistema; seleccione el de su preferencia:

Seleccione el mtodo de crear particiones. Una particin es lo recomendable:

Apndice 1: Instalacin de Linux Debian 6.0

93

Linux Seguridad en Redes Gua de laboratorios


Si est de acuerdo con las particiones, confirme y grabe los cambios en el disco duro:

Confirme los cambios; en este punto se graban los cambios en el MBR del disco duro:

Una vez acabado el proceso de particin, se procede a instalar el sistema operativo en s:

Apndice 1: Instalacin de Linux Debian 6.0

94

Linux Seguridad en Redes Gua de laboratorios

Seleccione el kernel de su preferencia; la recomendacin esta sobresaltada:

Apndice 1: Instalacin de Linux Debian 6.0

95

Linux Seguridad en Redes Gua de laboratorios


Solo se requiere un initrd genrico para el File System. Seleccione genrico:

Ahora se configurar los repositorios de Debian (Gestor de paquetes):

Apndice 1: Instalacin de Linux Debian 6.0

96

Linux Seguridad en Redes Gua de laboratorios


Si va a instalar desde internet, entonces no realice ms anlisis de CDs:

Confirme el uso de replicas de red. Estos son los repositorios de Debian (espejos y/o mirros):

Apndice 1: Instalacin de Linux Debian 6.0

97

Linux Seguridad en Redes Gua de laboratorios


Establezca el protocolo de descarga de los paquetes desde el repositorio:

Seleccione el pas de ubicacin de repositorio (preferible los de USA):

Ahora seleccione el repositorio dentro del pas seleccionado (ftp.us.debian.org es bueno):

Apndice 1: Instalacin de Linux Debian 6.0

98

Linux Seguridad en Redes Gua de laboratorios

Si est detrs de un proxy, este es el momento de indicarlo al instalador:

Apndice 1: Instalacin de Linux Debian 6.0

99

Linux Seguridad en Redes Gua de laboratorios


El software no libre es buena alternativa de paquetes complementarios al sistema, actvelo:

Active las actualizaciones, mantienen al sistema actualizado y seguro:

Apndice 1: Instalacin de Linux Debian 6.0

100

Linux Seguridad en Redes Gua de laboratorios


Seleccione los paquetes a instalar; recuerde: un firewall no lleva programacin ni X11:

El Discover detecta ciertos paquetes a instalar. En este caso, el mp-status. Instlelo.

Apndice 1: Instalacin de Linux Debian 6.0

101

Linux Seguridad en Redes Gua de laboratorios


Si esta con tiempo y deseos, puede responder la encuesta indicada:

No active el paquete setuid man si no esta seguro de su funcin.

Solo seleccione lo ms bsico; incluso se puede obviar el servidor apache:

Apndice 1: Instalacin de Linux Debian 6.0

102

Linux Seguridad en Redes Gua de laboratorios

Luego de la descarga de paquetes, proceda con la instalacin del arrancador de Linux (grub):

Apndice 1: Instalacin de Linux Debian 6.0

103

Linux Seguridad en Redes Gua de laboratorios


Instale el arrancador GRUB en el MBR del disco duro:

Casi esta lista la instalacin. Presione continuar para configurar el reloj UTC:

Apndice 1: Instalacin de Linux Debian 6.0

104

Linux Seguridad en Redes Gua de laboratorios


Tenga cuidado: UTC cambia la hora local lo cual es peligroso, tome sus precauciones:

Finalmente, termino la instalacin. Reinicie la maquina y Actualice los repositorios.

Apndice 1: Instalacin de Linux Debian 6.0

105

Linux Seguridad en Redes Gua de laboratorios

APENDICE 2

Relacin de Archivos de Configuracin de Debian

Archivo

Uso

/etc/network/interfaces

Contiene la configuracin de las interfaces de red. Se


incluye a los alias que puedan poseer las tarjetas de red.

/etc/hosts

Nombre de la maquina incluyendo el dominio. Aada


los alias de la maquina aqu.

/etc/sysctl.conf

Opciones de networking del kernel, como por ejemplo,


activar el encaminamiento IP.

/etc/squid3/squid.conf

Archivo de configuracin del servidor proxy Squid.

/etc/openvpn/

Directorio de configuracin del programa OpenVPN,


para activar conexiones VPN en Linux.

/etc/rc.local

Archivo batch para activar, durante el arranque, otros


programas, por ejemplo, scripts de comandos. Colocar
aqu el arranque del script de filtrado firewall.sh.

/etc/firewall.sh

Script que contiene las reglas de activacin del firewall


de filtrado de paquetes. Es personalizado, incluso
puede llevar diferentes nombres.

Apndice 2: Archivos de Configuracin en Linux Debian 6.0

106

Linux Seguridad en Redes Gua de laboratorios

APENDICE 3

Relacin de Comandos ms usados de Debian

Comando

Uso

aptitude upgrade

Actualiza las cabeceras de las


actualizaciones de los mirrors de Debian.

aptitude install squid3

Instala squid3 en Debian.

aptitude remove openvpn

Elimina el paquete openvpn del sistema.

/etc/init.d/squid3 restart

Reinicia el servicio proxy instalado.

aptitude install vim openvpn

Instala el editor vim y el paquete openvpn


en Linux Debian.

sh /etc/firewall.sh

Este comando se coloca dentro del archivo


/etc/rc.local, le dice al sistema ejecutar
automticamente el scripts indicado.

sh stop-fw.sh

Ejecuta el script para detener el filtrado.


Debe tener las reglas para detener el
firewall de filtrado.

Apndice 3: Comandos usados en Linux Debian 6.0

107

Você também pode gostar