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},
|
||||
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{graphicx}
|
||||
\usepackage{subcaption}
|
||||
\usepackage{xcolor}
|
||||
\usepackage{minted}
|
||||
\usepackage{enumerate}
|
||||
\usepackage{fancyhdr}
|
||||
@ -15,6 +16,8 @@
|
||||
]{biblatex}
|
||||
\pagestyle{fancy}
|
||||
|
||||
\definecolor{LightGray}{gray}{0.9}
|
||||
|
||||
\addbibresource{tfc-naortega.bib}
|
||||
|
||||
\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
|
||||
utilizando el comando siguiente:
|
||||
|
||||
\begin{minted}{console}
|
||||
\begin{minted}[
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
]{console}
|
||||
# dhclient -v
|
||||
Internet Systems Consortium DHCP Client 4.4.1
|
||||
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
|
||||
Sending on LPF/enp0s3/08:00:27:16:c6:22
|
||||
Sending on Socket/fallback
|
||||
DHCPREQUEST for 192.168.0.104 on enp0s8 to 255.255.255.255 port
|
||||
67 (xid=0x4dcd9939)
|
||||
DHCPREQUEST for 192.168.0.108 on enp0s3 to 255.255.255.255 port
|
||||
67 (xid=0x606bc4b3)
|
||||
DHCPREQUEST for 192.168.0.104 on enp0s8 to 255.255.255.255
|
||||
port 67 (xid=0x4dcd9939)
|
||||
DHCPREQUEST for 192.168.0.108 on enp0s3 to 255.255.255.255
|
||||
port 67 (xid=0x606bc4b3)
|
||||
DHCPACK of 192.168.0.104 from 192.168.0.1 (xid=0x3999cd4d)
|
||||
\end{minted}
|
||||
|
||||
Luego podemos verificar cuál es la dirección IP del servidor DNS configurado
|
||||
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
|
||||
nameserver 192.168.1.135
|
||||
\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
|
||||
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
|
||||
Server: 192.168.1.135
|
||||
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/}}
|
||||
|
||||
\begin{minted}{console}
|
||||
\begin{minted}[
|
||||
frame=lines,
|
||||
bgcolor=LightGray,
|
||||
framesep=2mm,
|
||||
baselinestretch=1.2
|
||||
]{console}
|
||||
# unxz Armbian_<version>_Rock64_<codename>_current_<version>.img.xz
|
||||
# dd if=Armbian_<version>_Rock64_<codename>_current_<version>.img \
|
||||
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}
|
||||
|
||||
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:
|
||||
% - Servidor DNS
|
||||
% - Servidor Web
|
||||
% - 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
|
||||
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}
|
||||
|
||||
\pagebreak
|
||||
|
Loading…
Reference in New Issue
Block a user