Sei sulla pagina 1di 37

SERVIDORES

Instalacion y configuracin basica de servidores


Domain Name System (DNS)
Introduccion
Gracias al DNS no hace falta recordar direcciones P, ya que este sistema
realiza la asignacin de una direccin P a uno o varios nombres as como la
asignacin inversa de un nombre a una direccin P. En Linux, un software
especial llamado bind es el que se encarga de establecer el vnculo entre
nombres y direcciones P. Un ordenador que presta este servicio se denomina
Servidor de nombres (ingl. Nameserver).
Los nombres tambin estn estructurados dentro de una jerarqua; las
diferentes partes funcionales de los nombres se separan por puntos. Esta
jerarqua de nombres es independiente de la ya mencionada jerarqua de
direcciones P. A continuacin figura el ejemplo de un nombre completo:
unan.edu. deescrito en formato nombre_ordenador.dominio. Un nombre
completo se denomina Nombre de dominio totalmente cualificado (ingl. Fully
qualified domain name o FQDN) y se compone del nombre del ordenador y de
la parte del dominio. Este nombre de dominio se compone de una parte de libre
eleccin en el ejemplo unan y del dominio de primer nivel (ingl. Top level
domain TLD).
Por razones histricas la asignacin de los TLDs no es del todo contundente.
En los EE.UU. se utilizan TLDs de tres letras mientras que el resto del mundo
utiliza los cdigos de pas SO de dos letras. En los primeros tiempos de
nternet (antes de 1990) el fichero /etc/hosts albergaba los nombres de todos
los ordenadores disponibles en nternet. Esta forma de resolucin de nombre
se torn poco prctica debido al rpido crecimiento de nternet. Por eso se
dise una base de datos descentralizada, capaz de guardar los nombres de
las mquinas de forma distribuida.
Esta base de datos, representado por un servidor de nombres, no dispone de
los datos de todas los ordenadores en nternet, sino que es capaz de consultar
otros servidores de nombres en un nivel ms alto.
En la punta de la jerarqua de servidores de nombres se encuentran los
RootNameserver que administran los dominios de primer nivel (TLD). El
Network nformation Center (NC) se encarga de la administracin de estos
servidores. El Root-Nameserver conoce los servidores de nombres que se
encargan de cada dominio de primer nivel. En el caso de la TLD de Nicaragua
es N-NC que se encarga de todos los dominios para nuestro pais.
En la pgina web http://www.ni hay ms informacin sobre Ni-
NC;http://www.internic.net informa sobre el NC.
El ordenador de sobremesa tiene que conocer la direccin P de al menos un
servidor de nombres para que sea capaz de convertir nombres en direcciones
P. DNS es capaz de realizar otras tareas a parte de la resolucin de nombres.
El servidor de nombres conoce igualmente el ordenador que acepta los
mensajes de todo un dominio. Este ordenador se conoce como Mail exchanger
(MX).
Iniciar el servidor de nombres BIND
El servidor de nombres BND (Berkeley nternet Name Domain) ya est
preconfigurado en SuSE Linux por que puede iniciarse directamente despus
de la instalacin.
Una vez que la conexin a nternet funciona, basta con introducir 127.0.0.1
como servidor de nombres para localhost en /etc/resolv.conf para que la
resolucin de nombres funcione sin necesidad de conocer el DNS del
proveedor. De esta forma, BND utiliza los root name servers para la
resolucin de los nombres y el proceso es mucho ms lento. Por lo general,
siempre se debera indicar la direccin P del DNS del proveedor en el apartado
forwarders del archivo de configuracin /etc/named.conf para conseguir una
resolucin de nombres eficaz y segura. Funcionando de este modo, el servidor
de nombres acta en modo caching-only. Configurndolo con zonas, se
convierte en un DNS real. No se debera configurar ningn dominio oficial
mientras ste no haya sido asignado por parte de la institucin en cuestin
para .es la organizacin ES-NC es la que se encarga de ello. Aunque se
disponga de un dominio propio, tampoco se debera utilizar mientras el
proveedor se encargue de administrarlo. En caso contrario BND deja de
reenviar (forward) consultas para ese dominio y (p. ej.) el servidor web que se
encuentra en el centro de datos del proveedor deja de estar accesible.
Como superusuario se puede iniciar el servidor de nombres mediante el
comando: rcnamed start
Si a la derecha de la pantalla se muestra done en color verde, significa que el
daemon del servidor de nombres (nombrado named) se ha iniciado
correctamente. Los programas host o dig permiten comprobar inmediatamente
el funcionamiento en la mquina local. Como servidor predeterminado ha de
constar localhost con la direccin 127.0.0.1. Si ste no fuera el caso, es posible
que /etc/resolv.conf contenga un servidor de nombres equivocado o que este
archivo sencillamente no exista.
Con el comando host 127.0.0.1 se puede comprobar si todo va bien. Si aparece
un mensaje de error lo mejor es utilizar el comando :
rcnamed status
para ver si el daemon named realmente est en funcionamiento. En caso de
error, es posible averiguar el origen del mismo mediante los mensajes en el
archivo /var/log/messages. Para utilizar el servidor de nombres del proveedor o
cualquier otro que ya exista en la red local como forwarder, se introduce ste
u otro en la entrada forwarders del apartado options. Las direcciones P
utilizadas en el archivo 32 han sido escogidas al azar y deben modificarse en
funcin de su sistema.
options {
directory "/var/lib/named";
forwarders { 10.11.12.13; 10.11.12.14; };
listen-on { 127.0.0.1; 192.168.0.99; };
allow-query { 127/8; 192.168.0/24; };
notify no;
};
Opciones de reenvo o forwarding en named.conf
Detrs de options se encuentran las entradas para las zonas. Al menos
siempre deberan existir las entradas de localhost, 0.0.127.in-addr.arpa y "." de
type hint. No es necesario modificar los archivos correspondientes, ya que
funcionan tal y como estn. Adems es importante que exista un ';' al final de
todas las entradas y que los corchetes estn correctamente colocados. Al
haber modificado el archivo de configuracin /etc/named.conf o los archivos de
zona, es preciso que BND vuelva a leer estos archivos. Esto se realiza con el
comando rcnamed reload. Otra posibilidad es la de reiniciar el servidor
mediante rcnamed restart; el comando para detenerlo es rcnamed stop.
El archivo de configuracin /etc/named.conf
La configuracin de BND se realiza por completo con el archivo /etc/named.
conf. Los datos propios de la zona, que son los nombres de los ordenadores,
direcciones P, etc. de los dominios administrados, se han de anotar en
archivos adicionales dentro del directorio /var/lib/named.
A grandes rasgos, /etc/named.conf se estructura en dos secciones; la primera
es options para la configuracin general y la siguiente es la que contiene las
entradas zone para los diferentes dominios. Tambin es posible utilizar una
seccin logging o una con entradas del tipo acl (ingl. Access Control List). Las
lneas comentadas comienzan con el smbolo '#' o '//'.
options {
directory "/var/lib/named";
forwarders { 10.0.0.1; };
notify no;
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
};
zone "." in {
type hint;
file "root.hint";
};
archivo /etc/named.conf muy sencillo
Las opciones ms importantes del apartado options :
directory /var/lib/named! indica el directorio que contiene los archivos con
los datos de zona.
for"arders # $%.%.%.$! &! se utiliza para indicar uno o varios servidores de
nombres (generalmente los del proveedor) para pasarles las consultas DNS
que no se pueden resolver directamente.
for"ard first! hace que las consultas DNS se reenven antes de tratar de
resolverlas mediante un root name server. En lugar de forward first tambin es
posible poner forward only para que todas las consultas sean siempre
reenviadas sin acceder nunca a los root- name servers. Esta es una opcin
razonable para una configuracin con cortafuegos.
listen'on (ort )* # $+,.%.%.$! $-+.$./.%.$! &! indica las interfaces de red y el
puerto que debe utilizar BND para atender a las peticiones DNS realizadas por
los clientes. Es posible suprimir port 53, ya que ste es el puerto estndar. Al
suprimir esta entrada completamente, BND atiende en todas las interfaces de
red.
listen'on'v. (ort )* # any! &! indica a BND el puerto en el que ha de esperar
las consultas de los clientes que utilizan Pv6. Adems de any slo se admite
none, ya que el servidor siempre atiende a la direccin comodn de Pv6.
0uery'source address 1 (ort )*! Esta entrada puede resultar til si un
cortafuegos bloquea las consultas DNS externas, ya que BND deja de utilizar
los puertos altos (> 1024) y realiza entonces las consultas hacia fuera desde el
puerto 53.
0uery'source'v. address 1 (ort )*! Esta entrada debe utilizarse para las
consultas realizadas a travs de Pv6.
allo"'0uery # $+,.%.%.$! $-+.$./.$/+2! &! determina desde qu redes est
permitido hacer consultas DNS. /24 es una abreviatura de la mscara de red,
en este caso 255.255.255.0.
allo"'transfer # 3 1! &! determina qu ordenadores pueden solicitar
transferencias de zonas. ! * prohibe totalmente la transferencia. Suprimiendo
esta entrada, cualquier ordenador puede solicitar las transferencias de zona.
statistics'interval %! Sin esta entrada, BND crea cada hora varias lneas con
datos estadsticos en /var/log/messages. ndicando 0, los mensajes se
suprimen. El tiempo se expresa en minutos.
cleaning'interval ,+%! Esta opcin indica el intervalo de limpieza de la cache
de BND. Cada vez que se realiza esta accin se crea una entrada en
/var/log/messages. El tiempo se indica en minutos y el valor predeterminado es
de 60 minutos.
interface'interval %! BND busca continuamente interfaces de red nuevas o
canceladas Esta opcin se suprime introduciendo el valor 0. De este modo,
BND slo atiende las interfaces que existan en el momento del inicio. Es
posible indicar un intervalo en minutos; el valor predeterminado es 60 minutos.
notify no! significa que el cambio de los datos de zona o cundo se reinicia el
servidor de nombres no se notifica a ningn otro servidor de nombres.
El apartado de configuracin Logging
Hay muchas posibilidades de protocolar eventos con BND. Normalmente la
configuracin predeterminada es suficiente.
logging {
category default { null; };
};
4ogging su(rimido
Estructura de las entradas de 5ona
Despus de zone se indica el nombre de dominio a administrar (en este caso
unan.edu.ni) seguido de in y un bloque de opciones entre corchetes.
zone "unan.edu.ni" in {
type master;
file "unan.zone";
notify no;
};
6onfiguracin de unan.edu.ni
Para definir una Slave-Zone slo hace falta cambiar type en slave e indicar un
servidor de nombres que administra esta zona como master (igualmente puede
ser un slave).
zone "unanrucfa.edu.ni" in {
type slave;
file "slave/unanrufca.zone";
masters { 10.0.0.1; };
};
6onfiguracin (ara unanrucfa.edu.ni
Las opciones de zona:
ty(e master! master significa que esta zona se administra en este servidor de
nombres. Es algo que requiere un archivo de zona muy bien configurado.
ty(e slave! Esta zona se transfiere de otro servidor de nombres. Hay que
usarlo junto con masters.
ty(e hint! La zona . del tipo hint se utiliza para indicar los root name servers.
Es una definicin de zona que no se modifica.
file mi'dominio.5one! file slave/otro'dominio.5one! Esta entrada indica
el archivo que contiene los datos de zona para el dominio. En caso de un slave
no hace falta que el archivo exista, ya que se trae desde otro servidor de
nombres. Para separar los archivos de esclavo y de maestro, se indica slave
como directorio de los archivos slave.
masters # $%.%.%.$! &! Esta entrada slo se requiere para zonas esclavo e
indica desde qu servidor de nombres se debe transferir el archivo de zona.
allo"'u(date # 3 1! &! Esta opcin regula el acceso de escritura desde el
exterior a los datos de zona. Es una opcin que abre la posibilidad a los
clientes de crear su propia entrada en el DNS, lo que no es deseable por
razones de seguridad. Sin esta entrada las actualizaciones de zona estn
prohibidas, cosa que no cambia nada en este ejemplo, ya que ! * prohibe
igualmente todo.
Sinta7is de los archivos de 5ona
Existen dos tipos de archivos de zona; el primero sirve para asignar la direccin
P a un nombre de ordenador y el segundo proporciona el nombre del
ordenador en funcin de una direccin P. El smbolo del punto ('.') tiene un
significado importante en los archivos de zona. A todos los nombres de
ordenadores que se indican sin el punto por detrs, se les aade la zona.
Por eso es importante terminar con un '.' los nombres de las mquinas que se
hayan anotado con el dominio completo. La falta o la posicin equivocada de
un punto suele ser la causa de error ms frecuente en la configuracin de un
servidor de nombres. El primer ejemplo forma el archivo de zona solar.zone
que corresponde al dominio solar.sis.
1. $TTL 2D
2. solar.sis. N SOA gateway root.solar.sis. (
3. 2003072441 ; serial
4. 1D ; refresh
5. 2H ; retry
6. 1W ; expiry
7. 2D ) ; minimum
8.
9. N NS gateway
10. N MX 10 sol
11.
12. gateway N A 192.168.0.1
13. N A 192.168.1.1
14. sol N A 192.168.0.2
15. luna N A 192.168.0.3
16. tierra N A 192.168.1.2
17. marte N A 192.168.1.3
18. www N CNAME luna
archivo /var/lib/named/solar.zone
48nea $9 $TTL define el TTL estndar, que vale para todas las anotaciones en
este archivo y es en este caso de 2 das (2D = 2 days). TTL time to live es el
tiempo de vencimiento.
48nea +9 Aqu comienza la parte del SOA control record:
En primer lugar figura el nombre del dominio a administrar solar.sis,
terminado con un '.' para que no se aada otra vez el nombre de la
zona. La alternativa es la de anotar el smbolo '@' para que se
busque el nombre de la zona en /etc/named.conf.
Por detrs de N SOA se anota el nombre del servidor de nombres
que acta como master para esta zona. En este caso, el nombre
gateway se amplia a gateway.solar.sis ya que no termina con un
punto.
A continuacin aparece la direccin de correo electrnico de la
persona que se encarga de este servidor de nombres. Como el
smbolo '@' ya tiene un significado especial, se le reemplaza por un
'.' - en lugar de root@solar.sis se escribe entonces root.solar.sis. . No
se debe olvidar el punto al final para que no se aada la zona.
Al final hay un '(', para incorporar las siguientes lneas hasta el ')' con
todo el SOA-Record.
48nea *9 El nmero de serie en la lnea serial es un nmero al azar que debe
aumentarse despus de cada modificacin del archivo. El cambio del nmero
informa a los servidores de nombres secundarios sobre la modificacin. Es
tpico utilizar una cifra de diez dgitos formada por la fecha y un nmero de
orden en la forma AAAAMMDDNN.
48nea 29 El intervalo de refresco en la lnea refresh indica al servidor de
nombres secundario cundo debe comprobar nuevamente la zona. En este
caso es un da (1D = 1 day).
48nea )9 El intervalo de reintento en la lnea retry indica cunto tiempo despus
el servidor de nombres secundario debe intentar conectar nuevamente con el
primario. En este caso son 2 horas (2H = 2 hours).
48nea .9 El tiempo de expiracin en la lnea expiry indica el tiempo despus del
cual el servidor de nombres secundario debe descartar los datos dentro de la
cach, cuando la conexin con el servidor primario haya dejado de funcionar.
En este caso es una semana (1W = 1 week).
48nea ,9 La ltima entrada en SOA es el negative caching TTL que indica
cunto tiempo pueden mantener los otros servidores en la cach las consultas
DNS hechas que no se han podido resolver.
48nea -9 N NS indica el servidor de nombres que se encarga de este dominio.
En este caso se vuelve a convertir gateway en gateway.solar.sis porque no se
termin con el punto. Puede haber varias lneas de este tipo, una para el
servidor de nombres primario y otra para cada servidor de nombres secundario.
Si la variable notify de /etc/named.conf tiene el valor yes, se informar de todos
los servidores de nombres aqu mencionados y de los cambios en los datos de
zona.
48nea $%9 El MX-Record indica el servidor de correo que recibe, procesa o
traspasa los mensajes para el dominio solar.sis. En este ejemplo se trata del
ordenador sol.solar.sis. La cifra por delante del nombre de ordenador es el
valor de preferencia. Si existen varias entradas MX, primero se utiliza el
servidor de correo con el valor de preferencia ms bajo y si la entrega del
correo a este servidor falla, se utiliza el servidor con el siguiente valor ms alto.
48neas $+'$,9 Estos son los registros de direcciones ((ingl. address records))
en los que se asignan una o varias direcciones P a una mquina. Todos los
nombres se anotaron sin el punto '.' al final, de tal forma que a todos se les
aade solar.sis. El ordenador con el nombre gateway tiene dos direcciones P
asignadas porque dispone de dos tarjetas de red. El valor A representa una
direccin tradicional de ordenador; A6 hace referencia a direcciones Pv6 y
AAAA es el formato obsoleto para las direcciones Pv6.
48nea $/9 Con el alias www tambin es posible luna (CNAME = canonical
name). Para la resolucin inversa de direcciones P (ingl. reverse lookup) se
utiliza el pseudo-dominio in-addr.arpa. ste se aade por detrs a la parte de
red de la direccin P escrita al revs. 192.168.1 se convierte as en
1.168.192.in-addr.arpa;
1. $TTL 2D
2. 1.168.192.in-addr.arpa. N SOA gateway.solar.sis. root.solar.sis. (
3. 2003072441 ; serial
4. 1D ; refresh
5. 2H ; retry
6. 1W ; expiry
7. 2D ) ; minimum
8.
9. N NS gateway.solar.sis.
10.
11. 1 N PTR gateway.solar.sis.
12. 2 N PTR tierra.solar.sis.
13. 3 N PTR marte.solar.sis.
Resolucin de nombres inversa
48nea $9 $TTL define el TTL estndar que sirve en este caso para todas las
configuraciones.
48nea +9 La resolucin inversa reverse lookup se debe realizar para la red
192.168.1.0. En este caso, la zona se denomina 1.168.192.in-addr.arpa y este
sufijo no se debe aadir a los nombres de las mquinas. Por eso, todos los
nombres terminan con un punto. Para el resto se aplica lo mismo tal y como se
explic en el ejemplo anterior de solar.sis.
48nea *',9 Vase el ejemplo anterior de solar.sis.
48nea -9 Esta lnea indica tambin el servidor de nombres que se
responsabiliza de la zona, pero en este caso se anota completamente con el '.'
Como terminacin.
48neas $$'$*9 Aqu se encuentran los registros de los punteros que apunten de
una direccin P a un nombre. Al comienzo de la lnea slo se encuentra la
ltima cifra de la direccin P sin el punto '.' como terminacin. Aadindole la
zona y quitando mentalmente la parte .in-addr.arpa, se obtiene la direccin P
completa en orden inverso. Las transferencias de zonas entre las distintas
versiones de BND no deberan representar ningn problema.
:ro7y
Introduccin
Existen una cierta cantidad de trminos que debemos conocer antes de
configurar un servidor proxy, sea directo o transparente. Entender dichos
trminos nos permitir comprender en mayor profundidad los comentarios,
ejemplos y documentacin que suelen acompaar a los paquetes de software
de esta categora, y de todo el software libre en general, as como tambin
permitirnos avanzar an ms en este apasionante mundo de las redes, la
seguridad y la programacin. En este caso, trminos como "proxy" son
tomados de forma incorrecta, y hablan de "proxies" cuando en verdad hablan
de un "router", o de NAT. A tal efecto, veamos algunos detalles de estos
trminos:
6a(a de ;ed y de <(licacin9 Usualmente debera despachar una
descripcin del modelo OS terico y/o del modelo TCP/P, pero voy a
simplificar la cuestin. Cuando nos referimos a la Capa de Red, estamos
hablando de toda cuestin vinculada con direcciones P, enrutado, tneles,
filtrado, etc. Y claro, cuando hablamos de Capa de Aplicacin, nos referimos a
todo lo que tiene que ver con el nivel mas alto de funcionamiento. Si,
adivinaron: las aplicaciones. En trminos prcticos, entonces, si alguien habla
de un "Firewall de Capa de Aplicacin", se refiere a poder implementar filtrado
segn parmetros del protocolo de alto nivel. Por ejemplo, el ptables es una
aplicacin que permite filtrar segn aplicacin: MSN Messenger, FTP, etc, ms
all del puerto donde estn ocurriendo dichas conecciones. nteresante, no?
I(tables9 Funcionalidad y esquema interno del Ncleo Linux en las versiones
2.4 y
2.6 que proveen Firewall con conocimiento de Estado (Stateful Firewall). Un
firewall, o cortafuegos, habilita la capacidad de aplicar polticas sobre los
paquetes, como por ejemplo "permitir acceso desde cualquier P al puerto 80
de la interfaz eth0, o tal vez "denegar el acceso al puerto 22, excepto a las P
1, 2 y 3. La cuestin de conocimiento de estado est vinculada conque
Netfilter mantiene una tabla de las conecciones entrantes y salientes, y de esta
forma nos permite armar reglas en base a parmetros "de estado", como
coneccin establecida, relacionada o nueva. Por ejemplo, supongan que de 8 a
19hs se permiten nuevas conecciones salientes hacia nternet. Pasado este
horario podramos armar una regla que especifique que solamente las
conecciones relacionadas o establecidas, pero no nuevas puedan seguir
saliendo a nternet. De esta forma, la descarga de un archivo continuar hasta
su fin, incluso pasado este horario, pero no se podr ingresar a nuevos sitios.
Qu tiene esto que ver con un Proxy Transparente? Simple: ptables tambin
permite aplicar ciertas reglas de redireccionamiento, no solo las clsicas de
"ACEPTAR y "RECHAZAR. En resumen, vamos a tener que aplicar un par de
reglas de ptables para lograr nuestro acometido. Les recomiendo la lectura de
algunos artculos sobre ptables introductorios, o mejor an, leer de pies a
cabeza la pgina del manual para "iptables".
:ro7y9 Mucha gente confunde el trmino Proxy con el de Gateway (o "puerta
de enlace predeterminada, segn la traduccin de cierta empresa de software
privativo). En toda red TCP/P, por ejemplo en una red privada 192.168.0.0
Clase C (Mscara 255.255.255.0 o '/24'), se necesita un gateway si es que
deseamos llegar a otras redes, como nternet. Dicho Gateway poseer la
cantidad de interfaces necesarias y rutas establecidas y polticas de acceso
que permitirn o no el acceso a ciertos destinos desde esta red interna. Por
supuesto, en este caso hablamos de acceso "transparente (por as decirlo) a la
red destino en cuestin.
Esto significa que el Gateway no tiene en cuenta el protocolo de aplicacin
(HTTP, FTP, etc) o mejor dicho que "no los entiende ni tiene en cuenta excepto
por puerto de origen o destino. Por ejemplo, se puede asumir que en el puerto
80 de cierta P de destino habr un servicio que entienda HTTP... pero el
gateway no puede asegurarlo. Un proxy acta como gateway pero a un nivel
ms alto, en la llamada "capa de aplicacin. Significa que entiende HTTP, FTP,
u algn otro protocolo de alto nivel, y que acepta por parte de un cliente (de la
red interna, por ejemplo) solicitudes vinculadas a dicho protocolo. El proxy
realizar, a su vez, la solicitud al servidor de destino, tomar el resultado y lo
devolver. Al tener conocimiento del protocolo se pueden aplicar reglas mucho
ms interesantes, como restricciones basadas en contenido, partes del nombre
de un sitio, usuario, grupo al que un usuario pertenece, P de origen, etc.
Squid es un proxy de HTTP y FTP, y a su vez provee la funcionalidad de cache:
guarda copias de las pginas y archivos visitados. De esta forma, cada vez que
un usuario vuelve a acceder a cierto sitio, slo el contenido que haya cambiado
ser transferido, logrando una reduccin de la utilizacin del ancho de banda
disponible. En resumen, el cliente no accede realmente a internet, sino que le
solicita al proxy lo que quiere, el proxy a su vez lo busca en nternet, lo
transfiere, y luego se lo da al cliente. Es menos directo, si, que NAT, donde se
trabaja a nivel TCP/P y no a nivel aplicacion.
N<=9 Corresponde a Network Address Translation o Traduccin de Direccin de
Red. Las direcciones P de una red privada no son direccionables en nternet,
por lo que el Gateway suele aplicar lo que se llama comunmente
"enmascaramiento (Masquerading) de la P de origen, reemplazando la interna
por la correspondiente a la interfaz de red pblica del Gateway. Por supuesto,
se mantiene una tabla con los datos necesarios para poder relacionar las
respuestas que provengan de internet con su destino "real en la red privada.
=rans(arente9 Bien, ya sabemos que es un Gateway, ptables y un Proxy. El
hecho de que sea transparente permite al administrador lograr que toda
solicitud HTTP (puerto de destino 80/tcp) realizada por un cliente de la red
interna sea automticamente redirigida al Proxy, evitando la salida directa. Los
motivos para realizar sto pueden depender del administrador, pero
seguramente tengan que ver con polticas de administracin de recursos,
seguridad, performance, etc. Esto se realiza, como ya dijimos, mediante reglas
de redireccionamiento de ptables .
>enta?as y Desventa?as
Veamos las ventajas de usar Squid:
1) Soporta HTTP y FTP.
2) Tiene un avanzado mecanismo de autentificacion y control de acceso (o sea,
a
quien y cuando permitimos utilizar el proxy).
3) Permite actuar como 'cache' de nternet, copiando contenido en forma local
para
que se lo pueda accesar rpidamente.
4) Es Software Libre.
Ahora, las desventajas, pero de usar un Proxy en general:
1) La maquina donde funcionara el Proxy debe tener capacidad de
almacenamiento
acorde a la cache que necesitemos o querramos.
2) Debe tener un buen poder de procesamiento, ya que no es solo un 'reenvio'
de
paquetes tcp/ip. Recuerden que estamos trabajando en la Capa de Aplicacin.
3) En modo transparente existen algunos problemas de compatibilidad
(mnimos,
pero existen).
4) Hay que configurar la utilizacion del Proxy en cada cliente (hay 2 formas de
salvar
este inconveniente, que veremos mas adelante).
6omo instalar el servidor S0uid
Instalacin mediante ;:@
La manera ms sencilla de instalar el servidor Squid en nuestro sistema, es
mediante una versin en RPM ya sea desde el CD de nuestra distribucin o
desde por ejemplo nuestra seccin privada, ninguna versin anterior a la 2.4
STABLE1 se considera apropiada y lgicamente nosotros recomendamos
instalar la versin estable ms reciente posible.
Para instalar una versin en RPM, simplemente tenemos que ejecutar como
usuario root la siguiente orden:
r(m Ai s0uid'+.2.S=<B4E.'..,.*.i*/..r(m
(El RPM indicado viene con la distribucin de RedHat 7-3 y es el que
utilizaremos para realizar esta documentacin).
Instalacin mediante cdigo fuente
Si no deseamos esperar a que salga la ltima versin en RPM y queremos
instalar Squid desde el cdigo fuente, simplemente tenemos que descargar la
versin ms actualizada desde www.squid-cache.org y descomprimirla
mediante la orden:
tar A75vf s0uid'+.).S=<B4E+.tar.g5.
Una vez descomprimido el paquete debemos de ejecutar el siguiente script con
los siguientes parmetros:
./configure A(refi7B/usr/local/s0uid
Esta orden permite especificar el directorio donde instalaremos Squid. Una vez
realizada esta operacin se generan los ficheros Makefiles y libreras
necesarias para compilar el cdigo.
Para compilar el cdigo fuente ejecutar la orden: maCe all y posteriormente:
maCe install para instalar el software de Squid en nuestro sistema.
6onfiguracin DenErica de S0uid
Lo principal es saber que el sitio oficial es www.squid-cache.org y no
www.squid.org. De hecho es tan comn esta equivocacin que www.squid.org
tiene un mensaje: "Est buscando la Cache? Haga click sobre esta URL".
Desde el sitio oficial de Squid podemos bajar la ultima version de desarrollo
(DEVEL), que es el codigo fuente "no-estable". Sino, podemos bajar la version
"estable" (STABLE, recomendada para sistemas en produccion). Si nos
acercamos a Squid como programadores, porque queremos extenderlo o
corregir algun error, debemos utilizar la version DEVEL, o acceder mediante
CVS (ya trataremos este tema mas adelante).
Una vez compilado e instalado el Squid, debemos configurarlo. A decir verdad
esto es bastante simple: el archivo de configuracion squid.conf (en /etc/squid)
esta LLENO de parametros, pero solo unos pocos debemos modificar S o S.
El Squid, como lo indica su documentacion, tiene muchas funciones, pero solo
utilizaremos lo mas basico al comienzo. Editemos el squid.conf con el editor
que mas nos guste. Veran que es de un estilo muy simple: bien comentado,
pero cada parametro de configuracion es una linea, que contiene un parametro
o comando, y una serie de valores. Antes de empezar a modificar estos
valores, seria conveniente leer todo el squid.conf completo, para tener una
idea, una vision general de lo que se puede hacer desde alli, de esta forma si
un dia tenemos que hacer algo en particular, quiza podamos recordar si hacerlo
desde squid.conf o desde otro lado.
El primer parametro a tocar es 'cache_mem'. Especifica la cantidad de memoria
(no de disco duro) que Squid utilizar. Segn recomendacion de los autores, si
tenemos "X" RAM libre que querramos dedicar al Squid, pongamos aqui un
TERCO de dicho valor (X/3).
Luego podemos seguir por 'cache_dir', donde especificaremos el donde y el
cuanto de la Cache. Por ejemplo: 'cache_dir /usr/local/squid/cache 100 16 256'.
El valor 100 indica '100 MB de cache'. Al 16 y al 256 es probable que no
necesitemos nunca cambiarlos, e indican al Squid como utilizar los 100mb.
Luego veremos como optimizar esta sentencia.
Ahora viene algo importante: las reglas de acceso y el acceso a los protocolos
http e icp. Por defecto querremos permitirle la utilizacion del Proxy a nuestra
red interna solamente. El siguiente bloque es un ejemplo para una red
192.168.10.0 con mascara 255.255.255.0. Se permitira acceso toda esta red y
al localhost/127.0.0.1, esto se logra definiendo 4 acl's: la del administrador (de
uso interno del Squid), la de localhost, una global que hable de TODA direccion
P posible y la de permitidos (nuestra red privada). En este ejemplo, asumimos
una red privada clase C 192.168.10.0 a la cual denominamos "permitidos". La
regla acl "todos" generalmente se denomina "all" en Squid, y viene definida por
defecto. Aqu la traduje a efectos de que sea mas claro el ejemplo.
acl localhost src 127.0.0.1/255.255.255.255
acl todos src 0.0.0.0/0.0.0.0
acl permitidos src 192.168.10.0/255.255.255.0
http_access allow permitidos
localhost http_access deny todos
icp_access allow permitidos
localhost icp_access deny todos
Los indicadores 'deny' y 'allow' significan "denegar" y "permitir",
respectivamente, a las solicitudes que concuerden con las ACL definidas mas
arriba en cada protocolo. El orden es de 'allow, deny'. Primero indico a quienes
permito, luego deniego a todos los demas. Quiza quieran hacer esto por cada
{PROTOCOLO}_access que les parezca.
Quiza querramos modificar el 'cache_mgr', para indicar la direccion de eMail
nuestra, asi si algun usuario tiene problemas, sabe a quien contactar.
'visible_hostname' indicara el nombre del Host que se publicara en paginas de
error, etc, generadas por Squid.
Luego, debemos indicar con que usuario y grupo debe funcionar el Squid luego
de haber sido iniciado con root desde los scripts de inicio (o a mano por el root
mismo). Esto lo hacemos con 'cache_effective_user' y 'cache_effective_group'.
Valores recomendados: algo del estilo 'nobody' y 'nogroup'. Una vez editado el
squid.conf, debemos inicializar la cache, y luego ejecutar el Squid. Esto lo
hacemos de la siguiente forma:
nicializar la cache:
/usr/local/squid/bin/squid -z Ejecutar el
Squid: /usr/local/squid/bin/squid
Ahora, debemos revisar /usr/local/squid/logs/cache.log. Debemos fijarnos si
esta todo bien. Van a encontrar un par de errores al principio de todo, algo
comun la primera vez que se ejecuta el Squid. Una vez andando, debemos
probarlo: vayamos a un cliente, configuremos el uso del proxy para el protocolo
HTTP en el puerto 3128 (el por defecto de Squid, el cual se puede cambiar con
'http_port') y listo. Si anda, perfecto. Si no, verifiquen que el Squid este
ejecutndose ('ps ax', 'nmap', lsof -iTCP:3128', etc).
=rans(arenti5acin del S0uid
Una vez configurado el Squid, debemos probarlo en formato "no-transparente,
configurando un navegador para que lo utilice. Recuerden que Squid utiliza el
puerto 3128/tcp para recibir las solicitudes. Si funciona, podemos pasar a la
siguiente etapa: la transparentizacin (!?) de Squid.
En principio, son slo 4 los parmetros los que debemos configurar. Uno de
estos parmetros no lo encontrarn comentado y con un valor por defecto, sino
que debern tipearlo desde cero. Los parmetros y sus correspondientes
valores, son los siguientes:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_head
er on
Qu significa cada uno de ellos?
htt(dFaccelFhost 9 Squid puede configurarse como cache, como acelerador
de navegacin o como ambos. Este parmetro indica el nombre de host o P de
un Squid configurado como acelerador. En nuestro caso usaremos el valor
"virtual, ya que vamos a usar el modo transparente.
htt(dFaccelF(ort 9 Este es el puerto donde generalmente los servidores web
esperan solicitudes. En el caso de que usemos Squid como frente de un grupo
de servidores web locales, habria que hacer que Squid escuche en el 80 y no
en el 3128, y que los servidores web escuchen en otro puerto, y NO en el 80.
htt(dFaccelF"ithF(ro7y 9 Al habilitar httpd_accel_host la funcin de cache
deja de funcionar. Para que vuelva a funcionar, debemos forzarlo con el valor
"on.
htt(dFaccelFusersFhostFheader 9 En modo transparente, las solicitudes
salientes al puerto 80 de algun servidor externo son redirigidas al puerto 3128
del Gateway, en el que Squid espera solicitudes. Si no se habilitara esta opcin
los sitios que manejen sitios web virtuales, o sea, mas d eun sitio por direccin
P, no seran correctamente cacheados. La cabecera Host definida en HTTP 1.1
siempre tiene como valor el nombre de Host de la URL a donde estemos
intentando navegar. Squid, si se habilita este parmetro, la utiliza y nos
entrega el contenido requerido.
;eglas de I(tables A Gltimo (aso
Una vez configurado Squid con las opciones de proxy transparente requeridas,
tan solo nos queda armar la regla de ptables necesaria. Si utilizan Shorewall
como solucin de Firewall (muy buena, por cierto), en su FAQ y Documentacin
encontrarn como crear esta regla desde su sistema de configuracin. (ver
recuadro). La regla en cuestin es la siguiente:
iptables -t nat -A PREROUTNG -i eth1 -p tcp --dport 80 -j REDRECT --to-port
3128
En este caso asumimos que "eth1" es nuestra interfaz de red conectada a la
red privada.
Recuerden que el archivo access.log (definido en squid.conf) nos ir mostrando
las solicitudes que se realizan, y as podremos verificar el correcto
funcionamiento de la regla de direccionamiento.
Pueden ver un script de firewall simple para un gateway que solo admite SSH
en el recuadro.
H(timi5acin BIsica
Existen 5 parmetros que pueden hacer la diferencia entre un Squid lento y
pesado
contra uno agil y de buen nivel de respuesta. Hagan los siguientes cambios
en
squid.conf:
cache_store_log al valor none
half_closed_clientes al valor off
cache_swap_high al valor 100%
cache_swap_low al valor 80%
De la misma forma se puede establecer correctamente el parmetro cache_dir
con la siguiente frmula:
Siendo:
x = Tamao_de_cache_en_KB
y = Tamao_de_objeto_promedio_en_KB (aprox. 18Kb)
El valor MD ser (((x / y) / 256) / 256) * 2
La lnea cache_dir, entonces, ser, por ejemplo, para 6Gb de cache:
cache_dir ufs /var/cache/squid 6144 14 256
;esumen de directivas (rinci(ales
En esta seccin se muestra un ejemplo de las directivas ms importantes que
deberan de situarse descomentadas dentro del fichero s0uid.conf, para hacer
funcionar el servidor Squid.
JDirectivas (ara :ro7y y cachE
http_port 3128
cache_mem 16 MB
cache_dir ufs /var/spool/squid 100 16 256
maximum_object_size 4096 KB
cache_access_log /var/log/squid/access.log
reference_age 1 month
refresh_pattern . 0 20% 4320
ftp_user Carles@mi-dominio.net
ftp_passive on
JDirectivas (ara definir listas
acl password proxy_auth REQURED
acl redlocal src 192.168.0.0/255.255.255.0
acl adult url_regex www.sex microsoft
#Mnimas por defecto
acl all src 0.0.0.0/0.0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 563 --> HTTPS, SNEWS
acl Safe_ports port 80 21 443 563 --> HTTP, FTP, HTTPS, SNEWS
acl Safe_ports port 70 210 1025-65535 --> GOPHER, WAS, Rango puertos
acl Safe_ports port 280 488 --> HTTP-MGMT, GSS-HTTP
acl CONNECT method CONNECT
JDirectivas (ara definir reglas sobre las listas
http_access allow adult password
http_access allow redlocal
#Mnimas por defecto
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
JHtras directivas
no_cache deny adult
reply_body_max_size 4096 KB
cache_mgr Carles@mi-dominio.net
authenticate_program /usr/lib/squid/ncsa_auth /etc/squid/squid-passwd
JDirectivas (ara la ?erar0u8a de caches
icp_port 3130
cache_peer 192.168.0.84 parent 3128 3130
cache_peer 192.168.0.90 sibling 3128 0
En el siguiente apartado se muestra una descripcin detallada con ejemplos de
cada una de las directivas presentadas y en el orden en que se encuentran en
esta pgina.
E7(licacin de las directivas I
Una vez presentadas las directivas explicaremos su utilidad y funcionamiento
para una mayor compresin de sus posibilidades.
Para el correcto funcionamiento de las directivas, se aconseja descomentarlas
situndolas a la izquierda del todo.
htt(F(ort (<signar :uerto)
Permite especificar uno o varios puertos de escucha para el servidor Squid.
Sus valores pueden ser: Kdireccin'I:9L(uertoM tal como se muestra a
continuacin.
http_port 3128 80
http_port 192.168.0.87:3128
La segunda lnea especifica la direccin P de la mquina donde se encuentra
el Proxy. Si queremos que Squid escuche en el puerto 80, debemos de tener
en cuenta que los servidores web como Apache utilizan este puerto por defecto
y por tanto deberemos de asignarle uno diferente.
cacheFmem (=amaNo (ara la cachE en memoria)
Permite indicar la cantidad ideal de memoria RAM como mximo para
almacenar cach de objetos en trnsito, objetos Hot y objetos negativamente
almacenados en la cach.
Los datos de estos objetos se almacenan en bloques de 4KB. Cache_mem
especifica un lmite ideal en el tamao total de bloques acomodados, donde los
objetos en trnsito tienen mayor prioridad, es decir que el resto de objetos la
podrn usar hasta que sea requerida.
En el supuesto caso que el objeto en trnsito requiera una memoria mayor a la
especificada se exceder para satisfacer la peticin, a continuacin se muestra
un ejemplo.
cacheFmem $. @B
Si el servidor tiene como mnimo 128 MB de RAM es aconsejable indicar este
valor.
cacheFdir (=amaNo y directorio (ara la cachE f8sica)
Permite indicar la cantidad de memoria fsica mxima para almacenar cach en
el disco duro, es decir cuanto espacio almacenar de objetos de nternet.
Sus valores pueden ser: ti(o directorio tamaNo numeroFsubdir
numeroFniveles, tal como se muestra a continuacin.
cacheFdir ufs /var/s(ool/s0uid $%% $. +). ''O 100MB
El numero 100 corresponde a 100MB como espacio mximo para almacenar
cach, el 16 son el numero de subdirectorios que contendr el directorio
principal (en este caso /var/spool/squid) y el 256 significa el numero de niveles
para cada subdirectorio.
En caso de especificar un tamao mximo inferior al espacio real disponible, el
servidor Squid se bloquear.
ma7imumFob?ectFsi5e (=amaNo mI7imo (ara cacheados)
Permite especificar en kilobytes el tamao mximo de los objetos que se
pueden cachear, es decir, los objetos ms grandes del tamao indicado no
sern cacheados, a continuacin se muestra un ejemplo.
ma7imumFob?ectFsi5e 2%-. PB
En el ejemplo se han indicado 4MB como tamao mximo de objetos en la
cach.
cacheFaccessFlog (4og de (eticiones y uso de la cachE)
Permite definir en que fichero Squid debe guardar una lista de las peticiones
que va recibiendo, con la informacin de la pgina que se ha consultado y si
sta ha sido facilitada desde la cach o desde el servidor web, a continuacin
se muestra un ejemplo.
cacheFaccessFlog /var/log/s0uid/access.log
Squid presenta ms directivas para definir donde registrar sus logs, a
continuacin se muestran las siguientes dos que pueden ser de mayor utilidad.
cacheFlog /var/log/s0uid/cache.log --> nformacin general sobre el
comportamiento de la cach.
cacheFstoreFlog /var/log/s0uid/store.log -->Muestra que objetos son
ejecutados des de la cach y hasta cuando sern guardados.
referenceFage (=iem(o mI7imo en la cachE)
Permite especificar el tiempo mximo que puede permanecer un objeto en la
cach sin que se acceda a l, transcurrido ese tiempo ser borrado.
Squid el objeto que ha estado mas tiempo sin ser accedido lo calcula
dinmicamente con el fin de ser borrado segn el espacio disponible en la
cach.
Sus valores pueden ser: time'units, tal como se muestra a continuacin.
reference_age 1 year
reference_age 3.5 days
referense_age 2 hours
refreshF(attern (Qactor (ara (Iginas sin caducidad)
Permite especificar que fecha en minutos deben de tener los documentos que
su servidor no estableci una cabecera Expires indicando su caducidad.
Sus valores pueden ser: e7(resinFregular m8n (orcenta?e mI7, tal como se
muestra a continuacin.
refresh_pattern i \.gif$ 14400 70% 43200
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern . 0 20% 4320
El valor correspondiente a la expresin regular debe de contener la
especificacin del objeto basndose en la direccin (URL) de la peticin o un ".
para indicar el resto. En los ejemplos se muestra como especificar cualquier
objeto "gif y cualquier peticin "FTP.
El valor mn corresponde a los minutos mnimos que un objeto que no dispone
de una cabecera Expires (indicando su caducidad), pueda ser considerado
como no caducado (fresco). El valor "0 se recomienda para que no se obligue
la retencin de objetos no deseados como pueden ser los dinmicos.
El valor porcentaje sirve para especificar en aquellos objetos sin fecha de
caducidad, cual ser su fecha, aplicando un porcentaje sobre su tiempo desde
la ltima modificacin (la ltima modificacin de un objeto se obtiene de la
cabecera Last-Modified).
El valor mx corresponde a los minutos mximos que un objeto podr ser
considerado como no caducado.
ft(Fuser (<cceso annimo (ara Q=:)
Permite indicar el correo que debe usarse como contrasea para acceder de forma annima a un servidor FTP.
Esto es til si se desea acceder a servidores que validan la autenticidad de la direccin de correo especificada
como contrasea, a continuacin se muestra un ejemplo.
ft(Fuser 6arlesRmi'dominio.net
;e0uerir autentificacin (or contraseNa
Hasta el momento hemos visto mediante las directivas acl y htt(Faccess como
controlar el acceso segn el origen de la peticin o segn el destino. En este
apartado aprovechando tambin estas directivas mostraremos como conseguir
que independientemente de la mquina que se utilice se requiera introducir un
nombre de usuario y una contrasea en el cliente para poder acceder a travs
del Proxy.
1)Crear el fichero que contendr los usuarios y sus contraseas de forma
encriptada.
touch /etc/s0uid/s0uid'(ass"d
2)Establecer permisos de lectura y escritura para Squid.
chmod .%% /etc/s0uid/s0uid'(ass"d
cho"n s0uid9s0uid /etc/s0uid/s0uid'(ass"d
3)Dar de alta los usuarios con sus contraseas.
ht(ass"d /etc/s0uid/s0uid'(ass"d nombreFusuario
La orden nos pedir introducir su contrasea correspondiente. El nombre de
usuario es lgicamente independiente a los que hay ya definidos en el sistema
y la orden htpasswd est disponible en el paquete: apache-1.3.22 o superior.
4)Definir en el fichero s0uid.conf que programa gestiona las autenticaciones
(ver seccin: Explicacin de las directivas).
authenticate_program /usr/lib/squid/ncsa_auth /etc/squid/squid-passwd
5)Definir en el fichero s0uid.conf la lista acl correspondiente.
acl password proxy_auth REQURED
6)Aplicar reglas en el fichero s0uid.conf para quienes queramos que sean
autenticados.
Ejemplo1:
acl all src 0.0.0.0/0.0.0.0 --> Todas las P's posibles
acl redlocal src 192.168.0.0/24 --> Red correspondiente a 192.168.0.*
http_access allow redlocal password --> Usuarios con esas P's autenticarse
http_access deny all --> Denegamos el acceso a los dems.
Ejemplo2:
acl all src 0.0.0.0/0.0.0.0 --> Todas las P's posibles
acl redlocal src 192.168.0.0/24
acl adult url_regex www.sex.com erotic
http_access allow adult password --> Solo acceder a contenido adulto mediante
previa autenticacin.
http_access allow redlocal --> Permitimos el acceso a las P's de la red.
http_access deny all --> Denegamos el acceso a los dems.
Una vez hemos configurado nuestro servidor Proxy solo tenemos que realizar una peticin a un contenido
prohibido y observaremos como nuestro navegador muestra una ventana para que nos autentiquemos.
DS6:
El protocolo DHCP
El protocolo Dynamic Host Confguration Protocol tiene como
funcin proporcionar confguraciones de forma centralizada desde un
servidor de la red, evitando as el tener que acerlo de forma
descentralizada desde cada estacin de tra!a"o# $n cliente que aya
sido confgurado con DHCP no posee direcciones est%ticas sino que se
confgura totalmente de manera autom%tica seg&n las
especifcaciones del servidor DHCP#
E'iste la posi!ilidad de identifcar a un cliente mediante la direccin
de ard(are de su tar"eta de red y proporcionarle siempre la misma
confguracin, o !ien de asignar din%micamente direcciones de un
depsito creado especialmente a los ordenadores interesados# En
este &ltimo caso, el servidor DHCP
procurar% asignar a un cliente siempre la misma direccin para cada
consulta )aunque est*n espaciadas en el tiempo+ , claro que esto no
funcionar% si en la red ay m%s ordenadores que direcciones#
Por lo tanto, el administrador del sistema puede !enefciarse de DHCP
de dos formas# Por una parte es posi!le realizar de forma
centralizada, cmoda y autom%tica grandes modifcaciones )de
confguracin y-o de direcciones de red+ en el arcivo de
confguracin del servidor DHCP y todo ello sin tener que con.
fgurar los clientes uno a uno# Por otra parte y so!re todo, es posi!le
integrar f%cilmente nuevos ordenadores a la red asign%ndoles un
n&mero /P del con"unto de direcciones# En el caso de port%tiles que
operan de forma regular en varias redes, resulta muy &til la
posi!ilidad de o!tener la confguracin de red corresondiente del
respectivo servidor DHCP#
0dem%s de asignar al cliente la direccin /P y la m%scara de red se le
entregar%n tam!i*n el nom!re del ordenador y del dominio, la
pasarela )gate(ay+ a ser usada y las direcciones de los servidores de
nom!res#
0dem%s tam!i*n se pueden confgurar de forma central algunos
par%metros, como p# e"# un servidor de tiempo )ingl# time server+,
desde el cual se puede acceder a la ora actual 0 continuacin le
ofrecemos una descripcin a grandes rasgos del mundo de DHCP#
1am!i*n le mostraremos cmo realizar f%cilmente la confguracin de
red de forma centralizada mediante DHCP y, m%s concretamente, con
ayuda del servidor DHCP dcpd#
Los paquetes de software DHCP
2u2E 3inu' contiene un paquete de servidor DHCP y dos paquetes
cliente# El servidor DHCP dhcpd pu!licado por el /nternet 2oft(are
Consortium ofrece los servicios de servidor# Como clientes DHCP
disponemos de dos alternativas4 por un lado, se encuentra dcpclient,
tam!i*n realizado por /2C, y por el otro DHCP Client Daemon,
incluido en el paquete dhcpcd#
dhcpcd est% incluido en la instalacin est%ndar en 2u2E 3inu' y su
mane"o es muy sencillo# 5a durante el arranque del ordenador *ste se
e"ecuta de forma autom%tica y !usca un servidor DHCP# 0 dhcpcd no
le ace falta un arcivo de confguracin y normalmente funciona sin
ninguna confguracin adicional#
Para situaciones m%s comple"as se puede usar el dclient de /2C, el
cual se controla desde el arcivo de confguracin
/etc/dhclient.conf
El servidor DHCP: dhcpd
El Dynamic Host Confguration Protocol Daemon es el corazn de todo
sistema DHCP# 6ste se encarga de alquilar direcciones y de vigilar
su uso como est% estipulado en el arcivo de confguracin
/etc/dhcpd.conf# El administrador del sistema puede determinar el
comportamiento del DHCP seg&n sus preferencias mediante los
par%metros y valores defnidos en este arcivo#
$n e"emplo para un arcivo /etc/dhcpd.conf sencillo4
default-lease-time 600; # 10 minutes
max-lease-time 7200; # 2 hours
option domain-name "cosmos.sol";
option domain-name-servers 192.168.1.1, 192.168.1.2;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.10 192.168.1.20;
range 192.168.1.100 192.168.1.200;
}
El archivo de confuracin /etc/dhcpd.conf
Este sencillo arcivo de confguracin es sufciente para que DHCP
pueda asignar direcciones /P en la red# Preste especial atencin a los
signos de punto y coma al fnal de cada lnea sin los cuales dcpd no
arrancar%#
Como se puede o!servar, el anterior e"emplo puede dividirse en tres
!loques# En la primera parte se defne de forma est%ndar cu%ntos
segundos se alquilar% una direccin /P a un ordenador que lo
solicite antes de que *ste tenga que pedir una prrroga )default-
lease-time+# 0qu tam!i*n se defne el tiempo m%'imo durante el
cual un ordenador puede conservar un n&mero /P otorgado por el
servidor DHCP sin tener que tramitar para ello una prrroga )ma'.
leasetime+#
En el segundo !loque se defnen glo!almente algunos par%metros de
red !%sicos4
Con option domain-name se defne el dominio por defecto
de su red#
En option domain-name-servers se pueden introducir
asta tres servidores D72 que se encargar%n de resolver
direcciones /P en nom!res de ost )y viceversa+# 3o ideal
sera que en su sistema o en su red u!iese ya un servidor
de nom!res en funcionamiento que proporcionase los
nom!res de ost para las direcciones din%micas y viceversa#
8!tendr% m%s informacin so!re la creacin de un propio
servidor de nom!res en el captulo so!re D72#
option broadcast-address defne qu* direccin !roadcast
de!e usar el ordenador que efect&a la consulta#
option routers defne dnde de!en ser enviados los
paquetes de datos que no pueden ser entregados en la red
local )a causa de la direccin del ost de origen y el ost de
destino as como de la m%scara de su!red+# Este enrutador
suele actuar como la pasarela a /nternet en peque9as redes#
option subnet-mask proporciona al cliente la m%scara de
red a entregar#
Por de!a"o de esta confguracin general se defne una red con su
m%scara de su!red# Por &ltimo !asta con seleccionar el rango de
direcciones utilizado por el daemon DHCP para asignar direcciones /P
a clientes que lo consulten# Para el e"emplo dado, son todas las
direcciones entre 192.168.1.10
y 192.168.1.20 y tam!i*n en el rango de 192.168.1.100 asta
192.168.1.200#
Despu*s de esta !reve confguracin, ya de!era ser posi!le iniciar el
daemon DHCP mediante el comando rcdhcpd start#
Por motivos de seguridad, el daemon DHCP se inicia por defecto en
un entorno croot en 2u2E 3inu'# Para poder encontrar los arcivos
de confguracin, es necesario copiarlos en el nuevo entorno# Esto
sucede autom%ticamente con el comando rcdhcpd start.
Asimismo es posible controlar la sintaxis de la configuracin mediante el
comando rcdhcpd check-syntax. Si hay algn problema y el servidor da un error
en lugar de indicar done, el archivo /var/log/messages as como la consola 10
( Ctrl + Alt + F10 ) ofrecen mas informacin.
Hrdenadores con direcciones I: fi?as
Como ya se ha mencionado, tambin existe la posibilidad de asignar a un
determinado ordenador la misma direccin P en cada consulta.
Estas asignaciones explcitas de una direccin tienen prioridad sobre la
asignacin de direcciones desde un conjunto de direcciones dinmicas. Al
contrario de lo que sucede con las direcciones dinmicas, las fijas no se
pierden; ni siquiera cuando ya no quedan direcciones y se requiere una
redistribucin de las mismas.
Para identificar a los sistemas que deben obtener una direccin esttica, dhcpd
se sirve de la direccin de hardware. sta es una direccin nica en el mundo
para identificar las interfaces de red. Se compone de seis grupos de dos cifras
hexadecimales, p. ej.00:00:45:12:EE:F4.
host tierra
{
hardware ethernet 00:00:45:12:EE:F4;
fixed-address 192.168.1.21;
}
E?em(lo de direccion fi?a
El significado de estas lneas se explica prcticamente por s mismo:
Primero aparece el nombre del ordenador que se va a definir (host hostname) y
en la lnea siguiente se introduce la direccin MAC. Es muy fcil de averiguar
en Linux ejecutando el comando ifstatus seguido de la interfaz de red (p.
ej.eth0). Puede que sea necesario activar previamente la tarjeta: ifup eth0. Este
comando produce una salida como: "link/ether 00:00:45:12:EE:F4".
Siguiendo el ejemplo expuesto, el ordenador con la direccin MAC
00:00:45:12:EE:F4 recibe automticamente la direccin P 192.168.1.21 y el
nombre tierra.
Como tipo de hardware hoy en da se suele utilizar ethernet, pero tampoco hay
problemas con token-ring que se encuentra en muchos sistemas de BM.
El servidor "eb <(ache
Servidor "eb
Un servidor web proporciona pginas HTML a los clientes que lo solicitan.
Estas pginas pueden estar almacenadas en un directorio del servidor (pginas
pasivas o estticas) o ser generadas de nuevo como respuesta a una solicitud
(contenidos activos).
S==:
Los clientes suelen ser navegadores web como Konqueror o Mozilla. La
comunicacin entre el navegador y el servidor web se produce a travs del
protocolo de transferencia de hipertexto (Hypertext Transfer Protocol ). Quien
tenga inters puede consultar la versin actual de dicho protocolo (HTTP 1.1)
en RFC 2068 y Update RFC 2616, los cuales se encuentran en la URL
http://www.w3.org.
G;4s
El cliente solicita una pgina al servidor a travs de una URL. Por ejemplo:
http://www.suse.com/index.html Una URL se compone de:
Un protocolo. Los protocolos de uso ms extendido son
http:// el protocolo HTTP.
https:// una versin de HTTP codificada y ms segura.
ftp:// File Transfer Protocol, para cargar y descargar archivos.
Un dominio, en este caso www.suse.com. A su vez, el dominio puede
subdividirse: la primera parte (www) hace referencia a un ordenador, la
segunda suse.com es el autntico dominio. La suma de ambas partes se
conoce como FQDN (Fully Qualified Domain Name o nombre de dominio
totalmente cualificado).
Un recurso, en este caso index.html. Esta parte indica la ruta completa al
recurso. Este recurso puede ser un archivo (como en este caso), un script
CG, una pgina de servidor de Java, etc.
La solicitud es reenviada al dominio (www.suse.com) por diversos mecanismos
de nternet (p. ej.sistema de nombres de dominio DNS). Estos mecanismos
reenvan el acceso a un dominio a uno o varios ordenadores responsables. El
mismo Apache se encarga de proporcionar el recurso (la pgina index.html en
nuestro ejemplo) de su directorio de archivos. En este caso, el archivo se
encuentra
en el nivel superior del directorio, pero tambin podra haber estado incluido en
un subdirectorio como
www.suse.com/business/services/support/index.html
La ruta al archivo es relativa con respecto al documento raz o DocumentRoot,
el cual puede modificarse en los archivos de configuracin. El procedimiento
para ello se describe en la seccin DocumentRoot en la pgina 405.
;e(roduccin automItica de una (Igina (redeterminada
ndicar la pgina no es absolutamente necesario. Si no se especifica ninguna
pgina, Apache aade automticamente a la URL un nombre usual para tales
pginas. El nombre ms comn para una pgina de este tipo es index.html. Es
posible configurar este proceso en Apache y definir los nombres de pginas a
tener en cuenta. El procedimiento correspondiente se explica en el apartado
Directoryndex en la pgina 406.
En este caso basta con especificar
http://www.suse.com
para que el servidor proporcione la pgina
http://www.suse.com/index.html
El servidor "eb de uso mIs e7tendido
Apache es el servidor web ms usado en todo el mundo con una cuota de
mercado superior al 60% (segn http://www.netcraft.com). En las aplicaciones
web, Apache se combina frecuentemente con Linux, la base de datos MySQL y
los lenguajes de programacin PHP y Perl. Esta combinacin se ha
dado en llamar "LAMP".
Entre las virtudes de Apache cabe destacar:
<m(liable
Las funciones de Apache pueden expandirse mediante mdulos. Por ejemplo,
Apache es capaz de ejecutar scripts CG en mltiples lenguajes de
programacin con ayuda de mdulos.
Aqu no se trata slo de Perl y PHP, sino tambin de otros muchos lenguajes
de scripts como Python o Ruby. Adems existen mdulos que posibilitan, entre
otras muchas cosas, la transmisin segura de los datos (Secure Sockets Layer,
SSL), la autentificacin de usuarios, el registro ampliado, etc.
:ersonali5able
Apache puede adaptarse a los requisitos y necesidades del usuario mediante
mdulos escritos por el propio usuario. No obstante, para ello se requiere
uncierto nivel de conocimientos ;-)
Estable
Apache es software de cdigo abierto u Open Source, por lo que su cdigo ha
sido examinado y perfeccionado por numerosos programadores. Este control
garantiza que Apache est libre de fallos en su mayor parte (en la medida en
que esto es posible en el software). No obstante, no existe una certeza
absoluta de que no se descubran nuevos agujeros de seguridad en el futuro. El
apartado Seguridad en la pgina 421 incluye fuentes de informacin para
problemas de seguridad as como los mtodos para obtener ayuda.
Dlosario de terminos
<
Adduser
El comando adduser lo utiliza root, o alguien que tenga autoridad para
ello, con el fin de crear un nuevo usuario. Al comando adduser le sigue
el nombre de cuenta que se va a crear. Cabe destacar que en algunas
distribuciones este comando a cambiado su nombre por useradd.La
sintaxis de este comando vendra a ser por ejemplo:
adduser nombreFusuario
Alias
El comando alias se usa para crear alias o nombres alternativos para
comandos. Generalmente, estos alias son abreviaturas del verdadero
comando. Dichos alias se situan en el .bashrc de cada usuario, por
ejemplo alias rmdBrm ';f hara que al teclear el comando rmd nos
borrara lo que indiquemos en modo recursivo.
Apropos
El comando a(ro(os significa literalmente apropiado o relativo (a otros).
Cuando le sigue un parmetro, buscar en las pginas man entradas
que incluyan el parmetro. Bsicamente, con esto se realiza una
bsqueda de palabras clave en todas las pginas man. Es el equivalente
del comando man 'C (arametro.
B
Bash
(Bourne Again SHell) ntrprete de comandos. Es el shell por defecto en
la mayora de las distribuciones de GNU/Linux de hoy en da. Se
encarga de interpretar los comandos del usuario para llamar a los
programas que estn en los directorios de la variable $PATH o en los
alias, a parte de ejecutar sus propios comandos: asignacin de
variables, bucles, etc.
Buffer
Segn el diccionario, "memoria intermedia". Es una memoria que ciertos
programas usan para diversas funciones, normalmente para guardar
datos en memoria para su uso en un plazo corto de tiempo.
BOS
Sigla de Basic nput/Output System (sistema de entrada/salida bsico).
Se utiliza para realizar todas las funciones necesarias para colocar en
estado inicial el hardware del sistema cuando se conecta a la
alimentacin de energa. El BOS controla el proceso de arranque,
proporciona rutinas de entrada/salida de bajo nivel (de aqu su nombre)
y (usualmente) permite que el usuario modifique los detalles de la
configuracin del hardware del sistema.
6
Cat
cat le indica al sistema que "concatene" el contenido de un archivo con
la salida estndar, normalmente la pantalla. Si ese archivo es binario, el
comando cat se puede liar y la salida puede no ser muy sugerente.
Generalmente, este proceso tambin es muy ruidoso. Lo que en realidad
ocurre es que el comando cat est desplazndose por los caracteres del
archivo, y el terminal est haciendo todo lo que puede para interpretar y
mostrar los datos del archivo. Tendra bsicamente un formato del tipo
cat fichero .
Cdigo fuente
El formato entendible por las personas de las instrucciones que
conforman un programa. Tambin se le conoce como fuentes o
source code.
Comando
Medio por el cual se le ordena una accin determinada al sistema
operativo a travs de un intrprete de comandos, tal y como puede ser
Bash.
Compilar
Proceso por el cual se "traduce" un programa escrito en un lenguaje de
programacin a lo que realmente entiende el ordenador.
D
Demonio
Aparte del significado que todos conocemos, en Unix/Linux se conoce
como un programa que permanece en segundo plano ejecutandose
continuamente para dar algun tipo de servicio. Ejemplos de demonio,
son los servidores de correo, impresora, sistemas de conexion con
redes, etc.
Dependencias
Cuando se refiere a paquetes, las dependencias son requerimientos que
existen entre paquetes. Por ejemplo, el paquete "foo" puede requerir
ficheros que son instalados por el paquete "bar". En este ejemplo, "bar"
debe estar instalado, pues sino "foo" tendr dependencias sin resolver.
Normalmente, RPM no permitir que se instalen paquetes con
dependencias sin resolver.
Distribucin
Un sistema operativo (en general Linux), que se ha empaquetado para
facilitar su instalacin.
Distro
Ver Distribucin.
DNS
Domain Name Server. Servidor de nombres de dominio. Servicio de red
que nos facilita la busqueda de ordenadores por su nombre de dominio.
Se encarga tanto de traducir nombres a direcciones P como del paso
contario.
E
Entrada/Salida estndar
Por defecto la entrada de datos estndar se establece en el teclado y la
salida de datos estndar en la pantalla del monitor, esto lo podemos
variar a travs de tuberas. Por ejemplo, podemos hacer que la entrada
sea el ratn y la salida la impresora.
Expresin Regular
Conjunto de caracteres que forman una plantilla para buscar y
reemplazar cadenas de texto dentro de textos ms largos.
Q
FSF
Free Software Foundation. Fundacin que pretende el desarrollo de un
sistema operativo libre tipo UNX. Fundada por Richard Stallman,
empez creando las herramientas necesarias para su proposito, de
modo que no tuviera que depender de ninguna compaia comercial.
Despus vino la creacin del ncleo, que todava se encuentra en
desarrollo.
D
GNU
Gnu is Not Unix. Proyecto de la FSF para crear un sistema UNX libre.
GNU/Linux
Sistema operativo compuesto de las herramientas GNU de la FSF y el
ncleo desarrollado por Linus Torvalds y sus colaboradores.
GPL
General Public License. Una de las mejores aportaciones de la FSF. Es
una licencia que protege la creacin y distribucin de software libre.
S
Hardware
El hardware es el soporte fsico de una computadora, se compone de
diferentes dispositivos de hardware que pueden estar dentro o fuera de
la caja de la computadora. Dentro del hardware entran la placa base, la
cpu, la memoria, el teclado, el ratn...
Host
Un host es una computadora que se encuentra dentro de una red, y que
ofrece algn tipo de servicio o recurso al resto.

ntrprete de comandos
Ver Shell.
P
Las direcciones P (nternet Protocol) son el mtodo mediante el cual se
identifican los ordenadores individuales (o, en una interpretacin ms
estricta, las interfaces de red de dichos ordenadores) dentro de una red
TCP/P. Todas las direcciones P (versin 4, la ms utilizada
actualmente) consisten en cuatro nmeros separados por puntos, donde
cada nmero est entre 0 y 255.
A veces, la abreviatura P puede significar "ntelectual Property", o lo que
es lo mismo, Propiedad ntelectual.
SP
Siglas de nternet Service Provider. Empresa u organizacin que ofrece
acceso a nternet a usuarios finales y corporativos.
P
Kernel
Parte principal de un sistema operativo, encargado del manejo de los
dispositivos, la gestin de la memoria, del acceso a disco y en general
de casi todas las operaciones del sistema que permanecen invisibles
para nosotros.
4
Libreras
Se refiere al conjunto de rutinas que realizan las operaciones
usualmente requeridas por los programas. Las libreras pueden ser
compartidas, lo que quiere decir que las rutinas de la libreria residen en
un fichero distinto de los programas que las utilizan. Las rutinas de
libreria pueden enlazarse estticamente al programa, en cuyo caso se
agregan fsicamente las copias de las rutinas que el programa necesita.
Estos binarios enlazados estticamente no requieren de la existencia de
ningn fichero de biblioteca para poder funcionar. Los programas
enlazados con bibliotecas compartidas no funcionarn a menos que se
instalen las librerias necesarias.
Login
Programa encargado de la validacin de un usuario a la entrada al
sistema. Primero pide el nombre del usuario y despues comprueba que
el password sea el asignado a este.
Logout
logout se utiliza para salir de un sistema como usuario en curso. Si es el
nico usuario que est registrado, se desconectar del sistema.
@
Mdulos
Un mdulo es un conjunto de rutinas que realizan funciones a nivel de
sistema, y que pueden cargarse y descargarse dinmicamente desde el
ncleo cuando sea requerido. Los mdulos con frecuencia contienen
controladores de dispositivos, y estn fuertemente ligados a la versin
del ncleo; la mayora de los mdulos construidos con una versin dada
de ncleo, no se cargarn de manera apropiada en un sistema que corra
un ncleo con versin distinta.
Multitarea
Capacidad de un sistema para el trabajo con varias aplicaciones al
mismo tiempo.
Multiusuario
Capacidad de algunos sistemas para ofrecer sus recursos a diversos
usuarios conectados a traves de terminales.
N
Ncleo
Ver Kernel.
:
Paquete
Fichero que contiene software; est escrito en un cierto formato que
permite la fcil instalacin y borrado del software.
Particin
El segmento del espacio de almacenamiento de una unidad de disco
que puede accederse como si fuese un disco entero.
PATH
Variable del entorno, cuyo valor contiene los directorios donde el sistema
buscar cuando intente encontrar un comando o aplicacin. Viene
definida en los ficheros .bashrc o .bash_profile de nuestro directorio home.
PPP
Point to Point Protocol. Protocolo de transmisin de datos, utilizado en la
mayoria de las conexiones a internet domsticas.
Proceso
Programa en ejecuccin dentro de un sistema informtico.
Pipe
Ver Tubera.
Password
Palabra clave personal, que nos permite el acceso al sistema una vez
autentificada con la que posee el sistema en el fichero passwd.
POSX
POSX es el acrnimo de Portable operating system interface, una
familia de estndares de llamadas al sistema definidos por el EEE,
intenta estandarizar las interfaces de los sistemas operativos para que
las aplicaciones corran en distintas plataformas. Estos estndares
surgieron de un proyecto de estandarizacin de APs y describen un
conjunto de interfaces de aplicacin aplicables a una gran variedad de
implementaciones de sistemas operativos. El trmino POSX fue
sugerido por Richard Stallman en respuesta a la demanda de la EEE
que requera un nombre facilmente memorizable.
Prompt
El prompt es lo siguiente que vemos al entrar al sistema, una linea
desde donde el sistema nos indica que esta listo para recibir ordenes,
que puede ser tan sencilla como: $autoconf o algo mas compleja como:
amphora:1505200:home/israel:$ En la mayora de las shells (incluida bash),
es personalizable.
;
root
Persona o personas encargadas de la administracin del sistema Tiene
TODO el privilegio para hacer y deshacer, por lo que su uso para tareas
que no sean absolutamente necesarias es muy peligroso.
Recursos del sistema
Engloba a la memoria RAM, el procesador y otros dispositivos de
hardware como el disco duro. De los recursos del sistema depende el
desempeo del ordenador.
S
Sistema Operativo (S.O.)
Un Sistema Operativo (S.O.) es un programa (o conjunto de programas)
de control que tiene por fin facilitar el uso de la computadora y conseguir
que sta se utilice eficientemente. As, tambin rene un conjunto de
funciones o programas que hacen la vida del programador ms fcil, y
sirve como plataforma en la que basarse, para no tener que reinventar la
rueda con cada programa que se cree.
Shell
Traducido del ingls concha o caparazn. El shell es el intrprete de
comandos que se establece entre nosotros y el kernel. Hay muchos
tipos de shell cada uno con sus propias caractersticas, sin embargo el
estndar en GNU/Linux es el shell bash ya que es el que forma parte del
proyecto GNU.
Script
Un script es un fichero de texto que contiene un conjunto de
comandos/instrucciones escritos en un lenguaje interpretado cualquiera
que sea, como puede ser Bash. La peculiaridad de los scripts es que
son programas que no estn compilados, sino que contienen el cdigo
fuente del programa, que es interpretado y pasado a un lenguaje que la
computadora pueda comprender cada vez que se mandan ejecutar.
Shell scripting
El shell scripting es el arte de programar script en una shell.
Shell scripts o scripts de shell
Programa escrito para ser interpretado por una shell de un SO,
especialmente Unix.
Swap
Espacio de disco duro que utiliza el kernel en caso de necesitar mas
memoria de la que tengamos instalada en nuestro ordenador.
=
Tubera
Las tuberas son como conexiones entre procesos. La salida de un
proceso la encadenamos con la entrada de otro, con lo que podemos
procesar unos datos en una sola linea de comando.
Terminal
Una terminal es un teclado y una pantalla conectados por cable u otro
medio a un sistema UNX/Linux, haciendo uso de los recursos del
sistema conectado.
G
UNX
Sistema Operativo creado por AT&T a mediados de los 70.
T
Wildcards
Las wildcards son unos caracteres especiales usados comnmente
dentro de bsquedas de ficheros por su nombre con comodines. Por
ejemplo, si buscamos por un archivo nombrado como 'r?te' en un
Sistema Operativo tipo Unix, nos puede encontrar archivos de nombre
'rute', 'rote','rzte', etc. El asterisco en Unix se utiliza para substituir
"cualquier cosa", por ejemplo 'archivo_*_inet' puede encontrarnos
cualquier archivo que empiece por 'archivo_' y termine por '_inet' (como
por ejemplo 'archivo_de_inet', 'archivo_sdsfhy_inet' o 'archivo__inet')

Potrebbero piacerti anche