How to medidas de desempeño

21
Medidas de Desempeño Comunicaciones I Ing. Juan Carlos Peña Integrantes Campos Sandoval, Marcela Noemí Palacios Pacheco, José Damián Zuniga Ramírez, Carlos Ernesto

Transcript of How to medidas de desempeño

Medidas de Desempeño

Comunicaciones I

Ing. Juan Carlos Peña

Integrantes

Campos Sandoval, Marcela Noemí

Palacios Pacheco, José Damián

Zuniga Ramírez, Carlos Ernesto

1

INDICE

INTRODUCCION……………………………………………………………………………………………………………. i

HERRAMIENTAS PARA MONITOREAR UNA RED

NMAP…………………………………………………………………………………………………………………………… 3

IPTRAF…………….………………………………………………………………………………………………………….. 4

INSTALACIÓN DE MRGT………………………….………………………………………………………………….. .7

METODOS PARA MEJORAR EL RENDIMIENTO DE LA RED

IMPLEMENTACION DE QoS………………………………….……………………………………………………. 12

IMPLEMENTACION DE FIREWALL…………………………………………………………………………….. 17

DIAGRAMA DE RED IMPLEMENTADO…………………………………………………………..………….. 20

2

Introduccio n Normalmente en una red nos encontramos con diferentes tipos de problemas, tales como

de conectividad y de rendimiento. Para probar que una red funcione de manera adecuada,

existen herramientas muy prácticas como una prestación estándar en la mayoría de los

sistemas operativos. A continuación se pretende brindar la información para poder

diagnosticar los problemas de red utilizando las herramientas y software incluidos en los

ordenadores.

Los problemas que podemos encontrar en las redes, los podemos dividir en:

Problemas de Software: Problemas de Aplicación, protocolos incompatibles

direcciones IP en conflicto, tablas de enrutamiento mal configuradas, otros

Problemas de Hardware: Tarjetas de red, routers, switch, otros

Problemas físicos: Conectores en mal estado, cables rotos, oxidación de

contactos, otros

Para poder detectar los problemas, los propios sistemas operativos nos proporcionan

herramientas de software, para ayudarnos a detectar estos fallos:

ifconfig: Sirve para poder determinar si la configuración es adecuada, y nos

dará información útil para realizar pruebas posteriores.

Ping: verifica si determinado host (equipo), puede ser alcanzado. Permitiendo

de esta manera diagnosticar la conectividad a la red.

Traceroute es una herramienta de diagnóstico de red para la visualización de

la ruta y la medición de retrasos en el tránsito de los paquetes.

Todas las herramientas software indicadas son de línea de comando, además de estos

programas, tanto Windows, en sus últimas versiones, como Linux, nos permiten hacer uso

de otras herramientas destinadas al diagnóstico de redes. Entre algunas de estas opciones

encontramos IPtraf, Nmap.

Para el diagnóstico de una red es muy importante considerar diferentes tecnologías que

pueden influir en la información obtenida mediante algunas pruebas, tal es el caso de la

implementación del servicio de QoS y Firewalls.

3

NMAP La herramienta de monitoreo NMAP se instala con el siguiente comando:

# apt-get install nmap

Escaneando Rango de puertos.

Para escanear un rango determinado de puertos para una ip lo haremos de la siguiente manera. Opción -p

# nmap 192.168.0.1 Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/) Interesting ports on localhost (192.168.0.1): (The 1545 ports scanned but not shown below are in state: closed) Port State Service 22/tcp open ssh 25/tcp open smtp 111/tcp open sunrpc 6000/tcp open X11 Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds

La opción -p nos permite acotar un rango de puertos incluyendo el primero y el ultimo,

muy útil para tardar menos escaneando si sabemos que solo nos interesa unos

determinados puertos.

También con -p 22,53,110,143 así escanearemos solo los puertos especificados.

Escaneando un rango de ips para un puerto determinado. Para saber que ordenadores tienen abierto algún puerto en específico. En este caso

probamos con el puerto 139

# nmap -p 139 172.26.0.1-10 Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-10-20 02:35 CEST Interesting ports on 172.26.0.2: PORT STATE SERVICE 139/tcp filtered netbios-ssn Interesting ports on 172.26.0.9): PORT STATE SERVICE 139/tcp open netbios-ssn Nmap run completed -- 10 IP addresses (2 hosts up) scanned in 4.002 second

4

La información que obtenemos sería la de dos ordenadores encendidos en ese rango de

ips como bien podemos leer abajo del todo y que uno de ellos tiene abierto el servicio de

netbios perteneciente al puerto 139.

Escanear un host sin hacerle ping

La opción -p0 Puede servirnos si no queremos que intente hacer ping a un servidor antes

de escanearlo, es muy útil para maquinas que tienen firewall o no responden a ping.

Escaneando Host por ping

Usando la opción -sP le diremos al Nmap que nos haga un escaneo de los hosts haciendo

ping.

IPTraf Es una utilidad de consola para Linux que proporciona estadísticas sobre el tráfico IP de

las redes que se encuentren activas en el sistema. Es capaz de brindar mucha información

como el número de paquetes y bytes en una conexión TCP, estadísticas de una interfaz e

indicadores de actividad, caídas en el tráfico TCP/UDP y número de bytes y paquetes en

una estación LAN.

Instalación

Descargar desde los repositoris de Debian e installar

#apt-get install

Ejecutar desde una consola en modo root

#iptraf

Abrirá la aplicación en modo consola, mostrándonos una pantalla informativa la cual

saltamos presionando cualquier tecla para que nos despliegue el menú general.

5

Configuración

Entramos a la opción configure en el menú principal, para nuestro caso las configuraciones

fueron:

1. Activamos la búsqueda inversa IPTraf para averiguar el nombre de los hosts con

las direcciones de los paquetes IP.

Reverse DNS lookups - on

2. Para que IPTraf pueda mostrar los nombres TCP / UDP de servicios

(smtp,www,pop3) en lugar de sus puertos numéricos (25, 80, 110)

TCP/UDP service names – on

3. para que nos muestre el tráfico en Kbytes

Activity mode - Kbytes/s

Para entender las demás configuraciones le recomendamos leer la documentación

completa de iptraf

http://iptraf.seul.org/2.7/manual.html

Monitoreando con iptraf

1. "IPtraffic monitor”. Nos muestra en tiempo real el tráfico que pasa por las interfaces.

Podemos seleccionar sólo una interface o todas. Podemos ver qué IP está haciendo uso

del tráfico de red.

6

2. "General interfaces statistics”. Muestra estadísticas de las interfaces.

3. "Detailed interfaces statistics”. Información más detallada de una interfaz en concreto.

4. "Statistical breakdowns...".Tráfico de paquetes por tamaño o por TCP/UDP en una

interfaz.

7

5. "LAN station monitor”. Muestra las estadísticas de nuestra red detectadas en una o

todas las interfaces.

MRTG Multi Router Traffic Grapher, es una herramienta web de monitoreo que nos permite

visualizar de forma gráfica el tráfico de la red en escalas de tiempo diferente, haciendo

énfasis en los paquetes entrantes y salientes de uno o más routers.

8

Instalación

Su instalación no es muy compleja, se basa en 3 pasos principales: Edición del archivo de

configuración mrtg.cfg, marcado de paquetes y vinculación con archivos de orígenes de

estadísticas. Como servidor web tendremos Apache en el directorio /var/www.

Necesitaremos instalar los paquetes: mrtg, mrtg-contrib y mrtgutils. Para ello utilizaremos

el sistema de instalación de paquetes que traiga nuestra distribución de GNU/Linux.

# apt-get install mrtg mrtg-contrib mrtgutils

Configuración

1. Mrtg es un servicio web que monitoriza la red, las paginas se crean a partir del

archivo de configuración /etc/mrtg.cfg, por lo tanto se modificara dejándolo de la

siguiente manera

WorkDir: /var/www/mrtg #Especificar en donde se guardaran las paginas web

WriteExpires: Yes

Language: spanish

Title[^]: Control de Tráfico

Options[_]: growright

Target[eth0]: `/usr/bin/mrtg-ip-acct eth0` #De donde recogerá la info.

MaxBytes1[eth0]: 32000 #Bytes de entrada

MaxBytes2[eth0]: 16000 #Bytes de salida

Title[eth0]: Análisis del tráfico total en eth0

YLegend[eth0]: Tráfico

PageTop[eth0]: <H1>Estadisticas de interfaces<BR>Utilizacion interface

interna (eth0)</H1>

Target[red1]:`/etc/red1.data` #Archivo que se creará para obtener la info

Title[red1]: comunicaciones - red1

PageTop[red1]: <H1>RED1</H1>

MaxBytes1[red1]: 35000

MaxBytes2[red1]: 40000

YLegend[red1]: Bytes/s

ShortLegend[red1]: B/s

Target[red2]: `/etc/red2.data`

Title[red2]: comunicaciones - red2

PageTop[red2]: <H1>RED2</H1>

MaxBytes1[red2]: 35000

MaxBytes2[red2]: 40000

YLegend[red2]: Bytes/s

ShortLegend[red2]: B/s

Tome en cuenta que el carácter ` no es un apostrofe o comilla simple ‘

9

En WorkDir colocamos la dirección de la ubicación donde se van a generar los

archivos y documentos con las estadísticas de trafico

WriteExpires indica si se generaran un documento con extensión .meta para

cada archivo que se cree.

Options[_]: growright, esta opción especifica que los graficos aparezcan de

derecha a izquierda

Crearemos los archivos que nos servirán de entrada de datos para generar estadísticas. Su

nombre, extensión y ubicación son indiferentes.

# nano /etc/red1.data

Y lo dejaremos con la siguiente configuración

#!/bin/sh

IPT=/sbin/iptables

statname="Tráfico de Red1"

uptime=`uptime`

statin=`$IPT -L -n -x -v | /bin/grep -A 6 FORWARD | /bin/grep RED1_IN |

/usr/bin/awk '{print $2}'`

statout=`$IPT -L -n -x -v | /bin/grep -A 10 FORWARD | /bin/grep RED1_OUT

| /usr/bin/awk '{print $2}'`

echo $statin

echo $statout

echo $uptime

echo $statname

De la misma forma crearemos el archivo red2.data, con la misma configuración,

recordando cambiar las etiquetas RED1_IN y RED2_IN por RED2_IN y RED2_OUT. Estas

son etiquetas o “targets” de iptables, en donde se almacenarán los datos de los paquetes

marcados con las mismas.

En las variables statin y statout del archivo red1.data, se guardaran la cantidad de datos

salientes y entrantes marcados en la etiqueta RED1_IN y RED1_OUT respectivamente.

2. Filtraremos el tráfico de la tarjeta de red y lo marcaremos con etiquetas, tanto

para paquetes entrantes como salientes mediante iptables. Para ello crearemos las

etiquetas digitando en la terminal:

10

# iptables -N RED1_OUT

# iptables -N RED1_IN

# iptables -N RED2_OUT

# iptables -N RED2_IN

Con esto, ya tenemos las etiquetas creadas, solo nos queda marcar los paquetes entrantes

y salientes de cada red con la etiqueta correspondiente:

# iptables -A FORWARD -s 172.16.1.0/24 -j RED1_OUT

# iptables -A FORWARD -d 172.16.1.0/24 -j RED1_IN

# iptables -A FORWARD -s 172.16.2.0/24 -j RED2_OUT

# iptables -A FORWARD -d 172.16.2.0/24 -j RED1_IN

3. Para comprobar el marcado de paquetes, se puede ejecutar el comando siguiente:

# iptables -L -n -x -v

4. Terminados los archivos de configuración, crearemos el directorio en donde se

almacenaran las páginas web con los gráficos; con la configuración

predeterminada de un servidor apache, crearemos una carpeta llamada mrtg

dentro de /var/www que alojará todas las paginas para visualizar los gráficos del

tráfico de la red.

# mkdir /var/www/mrtg

Esto según el archivo /etc/mrtg.cfg

5. Daremos permisos de lectura a los archivos red1.data y red2.data

# chmod 744 /etc/red1.data

# chmod 744 /etc/red3.data

Iniciando MRTG

1. Ejecutamos mrtg para iniciarlo, las primeras veces nos pueden aparecer

advertencias.

#env LANG=C /usr/local/mrtg-2/bin/mrtg /etc/mrtg.cfg

11

Se nos crearan diversos archivos dentro del directorio /var/www/mrtg con los

datos necesarios para mostrarnos de forma gráfica el uso de la red.

2. Creamos una página índice para unir todas las gráficas:

#env LANG=C /usr/local/mrtg-2/bin/indexmaker \

/etc/mrtg.cfg>/var/www/mrtg/index.html

3. Luego de haber configurado esto ya podemos visualizar la página web que se ha

generado en el sitio que indicamos. Para ello basta con digitar en un navegador

Http://localhost/mrtg

4. Con el paso 7 actualizamos los datos de las gráficas, para que sus cambios sean

automáticos, editaremos el archivo /etc/crontab, agregando al final:

*/5 * * * * root env LANG=C /usr/local/mrtg-2/bin/mrtg /var/www/mrtg/mrtg.cfg 2 > /dev/null

5. Luego reiniciamos el demonio cron: /etc/init.d/cron restart, Por defecto, los

gráficos se actualizarán cada 5 minutos.

MRTG nos servirá para ver qué niveles de tráfico soporta el servidor, tanto el cómputo

general de ancho de banda (de subida y de bajada) como el desglose en los diferentes

servicios (http, smtp, nntp, etc...).

12

Me todos para mejorar el Rendimiento

de la Red Entre los métodos que disponemos para mejorar el rendimiento de la red se encuentran:

la implementación de QoS

la implementación de Firewalls

Implementacio n de QoS QoS (Quality of Service o Calidad de Servicio) es un conjunto de protocolos y tecnologías

que garantizan la entrega de datos a través de la red en un momento dado. De este modo

nos aseguramos que las aplicaciones que requieran un tiempo de latencia bajo o mayor

consumo de ancho de banda, realmente disponga de los recursos suficientes cuando los

soliciten. Por ello, uno de las principales metas de QoS es la priorización. Esto es dar

relevancia a unas conexiones frente a otras.

Algunos beneficios de implementar QoS en nuestra red son:

Control sobre los recursos: limitar ancho de banda, priorizar.

Uso más eficiente de los recursos de red: establecer prioridades según servicios,

tasas de trasferencia...

Menor latencia: en aplicaciones que requieren un menor tiempo de respuesta.

Para implementar QoS en nuestra red, realizamos el siguiente procedimiento:

Creamos en arbol de encolado, asignando la clase padre a nuestra interfaz eth0 y a partir

de esta creamos las clases hijas para determinar la prioridad de los paquetes que se

reciban

13

Árbol de encolado o de clases

Paso 1 Definición de la clase raíz 1 a la interfaz eth0

#tc qdisc add dev eth0 root handle 1: htb default 13

Paso 2 Creamos una clase dentro de la qdisc, donde la cola 1 es su padre

# tc class add dev eth0 parent 1: classid 1:1 htb rate 5kbit ceil 10kbit

Paso 3 Creamos las clases hijas con su respectiva prioridad y capacidad de transferencia

# tc class add dev eth0 parent 1:1 classid 1:10 htb rate 3kbit ceil 5kbit

prio 1

# tc class add dev eth0 parent 1:1 classid 1:11 htb rate 1kbit ceil 2kbit

prio 2

# tc class add dev eth0 parent 1:1 classid 1:12 htb rate 1kbit ceil 2kbit

prio 3

# tc class add dev eth0 parent 1:1 classid 1:13 htb rate 1kbit ceil 1kbit

prio 4

Qdisc raíz htb

Clase htb (hija)

1

1:1

1:13 1:12 1:11 1:10

Clases hijas de 1:1

14

Paso 4 Asignamos una cola (qdisc) a cada clase, usando la disciplina sfq, para clasificar

los paquetes por conexión

#tc qdisc add dev eth0 parent 1:10 handle 100: sfq perturb 10 quantum

1500

#tc qdisc add dev eth0 parent 1:11 handle 110: sfq perturb 10 quantum

1500

#tc qdisc add dev eth0 parent 1:12 handle 120: sfq perturb 10 quantum

1500

#tc qdisc add dev eth0 parent 1:13 handle 130: sfq perturb 10 quantum

1500

Paso 5 Añadimos a la interfaz de red eth0 un filtro (filter) para tráfico de tipo IP, el cual

se asocia a la rama 1

#tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1 fw

classid 1:10

#tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 2 fw

classid 1:11

#tc filter add dev eth0 parent 1:0 protocol ip prio 3 handle 3 fw

classid 1:12

#tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 4 fw

classid 1:13

MARCADO DE PAQUETES Una vez hechas las clases y definiendo sus prioridades se procede al marcado de cada uno

de los paquetes

ICMP

Le indicamos a la tabla mangle que todo paquete icmp que reciba la máquina deberá ser

marcado con prioridad 1 para su posterior clasificación y envio. Se usa RETURN para

evitar la coincidencia múltiple de paquetes

#iptables -t mangle -A PREROUTING -p icmp -j MARK --set-mark 1

#iptables -t mangle -A PREROUTING -p icmp -j RETURN

15

Modificamos los paquetes generados localmente antes de encaminarlos

#iptables -t mangle -A OUTPUT -p icmp -j MARK --set-mark 1

#iptables -t mangle -A OUTPUT -p icmp -j RETURN

SSH

Le indicamos a la tabla mangle que todo paquete tcp de puerto destino 22 que reciba la

máquina deberá ser marcado con prioridad 1 para su posterior clasificación y envio.

#iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 1

#iptables -t mangle -A PREROUTING -p tcp --dport 22 -j RETURN

#iptables -t mangle -A OUTPUT -p tcp --dport 22 -j MARK --set-mark 1

#iptables -t mangle -A OUTPUT -p tcp --dport 22 -j RETURN

HTTP & HTTPS

Le indicamos a la tabla mangle que todo paquete tcp de puerto destino 80 que reciba la

máquina deberá ser marcado con prioridad 3 para su posterior clasificación y envio.

#iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 3

#iptables -t mangle -A PREROUTING -p tcp --dport 80 -j RETURN

#iptables -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 3

#iptables -t mangle -A PREROUTING -p tcp --dport 443 -j RETURN

#NEWS (NNTP)

#iptables -t mangle -A PREROUTING -p tcp --dport 119 -j MARK --set-mark 2

#iptables -t mangle -A PREROUTING -p tcp --dport 119 -j RETURN

#FTP

#iptables -t mangle -A PREROUTING -p tcp --dport 20:21 -j MARK --set-

mark 3

#iptables -t mangle -A PREROUTING -p tcp --dport 20:21 -j RETURN

#iptables -t mangle -A OUTPUT -p tcp --dport 20:21 -j MARK --set-mark 3

#iptables -t mangle -A OUTPUT -p tcp --dport 20:21 -j RETURN

POP3

#iptables -t mangle -A PREROUTING -p tcp --dport 110 -j MARK --set-mark 2

#iptables -t mangle -A PREROUTING -p tcp --dport 110 -j RETURN

16

IMAP

#iptables -t mangle -A PREROUTING -p tcp --dport 143 -j MARK --set-mark 2

#iptables -t mangle -A PREROUTING -p tcp --dport 143 -j RETURN

SMTP

#iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark 2

#iptables -t mangle -A PREROUTING -p tcp --dport 25 -j RETURN

DNS

#iptables -t mangle -A PREROUTING -p udp --dport 53 -j MARK --set-mark 1

#iptables -t mangle -A PREROUTING -p udp --dport 53 -j RETURN

#iptables -t mangle -A OUTPUT -p udp --dport 53 -j MARK --set-mark 1

#iptables -t mangle -A OUTPUT -p udp --dport 53 -j RETURN

TCP con el bit SYN activado (principio de conexión)

#iptables -t mangle -I PREROUTING -p tcp --syn -j MARK --set-mark 1

#iptables -t mangle -I PREROUTING -p tcp --syn -j RETURN

Tráfico en general (emule....)

#iptables -t mangle -A PREROUTING -j MARK --set-mark 4

Tráfico IPv6

#iptables -t mangle -A PREROUTING -j MARK --set-mark 1

#iptables -t mangle -A OUTPUT -j MARK --set-mark 1

17

Implementacio n de firewall #!/bin/bash

IPTABLES=/sbin/iptables

LOCAL_HOST=192.168.1.3

echo "IMPLEMENTANDO FIREWAL IPTABLES"

echo "Limpiando ..."

### Limpiamos la configuracion existente

# Limpiamos (flush) las reglas

$IPTABLES -F

# Borramos 'chains' de usuario

$IPTABLES -X

# Ponemos a cero paquetes y contadores

$IPTABLES -Z

# Limpiamos las reglas de NAT

$IPTABLES -t nat -F

echo "Estableciendo politicas..."

# Establecemos las politicas de los 'chains'

$IPTABLES -P INPUT DROP

$IPTABLES -P OUTPUT ACCEPT

echo "Dando permiso local..."

##########################################

### Permitimos acceso local

# Permitimos todo a interfaz localhost

$IPTABLES -A INPUT -i lo -j ACCEPT

$IPTABLES -A OUTPUT -o lo -j ACCEPT

# Permitimos todo a nuestra IP

$IPTABLES -A INPUT -s $LOCAL_HOST -j ACCEPT

$IPTABLES -A OUTPUT -d $LOCAL_HOST -j ACCEPT

# Reiteracion de permisos locales

$IPTABLES -A INPUT -i eth1 -s $LOCAL_HOST -p tcp --dport 3306 -j ACCEPT #

MySQL

$IPTABLES -A INPUT -i eth1 -s $LOCAL_HOST -p tcp --dport 631 -j ACCEPT #

CUPS web

$IPTABLES -A INPUT -i eth1 -s $LOCAL_HOST -p tcp --dport 4000 -j ACCEPT #

MLDonkey telnet

$IPTABLES -A INPUT -i eth1 -s $LOCAL_HOST -p tcp --dport 4080 -j ACCEPT #

MLDonkey web

18

echo "Reglas de proteccion..."

##########################################

### Reglas de proteccion

# Anti-flooding o inundación de tramas SYN.

iptables -N syn-flood

iptables -A INPUT -i eth1 -p tcp --syn -j syn-flood

iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN

iptables -A syn-flood -j DROP

# Guardar los accesos con paquetes fragmentados, recurso utilizado para

tirar

# servidores y otras maldades (bug en Apache por ejemplo)

iptables -A INPUT -i eth1 -f -j LOG --log-prefix "Fragmento! "

iptables -A INPUT -i eth1 -f -j DROP

echo "Reglas de accesos permitidos..."

##########################################

### Accesos permitidos

echo "-> DNS..."

$IPTABLES -A INPUT -s 0.0.0.0/0 -p udp -m udp --sport 53 -j ACCEPT

$IPTABLES -A OUTPUT -d 0.0.0.0/0 -p udp -m udp --dport 53 -j ACCEPT

echo "-> web..."

# Aceptamos acceso www

$IPTABLES -A INPUT -i eth1 -s 0.0.0.0/0 -p tcp -m tcp --dport 80 -j

ACCEPT

# ...y conexiones salientes relacionadas

$IPTABLES -A OUTPUT -p tcp -m tcp --sport 80 -m state --state

RELATED,ESTABLISHED -j ACCEPT

#Permitimos el procotolo icmp

$IPTABLES -A INPUT -p icmp -j ACCEPT

$IPTABLES -A OUTPUT -p icmp -j ACCEPT

# Permitimos que local pueda salir a la web

$IPTABLES -A INPUT -i eth1 -p tcp --sport 80 -m state --state

RELATED,ESTABLISHED -j ACCEPT

$IPTABLES -A OUTPUT -o eth1 -p tcp --dport 80 -m state --state

NEW,ESTABLISHED -j ACCEPT

$IPTABLES -A INPUT -i eth1 -p tcp --sport 443 -m state --state

RELATED,ESTABLISHED -j ACCEPT

$IPTABLES -A OUTPUT -o eth1 -p tcp --dport 443 -m state --state

NEW,ESTABLISHED -j ACCEPT

echo "-> ftp..."

19

# Permitimos que local pueda salir a FTP

$IPTABLES -A INPUT -i eth1 -p tcp --sport 21 -m state --state ESTABLISHED

-j ACCEPT

$IPTABLES -A OUTPUT -o eth1 -p tcp --dport 21 -m state --state

NEW,ESTABLISHED -j ACCEPT

# ftp activo

$IPTABLES -A INPUT -i eth1 -p tcp --sport 20 -m state --state

ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A OUTPUT -o eth1 -p tcp --dport 20 -m state --state

ESTABLISHED -j ACCEPT

# ftp pasivo

$IPTABLES -A INPUT -i eth1 -p tcp --sport 1024:65535 --dport 1024:65535 -

m state --state ESTABLISHED -j ACCEPT

$IPTABLES -A OUTPUT -o eth1 -p tcp --sport 1024:65535 --dport 1024:65535

-m state --state ESTABLISHED,RELATED -j ACCEPT

echo "-> ssh..."

# Aceptamos ssh y guardamos LOG

$IPTABLES -A INPUT -i eth1 -s 0.0.0.0/0 -p tcp -m tcp --dport ssh -j LOG

--log-prefix "IPTablesFW> "

$IPTABLES -A INPUT -i eth1 -s 0.0.0.0/0 -p tcp -m tcp --dport ssh -j

ACCEPT

# ...y conexiones salientes relacionadas

$IPTABLES -A OUTPUT -p tcp -m tcp --sport ssh -m state --state

RELATED,ESTABLISHED -j ACCEPT

echo "-> ntpd..."

# Aceptamos conexiones ntpd

$IPTABLES -A INPUT -i eth1 -s 0.0.0.0/0 -p udp -m udp --dport 123 -j

ACCEPT

$IPTABLES -A OUTPUT -p udp -m udp --sport 123 -j ACCEPT

echo "Cerrando puertos restringidos..."

##########################################

# Puertos restringidos (telnet, ftp, imap, pop3, etc.)

$IPTABLES -A INPUT -p tcp --dport 1:1024 -j DROP

$IPTABLES -A INPUT -p udp --dport 1:1024 -j DROP

echo "Configuracion FW terminada. Verifique con: iptables -L -n"

20

DIAGRAMA DE RED IMPLEMENTADO