diff --git a/TFC/imgs/ss-lang-stats.png b/TFC/imgs/ss-lang-stats.png new file mode 100644 index 0000000..3331157 Binary files /dev/null and b/TFC/imgs/ss-lang-stats.png differ diff --git a/TFC/tfc-naortega.pdf b/TFC/tfc-naortega.pdf index a01db4e..9ead31c 100644 Binary files a/TFC/tfc-naortega.pdf and b/TFC/tfc-naortega.pdf differ diff --git a/TFC/tfc-naortega.tex b/TFC/tfc-naortega.tex index 4934a30..24f584d 100644 --- a/TFC/tfc-naortega.tex +++ b/TFC/tfc-naortega.tex @@ -268,21 +268,59 @@ nuestra disposición, como podrían ser PowerDNS, MaraDNS, NSD, KnotDNS, y Bind9 % TODO: finish Entre los programas de servidores HTTP existen dos candidatos principales: Nginx -y Apache. -% TODO: finish +y Apache. Aunque si quisiésemos instalar nuestra solución en una máquina de +{\it Microsoft Windows} se podría contemplar {\it Microsoft Internet Information +Services} (IIS), pero esta opción no esta disponible en Debian GNU/Linux -- o +realmente cualquier sistema operativo que no sea {\it Microsoft Windows}. Para +lo poco que hará nuestro servidor HTTP local, tanto Nginx como Apache podrán +cumplir con los requisitos: servir páginas HTML y pasar peticiones (i.e.\ {\it +requests}) HTTP a un {\it script} para gestionarla; así que la elección es +arbitraria. Es verdad que, en cuestión de gestión de contenidos estáticos, Nginx +tiene una ventaja sobre Apache, pero en cuanto a la gestión de contenidos +dinámicos (i.e.\ páginas dinámicas que se gestionan a partir de {\it scripts}) +apenas hay diferencia entre las dos opciones. Escogeremos a Nginx simplemente +por el criterio de mayor conocimiento y experiencia con su uso y administración. +% SRC: https://hackr.io/blog/nginx-vs-apache + + +\begin{figure}[h] + \centering + \includegraphics[width=0.4\textwidth]{imgs/ss-lang-stats.png} + \caption{Estadísticas de uso de lenguajes de \\ programación en el lado + servidor.} + \label{fig:ss-lang-stats} +\end{figure} 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 +correo al administrador de la red con la información pertinente del intento de +acceso a un sitio web prohibido (i.e.\ pornográfico). Para esto existen varias +alternativas hoy en día, las principales siendo PHP, Ruby, Python, y JavaScript +(por medio de NodeJS). De estas opciones la más utilizada en servidores, sin +competición alguna -- ocupando un 77,5\% del mercado -- es PHP (figura +\ref{fig:ss-lang-stats}). Es muy fácil de incorporar a un servidor HTTP, la +mayoría (como Nginx) tienen formas de incorporarlo como un módulo, y otros +servidores lo tienen directamente incorporado (como el caso de Apache). Tiene +también un interprete ligero, y es muy estable. Por estos motivos, el lenguaje +que utilizaremos será PHP. +% SRC: https://w3techs.com/technologies/overview/programming_language/ + +Con el lenguaje de programación PHP existen varios métodos de enviar correos, y +aunque existe la función por defecto de PHP, {\tt mail()}, no queremos +utilizarlo ya que es demasiado simple y no soporta el protocolo SMTP, que sería +útil para enviar correos a una dirección personal sin que aparecieran como {\it +spam}. Lo que quiere decir que tendremos que utilizar un módulo de terceros para +gestionar el envío de correos. Para esto conviene un módulo que esté disponible +y de fácil instalación en nuestro sistema. En esto la opción más conveniente +sería {\it PHPMailer}. Aunque {\it Symfony Mailer} sería otra opción que se +utiliza mucho con PHP, no esta disponible en los repositorios de Debian +GNU/Linux, como PHPMailer, y por lo tanto sería más difícil de instalar y +actualizar, sobre todo el proceso de una actualización automática. +% SRC: https://mailtrap.io/blog/php-email-sending/ +% SRC: https://www.debian.org/distrib/packages % Software Dependencies: % - Bind9/Named [PowerDNS,MaraDNS,NSD,KnotDNS] % https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software -% - Nginx [Apache] -% https://kinsta.com/blog/nginx-vs-apache/ -% - PHP [Ruby,Python] -% - PHPMailer [mail() function, Symfony Mailer] -% https://mailtrap.io/blog/php-email-sending/ \subsection{Diseño de Solución} \section{Pruebas y Despliegue} diff --git a/TFC/tfc-naortega.toc b/TFC/tfc-naortega.toc index 7f3d186..bfe43c5 100644 --- a/TFC/tfc-naortega.toc +++ b/TFC/tfc-naortega.toc @@ -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}{6}{subsubsection.4.1.2}% -\contentsline {subsection}{\numberline {4.2}Diseño de Solución}{9}{subsection.4.2}% -\contentsline {section}{\numberline {5}Pruebas y Despliegue}{9}{section.5}% -\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{9}{subsection.5.1}% -\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{9}{subsection.5.2}% -\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{9}{subsection.5.3}% -\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{9}{section.6}% -\contentsline {section}{\numberline {7}Bibliografía}{9}{section.7}% -\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{10}{section.8}% +\contentsline {subsection}{\numberline {4.2}Diseño de Solución}{10}{subsection.4.2}% +\contentsline {section}{\numberline {5}Pruebas y Despliegue}{10}{section.5}% +\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{10}{subsection.5.1}% +\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{10}{subsection.5.2}% +\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{10}{subsection.5.3}% +\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{10}{section.6}% +\contentsline {section}{\numberline {7}Bibliografía}{10}{section.7}% +\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{11}{section.8}%