Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Servidor Proxy DHCP y DNS en UBUNTU

Operación, Configuración e Instalación
by

Diego Abad

on 12 December 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Servidor Proxy DHCP y DNS en UBUNTU

PROXY SQUID Un proxy básicamente es un programa o dispositivo que recibe las peticiones de una red y en base a diferentes reglas que tiene configuradas las permite o no.
Por ejemplo, si mi PC sale a internet directamente a traves de un router standard va a poder acceder a todas las paginas que desee. El diagrama sería algo así:

PC > ROUTER > INTERNET

Ahora, con un proxy en el medio la salida a internet estaría limitada por las reglas que le configuremos:

PC > PROXY > ROUTER > INTERNET DHCP Un servidor DHCP (Dynamic Host Configuration Protocol) es un servicio de red que provee direcciones IP entre otra información de configuración a los equipos que se encuentran conectados a este dentro de una red de datos. Las máquinas configurados vía DHCP no tienen control sobre la configuración de red de las mismas, adquiriendo toda esta información directamente desde el servidor DHCP que se encarga de configurar automáticamente la dirección IP de la máquina, la mascara de subred, la puerta de enlace predeterminada o Gateway, el nombre del host, el nombre del dominio, entre otros datos importantes para el buen funcionamiento de la red. DNS El DNS es una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet. Aunque como base de datos el DNS es capaz de asociar diferentes tipos de información a cada nombre, los usos más comunes son la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico de cada dominio. UBUNTU Proxy Squid
DHCP
DNS Proceso de Instalación
de Servicios de Red en UBUNTU bienvenidos INSTALACIÓN DE PROXY SQUID sudo apt-get install squid

Una vez instalado procedemos a configurarlo, para ello editamos el siguiente archivo:

sudo nano /etc/squid/squid.conf

1. Con Ctrl + W buscamos la siguiente linea: http_port 3128


En esta linea configuramos el puerto por el cual Squid "escuchará" las peticiones. Por defecto viene el 3128, podemos cambiarlo por ejemplo al 8080. En mi caso, dejo el que viene por defecto.

2. Nuevamente con Ctrl + W buscamos la siguiente linea: cache_mem 8 MB


Aquí configuraremos la cantidad de memoria asignada para la caché de Squid. Ésta valor va a depender de la cantidad de RAM de la máquina, pero si tenemos 1GB podemos asignarle unos 256 MB. No olviden descomentar las líneas (quitar el simbolo #)

3. Buscamos la linea: cache_dir ufs /var/spool/squid 100 16 256


Este parámetro se encarga de asignar un espacio en el disco para almacenar la caché de Squid. Ufs es el formato con el que Squid guarda la caché en disco, luego viene la ruta donde se almacenará la misma y, por ultimo, aparece el tamaño máximo en disco que Squid utilizará.
Al primer valor (100) le asignaremos 1000 (MB), este valor no puede ser menor que el que hemos asignado antes a la memoria caché. Luego vienen los parámetro de directorio primario (16) y directorio secundario (256) en niveles. Establecerá 16 directorios de primer nivel y 256 subdirectorios de segundo nivel. Estos valores conviene dejarlo por defecto.

Hasta fue la configuración del proxy. Ahora seguimos con las listas de control de acceso: ACCESS LIST: 1. Buscamos la linea: acl CONNECT method CONNECT
Aquí crearemos la primera regla que luego permitiremos (o denegaremos). La regla debe comenzar con "acl" y luego elegiremos el nombre de la misma, el metodo de acceso y por ultimo el rango de acceso. Por ejemplo:

acl redlocal src 192.168.1.0/24

En ésta regla indicamos cual es el origen de las conexiones. En este caso es la dirección de red 192.168.1.0 con mascara 255.255.255.0. Lo que abarca el rango de IP desde 192.168.1.0 hasta 192.168.1.255 (tener en cuenta que la primer dirección y la última no deben utilizarse).
Ahora crearemos otra regla para denegar la conexión a distintas paginas:

acl denegado url_regex "/etc/squid/denegado"

El método url_regex es para que el proxy analice las direcciones de acuerdo a las palabras que anotemos en una lista. En éste ejemplo luego del método colocamos una ruta con un archivo que Squid chequeará antes de permitir la conexión. Ese archivo estará formado por todas las palabras que queremos denegar. En lugar de la ruta podríamos escribirlas todas una al lado de la otra, separadas por espacios, pero si son muchas quedaría bastante desprolijo. Entonces, las 2 reglas que creamos quedaron de la siguiente forma:


2. Para permitir o denegar las reglas que creamos en el paso anterior debemos buscar la siguiente linea: http_access y debajo de la linea que dice # Only allow cachemgr access from localhost agregamos:

http_access deny denegado
http_access allow redlocal

Con esto denegamos el listado de palabras situado en "/etc/squid/denegado" y permitimos las conexiones de nuestra red.


Ya con esto estaría configurado el archivo squid.conf. Presionamos Ctrl + O para guardar, ENTER para mantener el nombre del archivo y Ctrl + X para salir.

Ahora crearemos el archivo con las palabras que deseamos denegar, para ello escribimos en la terminal:

sudo nano /etc/squid/denegado

Acá ingresamos todas aquellas palabras que queremos denegar una debajo de la otra. Guardamos con Ctrl + O, presionamos ENTER para mantener el nombre del archivo y Ctrl + X para salir.

3. Para activar el servicio escribimos en la terminal:

sudo /etc/init.d/squid restart INSTALACION DE DHCP Para este caso en particular utilizaremos los siguientes datos a entregar por el servidor DHCP y la interfaz de red eth0:

Rango de direcciones IP: 192.168.2.10 – 192.168.2.20
Dirección de subred: 192.168.2.0
Mascara de red: 255.255.255.0
Dominio: dhcpserver.public
Puerta de enlace predeterminada: 192.168.2.1
Dirección Broadcast: 192.168.2.255
Servidores DNS: 208.67.222.222 y 208.67.220.220 (OpenDNS )
Datos Iniciales
Instalamos el paquete del servidor DHCP

sudo apt-get install isc-dhcp-server

Editamos el archivo /etc/default/isc-dhcp-server

sudo nano /etc/default/isc-dhcp-server

Aquí nos dirigimos hasta la opción INTERFACES ubicada aproximadamente en la linea 11 del documento, agregando eth0 como se muestra a continuación

# Defaults for dhcp initscript

# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

Guardamos pulsando Ctrl+O y salimos del archivo de configuración pulsando Ctrl+X.
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un respaldo del mismo en caso de que algo salga mal

sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original

Ingresamos como root

sudo -i

Creamos el archivo de configuración dhcpd.conf

cat > /etc/dhcp/dhcpd.conf <<-EOF
option domain-name "preciseserver.public";
option domain-name-servers ns1.preciseserver.public, ns2.preciseserver.public;

default-lease-time 600;
max-lease-time 7200;

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.10 192.168.2.20;
option domain-name-servers 208.67.222.222, 208.67.220.220;
option domain-name "serv.dhcpserver.public";
option routers 192.168.2.1;
option broadcast-address 192.168.2.255;
default-lease-time 600;
max-lease-time 7200;
}
EOF

Reiniciamos el servidor DHCP

sudo service isc-dhcp-server restart

INSTALACION DNS 1.-Instalar software

Tenemos que instalar el paquete bind9. Si utilizamos apt-get ejecutamos la siguiente instrucción:

sudo apt-get install bind9

En el caso de que no tengamos disponible la utilidad apt-get tendremos que instalar el paquete y TODAS sus dependencias por el método tradicional:

sudo dpkg -i bind9_9.3.2-2ubuntu1.12_i386.deb

2.- Creación del fichero named.conf.local

Tenemos que editar el siguiente fichero para definir las zonas (nombres de dominio) que queramos configurar:

sudo vi /etc/bind/named.conf.local

E introducimos lo siguiente, reemplazando 2 variables:

- Reemplazamos server.com por el dominio que nosotros deseemos:
- Reemplazamos 0.168.192 por la dirección de la red al revés, por ejemplo, si estuvieramos en una red 10.228.20.x, introduciríamos 0.20.228.10

# This is the zone definition. replace example.com with your domain name
zone "server.com" {
type master;
file "/etc/bind/zones/server.com.db";
};

# This is the zone definition for reverse DNS. replace 0.168.192 with your network address in reverse notation - e.g my network address is 192.168.0
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.0.168.192.in-addr.arpa";
};

3.- Editar el fichero de opciones named.conf.options

sudo vi /etc/bind/named.conf.options

En este fichero sólo tenemos que establecer la dirección IP de nuestros DNS de la red. En el caso de que el servidor DNS que estamos montando no sepa resolver el dominio, reenviará la petición a estos DNS

forwarders {
# Replace the address below with the address of your provider's DNS server
123.123.123.123;
123.123.123.124;
};

4.- Crear los ficheros de configuración de nuestra zona:

sudo mkdir /etc/bind/zones

Miramos el nombre del fichero que habíamos definido en el fichero /etc/bind/named.conf.local, en nuestro caso es /etc/bind/zones/server.com.db
y cremos el fichero:

sudo vi /etc/bind/zones/server.com.db

En este fichero ya es donde tenemos que definir la equivalencia entre ips y dominios:

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA server.com. root.server. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS server.com.
server.com IN A 1.1.1.1
server1 IN A 1.1.1.2

IMPORTANTE: Eliminar todos los comentarios de la forma //, A mí me dio problemas. Y ojo también con los “.” después del nombre del dominio, no se pueden eliminar.

El siguiente punto de configuración es crear el fichero de reverse DNS zone, que a partir de una ip nos dirá el dominio.

Nos fijamos en el fichero que habíamos definido en el fichero /etc/bind/named.conf.local, en nuestro caso teníamos: file “/etc/bind/zones/rev.0.168.192.in-addr.arpa”;
Por lo que el fichero sería:

sudo vi /etc/bind/zones/rev.0.168.192.in-addr.arpa

//replace server.com with yoour domain name, ns1 with your DNS server name.
// The number before IN PTR server.com is the machine address of the DNS server. in my case, it's 1, as my IP address is 192.168.0.1.
@ IN SOA ns1.example.com. admin.example.com. (
2006081401;
28800;
604800;
604800;
86400
)

IN NS ns1.server.com.
1 IN PTR server.com
120 IN PTR server2

IMPORTANTE: El número “1 que tenemos en la última fila es la dirección de la máquina de la red, por ejemplo, si tenemos un servidor con ip 192.168.0.120, el número que tenemos que poner es 120.
5.- Configurar este DNS en nuestra máquina (/etc/resolv.conf)

Introducimos el nuevo servidor DNS y dejamos también por si acaso el servidor DNS original de nuestra red.

search server.com
nameserver 192.168.0.1
nameserver 1.1.1.1

6.- Reiniciar el servicio bind y probar el servidor DNS

Por último reiniciamos el servicio bind y probamos que funciona.

sudo /etc/init.d/bind9 restart

Hay varias utilizades para saber si funciona: dig, nslookup y ping:

dig server.com
dig server1.server.com
nslookup 192.168.0.1
ping server1.server.com
Full transcript