Guia de redireccionamiento en ubuntu

17
GUIA DE REDIRECCIONAMIENTO EN UBUNTU OSCAR SEPULVEDA PATRICIA MORENO JHONATAN CUEVAS UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERIAS Y ARQUITECTURA INGENIERIA DE SISTEMAS 2013

Transcript of Guia de redireccionamiento en ubuntu

Page 1: Guia de redireccionamiento en ubuntu

GUIA DE REDIRECCIONAMIENTO EN

UBUNTU

OSCAR SEPULVEDA

PATRICIA MORENO

JHONATAN CUEVAS

UNIVERSIDAD DE PAMPLONA

FACULTAD DE INGENIERIAS Y ARQUITECTURA

INGENIERIA DE SISTEMAS

2013

Page 2: Guia de redireccionamiento en ubuntu

INTRODUCCIÓN

La seguridad informática, es el área de la informática que se enfoca en la protección de la infraestructura computacional y todo lo relacionado con ésta (incluyendo la información contenida). Para ello existen una serie de estándares, protocolos, métodos, reglas, herramientas y leyes concebidas para minimizar los posibles riesgos a la infraestructura o a la información. La seguridad informática comprende software, bases de datos, metadatos, archivos y todo lo que la organización valore (activo) y signifique un riesgo si ésta llega a manos de otras personas. Este tipo de información se conoce como información privilegiada o confidencial .En la siguiente guía trabajaremos como proteger nuestros servidores de posibles ataque que puedan tumbar nuestro servicio en este caso ataques por syn flood, para no dejar la dirección de nuestros servidores al descubierto trabajaremos los re direccionamientos que consiste hacer peticiones a un host el cual nos va a servir de puente y dar acceso al host en el cual se encuentra el servidor.

Page 3: Guia de redireccionamiento en ubuntu

OBJETIVOS

reconocer la importancia de la seguridad de datos.

Manejar las herramientas tales como iptables para prevenir daños por personas ajenas.

Aprender de forma educativa ataques tales como lo es el syn flood.

Page 4: Guia de redireccionamiento en ubuntu

MARCO TEORICO

AIRDROID: Se utiliza para gestionar un Androide desde un ordenador, se basa en el acceso mediante un navegador a una interfaz muy al estilo del escritorio de Windows. Desde este lugar podremos: consultar los elementos almacenados en el Smartphone, conocer la cantidad de cada categoría presentes en el terminal, ver el consumo de memoria y otros estados del sistema, copiar de forma inalámbrica archivos al ordenador, acceder a los mensajes, contactos, fotos, vídeos, música, tonos... y hasta enviar SMS desde nuestro equipo.

¿Pero cómo funciona? Hay que aclarar que el sistema funciona siempre y cuando el ordenador y el Smartphone se encuentren bajo la misma red de conexión inalámbrica (Wi-Fi). Todo lo que tenemos que hacer es descargar desde el Android Market la aplicación AirDroid gratuita. Al entrar en ella se nos dará una dirección IP y una contraseña que utilizaremos para abrir el navegador en el PC y acudir a esa dirección dada. Se nos solicitará una clave de acceso que es la que nos dio la propia aplicación móvil (después en ajustes podemos eliminar esta necesidad para que no tengamos que introducirla cada vez).

Page 5: Guia de redireccionamiento en ubuntu

Una vez dentro se desplegará en la ventana un escritorio simple con iconos, cada uno de ellos nos dará acceso a una información diferente del dispositivo móvil. Existen iconos para los mensajes, apps, market, archivos, registro de llamadas, contactos, tonos de llamada, música e imágenes. Al abrir cada uno de ellos se muestra un explorador de archivos similar al de Windows, y desde ahí podremos borrar o copiar al gusto o necesidad de cada cual. Adicional a lo comentado, hay un apartado en forma de widget sobre el escritorio que aporta información de estado del dispositivo: estado de la batería, consumo de memoria, espacio libre, etc.

REDIRECCIONAMIENTO DE PUERTOS:

La redirección de puertos (a veces llamada tunelado) es la acción de redirigir un puerto de red de un nodo de red a otro. Esta técnica puede permitir que un usuario externo tenga acceso a un puerto en una dirección IP privada (dentro de una LAN) desde el exterior vía un router con NAT activado.

La redirección de puertos permite que ordenadores remotos (por ejemplo, máquinas públicas en Internet) se conecten a un ordenador en concreto dentro de una LAN privada.

Page 6: Guia de redireccionamiento en ubuntu

Las máquinas con Linux modernos consiguen esto añadiendo reglas de iptables a la tabla nat: con el destino DNAT a la cadena de PREROUTING y/o con el destino SNAT en la cadena de POSTROUTING.

IPTABLES: Es un sistema de firewall vinculado al kernel de linux que se ha extendido enormemente a partir del kernel 2.4 de este sistema operativo. Al igual que el anterior sistema ipchains, un firewall de iptables no es como un servidor que lo iniciamos o detenemos o que se pueda caer por un error de programación(esto es una pequeña mentira, ha tenido alguna vulnerabilidad que permite DoS, pero nunca tendrá tanto peligro como las aplicaciones que escuchan en determinado puerto TCP): iptables esta integrado con el kernel, es parte del sistema operativo. ¿Cómo se pone en marcha? Realmente lo que se hace es aplicar reglas. Para ellos se ejecuta el comando iptables, con el que añadimos, borramos, o creamos reglas. Por ello un firewall de iptables no es sino un simple script de shell en el que se van ejecutando las reglas de firewall.

Page 7: Guia de redireccionamiento en ubuntu

Se puede implementar un script de inicio en /etc/INIT.d con el que hagamos que iptables se "inicie o pare" como un servidor más. Lo podemos hacer nosotros o es probable que venga en la distribución (como en redhat por ejemplo). También se pueden salvar las reglas aplicadas con el comando iptables-save en un fichero y gestionar ese fichero con una aplicación o front-end desde la X o desde webmin.

Este es el camino que seguiría un paquete en el kernel:

Page 8: Guia de redireccionamiento en ubuntu

Como se ve en el gráfico, básicamente se mira si el paquete esta destinado a la propia maquina o si va a otra. Para los paquetes (o datagramas, según el protocolo) que van a la propia maquina se aplican las reglas INPUT y OUTPUT, y para filtrar paquetes que van a otras redes o maquinas se aplican simplemente reglas FORWARD.

INPUT, OUTPUT y FORWRD son los tres tipos de reglas de filtrado. Pero antes de aplicar esas reglas es posible aplicar reglas de NAT: estas se usan para hacer redirecciones de puertos o cambios en las IPs de origen y

Destino.

Tenemos tres tipos de reglas en iptables:

MANGLE:

NAT: reglas PREROUTING, POSTROUTING 

FILTER: reglas INPUT, OUTPUT, FORWARD.

Limitar el número de conexiones TCP entrantes:

Una inundación SYN es una forma de ataque de denegación de servicio en el que un atacante envía una secuencia de solicitudes SYN a un sistema de destino. Este es un tipo bien conocido de ataque y generalmente no es eficaz contra las redes modernas. Funciona si un servidor asigna recursos después de recibir un SYN, pero antes de que haya recibido el ACK.

Page 9: Guia de redireccionamiento en ubuntu

Si las conexiones medio abiertas se unen los recursos del servidor, puede ser posible responder a todos estos recursos al inundar el servidor con mensajes SYN. 

HPING3: Esta herramienta de línea de comando, esta inspirada en el comando ping de Unix. Su finalidad es la de poder crear paquetes personalizados para poder analizar las respuestas. Dentro de sus funciones, con hping podemos hacer:

Firewall testing

Advanced port scanning

Network testing, using different protocols, TOS, fragmentation

Manual path MTU discovery

Advanced traceroute, under all the supported protocols

Remote OS fingerprinting

Remote uptime guessing

Page 10: Guia de redireccionamiento en ubuntu

TCP/IP stacks auditingActualmente hping tiene una versión 3, la cual nos permite realizar scripts sobre tcl para poder crear nuestras propias herramientas, como veremos mas adelante. El primer problema que muchos encuentran al querer utilizar hping, es que hping no es una herramienta que como muchas otras le especificamos un target y esperamos ver resultados. Para poder utilizar hping, necesitamos conocer exactamente que estamos haciendo.

Opciones generales:

Hping tiene un funcionamiento parecido al ping en el sentido de que envia reiteradamente un paquete ( en el caso de hping uno “armado por nosotros” ) hasta que cortemos la ejecución del programa con un control C.- Para poder elegir la cantidad de veces que se quiere enviar el paquete podemos usar la opción –c la cual especifica el número de paquetes que queremos enviar (Si no, envía paquetes hasta que lo cortemos con un control c).- Para elegir el intervalo (la rapidez) con que envia los paquetes usamos –i y como argumento el intervalo de tiempo (en segundos) entre paquete y paquete.

Finalmente quiero recalcar el uso del -z y -Z:

La combinación de teclas Control Z, esta ligada por defecto a aumentar el numero de puerto al que estamos enviando el paquete (para tcp y udp), de esta manera podemos escanear un host aumentando en 1 el numero de puerto. Cuando especificamos –z ligamos la combinación de teclas a aumentar el número del TTL de los paquetes que estamos enviando y con –Z desligamos dicha combinación de cualquiera de las dos funciones posibles, esto es lo dejamos librado a las funciones de la consola, generalmente dejarlo en sleep.

Page 11: Guia de redireccionamiento en ubuntu

UBUNTU: Es un sistema operativo mantenido por Canonical y la comunidad de desarrolladores. Utiliza un núcleo Linux, y su origen está basado en Debian. Ubuntu está orientado al usuario novel y promedio, con un fuerte enfoque en la facilidad de uso y en mejorar la experiencia de usuario. Está compuesto de múltiple software normalmente distribuido bajo una licencia libre o de código abierto.

Su patrocinador, Canonical, es una compañía británica, propiedad del empresario sudafricano Mark Shuttleworth, ofrece el sistema de manera gratuita, y se financia por medio de servicios vinculados al sistema operativo y vendiendo soporte técnico. Además, al mantenerlo libre y gratuito, la empresa es capaz de aprovechar los desarrolladores de la comunidad para mejorar los componentes de su sistema operativo. Extraoficialmente, la comunidad de desarrolladores proporciona soporte para otras derivaciones de Ubuntu, con otros entornos gráficos, como Kubuntu, Xubuntu, Edubuntu, Ubuntu Studio, Mythbuntu, Ubuntu Gnome y Lubuntu.

Page 12: Guia de redireccionamiento en ubuntu

Cada seis meses se publica una nueva versión de Ubuntu. Esta recibe soporte por parte de Canonical, durante nueve meses, por medio de actualizaciones de seguridad, parches para bugs críticos y actualizaciones menores de programas. Las versiones LTS (Long Term Support), que se liberan cada dos años, reciben soporte durante cinco años en los sistemas de escritorio y de servidor.

ANDROID: En un Sistema Operativo además de una plataforma de Software basada en el núcleo de Linux. Diseñada en un principio para dispositivos móviles, Android permite controlar dispositivos por medio de bibliotecas desarrolladlas o adaptados porGoogle mediante el lenguaje de programación Java.

Android es una plataforma de código abierto. Esto quiere decir, que cualquier desarrollador puede crear y desarrollar aplicaciones escritas con lenguaje C u otros lenguajes y compilarlas a código nativo de ARM (API de Amdroid).

Page 13: Guia de redireccionamiento en ubuntu

Inicialmente, Android fue desarrollada por Google Inc. aunque poco después se unióOpen Handset Alliance, un consorcio de 48 compañías de Hardware, Software ytelecomunicaciones, las cuales llegaron a un acuerdo para promocionar los estándares de códigos abiertos para dispositivos móviles. 

Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de Software Apache, una licencia de software libre y de código abierto a cualquier desarrollador. 

ARQUITECTURA DE ANDROID:

La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes: 

3.1.- APLICACIONES: Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de email (correo electrónico), calendario, programa de SMS, mapas, navegador, contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación Java. 

Page 14: Guia de redireccionamiento en ubuntu

3.2.-FRAMEWORK DE APLICACIONES: Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio. 

3.3.- LIBRERIAS: Android incluye en su base de datos un set de librerías C/C++ , que son expuestas a todos los desarrolladores a través del framework de las aplicaciones Android System C library, librerías de medios, librerías de gráficos, 3D, SQlite, etc. 

3.4.- RUNTIME DE ANDROID: Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas alformato .dex (Dalvik Executable) por la herramienta ''dx''. 

Page 15: Guia de redireccionamiento en ubuntu

PROCEDIMIENTO

Vamos a re direccionar la petición hecha a un servidor a otro que va a ser AirDroid. Para ello tendremos que configurar en nuestro equipo las políticas de enrutamiento a través de iptables las cuales nos va a permitir realizar este proceso. En este equipo colocaremos las siguientes líneas la cual nos permitirá manejar el re direccionamiento.

iptables -t nat -A PREROUTING -s 152.168.1.2 -p tcp --dport 80 -i eth0 -j DNAT --to 172.20.61.204:8888

iptables -t nat -A POSTROUTING -j MASQUERADE

En la cual definiremos la ip donde va a recibir la solicitud, se puede definir única, o que tenga acceso toda la familia de ips, después definimos el protocolo y el puerto al que le va a hacer la solicitud para ello es el segmento 2 -p tcp –dport después de esto definiremos la interfaz de entrada en nuestro caso fue la eth0 y después de esto con el JDNAT definiremos la ip a la cual vamos a redireccionar y el puerto correspondiente.

Page 16: Guia de redireccionamiento en ubuntu

Para realizar el ataque synflood con la misma conexión lo realizamos a través del hpin3 para una ip aleatoria con:

sudo hping3 ip_destino --rand-source -S --destport puerto –faster

Ejecutamos también las siguientes líneas para controlar el límite de peticiones que puede realizar, en la cual definimos el intervalo de tiempo que denegaremos solicitudes.

#iptables -N syn_flood

#iptables -A INPUT -p tcp --syn -j syn_flood

#iptables -A syn_flood -m limit --limit 3/s --limit-burst 3 -j RETURN

#iptables -A syn_flood -j DROP

echo 1 > /proc/sys/net/ipv4/ip_forward.

Page 17: Guia de redireccionamiento en ubuntu

CONCLUSIONES

La seguridad informática se ha vuelto muy importante mayor mente para las empresas que necesitan un alto nivel de protección de sus datos.

En la seguridad informática nos enfocamos en las posibles herramientas para combatir en contra de los distintos ataques a nuestros servicios o datos.