TFC: add section on Nginx
Signed-off-by: Nicolás Ortega Froysa <nicolas@ortegas.org>
This commit is contained in:
parent
e7e2e45e8c
commit
fa5d40e9f6
Binary file not shown.
@ -401,7 +401,7 @@ utilizando el comando siguiente:
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# dhclient -v
|
||||
Internet Systems Consortium DHCP Client 4.4.1
|
||||
@ -428,7 +428,7 @@ mirando el archivo {\tt /etc/resolv.conf}:
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# cat /etc/resolv.conf
|
||||
nameserver 192.168.1.135
|
||||
@ -449,7 +449,7 @@ nuestro servidor es {\tt 192.168.1.135}:
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# nslookup porn.com
|
||||
Server: 192.168.1.135
|
||||
@ -493,7 +493,7 @@ de la tarjeta SD corresponde al fichero especial {\tt /dev/mmcblk1}:
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# unxz Armbian_<version>_Rock64_<codename>_current_<version>.img.xz
|
||||
# dd if=Armbian_<version>_Rock64_<codename>_current_<version>.img \
|
||||
@ -543,7 +543,7 @@ que instalará el paquete que precisamos además de todas sus dependencias:
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# apt install bind9
|
||||
\end{minted}
|
||||
@ -561,7 +561,7 @@ bloquear. El archivo de configuración ha de ser como lo siguiente
|
||||
bgcolor=LightGray,
|
||||
linenos,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
baselinestretch=1
|
||||
]{text}
|
||||
include "/etc/bind/blacklisted.zones";
|
||||
|
||||
@ -588,6 +588,38 @@ esta lista, haciendo lo siguiente:
|
||||
\item Reiniciar el servicio de DNS Bind9.
|
||||
\end{enumerate}
|
||||
|
||||
Una vez creado el {\it script}, será de nuestro interés correrlo de forma
|
||||
periódica. Para esto lo más útil es un {\it cronjob}. Como es poco probable que
|
||||
se actualice con frecuencia esta lista, podemos permitirnos actualizarla una vez
|
||||
al mes. Para hacer esto, lo primero que hacemos es mover el {\it script} al
|
||||
directorio {\tt /usr/local/bin} con permisos de ejecución (asumimos que se
|
||||
denomina {\tt update-blacklist.sh}):
|
||||
|
||||
\begin{minted}[
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# install -m 755 ./update-blacklist.sh /usr/local/bin
|
||||
\end{minted}
|
||||
|
||||
Una vez instalado, podemos configurar el {\it crontjob} con el comando {\tt
|
||||
crontab -e}, y en el archivo añadir una línea que sea de la manera siguiente:
|
||||
|
||||
\begin{minted}[
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
0 0 1 * * /usr/local/bin/update-blacklist.sh
|
||||
\end{minted}
|
||||
|
||||
Esta línea lo que hace es correr nuestro {\it script} a la media noche (00:00)
|
||||
cada día 1 de cualquier mes y cualquier día de la semana (estos últimos
|
||||
parámetros se especifican utilizando el símbolo {\tt *}).
|
||||
|
||||
El fichero de configuración de la lista negra ha de tener un dominio por cada
|
||||
línea. El dominio de ha de definir de la forma siguiente
|
||||
(\cite{bind-sinkhole}):
|
||||
@ -596,7 +628,7 @@ línea. El dominio de ha de definir de la forma siguiente
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
baselinestretch=1
|
||||
]{text}
|
||||
zone "<dominio>" {type master; file "/etc/bind/zones/master/
|
||||
blockeddomains.db";};
|
||||
@ -612,11 +644,11 @@ de la manera siguiente (\cite{bind-sinkhole}):
|
||||
bgcolor=LightGray,
|
||||
linenos,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
baselinestretch=1
|
||||
]{text}
|
||||
;
|
||||
; BIND data file for example.local
|
||||
;$
|
||||
;
|
||||
$TTL 3600
|
||||
@ IN SOA ns1.example.local. info.example.local. (
|
||||
2014052101 ; Serial
|
||||
@ -631,10 +663,6 @@ $TTL 3600
|
||||
* IN AAAA ::1
|
||||
\end{minted}
|
||||
|
||||
% TODO:
|
||||
% - Servidor Web
|
||||
% - Script PHP
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=0.75\textwidth]{imgs/router-dns.png}
|
||||
@ -648,8 +676,84 @@ Para hacer esto, en el panel de control del {\it router} se puede encontrar esta
|
||||
configuración en un apartado parecido al que se ve en la figura
|
||||
\ref{fig:router-dns}. Simplemente se rellena con la dirección IP de nuestro
|
||||
servidor en la red interna y ya debería de estar configurado como servidor DNS.
|
||||
Tan sólo es necesario reinicar el servicio de la forma siguiente:
|
||||
|
||||
\begin{minted}[
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# systemctl restart bind9
|
||||
\end{minted}
|
||||
|
||||
\subsubsection{Instalación y Configuración del Servicio HTTP}
|
||||
|
||||
La configuración de nuestro servicio HTTP requiere, en primer lugar, la
|
||||
instalación del {\it software} requerido, siendo este Nginx, pero también
|
||||
instalando los requisitos para que Nginx pueda tratar con {\it scripts} en PHP,
|
||||
enviándolos a un CGI que lo interpretará con el intérprete de PHP:
|
||||
|
||||
\begin{minted}[
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# apt install nginx php php-fpm
|
||||
\end{minted}
|
||||
|
||||
Al instalar estos paquetes, encontraremos, igual que con Bind9, que los
|
||||
servicios de Nginx y PHP-FPM ya están en funcionamiento. Queremos hacer una
|
||||
modificación del archivo por defecto de configuración; el sitio {\it default}
|
||||
que se encuentra en el fichero {\tt /etc/nginx/sites-available/default}. Este
|
||||
archivo nos sirve generalmente como está escrito, ya que toda petición HTTP que
|
||||
recibe el servidor lo interpretará esta configuración, y como tiene que
|
||||
responder a cualquier petición a cualquier dominio bloqueado, esto nos interesa.
|
||||
Sólo hay tres cosas importantes que cambiar:
|
||||
|
||||
\begin{enumerate}[i]
|
||||
\item Eliminar la línea que contiene la directiva {\tt server\_name}.
|
||||
\item Añadir {\tt index.php} a la lista de archivos que utilizar por defecto
|
||||
en la directiva {\tt index}.
|
||||
\item Habilitar la gestión de páginas PHP por medio de PHP-FPM.
|
||||
\end{enumerate}
|
||||
|
||||
El código de configuración para hacer lo segundo está ya dentro del archivo de
|
||||
configuración {\tt default}, tan sólo hace falta descomentarlo. Al descomentar
|
||||
ese bloque debería de parecer a lo siguiente:
|
||||
|
||||
\begin{minted}[
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
linenos,
|
||||
baselinestretch=1
|
||||
]{nginx}
|
||||
# pass PHP scripts to FastCGI server
|
||||
#
|
||||
location ~ \.php$ {
|
||||
include snippets/fastcgi-php.conf;
|
||||
fastcgi_pass unix:/run/php/php-fpm.sock;
|
||||
}
|
||||
\end{minted}
|
||||
|
||||
Una vez que esté bien configurado, podemos reiniciar el servicio con el comando
|
||||
siguiente:
|
||||
|
||||
\begin{minted}[
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1
|
||||
]{console}
|
||||
# systemctl reload nginx
|
||||
\end{minted}
|
||||
|
||||
Una vez configurado podemos verificar que funciona correctamente corriendo un
|
||||
comando {\tt curl} sobre la IP de nuestro servidor. Si responde sin error un
|
||||
código HTML entonces todo ha funcionado correctamente.
|
||||
|
||||
\subsubsection{Instalación de la Página PHP}
|
||||
|
||||
\section{Conclusiones y Propuestas de Mejora}
|
||||
|
Loading…
Reference in New Issue
Block a user