ASO::final-project: Add more content.

This commit is contained in:
Nicolás A. Ortega Froysa 2023-01-30 19:58:14 +01:00
parent 9cd44a0ec9
commit a9d75ee5f5
7 changed files with 187 additions and 17 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -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}%

View File

@ -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}%

View File

@ -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 <<standard system utilities>> y también el <<SSH server>>. No
instalamos <<web server>> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 <<SSH server>> 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 <<unix\_socket>>. Esto no es nuestro caso ya
que queremos conectarnos remotamente desde nuestro servidor web, así que
respondemos que no: <<n>>. 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í: <<y>>. 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}): <<y>>. 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: <<y>>. 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: <<y>>.
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}

View File

@ -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}%