TFC: Add DNS setup section
Signed-off-by: Nicolás Ortega Froysa <nicolas@ortegas.org>
This commit is contained in:
parent
0185488e99
commit
e7e2e45e8c
@ -82,3 +82,10 @@
|
|||||||
date={2023-04-27},
|
date={2023-04-27},
|
||||||
keywords={info}
|
keywords={info}
|
||||||
}
|
}
|
||||||
|
@online{bind-sinkhole,
|
||||||
|
author={{Jisc}},
|
||||||
|
title={How to block or sinkhole domains in BIND | Jisc community},
|
||||||
|
url={https://community.jisc.ac.uk/library/janet-services-documentation/how-block-or-sinkhole-domains-bind},
|
||||||
|
date={2023-05-07},
|
||||||
|
keywords={info}
|
||||||
|
}
|
||||||
|
Binary file not shown.
@ -4,6 +4,7 @@
|
|||||||
\usepackage{hyperref}
|
\usepackage{hyperref}
|
||||||
\usepackage{graphicx}
|
\usepackage{graphicx}
|
||||||
\usepackage{subcaption}
|
\usepackage{subcaption}
|
||||||
|
\usepackage{xcolor}
|
||||||
\usepackage{minted}
|
\usepackage{minted}
|
||||||
\usepackage{enumerate}
|
\usepackage{enumerate}
|
||||||
\usepackage{fancyhdr}
|
\usepackage{fancyhdr}
|
||||||
@ -15,6 +16,8 @@
|
|||||||
]{biblatex}
|
]{biblatex}
|
||||||
\pagestyle{fancy}
|
\pagestyle{fancy}
|
||||||
|
|
||||||
|
\definecolor{LightGray}{gray}{0.9}
|
||||||
|
|
||||||
\addbibresource{tfc-naortega.bib}
|
\addbibresource{tfc-naortega.bib}
|
||||||
|
|
||||||
\fancyfoot[LO]{{\it Angelus Custos}\linebreak}
|
\fancyfoot[LO]{{\it Angelus Custos}\linebreak}
|
||||||
@ -394,7 +397,12 @@ Si nuestra máquina de pruebas es también un sistema de Debian GNU/Linux,
|
|||||||
entonces podemos asegurarnos de que hemos pedido información del servidor DHCP
|
entonces podemos asegurarnos de que hemos pedido información del servidor DHCP
|
||||||
utilizando el comando siguiente:
|
utilizando el comando siguiente:
|
||||||
|
|
||||||
\begin{minted}{console}
|
\begin{minted}[
|
||||||
|
frame=lines,
|
||||||
|
bgcolor=LightGray,
|
||||||
|
framesep=2mm,
|
||||||
|
baselinestretch=1.2
|
||||||
|
]{console}
|
||||||
# dhclient -v
|
# dhclient -v
|
||||||
Internet Systems Consortium DHCP Client 4.4.1
|
Internet Systems Consortium DHCP Client 4.4.1
|
||||||
Copyright 2004-2018 Internet Systems Consortium.
|
Copyright 2004-2018 Internet Systems Consortium.
|
||||||
@ -406,17 +414,22 @@ Sending on LPF/enp0s8/08:00:27:5f:48:3a
|
|||||||
Listening on LPF/enp0s3/08:00:27:16:c6:22
|
Listening on LPF/enp0s3/08:00:27:16:c6:22
|
||||||
Sending on LPF/enp0s3/08:00:27:16:c6:22
|
Sending on LPF/enp0s3/08:00:27:16:c6:22
|
||||||
Sending on Socket/fallback
|
Sending on Socket/fallback
|
||||||
DHCPREQUEST for 192.168.0.104 on enp0s8 to 255.255.255.255 port
|
DHCPREQUEST for 192.168.0.104 on enp0s8 to 255.255.255.255
|
||||||
67 (xid=0x4dcd9939)
|
port 67 (xid=0x4dcd9939)
|
||||||
DHCPREQUEST for 192.168.0.108 on enp0s3 to 255.255.255.255 port
|
DHCPREQUEST for 192.168.0.108 on enp0s3 to 255.255.255.255
|
||||||
67 (xid=0x606bc4b3)
|
port 67 (xid=0x606bc4b3)
|
||||||
DHCPACK of 192.168.0.104 from 192.168.0.1 (xid=0x3999cd4d)
|
DHCPACK of 192.168.0.104 from 192.168.0.1 (xid=0x3999cd4d)
|
||||||
\end{minted}
|
\end{minted}
|
||||||
|
|
||||||
Luego podemos verificar cuál es la dirección IP del servidor DNS configurado
|
Luego podemos verificar cuál es la dirección IP del servidor DNS configurado
|
||||||
mirando el archivo {\tt /etc/resolv.conf}:
|
mirando el archivo {\tt /etc/resolv.conf}:
|
||||||
|
|
||||||
\begin{minted}{console}
|
\begin{minted}[
|
||||||
|
frame=lines,
|
||||||
|
bgcolor=LightGray,
|
||||||
|
framesep=2mm,
|
||||||
|
baselinestretch=1.2
|
||||||
|
]{console}
|
||||||
# cat /etc/resolv.conf
|
# cat /etc/resolv.conf
|
||||||
nameserver 192.168.1.135
|
nameserver 192.168.1.135
|
||||||
\end{minted}
|
\end{minted}
|
||||||
@ -432,7 +445,12 @@ red quisiera acceder a una de las páginas prohibidas en nuestra red. Debería d
|
|||||||
devolver una respuesta de la forma siguiente, asumiendo que la dirección IP de
|
devolver una respuesta de la forma siguiente, asumiendo que la dirección IP de
|
||||||
nuestro servidor es {\tt 192.168.1.135}:
|
nuestro servidor es {\tt 192.168.1.135}:
|
||||||
|
|
||||||
\begin{minted}{console}
|
\begin{minted}[
|
||||||
|
frame=lines,
|
||||||
|
bgcolor=LightGray,
|
||||||
|
framesep=2mm,
|
||||||
|
baselinestretch=1.2
|
||||||
|
]{console}
|
||||||
# nslookup porn.com
|
# nslookup porn.com
|
||||||
Server: 192.168.1.135
|
Server: 192.168.1.135
|
||||||
Address: 192.168.1.135#53
|
Address: 192.168.1.135#53
|
||||||
@ -471,7 +489,12 @@ de la tarjeta SD corresponde al fichero especial {\tt /dev/mmcblk1}:
|
|||||||
|
|
||||||
\footnotetext{\url{https://www.armbian.com/rock64/}}
|
\footnotetext{\url{https://www.armbian.com/rock64/}}
|
||||||
|
|
||||||
\begin{minted}{console}
|
\begin{minted}[
|
||||||
|
frame=lines,
|
||||||
|
bgcolor=LightGray,
|
||||||
|
framesep=2mm,
|
||||||
|
baselinestretch=1.2
|
||||||
|
]{console}
|
||||||
# unxz Armbian_<version>_Rock64_<codename>_current_<version>.img.xz
|
# unxz Armbian_<version>_Rock64_<codename>_current_<version>.img.xz
|
||||||
# dd if=Armbian_<version>_Rock64_<codename>_current_<version>.img \
|
# dd if=Armbian_<version>_Rock64_<codename>_current_<version>.img \
|
||||||
of=/dev/mmcblk1 bs=1M
|
of=/dev/mmcblk1 bs=1M
|
||||||
@ -511,8 +534,104 @@ router} tiene otra dirección, utilizar aquella).
|
|||||||
|
|
||||||
\subsubsection{Configuración e Instalación del Servicio DNS}
|
\subsubsection{Configuración e Instalación del Servicio DNS}
|
||||||
|
|
||||||
|
Como mencionamos en un apartado anterior, para esta solución vamos a implementar
|
||||||
|
el servicio de resolución DNS Bind9 (también conocido como Named). Esto se tiene
|
||||||
|
que instalar en el servidor por medio del administrador de paquetes {\tt apt},
|
||||||
|
que instalará el paquete que precisamos además de todas sus dependencias:
|
||||||
|
|
||||||
|
\begin{minted}[
|
||||||
|
frame=lines,
|
||||||
|
bgcolor=LightGray,
|
||||||
|
framesep=2mm,
|
||||||
|
baselinestretch=1.2
|
||||||
|
]{console}
|
||||||
|
# apt install bind9
|
||||||
|
\end{minted}
|
||||||
|
|
||||||
|
Como estamos utilizando un sistema basado en Debian, el servicio se inicializará
|
||||||
|
solo, con la configuración que viene por defecto.
|
||||||
|
|
||||||
|
Para la configuración de Bind9, nos interesa incluir desde nuestro archivo de
|
||||||
|
configuración un archivo que contendrá todos los dominios que nos interesan
|
||||||
|
bloquear. El archivo de configuración ha de ser como lo siguiente
|
||||||
|
(\cite{bind-sinkhole}):
|
||||||
|
|
||||||
|
\begin{minted}[
|
||||||
|
frame=lines,
|
||||||
|
bgcolor=LightGray,
|
||||||
|
linenos,
|
||||||
|
framesep=2mm,
|
||||||
|
baselinestretch=1.2
|
||||||
|
]{text}
|
||||||
|
include "/etc/bind/blacklisted.zones";
|
||||||
|
|
||||||
|
zone "example.local" {
|
||||||
|
type master;
|
||||||
|
file "/etc/bind/zones/master/example.local.db";
|
||||||
|
};
|
||||||
|
\end{minted}
|
||||||
|
|
||||||
|
La línea que más nos interesa es la línea de {\tt include}. Esta línea incluye
|
||||||
|
el archivo que crearemos con todos los dominios que queremos bloquear.
|
||||||
|
|
||||||
|
En aquel archivo queremos tener una lista actualizada de todos los dominios en
|
||||||
|
la lista negra. Para esto haría falta crear un {\it script} capaz de actualizar
|
||||||
|
esta lista, haciendo lo siguiente:
|
||||||
|
|
||||||
|
\begin{enumerate}[i]
|
||||||
|
\item Descargar la lista de internet.
|
||||||
|
\item Manipular el contenido del fichero descargado para conformarse a lo
|
||||||
|
que espera Bind9.
|
||||||
|
\item Hacer una copia de respaldo del archivo que se encuentra allí
|
||||||
|
actualmente.
|
||||||
|
\item Instalarlo en su localización correspondiente.
|
||||||
|
\item Reiniciar el servicio de DNS Bind9.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
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}):
|
||||||
|
|
||||||
|
\begin{minted}[
|
||||||
|
frame=lines,
|
||||||
|
bgcolor=LightGray,
|
||||||
|
framesep=2mm,
|
||||||
|
baselinestretch=1.2
|
||||||
|
]{text}
|
||||||
|
zone "<dominio>" {type master; file "/etc/bind/zones/master/
|
||||||
|
blockeddomains.db";};
|
||||||
|
\end{minted}
|
||||||
|
|
||||||
|
Se hace notar que esta línea hace referencia a un archivo con nombre de
|
||||||
|
fichero {\tt blockeddomains.db}. Este fichero es el que redireccionará el
|
||||||
|
tráfico de nuestra red a la dirección IP de nuestro servidor. Su contenido sería
|
||||||
|
de la manera siguiente (\cite{bind-sinkhole}):
|
||||||
|
|
||||||
|
\begin{minted}[
|
||||||
|
frame=lines,
|
||||||
|
bgcolor=LightGray,
|
||||||
|
linenos,
|
||||||
|
framesep=2mm,
|
||||||
|
baselinestretch=1.2
|
||||||
|
]{text}
|
||||||
|
;
|
||||||
|
; BIND data file for example.local
|
||||||
|
;$
|
||||||
|
$TTL 3600
|
||||||
|
@ IN SOA ns1.example.local. info.example.local. (
|
||||||
|
2014052101 ; Serial
|
||||||
|
7200 ; Refresh
|
||||||
|
120 ; Retry
|
||||||
|
2419200 ; Expire
|
||||||
|
3600) ; Default TTL
|
||||||
|
|
||||||
|
A 192.168.1.135
|
||||||
|
* IN A 192.168.1.135
|
||||||
|
AAAA ::1
|
||||||
|
* IN AAAA ::1
|
||||||
|
\end{minted}
|
||||||
|
|
||||||
% TODO:
|
% TODO:
|
||||||
% - Servidor DNS
|
|
||||||
% - Servidor Web
|
% - Servidor Web
|
||||||
% - Script PHP
|
% - Script PHP
|
||||||
|
|
||||||
@ -530,6 +649,9 @@ 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
|
\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.
|
servidor en la red interna y ya debería de estar configurado como servidor DNS.
|
||||||
|
|
||||||
|
\subsubsection{Instalación y Configuración del Servicio HTTP}
|
||||||
|
\subsubsection{Instalación de la Página PHP}
|
||||||
|
|
||||||
\section{Conclusiones y Propuestas de Mejora}
|
\section{Conclusiones y Propuestas de Mejora}
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
Loading…
Reference in New Issue
Block a user