Awaiting Activation added chapter_Marco_Te_rico_label__.tex  over 8 years ago

Commit id: bde36ff52fe81c9a628ca68e9350abfaa836c6f4

deletions | additions      

         

\chapter{Marco Teórico}  \label{CapituloMarcoTeorico}  \section{Antecedentes}  El proyecto Netfilter/ \textit{IPtables} {Zhong 2012} comenzó en 1998 por Rusty Russell, también autor del proyecto que lo precedió, \textit{ipchains}. A medida que el proyecto fue creciendo, fundó el Netfilter Core Team, o simplemente el coreteam, en 1999, que se trata del grupo de personas que se encarga directamente del desarrollo y mantenimiento del proyecto. El software que ellos produjeron, al que llamaremos {Netfilter} de aquí en adelante, está licenciado bajo la licencia GPL (GNU General Public License), y fue incorporado al núcleo Linux 2.3 en marzo de 2000. En agosto de 2003, Harald Welte fue designado líder del coreteam. En febrero de 2007 entra a formar parte del coreteam el andaluz Pablo Neira.  Antes de iptables, los programas más usados para crear cortafuegos en Linux eran ipchains en el núcleo Linux 2.2 e ipfwadm en el núcleo Linux 2.0, que a su vez se basaba en ipfw de BSD. Tanto ipchains como ipfwadm alteran el código de red para poder manipular los paquetes, ya que no existía un entorno general para el manejo de paquetes hasta la aparición de netfilter. Iptables mantiene la idea básica introducida en Linux con ipfwadm: listas de reglas en las que se especifica qué coincidencias buscar dentro de un paquete y qué hacer con ese paquete. ipchains agrega el concepto de cadenas de reglas ("chains") e iptables extendió esto a la idea de tablas: se consultaba una tabla para decidir si había que traducir las direcciones de red de un paquete, y se consultaba otra para decidir como filtrar un paquete. Adicionalmente, se modificaron los tres puntos en los que se realiza el filtrado en el viaje de un paquete, de modo que un paquete pase solo por un punto de filtrado.  Mientras que ipchains e ipfwadm combinan filtrado de paquetes y traducción de direcciones de red, de tres tipos específicos llamados enmascaramiento, redireccionamiento de puertos y redirección, netfilter hace posible por su parte separar las operaciones sobre los paquetes en tres partes: filtrado de paquetes, seguimiento de conexiones y traducción de direcciones de red. Cada parte se conecta a las herramientas de netfilter en diferentes puntos para acceder a los paquetes. Los subsistemas de seguimiento de conexiones y NAT son más generales y poderosos que los que realizaban ipchains e ipfwadm.  Esta división permite a iptables, a su vez, usar la información que la capa de seguimiento de conexiones ha determinado acerca del paquete: esta información estaba antes asociada a NAT. Esto hace a iptables superior a ipchains, ya que tiene la habilidad de monitorizar el estado de una conexión y redirigir, modificar o detener los paquetes de datos basándose en el estado de la conexión y no solamente por el origen, destino o contenido del paquete. Un cortafuegos que utilice iptables de este modo se llama cortafuegos basado en estado, del inglés "stateful". Por contra, ipchains sólo permite crear cortafuegos sin estado, del inglés "stateless". Podemos decir entonces que ipchains no está al tanto del contexto completo en el cual un paquete surge, mientras que iptables sí y por lo tanto iptables puede hacer mejores decisiones sobre el futuro de los paquetes y las conexiones.  \section{Linux}  \subsection{Historia}  Linux \cite{linuxcom}, es la denominación de un sistema operativo tipo Unix. Es una implementación de libre distribución UNIX para computadoras personales, servidores y estaciones de trabajo.Es uno de los paradigmas más prominentes del software libre y del desarrollo del código abierto, cuyo código fuente está disponible públicamente, para que cualquier persona puede libremente usarlo, estudiarlo, redistribuirlo y, con los conocimientos informáticos adecuados, modificarlo.\\  Linux es usado como sistema operativo en una amplia variedad de plataformas de hardware y computadores, incluyendo los computadores de escritorio, servidores, supercomputadores y dispositivos empotrados así como teléfonos celulares.\\  Desde sus comienzos, Linux se diseñó para que fuera un sistema multi tarea y multi usuario. Estos hechos son suficientes para diferenciar a Linux de otros sistemas operativos más conocidos. Sin embargo, Linux es más diferente de lo que pueda imaginar. Nadie es dueño de Linux, a diferencia de otros sistemas operativos. Gran parte de su desarrollo lo realizan voluntarios de forma altruista.\\  En 1984 comenzó el desarrollo de lo que más tarde sería GNU/Linux cuando la Free Software Foundation (Fundación de software libre) comenzó a desarrollar un sistema operativo libre de tipo Unix, llamado GNU.\\  El proyecto GNU ha desarrollado un conjunto de herramientas de software libre para ser utilizados por Unix y sistemas operativos tipo Unix como Linux. Estas herramientas permiten a los usuarios desarrollar tareas que van desde las mundanas (como copiar o eliminar ficheros del sistema) a las arcanas (como escribir y compilar programas o hacer edición sofisticada en una gran variedad de formatos de documento).\\  Aunque hay muchos grupos e individuos que han contribuido a Linux, la Free Software Foundation ha sido quien más ha contribuido. No sólo creó la mayor parte de las herramientas que se utilizan en Linux sino también la filosofía y comunidad que hizo que Linux fuera posible.\\  El núcleo Linux apareció por primera vez en 1991, cuando un estudiante de informática finlandés llamado Linus Torvalds anunció en el grupo de noticias de USENET comp.os.minix, una primera versión de un núcleo de reemplazo para Minix. Para más referencias consulte la página de historia de Linux en Linux Internacional.\\  Linus Torvalds sigue coordinando el trabajo de varios cientos de desarrolladores con la ayuda de cierto número de responsables de subsistemas. Existe una página oficial del núcleo Linux. Se puede encontrar un excelente resumen semanal de las discusiones en la lista de correo linux-kernel en Kernel Traffic. Puede encontrar más información sobre la lista de correo Linux-kernel en el documento PUF de la lista de correo «Linux-kernel».\\  Los usuarios de Linux tienen una gran libertad al elegir sus programas. Tantas opciones confunden a veces a los usuarios de otros sistemas operativos que no están acostumbrados a poder modificar el intérprete de línea de comandos o el entorno de escritorio.\\  Es menos probable que un sistema Linux se colapse, además tiene mejor capacidad para ejecutar múltiples programas al mismo tiempo y es más seguro que muchos otros sistemas operativos. Debido a estas ventajas, Linux es el sistema operativo que ha experimentado mayor crecimiento en el mercado de los servidores. Últimamente, Linux está empezando a ser popular entre los usuarios domésticos y en empresas.\\   \subsection{Distribuciones de Linux}  Existe un gran número de distribuciones de los diferentes sistemas operativos Linux. Cada distribución cuenta con sus propias características y supone unas ventajas y unos inconvenientes a los usuarios convencionales. A continuación se presentan algunas distribuciones de Linux según algunos criterios.  \begin{enumerate}  \item Distribuciones convencionales\\  \begin{itemize}  \item Ubuntu \\  Sin duda Ubuntu es el sistema operativo basado en Linux más utilizado de toda la red. Con un escritorio basado en Unity (no querido por todos), este sistema operativo es ideal para aquellos que buscan un sistema seguro, estable y fácil de utilizar. Ubuntu cuenta con una gran comunidad en la red, por lo que ante cualquier problema fácilmente se encuentran soluciones en la red.  \item Kubuntu \\  Para aquellos usuarios que buscan un sistema basado en Ubuntu pero con una alternativa a Unity, Kubuntu ofrece un escritorio KDE utilizando de base la distribución principal de Canonical.  \item Linux Mint \\  Esta distribución está basada en Ubuntu, aunque aporta una serie de características interesantes (nuevas aplicaciones, un nuevo escritorio para aquellos a quienes no les guste Unity, nuevos ajustes, etc). Una gran alternativa a Ubuntu que poco a poco va ganando una considerable cuota de mercado entre los usuarios.  \item Debian \\  Debian es sin duda una de las distribuciones más puras en cuanto a capacidad de personalización. Esta distribución viene con muy pocos paquetes instalados (los necesarios, principalmente), lo que permite una mayor personalización por parte de los usuarios y un mayor rendimiento, sin embargo, puede resultar algo más complicada de utilizar para los usuarios sin demasiada experiencia.  \item Mint Debian \\  Al igual que en el caso anterior, Mint Debian llega como una distribución más pura basada directamente en Debian que permite a los usuarios aprovechar las ventajas de Debian con algunos paquetes adicionales y unas configuraciones de manera que su uso sea algo más sencillo sin sacrificar por ello el rendimiento del sistema.  \item Arch Linux \\  Arch es una distribución muy ligera, pero a la vez, es una de las más complicadas de instalar y utilizar. El rendimiento de esta distribución es óptimo debido al mínimo número de paquetes y aplicaciones que se instalan, siendo el usuario quien debe instalar lo que necesite evitando así tener paquetes no necesarios que ocupen memoria y recursos en el sistema. Arch está recomendado sólo para usuarios expertos.  \item ArchBang \\  ArchBang es un sistema basado en Arch pero con algunos paquetes adicionales que facilitan a pequeña escala su uso. Entre otros muchos cambios, esta distribución cuenta con un escritorio y algunos paquetes que permiten al usuario instalar el sistema fácilmente y a la vez empezar a utilizarlo de forma básica sin demasiada complicación.  \item Elementary OS \\  Elementary OS es una distribución fácil de utilizar con una apariencia muy similar a la de Mac OS X de manera que tanto los usuarios acostumbrados a la interfaz de Apple como aquellos sin demasiados conocimientos de Linux podrán hacer uso de esta distribución sin ningún problema. Elementary OS está basada en Ubuntu y ofrece un rendimiento excelente pese a la gran cantidad de apariencia de que dispone.  \item Fedora \\  Este sistema operativo ha sido creado y mantenido por la compañía Red Hat. Fedora es diferente a otras distribuciones similares como Debian al utilizar otro gestor de paquetes y disponer así de sus propias aplicaciones compiladas para este sistema y no siendo compatibles, por ejemplo, los paquetes de Debian (o Ubuntu) con él. Pese a ello es una alternativa a tener en cuenta, especialmente para aquellos que buscan “algo diferente a Debian”.  \end{itemize}  \item Seguridad y privacidad  \begin{itemize}  \item Kali Linux \\  Kali es una distribución basada en Debian diseñada para auditar redes y buscar vulnerabilidades en los sistemas de estas. Cuenta por defecto con un gran número de herramientas pre-instaladas para esta función de manera que los usuarios puedan utilizarla en modo Live sin necesidad de instalar ningún tipo de software adicional.  \item BlackArch Linux \\  Una distribución, similar a la anterior, pero que utiliza como sistema operativo base Arch Linux. Esta distribución cuenta igualmente con un considerable número de herramientas, entre las que cabe destacar un potente buscador de exploits con los que poder comprobar la seguridad de los sistemas de la red.  \item Bugtraq \\  Similar a las anteriores, Bugtraq es una distribución que cuenta por defecto con una serie de herramientas para auditar redes informáticas y comprobar la seguridad de estas o buscar posibles vulnerabilidades.  \item Tails \\  Este sistema operativo ha sido diseñado especialmente para mantener al máximo la privacidad y el anonimato al conectarse a Internet. Cuenta por defecto con una serie de configuraciones y filtros que no dejan pasar ningún dato que pueda permitir nuestra identificación, así como la red Tor como conexiones por defecto para evitar que nuestro tráfico pueda ser rastreado.   \end{itemize}  \item Distribuciones para ordenadores de recursos reducidos  \begin{itemize}  \item Damn Small Linux \\  Esta distribución es capaz de funcionar sin problemas en equipos de 16MB de Ram. Con tan sólo 50 MB, este sistema operativo cumple con los requisitos más elementales a la hora de devolver a la vida un equipo viejo y le permite cumplir con una serie de funciones elementales.  \item Puppy Linux \\  Igual que la anterior, esta distribución está especialmente diseñada para ordenadores antiguos a los que actualmente no se les podría instalar un sistema operativo moderno. Este sistema se ejecuta completamente desde la RAM y ocupa tan sólo 100MB.  \item SliTaz \\  En tan sólo 100MB (30 en una imagen ISO) los desarrolladores de esta distribución han conseguido un pequeño sistema operativo sencillo pero funcional capaz de funcionar sin problemas en equipos de 36MB de Ram.  \item Lubuntu \\  Lubuntu es una distribución basada en Ubuntu pero que utiliza un escritorio LXDE. Este escritorio está algo más limitado en funciones de lo que puede estar Unity, sin embargo, el consumo de recursos es mucho menor funcionando de forma fluida y sin problemas de rendimiento incluso en ordenadores con procesador antiguo o con poca memoria RAM.  \end{itemize}  \item Distribuciones especializadas en contenido multimedia  \begin{itemize}  \item SteamOS \\  Steam es la plataforma distribuidora de contenidos digitales más grande de la red. Con el fin de llegar a un mayor número de usuarios esta compañía lanzó SteamOS, distribución basada en Debian y optimizada para poder ejecutar juegos de su propia plataforma dentro de un ecosistema Linux, aspecto que hasta este lanzamiento era impensable.  \item ArtistX \\  ArtistX es una distribución Live-CD especialmente diseñada para trabajar con contenidos multimedia. Desde este sistema operativo, que puede ser ejecutado desde un CD sin necesidad de instalarlo, los usuarios pueden editar audio, imágenes y vídeos fácilmente gracias al gran número de aplicaciones que vienen instaladas por defecto.  \item Ubuntu Studio \\  De forma similar a la anterior, Ubuntu Studio es una distribución especialmente diseñada para trabajar con aplicaciones multimedia. Esta distribución viene por defecto con un gran número de herramientas de edición de imagen, audio y vídeo al igual que está optimizado para sacar un mayor rendimiento del hardware al utilizar estas herramientas.  \end{itemize}  \end{enumerate}