diff --git a/2/ASO/assignments/web-system/imgs/debian-install-choices.png b/2/ASO/assignments/web-system/imgs/debian-install-choices.png new file mode 100644 index 0000000..b3a68fd Binary files /dev/null and b/2/ASO/assignments/web-system/imgs/debian-install-choices.png differ diff --git a/2/ASO/assignments/web-system/imgs/default-nginx-page.png b/2/ASO/assignments/web-system/imgs/default-nginx-page.png new file mode 100644 index 0000000..0e60c9a Binary files /dev/null and b/2/ASO/assignments/web-system/imgs/default-nginx-page.png differ diff --git a/2/ASO/assignments/web-system/web-system-naortega.lof b/2/ASO/assignments/web-system/web-system-naortega.lof new file mode 100644 index 0000000..a5b3a09 --- /dev/null +++ b/2/ASO/assignments/web-system/web-system-naortega.lof @@ -0,0 +1,4 @@ +\babel@toc {spanish}{} +\contentsline {figure}{\numberline {1}{\ignorespaces Mapa de intrenet.\relax }}{2}{figure.caption.4}% +\contentsline {figure}{\numberline {2}{\ignorespaces Selección de {\it software} adicional.\relax }}{5}{figure.caption.7}% +\contentsline {figure}{\numberline {3}{\ignorespaces Página de Nginx por defecto.\relax }}{8}{figure.caption.8}% diff --git a/2/ASO/assignments/web-system/web-system-naortega.lot b/2/ASO/assignments/web-system/web-system-naortega.lot new file mode 100644 index 0000000..543a60a --- /dev/null +++ b/2/ASO/assignments/web-system/web-system-naortega.lot @@ -0,0 +1,3 @@ +\babel@toc {spanish}{} +\contentsline {table}{\numberline {1}{\ignorespaces Tabla de direcciones IP.\relax }}{3}{table.caption.5}% +\contentsline {table}{\numberline {2}{\ignorespaces Tabla de particiones lógicas en los sistemas Debian.\relax }}{4}{table.caption.6}% diff --git a/2/ASO/assignments/web-system/web-system-naortega.pdf b/2/ASO/assignments/web-system/web-system-naortega.pdf index 4570579..6877cf0 100644 Binary files a/2/ASO/assignments/web-system/web-system-naortega.pdf and b/2/ASO/assignments/web-system/web-system-naortega.pdf differ diff --git a/2/ASO/assignments/web-system/web-system-naortega.tex b/2/ASO/assignments/web-system/web-system-naortega.tex index 3c92dce..b18b503 100644 --- a/2/ASO/assignments/web-system/web-system-naortega.tex +++ b/2/ASO/assignments/web-system/web-system-naortega.tex @@ -12,6 +12,9 @@ \maketitle \tableofcontents +\listoffigures +\listoftables + \pagebreak \section{Resumen de Topología} @@ -71,9 +74,9 @@ lo que tiene instalado por defecto -- no es una instalación mínima, por así decirlo. Así que asignaremos a él las especificaciones siguientes: \begin{itemize} - \item Procesadores: % TODO - \item Memoria: % TODO - \item Disco: % TODO + \item Procesadores: 2 + \item Memoria: 4096 MB + \item Disco: 50 GB \end{itemize} Instalaremos Windows Server utilizando las opciones por defecto. No hay mucho @@ -86,8 +89,8 @@ Server, por eso nos podemos permitir reducir los recursos alojados a éstos. A estas máquinas alojaremos los recursos siguientes a todos: \begin{itemize} - \item Procesadores: % TODO - \item Memoria: % TODO + \item Procesadores: 1 + \item Memoria: 1024 MB \item Disco: 10 GB \end{itemize} @@ -111,17 +114,33 @@ mismo grupo, y crearemos las particiones de acuerdo a la tabla \begin{tabular}{|l|l|} \hline {\bf Mountpoint} & {\bf Tamaño} \\ \hline - {\tt /} & \\ % TODO - {\tt /tmp} & \\ % TODO - {\tt /usr} & \\ % TODO - {\tt /var} & \\ % TODO - Swap & \\ \hline % TODO + {\tt /} & 1.9 GB \\ + {\tt /boot} & 451 MB \\ + {\tt /tmp} & 463 MB \\ + {\tt /usr} & 3.7 GB \\ + {\tt /var} & 2.8 GB \\ + Swap & 496 MB \\ \hline \end{tabular} \caption{Tabla de particiones lógicas en los sistemas Debian.} \label{tbl:debian-partitions} \end{table} -En cuanto a los usuarios, crearemos +En cuanto a los usuarios, crearemos un usuario {\it proxy}; es decir, sólo sirve +para luego pasarte al usuario root. En el caso este, se ha creado el usuario +{\tt nicolas} con contraseña {\tt nicolas} -- en realidad poner otra contraseña +más compleja. Para el usuario {\tt root} le asignaremos la contraseña {\tt +toor}. + +\begin{figure}[ht!] + \includegraphics[width=0.75\textwidth]{imgs/debian-install-choices.png} + \caption{Selección de {\it software} adicional.} + \label{fig:debian-install-choices} +\end{figure} + +Cuando nos pregunta si hay otros paquetes que queremos instalar queremos +especificar los <> y también el <>. No +instalamos <> porque esto instalará Apache, que no nos interesa. +Debería de aparecer como en la figura \ref{fig:debian-install-choices}. El resto de la instalación se realizará de forma normal, eligiendo las opciones correspondientes. @@ -141,16 +160,160 @@ systemctl stop network-manager.service systemctl disable network-manager.service \end{minted} +Una vez deshabilitado el NetworkManager, ya podemos empezar a modificar los +archivos de configuración de red. El primer paso será definir una dirección IP +estática. Para empezar, encontramos cuál es el nombre de nuestro interfaz, que +se puede hacer utilizando el comando {\tt ip a}. + +\begin{minted}{text} +1: lo: mtu 65536 qdisc noqueue state +UNKNOWN group default qlen 1000 + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + inet 127.0.0.1/8 scope host lo + valid_lft forever preferred_lft forever + inet6 ::1/128 scope host + valid_lft forever preferred_lft forever +2: enp0s3: mtu 1500 qdisc +pfifo_fast state UP group default qlen 1000 + link/ether 08:00:27:31:09:eb brd ff:ff:ff:ff:ff:ff + inet 10.0.2.2/24 brd 172.16.40.255 scope global dynamic +enp0s3 + valid_lft 595981sec preferred_lft 595981sec + inet6 fe80::a00:27ff:fe76:1cdf/64 scope link + valid_lft forever preferred_lft forever +\end{minted} + +Vemos en este ejemplo que queremos hacer uso de la interfaz {\tt enp0s3}, que es +la interfaz red de {\it ethernet}. Luego, en el archivo {\tt +/etc/network/interfaces}, vamos a configurarlo de la forma siguiente asumiendo +aquel interfaz y que queremos la dirección IP estática 10.0.2.2: + +\begin{minted}{text} +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +source /etc/network/interfaces.d/* + +# The loopback network interface +auto lo +iface lo inet loopback + +# The primary network interface +allow-hotplug enp0s3 +iface enp0s3 inet static + address 10.0.2.2 + netmask 255.255.255.0 +\end{minted} + +También queremos configurar nuestro servidor de DNS, que será el Windows Server +2019 con Active Directory. Para esto hemos de modificar el archivo {\tt +/etc/resolv.conf} con el contenido siguiente: + +\begin{minted}{text} +domain nortega.local +search nortega.local +nameserver 10.0.2.50 +\end{minted} + +Una vez acabado debemos de hacer que el archivo sea inmutable, ya que muchos +servicios intentan modificar este fichero. Para eso corremos simplemente el +comando {\tt chattr +i /etc/resolv.conf}. Una vez configurado ya podemos +reiniciar el servicio de {\it networking} y veremos como hace uso de la +configuración especificada. Esto lo hacemos del modo siguiente: + +\begin{minted}{bash} +systemctl restart networking.service +ifup enp0s3 +\end{minted} + %\section{Active Directory} % STUB \section{Terminal de Administración} -\section{Servidor Web} +En este dispositivo lo más importante que debemos instalar, para el propósito de +administrar los servidores de la red, es SSH. Esto debería de estar disponible +ya si hemos instalado nuestro Debian con la opción <> mencionado +antes (que instala el cliente y el servidor). \section{Base de Datos} +La base de datos, como se explicó anteriormente, será un servidor con el +programa MariaDB. Lo primero es instalar MariaDB como tal: + +\begin{minted}{bash} +apt update +apt install mariadb-server +\end{minted} + +Aunque el paquete se llama {\tt mariadb-server}, incluye también un cliente muy +espartano: {\tt mysql}. Pero antes de interactuar con la base de datos queremos +finalizar la instalación. Esto se hace con el comando siguiente: {\tt +mysql\_secure\_installation}. + +Después de configurar la contraseña de {\tt root}, veremos que nos pide si la +autenticación debería de ser por <>. Esto no es nuestro caso ya +que queremos conectarnos remotamente desde nuestro servidor web, así que +respondemos que no: <>. Luego nos preguntará si queremos eliminar los +usuarios anónimos. Esto puede ser buena idea para evitar que aquellos que no +tengan la autorización para acceder a nuestro servidor de base de datos no lo +puedan hacer, así que respondemos que sí: <>. La próxima pregunta tiene que +ver con el acceso remoto al usuario {\tt root} de la base de datos, y si se +debería de permitir. Esto puede ser un riesgo de seguridad, ya que {\tt root} +tiene privilegios para acceder y manipular todos los datos que tenemos. También, +si nosotros queremos acceder a este usuario, lo podemos hacer accediendo primero +a la máquina por SSH desde el terminal administrador y luego entrando localmente +como el usuario {\tt root} de la base de datos. Por eso lo racional es no +permitir (o {\it despermitir}): <>. La próxima opción es para eliminar la +base de datos de prueba y todo acceso a ello. Como no tendremos necesidad de +utilizarla, podemos eliminarla: <>. Finalmente nos pregunta si queremos +actualizar todos los privilegios en este momento. Ya se hará en un futuro +(cuando reiniciamos la máquina, por ejemplo), pero si queremos empezar a +trabajar ya sobre la base de datos, lo que nos conviene es actualizarlos: <>. +Una vez que hayamos terminado, ya podremos conectarnos al servidor de base de +datos con el comando {\tt mysql} de la forma siguiente: + +\begin{minted}{text} +# mysql -u root -p +Enter password: +Welcome to the MariaDB monitor. Commands end with ; or \g. +Your MariaDB connection id is 31 +Server version: 10.5.18-MariaDB-0+deb11u1 Debian 11 + +Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and +others. + +Type 'help;' or '\h' for help. Type '\c' to clear the current +input statement. + +MariaDB [(none)]> +\end{minted} + +Para salir sólo hemos de insertar el comando {\tt quit;} o usar la combinación +de teclas Ctrl+D, como con cualquier otro {\it shell}. + +\section{Servidor Web} + +En nuestro servidor web, con nombre {\tt web0} queremos instalar el programa +Nginx. Para esto hemos de correr los comandos siguientes: + +\begin{minted}{bash} +apt update +apt install nginx +\end{minted} + +Esto no sólo instalará Nginx, sino que también lo inicializará, de tal modo que +si intentas acceder a nuestro servidor web en un navegador por el puerto 80, te +saldrá la página por defecto de Nginx (figura \ref{fig:default-nginx-page}). + +\begin{figure}[ht!] + \centering + \includegraphics[width=0.75\textwidth]{imgs/default-nginx-page.png} + \caption{Página de Nginx por defecto.} + \label{fig:default-nginx-page} +\end{figure} + \pagebreak \section{Derechos de Autor y Licencia} diff --git a/2/ASO/assignments/web-system/web-system-naortega.toc b/2/ASO/assignments/web-system/web-system-naortega.toc index baa5fd0..a6e659c 100644 --- a/2/ASO/assignments/web-system/web-system-naortega.toc +++ b/2/ASO/assignments/web-system/web-system-naortega.toc @@ -1,10 +1,10 @@ -\babel@toc {spanish}{}\relax +\babel@toc {spanish}{} \contentsline {section}{\numberline {1}Resumen de Topología}{2}{section.1}% \contentsline {section}{\numberline {2}Configuración Inicial Windows Server}{3}{section.2}% \contentsline {section}{\numberline {3}Configuración Inicial Linux}{3}{section.3}% \contentsline {subsection}{\numberline {3.1}Instalación}{4}{subsection.3.1}% \contentsline {subsection}{\numberline {3.2}Post-Instalación}{4}{subsection.3.2}% -\contentsline {section}{\numberline {4}Terminal de Administración}{4}{section.4}% -\contentsline {section}{\numberline {5}Servidor Web}{4}{section.5}% -\contentsline {section}{\numberline {6}Base de Datos}{4}{section.6}% -\contentsline {section}{\numberline {7}Derechos de Autor y Licencia}{5}{section.7}% +\contentsline {section}{\numberline {4}Terminal de Administración}{6}{section.4}% +\contentsline {section}{\numberline {5}Base de Datos}{7}{section.5}% +\contentsline {section}{\numberline {6}Servidor Web}{8}{section.6}% +\contentsline {section}{\numberline {7}Derechos de Autor y Licencia}{9}{section.7}%