Este documento describe diferentes herramientas y métodos para monitorear y mejorar el rendimiento de una red, incluyendo Nmap, IPTraf y MRTG para monitoreo, e implementación de QoS y firewalls para mejorar el rendimiento. Explica cómo usar estas herramientas para escanear puertos, monitorear tráfico en tiempo real, y visualizar gráficos históricos del tráfico de red. También describe cómo marcar y filtrar paquetes usando iptables y cómo configurar QoS para garantizar el rendimiento de aplicaciones
1. 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
2. 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
1
3. Introduccion
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.
2
4. 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
3
5. 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.
4
6. 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.
5
7. 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.
6
8. 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.
7
9. 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 ‘
8
10. 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:
9
11. # 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
10
12. 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...).
11
13. Metodos 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
Implementacion 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
12
14. Árbol de encolado o de clases
1
Qdisc raíz htb
1:1
Clase htb (hija)
Clases hijas de 1:1
1:10 1:11 1:12 1:13
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
13
15. 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
14
16. 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
15
17. 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
16
18. Implementacion 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
17
19. 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..."
18
20. # 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"
19