TFC: elaborate OS selection

Signed-off-by: Nicolás Ortega Froysa <nicolas@ortegas.org>
This commit is contained in:
Nicolás A. Ortega Froysa 2023-04-19 18:12:34 +02:00
parent b00c277749
commit b7da9550ab
3 changed files with 82 additions and 23 deletions

Binary file not shown.

View File

@ -49,7 +49,7 @@ personas particulares, y no un plan de negocio.
\section{Contexto}
\subsection{Situación Actual}
% https://thehill.com/changing-america/well-being/mental-health/3806794-most-teenagers-exposed-to-online-pornography-by-age-13-survey/
% SRC: https://thehill.com/changing-america/well-being/mental-health/3806794-most-teenagers-exposed-to-online-pornography-by-age-13-survey/
Vivimos en un mundo muy digitalizado donde los niños están expuestos a
pornografía desde una edad muy temprana. Aunque hay muchos factores que
@ -60,7 +60,7 @@ Aunque diferentes organismos han intentado mitigar esta posibilidad con
soluciones como las {\em búsquedas seguras} en los buscadores, no ha sido
suficiente.
% https://edlatimore.com/best-porn-blocker/
% SRC: https://edlatimore.com/best-porn-blocker/
A causa de esto se han creado muchas alternativas para bloquear pornografía en
entornos familiares, educativos, religiosos, etc. Estas alternativas han llegado
@ -142,18 +142,72 @@ distribuciones de BSD o Linux.
Luego, en cuestión de requisitos {\it software} haría falta, en primer lugar, un
sistema operativo tipo UNIX que soporte a todo el {\it software} que
mencionaremos después. Aunque hay muchas opciones que podrían servir, para este
caso se utilizará Debian GNU/Linux, versión Bullseye (11), el actual estable en
la fecha de publicación de este documento. Esta distribución de Linux se escoge
por ser una distribución muy utilizada en el ámbito de servidores, con mucho
soporte y comunidad, que utiliza pocos recursos -- se puede instalar fácilmente
sin entorno gráfico --, y es conocida por su estabilidad. Se puede seguir
utilizando este guía para montar la solución con cualquier otra distribución de
Linux (o incluso de BSD), pero habría que modificar ciertas instrucciones para
ajustarse a los estándares y herramientas disponibles en cada distribución
(e.g.\ si quisiera instalarlo en un servidor de Fedora, utilizaría el comando
{\tt dnf} en vez de {\tt apt}).
% TODO: elaborate OS choice
mencionaremos después. Se puede utilizar este guía para montar la solución con
cualquier otra distribución de Linux (o incluso de BSD), aunque modificando
ciertas instrucciones para ajustarse a los estándares y herramientas disponibles
en cada distribución (e.g.\ si quisiera instalarlo en un servidor de Fedora,
utilizaría el comando {\tt dnf}, mientras que en un servidor Ubuntu utilizaría
{\tt apt}).
En nuestro caso, los criterios para la selección de una distribución son los
siguientes:
\begin{itemize}
\item {\bf Conocida:} Es importante que sea una distribución conocida y de
uso amplio. Esto aumentará la probabilidad de que cualquier problema que
se encuentra, es más probable que otra persona con el mismo entorno (o
similar) lo haya encontrado también y hayan publicado una solución.
\item {\bf Estable:} Nuestra solución ha de ser algo que el administrador de
la red puede instalar y luego mantener la más mínima interacción. Luego
entonces no son buenas las distribuciones que tengan muchas
actualizaciones, poco probadas, o propensas a romper el sistema.
\item {\bf Soporte amplio de plataformas:} Es mejor que nuestra solución se
pueda instalar en casi cualquier ordenador con las capacidades
expresadas en el apartado anterior. Y hoy en día se hayan muchos
ordenadores de arquitecturas distintas a la conocida x86 y x86\_64; la
más popular de éstas siendo ARM. Una distribución que tenga un soporte
por muchas arquitecturas contribuiría a la universalidad de la solución.
\item {\bf Minimalista:} No ha de ocupar mucho espacio de disco/memoria, ni
tampoco utilizar demasiados recursos. En primer lugar, porque así
facilita que se pueda instalar nuestra solución en ordenadores más
viejos o de pocos recursos. En segundo lugar, porque este dispositivo
sólo hará una cosa, y es mejor reservar recursos para eso en vez de
añadir más componentes a un sistema complejo que puede causar fallos
inesperados e innecesarios.
\item {\bf Utilizada en servidores:} Realmente la solución que proponemos es
un servidor, específicamente un servidor de DNS con algunos mecanismos
de filtrado. La distribución que usemos ha de ser conocida por ser
utilizada en servidores. Esto también ayudará a la hora de evaluar los
criterios anteriores, ya que las distribuciones ampliamente utilizadas
en servidores suelen cumplir también aquellos criterios.
\end{itemize}
Para simplificar, en cumplimiento con el primer criterio nos centraremos
solamente en las distribuciones de Linux. Esto se debe a que, de los demás
sistemas operativos basados en UNIX (e.g.\ BSD) no hay un uso tan extenso, y
realmente forman una parte mínima del mercado, aunque tengan especialidad
(algunos) en servidores.
% SRC: https://www.enterpriseappstoday.com/stats/linux-statistics.html
Entre las distribuciones de Linux, los que más se destacan son los siguientes:
\begin{itemize}
\item Ubuntu Server
\item Debian GNU/Linux
\item OpenSUSE
\item CentOS
\item Fedora Server
\end{itemize}
De todas estas opciones, la que más se ajusta a nuestros criterios viene a ser
Debian GNU/Linux. Aunque otras opciones, como Ubuntu Server o CentOS son más
corporativas, y Ubuntu también siendo muy conocida, Debian nos trae estabilidad,
pero sobre todo un soporte amplio de plataformas -- soporte oficial para diez
arquitecturas, y no oficial para otras diez --, además de ser una distribución
que permite una instalación mínima (particularmente sin entorno gráfico). Por
este motivo, avanzamos utilizando Debian GNU/Linux. La versión actual estable es
Bullseye (11).
% SRC: https://wiki.debian.org/SupportedArchitectures
En cuanto a los programas que se precisan, haría falta un programa para
gestionar las peticiones DNS y redirigirlas, otro para recibir las peticiones y
@ -166,6 +220,11 @@ nuestra disposición, como podrían ser PowerDNS, MaraDNS, NSD, KnotDNS, y Bind9
Entre los programas de servidores HTTP existen dos candidatos principales: Nginx
y Apache.
% TODO: finish
Finalmente, precisamos un lenguaje de programación por el cual podemos enviar un
correo al administrador de la red con la información pertinente.
% TODO: finish
% Software Dependencies:
% - Bind9/Named [PowerDNS,MaraDNS,NSD,KnotDNS]

View File

@ -1,4 +1,4 @@
\babel@toc {spanish}{}
\babel@toc {spanish}{}\relax
\contentsline {section}{\numberline {1}Introducción}{2}{section.1}%
\contentsline {section}{\numberline {2}Contexto}{2}{section.2}%
\contentsline {subsection}{\numberline {2.1}Situación Actual}{2}{subsection.2.1}%
@ -12,11 +12,11 @@
\contentsline {subsection}{\numberline {4.1}Análisis de Requisitos}{4}{subsection.4.1}%
\contentsline {subsubsection}{\numberline {4.1.1}Requisitos Hardware}{4}{subsubsection.4.1.1}%
\contentsline {subsubsection}{\numberline {4.1.2}Requisitos Software}{5}{subsubsection.4.1.2}%
\contentsline {subsection}{\numberline {4.2}Diseño de Solución}{6}{subsection.4.2}%
\contentsline {section}{\numberline {5}Pruebas y Despliegue}{6}{section.5}%
\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{6}{subsection.5.1}%
\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{6}{subsection.5.2}%
\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{6}{subsection.5.3}%
\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{6}{section.6}%
\contentsline {section}{\numberline {7}Bibliografía}{6}{section.7}%
\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{7}{section.8}%
\contentsline {subsection}{\numberline {4.2}Diseño de Solución}{8}{subsection.4.2}%
\contentsline {section}{\numberline {5}Pruebas y Despliegue}{8}{section.5}%
\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{8}{subsection.5.1}%
\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{8}{subsection.5.2}%
\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{8}{subsection.5.3}%
\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{8}{section.6}%
\contentsline {section}{\numberline {7}Bibliografía}{8}{section.7}%
\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{9}{section.8}%