Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LE 202 Linux Enterprise Servicios de Red
LE 202 Linux Enterprise Servicios de Red
Tabla de contenido
Introducción a TCP/IP..........................................................................................................9
Introducción al protocolo TCP/IP.....................................................................................10
Familia de Protocolos TCP/IP ....................................................................................10
Protocolo IP - Direccionamiento IP ............................................................................10
Clasificación de direcciones IP....................................................................................12
Direcciones IP reservadas..........................................................................................13
Máscaras de subred....................................................................................................13
Protocolo ARP.............................................................................................................14
Protocolo ICMP...........................................................................................................15
Protocolo IGMP ..........................................................................................................15
UDP (User Datagram Protocol - Protocolo de Datagrama de Usuario)......................16
TCP (Transmission Control Protocol - Protocolo de Control de la Transmisión) ...... 16
Comparación de TCP y UDP .....................................................................................16
IPv6..................................................................................................................................17
Direcciones IPv6..........................................................................................................17
Ambitos........................................................................................................................18
Direcciones Unicast.....................................................................................................18
Link-local Unicast....................................................................................................19
Site-local Unicast.....................................................................................................19
Global Scope Unicast..............................................................................................20
Obtener el prefijo IPv6.................................................................................................20
Direcciones multicast...................................................................................................20
Direcciones Anycast....................................................................................................21
Configuración de dispositivos de red............................................................................. 22
Detección y configuración del hardware..........................................................................23
Scripts de red...................................................................................................................24
Ficheros de configuración de red................................................................................24
Ficheros de configuración de interfaz.........................................................................25
Interfaces Ethernet......................................................................................................25
Interfaces de acceso telefónico...................................................................................26
Otras interfaces...........................................................................................................27
Ficheros alias..............................................................................................................27
Scripts de control de interfaz.......................................................................................28
Asignación de parámetros de red....................................................................................29
Nombre del host .........................................................................................................29
Dirección IP, máscara de sub-red y puerta de enlace................................................29
Servidores de nombres de dominio............................................................................ 30
Agregar rutas adicionales............................................................................................30
Función de Re-envío de paquetes para IP versión 4..................................................30
Función Zeroconf.........................................................................................................31
Verificación de la configuración...................................................................................31
La herramienta ethtool.....................................................................................................32
Network File System (NFS)...............................................................................................34
Network File System (NFS).............................................................................................35
NFS y portmap............................................................................................................35
Trabajando con portmap.............................................................................................35
Archivos de configuración del servidor NFS................................................................... 37
El archivo /etc/exports.................................................................................................38
Archivos de configuración de clientes NFS.................................................................40
El archivo /etc/fstab.....................................................................................................40
Opciones de montaje NFS comunes.......................................................................... 41
Resolución de problemas de NFS con portmap..............................................................42
Dynamic Host Configuration Protocol (DHCP)...............................................................44
Dynamic Host Configuration Protocol (DHCP)................................................................45
Motivos para usar el protocolo DHCP.........................................................................45
Configuración de un servidor DHCP...............................................................................45
Archivo de configuración.............................................................................................45
Parámetro Range (Rango)..........................................................................................47
Dirección IP estática con DHCP .................................................................................47
Base de datos de arrendamiento................................................................................47
Arranque y parada del servidor.......................................................................................48
Agente de retransmisión DHCP......................................................................................48
Interconexión con Windows - SAMBA ............................................................................50
Configuración de SAMBA................................................................................................51
Configuración de la sección [global] de servidor SAMBA ..........................................51
Introducción a TCP/IP
Introducción a TCP/IP
Introducción a TCP/IP
Los protocolos establecen una descripción formal de los formatos que deben
representar los mensajes para poder ser intercambiados por equipos de cómputo;
además definen las reglas que ellos deben seguir para lograrlo.
El protocolo TCP/IP está compuesto por varios protocolos que proveen distintas
funciones relacionadas con la capa del modelo OSI en que se encuentran.
Los protocolos que conforman el TCP/IP y su relación con el modelo OSI son:
Modelo OSI Modelo TCP/IP Suite de protocolos TCP/IP
Aplicación
Presentación Aplicación FTP – DNS – SMTP – SSH – WWW
Sesión
Transporte Transporte TCP – UDP
Red Internet IP – ARP – ICMP - IGMP
Enlace Token Frame
Interfaz de red Ethernet ATM
Físico Ring Relay
Protocolo IP - Direccionamiento IP
La forma numérica es usada por el software de IP. La función de mapeo entre los
dos la realiza el DNS (Domain Name System) discutido posteriormente.
Decimal Binario
128.2.7.9 10000000.00000010.00000111.00001001
Una dirección IP se compone de dos partes, una de ellas identifica la red a la que
pertenece el host (equipo) y otra identifica al equipo en sí.
Las direcciones IP deben ser únicas y no deben repetirse dentro de una misma red.
Los host que desean comunicarse entre sí en una red, deben tener configurados la
misma dirección de red. Puede pensar en esta dirección como el código de área de
un número telefónico. Para todos los números de Ciudad del Este son iguales.
Cada dispositivo dentro de una red debe tener una única dirección de host. Puede
considerar que esta dirección es el número específico de teléfono con quien se
desea comunicar en C.E. Existen reglas que definen que parte de la dirección IP
identifica a la red y que parte identifica al host. Estas reglas son conocidas como
Clases de direcciones IP.
Las direcciones de clase A usan 7 bits para el número de red permitiendo 126
posibles redes(veremos posteriormente que de cada par de direcciones de red y de
host, dos tienen un significado especial). Los restantes 24 bits se emplean para el
número de host, de modo que cada red tener hasta 16,777,214 hosts.
Las direcciones de clase B usan 14 bits para el número de red, y 16 bits para el de
host, lo que supone 16382 redes de hasta 65534 hosts cada una.
Las direcciones de clase C usan 21 bits para el número de red y 8 para el de host,
lo que supone 2,097,150 redes de hasta 254 hosts cada una.
Clasificación de direcciones IP
Direcciones IP reservadas
Las siguientes direcciones IP pueden ser utilizadas dentro de una red privada
(empresarial) sin requerir autorización de una organización de asignación de
direcciones IP.
● Clase A: 10.0.0.0
Máscaras de subred
Los Id. de red y de host en una dirección IP se distinguen mediante una máscara
de subred. Cada máscara de subred es un número de 32 bits que utiliza grupos de
bits consecutivos de todo unos (1) para identificar la parte de Id. de red y todo
ceros (0) para identificar la parte de Id. de host en una dirección IP.
Decimal Binario
255.255.0.0 11111111.11111111.00000000.00000000
Este número de máscara de subred está formado por 16 bits uno seguidos de 16
bits cero, lo que indica que las secciones de Id. de red e Id. de host de esta
dirección IP tienen una longitud de 16 bits. Normalmente, esta máscara de subred
se muestra en notación decimal con puntos como 255.255.0.0.
Protocolo ARP
Dentro de una misma red, las máquinas se comunican enviándose tramas físicas.
Las tramas Ethernet contienen campos para las direcciones físicas de origen y
destino (6 bytes cada una) también conocidas como MAC address.
El MAC address es una dirección que está grabada en cada tarjeta de red y es
única para cada tarjeta fabricada en el mundo. Por ejemplo puede ser representado
de la siguiente forma:
● 08-00-4c-85-fc-8c
● 08:00:4c:85:fc:8c
Para visualizar la tabla arp de su equipo local, puede utilizar el comando arp:
# arp -an
? (10.129.4.233) at 00:16:3E:43:23:7F [ether] on eth0
? (10.129.5.11) at 00:0B:5D:E0:0D:14 [ether] on eth0
? (10.129.4.156) at 02:0B:CD:F4:E4:7C [ether] on eth0
? (172.20.0.19) at 00:1B:78:56:E1:6D [ether] on eth0
? (10.129.4.1) at 00:15:C7:F2:ED:80 [ether] on eth0
Protocolo ICMP
Pero no sólo se encarga de notificar los errores, sino que también transporta
distintos mensajes de control.
El comando ping utiliza el protocolo ICMP para el diagnóstico de red, por ejemplo,
ejecutando el siguiente comando:
# ping -c 3 localhost
PING mercurio.linux.com.py (127.0.0.1) 56(84) bytes of data.
64 bytes from mercurio.linux.com.py (127.0.0.1): icmp_seq=1 ttl=64 time=4.02 ms
64 bytes from mercurio.linux.com.py (127.0.0.1): icmp_seq=2 ttl=64 time=0.306 ms
64 bytes from mercurio.linux.com.py (127.0.0.1): icmp_seq=3 ttl=64 time=0.193 ms
Protocolo IGMP
Este protocolo esta íntimamente ligado a IP. Se emplea en maquinas que emplean
UDP es uno de los dos principales protocolos que residen por encima de IP. Ofrece
servicio a las aplicaciones de red de usuario. Algunos ejemplos de aplicaciones de
red que usan UDP son: NFS (Network File System - Sistema de Archivos de Red) y
SNMP (Simple Network management Protocol - Protocolo de administración de
Red Simple).
El servicio es un poco más que una interfaz a IP. UDP es un servicio de entrega de
datagramas no orientado a conexión, lo cual no garantiza la entrega. UDP no
mantiene una conexión de extremo a extremo con el módulo UDP remoto;
simplemente envía el datagrama a la red y acepta datagramas de entrada de la
red. UDP añade dos valores a los servicios provistos por IP. Uno de ellos es la
multiplexación de la información entre aplicaciones basándose en el número de
puerto. El otro es una suma de comprobación (checksum) para comprobar la
integridad de los datos.
TCP ofrece un servicio diferente que UDP. TCP ofrece un flujo de bytes orientado a
conexión, en lugar de un servicio de entrega de datagramas no orientado a
conexión.
TCP garantiza la entrega, mientras que UDP no lo hace. TCP es usado por las
aplicaciones de red que quieren garantía de entrega y no pueden ser molestados
haciendo time-outs (tiempo de espera agotado) y retransmisiones. Las dos
aplicaciones de red más típicas que usan TCP son FTP (File Transfer Protocol -
Protocolo de Transferencia de Ficheros), SSH o TELNET. La mayor capacidad de
TCP no es gratis: requiere más CPU y ancho de banda de red. Las interioridades
del módulo TCP son mucho más complicadas que las de un módulo UDP.
● Negociación de conexión
UDP es un protocolo simple para transferir datos sin toda la sobrecarga del TCP y
sin ninguna de sus virtudes. En las conexiones UDP no hay negociación, ni acuse
de recibo, ni control de perdida o desorden o duplicación de paquetes, todo esto
debe ser gestionado por el servicio que emplea la conexión.
IPv6
El protocolo sucesor de IPv4 IPv6 el cual está definido en los estándar RFC 2460 y
relacionados.
● Eliminar el broadcast.
● IPv6 Móvil.
Direcciones IPv6
Las direcciones IPv6 están compuestas de 128 bits, cuatro veces mas que las
direcciones IPv4, esto permite 2^128 direcciones posibles.
Las direcciones IPv6 están escritas en hexadecimal, en pares separados por dos
puntos. Los dígitos hexadecimales son conocidos como “nibbles”.
fe80:0000:0000:0000:032c:ffc1:def1:21e4
Para abreviar, dentro de cada bloque, los ceros a la izquierda pueden ser omitidos,
el resultado sería:
fe80:0:0:0:32c:ffc1:def1:21e4
Los bloques consecutivos de ceros pueden ser representados con un doble dos
puntos (::), por tanto la dirección anterior se representaría:
fe80::32c:ffc1:def1:21e4
0000:0000:0000:0000:0000:0000:0000:0001
::1
Los prefijos de red son representados utilizando una barra seguido por el número
de bits relevantes tal como en IPv4. Por ejemplo:
fe80::/64
Ambitos
IPv4 definía rangos de direcciones para ser utilizadas en redes privadas, tales
como la 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16 en nodos que no requerían
conectividad global. Estas direcciones posteriormente utilizarían NAT para
proporcionar una conectividad limitada. Mientras IPv6 elimina la necesidad de NAT,
preserva y extiende la idea original de los ámbitos de direcciones presentados en
RFC 1918.
Direcciones Unicast
Las direcciones unicast son aquellas asignadas a las interfaces de red. Por
Las direcciones IPv6 consisten de una “porción de red” llamada prefijo de subred
(subnet prefix) y una “porción de host” llamada identificador de interfaz
(interface identifier/interface ID). A diferencia de IPv4, el tamaño del prefijo de
subred es siempre 64 bits. Por tanto, todas las direcciones IPv6 unicast excepto la
interfaz loopback sería como sigue:
fe80:0000:0000:0000: 032c:ffc1:def1:21e4
Link-local Unicast
Las direccioens link-local son utilizadas para una variedad de propósitos internos
de IPv6. Tan pronto como una interfaz IPv6 es habilitada, automáticamente
adquirirá una dirección link-local iniciando con un prefijo fe80::/64. Los nodos
utilizan la dirección link-local cuando se comunican en la misma subred, conocida
como link. Por ejemplo, una red son ruteador, utiliza direcciones link-local para
comunicar a los host entre sí en el link. Son equivalentes a las direcciones
APIPA/Zeroconf.
Site-local Unicast
Las direcciones site-local son equivalentes a las direcciones privadas IPv4. Las
direcciones site-local no son alcanzables de otros sitios y los ruteadores no deben
reenviar tráfico site-local fuera del sitio. Estas direcciones pueden ser utilizadas en
adición a las direcciones globales. Las direcciones site-local no son configuradas
automáticamente a diferencia de las link-local.
Las direcciones site-local actualmente son conocidas como Unique Local Unicast.
Estas direcciones requieren que sean aleatoriamente generadas para evitar la
posibilidad de que dos sitios que requieran conectividad posterior, tengan el mismo
rango de direcciones.
idea realizar esto, de ser posible, deben utilizarse direcciones de ámbito global.
Los paquetes enviados a direcciones de este tipo pueden ser ruteados a través de
toda la Internet6.
Las direcciones globales son asignadas a los sitios como prefijos /48. El prefijo
asignado es llamado global routing prefix. El prefijo actual para direcciones
globales es 2000::/3. El sitio de la organización puede utilizar estos 16 bits dentro
del sitio para crear 65536 subredes.
Las direcciones IPv6 son virtualmente ilimitadas y debería obtener su propio prefijo
global /48 de un ISP.
Si no puede conseguir uno, utilice direcciones unique local unicast como se define
en RFC 4193 que no serán ruteadas a Internet. Esto es apropiado so no deseamos
conectarnos a Internet6, sin embargo, no es una buena idea a largo plazo, ya que
no permitirá conexión a Internet6. Asegúrese de utilizar una herramienta que le
ayude a generar el prefijo para la dirección unique local unicast, como la disponible
en este sitio:
http://forschung.goebel-consult.de/ipv6/createLULA
Direcciones multicast
Las direccioens IPv6 multicast inician con el prefijo ff00::/8. Multicast soporta mas
ámbitos que unicast. Dos de estos ámbitos son particularmente útiles, el grupo all
nodes link-local multicast (ff02::1) y el grupo all routers link-local multicast (ff02::2).
Usando estas direcciones, es posible hacer ping a todos los nodos o ruteadores
dentro de una subred, respectivamente.
Direcciones Anycast
Lo cual devuelve una salida similar a las siguiente (en el caso de una tarjeta 3Com
905 C)
Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 120).
Si utiliza kernel 2.4.x, la lista de módulos existentes en su equipo que puede utilizar
para distintos chipsets de distintas tarjetas de red se puede obtener listando el
contenido del directorio /lib/modules/[versión de su kernel]/kernel/drivers/net/.
Ejemplo:
# ls /lib/modules/$(uname -r)/kernel/drivers/net/
Si utiliza kenel 2.6, la lista de módulos existentes en su equipo puede obtenerla del
mismo modo que la versión 2.4.x, o utilizar el comando:
# modprobe -t net -l
Scripts de red
Los ficheros de configuración para las diferentes interfaces de red y scripts para
activarlos o desactivarlos están ubicados en el directorio /etc/sysconfig/network-
scripts. Mientras que la existencia de ficheros de interfaces particulares puede
diferir de sistema a sistema dependiendo del uso, los tres tipos de ficheros
diferentes que existen en este directorio, ficheros de configuración de interfaz,
scripts de control de interfaz y ficheros de función de red, funcionan conjuntamente
para habilitar CentOS Linux para el uso de diversos dispositivos de red disponibles.
Este capítulo explorará la relación entre estos ficheros y las diferentes opciones
para su uso.
Interfaces Ethernet
Uno de los ficheros de interfaz más comunes es ifcfg-eth0, que controla el primer
NIC de un sistema. En un sistema con mas de un adaptador de red, tendrá ficheros
ifcfg-ethX múltiples, cada uno con un número al final del nombre del fichero. Como
cada dispositivo tiene su propio fichero de configuración, llevará un gran control
sobre el modo en que funciona cada interfaz.
Un ejemplo ifcfg-eth0 para un sistema que usa una dirección IP fija sería de la
siguiente manera:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.1.0
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no
Si desea utilizar una utilidad GUI, puede ejecutar los comandos system-config-
network o system-config-network-tui para hacer cambios en los diversos ficheros de
configuración de interfaz.
Dentro de cada uno de los ficheros de configuración de la interfaz, son comunes los
siguientes valores:
○ no No modificar /etc/resolv.conf
DEVICE=ppp0
NAME=test
WVDIALSECT=test
MODEMPORT=/dev/modem
LINESPEED=115200
PAPNAME=test
USERCTL=true
ONBOOT=no
PERSIST=no
DEFROUTE=yes
PEERDNS=yes
DEMAND=no
IDLETIMEOUT=600
Otras interfaces
A menudo se usa una interfaz loopback en las pruebas así como una variedad de
aplicaciones que requieren una dirección IP que apunte al mismo sistema. Todos
los datos que se mandan al dispositivo loopback vuelven inmediatamente a la red
del host.
Ficheros alias
Los dos scripts de control de interfaz son ifdown y ifup y son enlaces simbólicos
para los scripts en el directorio /sbin. Cuando se solicita cualquiera de estos
scripts, aceptan el uso de un valor de la interfaz, como por ejemplo:
# ifup eth0
Tras haber verificado que se ha especificado una interfaz y que al usuario que ha
ejecutado la petición se le permite activar o desactivar la interfaz, se solicita el
script correcto para el tipo de dispositivo de interfaz. Los siguientes scripts de
control de interfaz son los más habituales de este tipo:
● ifup-plusb Se usa para configurar una interfaz USB para conexiones de red.
Tenga en cuenta que si elimina o modifica estos scripts puede provocar varias
conexiones de interfaz que pueden funcionar de forma extraña o incluso fallar,
debido a que los scripts tienden a apoyarse uno en el otro. Sin embargo, los
usuarios avanzados pueden modificar los scripts relacionados con una interfaz
específica para hacer que se produzcan pasos adicionales cuando esa interfaz se
activa o desactiva.
NETWORKING=yes
HOSTNAME=serv1.linux.com.py
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.50
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
net.ipv4.ip_forward = 1
Función Zeroconf
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=serv1.linux.com.py
NOZEROCONF=yes
Verificación de la configuración
Después de hacer configurado todos los parámetros de red deseados, solo deberá
de ser reiniciado el servicio de red, ejecutando lo siguiente:
# /sbin/service network restart
# ping 192.168.1.254
# host host.dominio.com
# dig host.dominio.com
La herramienta ethtool
El modulo de la tarjeta ethernet debe compatible con mii-tool o ethtool para poder
utilizar el comando.
Por ejemplo:
# ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Current message level: 0x000000ff (255)
Link detected: yes
Opción Descripción
-s Cambia la configuración de un dispositivo.
autoneg on|off Habilita o deshabilita la autonegociación de velocidad del
adaptador.
speed 10|100|1000 Configura la velocidad en Mb/s.
duplex half|full Selecciona el modo de duplex.
Ejemplo:
# ethtool -s eth0 speed 100 duplex full autoneg off
NFS y portmap
Como los servicios basados en RPC confían en portmap para hacer todas las
conexiones con las peticiones de clientes entrantes, portmap debe estar disponible
antes que cualquiera de esos servicios comience. Si, por alguna razón, el servicio
portmap inesperadamente termina, reinicie portmap y cualquier servicio que estuviera
ejecutándose entonces.
Los procesos siguientes se aseguran que una conexión particular NFS esté
permitida y pueda proceder sin error:
No todos estos programas son requeridos para el servicio NFS. Los únicos
servicios que deben estar activos son rpc.mountd, rpc.nfsd, y portmap. Los otros
demonios proporcionan funcionalidades adicionales y sólo deben usarse si el
entorno de su servidor los requiere.
La versión 2 de NFS usa el User Datagram Protocol (UDP) para proporcionar una
conexión de red sin estado entre el cliente y el servidor. La versión 3 de NFS puede
usar UDP o TCP corriendo sobre una IP. La conexión UDP sin estado minimiza el
tráfico de red, al mandar el servidor NFS una cookie al cliente, después de que el
cliente sea autorizado a acceder al volumen compartido. Esta cookie es un valor
aleatorio guardado en la parte del servidor y es pasado junto con las peticiones
RPC desde el cliente. El servidor NFS puede ser reiniciado sin afectar a los clientes
y las cookies permanecen intactas.
Opción Descripción
-r Provoca que todos los directorios listados en /etc/exports sean
exportados construyendo una nueva lista de exportación en
/etc/lib/nfs/xtab. Esta opción refresca la lista de exportación con
cualquier cambio que hubiéramos realizado en /etc/exports.
-a Provoca que todos los directorios sean exportados o no,
dependiendo de qué otras opciones hemos pasado a exportfs.
-o opciones Permite al usuario especificar directorios a exportar que no estén
listados en /etc/exports. Estos sistemas de archivos adicionales
compartidos deben ser escritos de la misma forma que son
especificados en /etc/exports. Esta opción es usada para probar un
sistema de archivos antes de añadirlo permanentemente a la lista
de sistemas a exportar.
-i Ignora /etc/exports; sólo las opciones dadas desde la línea de
comandos son usadas para definir los sistemas de archivos
exportados.
-u Termina de exportar directorios que puedan ser montados por
usuarios remotos. El comando exportfs -ua suspende los recursos
compartidos NFS mientras que mantiene los demonios activos.
Para volver a compartir recursos NFS, teclee exportfs -r.
-v Operación descriptiva, donde los sistemas de archivos exportados o
dejados de exportar son mostrados en gran detalle al ejecutarse el
comando exportfs.
El archivo /etc/exports
Opción Descripción
ro Sólo lectura (read-only). Las máquinas que monten este sistema
de archivos no podrán cambiarlo. Para permitirlas que puedan
hacer cambios en el sistema de archivos, debe especificar la
opción rw (lectura-escritura, read-write).
async Permite al servidor escribir los datos en el disco cuando lo crea
conveniente. Mientras que esto no tiene importancia en un
sistema de sólo lectura, si una máquina hace cambios en un
sistema de archivos de lectura-escritura y el servidor se cae o se
apaga, se pueden perder datos. Especificando la opción sync,
todas las escrituras en el disco deben hacerse antes de devolver
el control al cliente. Esto puede que disminuya el rendimiento.
wdelay Provoca que el servidor NFS retrase el escribir a disco si
Opción Descripción
Para saltarse estas opciones predeterminadas, debe especificar una opción que
tome su lugar. Por ejemplo, si no especifica la opción rw, entonces se exportará en
sólo lectura. Cada opción predeterminada para cada sistema de archivos
exportado, debe ser explícitamente ignorada. Adicionalmente, hay otras opciones
que están disponibles que no tienen especificado un valor predeterminado. Estas
incluyen desactivar el navegar por subdirectorios, permitir el acceso a puertos
inseguros, y permitir bloquear archivos inseguros (necesario para algunas
implementaciones antiguas de clientes NFS). Vea la página man de exports para
estas opciones menos usadas.
Cualquier recurso NFS puesto a disposición por un servidor puede ser montado
usando varios métodos. El recurso compartido puede ser montado manualmente,
usando el comando mount. Sin embargo, esto requiere que el usuario root teclee el
comando mount cada vez que el sistema reinicie.
El archivo /etc/fstab
archivos.
La opción nfs especifica el tipo de sistema de archivos que esta siendo montado.
Aparte de montar un sistema de archivos via NFS en una máquina remota, existe
un número de diferentes opciones que pueden ser especificadas en tiempo de
montaje que pueden ser más fáciles de usar. Estas opciones pueden usarse con el
comando manual mount, configuraciones /etc/fstab, autofs y otros métodos de
montaje.
Las siguientes opciones son las más populares para montajes NFS:
Hay muchas más opciones en la página del manual de mount, incluyendo opciones
para montar sistemas de archivos que no sean NFS.
Para asegurarse que los servicios NFS basados en RPC están activos para
portmap, use el comando rpcinfo -p:
Archivo de configuración
DHCP puede interactuar con DNS para actualizar el archivo de zona DNS una vez
entregada una dirección IP a un host. Este proceso se conoce como DNS dinámico
o DDNS (Dynamic DNS).
• Parámetros - Establece cómo se realiza una tarea, si debe llevarse a cabo una
tarea o las opciones de configuración de red que se enviarán al cliente.
Algunos parámetros deben empezar con la palabra clave option. Algunas opciones
configuran DHCP y los parámetros definen valores no opcionales o que controlan el
comportamiento del servidor DHCP.
En este ejemplo, hay opciones globales para cada cliente DHCP en la subred y un
rango declarado. A los clientes se les asigna una dirección IP dentro del rango.
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option ntp-servers 192.168.1.1;
option domain-name "linux.com.py";
option netbios-name-servers 192.168.1.5;
Tenga en cuenta que también puede usar el parámetro opcional host-name para
asignar un nombre host al cliente.
host apex {
option host-name "apex.linux.com.py";
hardware ethernet 00:A0:78:8E:9E:AA;
fixed-address 192.168.1.4;
}
Para arrancar el servicio DHCP, use el comando /sbin/service dhcpd start. Para
detener el servidor DHCP, use el comando /sbin/service dhcpd stop.
Si tiene más de una interfaz de red conectada al sistema, pero sólo desea que el
servidor DHCP arranque en una de las interfaces, puede configurar el servidor
DHCP para que sólo arranque en ese dispositivo. En /etc/sysconfig/dhcpd, agregue
el nombre de la interfaz a la lista de DHCPDARGS:
Esto es útil si tiene una máquina firewall con dos tarjetas de red. Se puede
configurar una tarjeta de red como cliente DHCP para recuperar una dirección IP
en Internet y la otra tarjeta de red puede utilizarse como servidor DHCP para la red
interna detrás del firewall. Su sistema será más seguro si especifica la tarjeta de
red conectada a la red interna ya que los usuarios no pueden conectarse al
demonio vía Internet.
INTERFACES=""
DHCPSERVERS="10.42.42.2"
Configuración de SAMBA
La configuración de SAMBA se realiza a través del archivo /etc/samba/smb.conf. En
éste archivo encontrará no solo las opciones que requieren editarse, sino también
un valioso instructivo que podría consultar más adelante para hacer ajustes a la
configuración. Dentro de este notará que la información que le será de utilidad
viene comentada con un símbolo # y los ejemplos con ; (punto y coma), siendo
estos últimos los que tomaremos como referencia.
Samba soporta una serie de meta-servicios cada uno con un propósito, por ejemplo
el recurso compartido [homes] permite a SAMBA proporcionar un directorio personal
para cada usuario. El meta-servicio [printers] permite compartir impresoras e
indica el directorio de spool para los trabajos recibidos.
Definamos primero los parámetros necesarios, como sería el nombre NetBIOS con
el que nos vería el grupo de máquinas Windows, el grupo al que pertenecemos y el
rango de direcciones IP a las que se permitirá acceder hacia la máquina con
GNU/Linux.
Recuerde que al utilizar la seguridad por usuario, debe crear cada usuario que
desea autenticar en el sistema operativo con el comando adduser, y luego en el
samba con el comando pdbedit -a.Además, nalmente el nombre de inicio de sesión
en Windows debe ser igual al del usuario que usted ha creado para ese equipo.
En el caso que no se utilice un servidor WINS, toso los registros de nombres y las
búsquedas son realizadas a través de broadcast UDP. Esto aísla la resolución de
nombres a la subred local a menos que se utilice LMHOSTS para listar todos los
nombres y las direcciones IP. Si se utiliza un servidor WINS, el cliente Windows
utilizará UDP unicast para registrarse con el servidor WINS. Este paquete puede
ser ruteado por tanto WINS permite la resolución de nombres entre redes ruteadas.
Durante el proceso de inicio, una elección se lleva a cabo para crear un Local
Master Browser (LMB) si no existe uno. En cada red NetBIOS una máquina será
electa para funcionar como el “Domain Master Browser” (DMB). El DMB contacta a
cada LMB e intercambia el contenido de la lista de navegación de red, esto permite
la navegación entre redes ruteadas. Cada 11 a 15 minutos una elección es
mantenida para determinar quien será el “master browser”. Por la naturaleza del
Los clientes que desean navegar la red hacen uso de esta lista, cualquier cambio
en la resolución de nombres o fallo del LMB molestará a los usuarios debido a que
temporalmente no podrán navegar la red.
Para permitir el acceso a todas las impresoras compartidas verifique que este
configurado el recurso printers y el path al cual apunta el recurso existe:
[printers]
comment = ALL Printers.
path = /var/spool/samba
printable = yes
browseable = no
printable = yes
guest ok = no # Configure a yes si desea que la cuenta invitado imprima
writable = no
# Un directorio público donde todos acceden en modo sólo lectura excepto por los
# miembros del grupo staff y el usuario fsadmin.
[public]
comment = Directorio publico
path = /app/archivos
public = yes
read only = yes
write list = @staff fsadmin
Hecho todo lo anterior, solo resta iniciar el demonio correspondiente a fin de que
cargue los nuevos parámetros configurados. Si iniciará SAMBA por primera vez
ejecute lo siguiente:
# /sbin/service smb start
Por último, asegúrese de que SAMBA iniciará automáticamente cada vez que inicie
el servidor. Puede hacerlo fácilmente desde una consola ejecutando el siguiente
comando:
/sbin/chkconfig smb on
No olvide sincronizar las cuentas entre el servidor GNU/Linux y las estaciones con
Windows. Es decir, si en una máquina con Windows ingresamos como el usuario
"jperez" con contraseña "P@ssw0rd", en el servidor GNU/Linux debe existir
también dicha cuenta con ese mismo login y esa misma contraseña. Añada las
cuentas el comando adduser y también con pdbedit.
# /usr/sbin/useradd <usuario>
# /usr/bin/pdbedit -a <usuario>
O bien, si no deseamos que las cuentas que se vayan a crear puedan acceder a
servicios distintos de SAMBA, como serían Telnet, SSH, etc, es decir, que no se les
permita hacer login al sistema, podemos utilizar la siguiente alternativa que solo
permitirá acceso a SAMBA, pero impedirá que el usuario intente acceder al servidor
y obtenga un shell:
# /usr/sbin/useradd -s /bin/false <usuario>
# /usr/bin/pdbedit -a <usuario>
# Recursos compartidos
[homes]
comment = Home Directories
valid users = %S
read only = No
create mask = 0664
directory mask = 0775
browseable = No
[printers]
[FTP]
comment = Directorio del servidor FTP
path = /var/ftp/pub
read only = no
guest ok = yes
Por ejemplo:
# smbclient -L //localhost -N
Workgroup Master
--------- -------
LINUX Serv1
Ejemplo:
# smbclient //serv1/publico -U jperez
Password:
Pueden utilizarse virtualmente los mismos comandos que en el shell del comando
ftp, como serían get, mget, put, del, etc.
Escenarios típicos
Usted debe crear un directorio con el nombre que desee, utilizando el comando
correspondiente:
# mkdir -p /programas/aplicaciones
Otorgue a los miembros del grupo admin todos los permisos y a todos los usuarios
del sistema los permisos de lectura y ejecución. Establezca el permiso SGID para
permitir que los archivos creados en el directorio hereden el grupo propietario del
directorio:
# chown root.admin /programas/aplicaciones
# chmod 2775 /programas/aplicaciones
# groupadd admin
# useradd jperez -G admin
# useradd plopez -G admin
# useradd hgomez -G admin
# vi /etc/samba/smb.conf
Allí, debe configurar las siguientes opciones para permitir el acceso de los usuarios
que no existen en el SAMBA:
guest account = nobody
map to guest = Bad User
El cual envía la señal -HUP a los demonios SAMBA. Para comprobar que se haya
creado el recurso compartido ejecute el siguiente comando:
# smbclient -L //localhost -N
Squid es el software para servidor Proxy más popular y extendido entre los
sistemas operativos basados sobre UNIX. Es muy confiable, robusto y versátil. Al
ser software libre, además de estar disponible el código fuente, está libre del pago
de costosas licencias por uso o con restricción a un uso con determinado número
de usuarios.
Entre otras cosas, Squid puede hacer Proxy y cache con los protocolos HTTP,
FTP, GOPHER y WAIS, Proxy de SSL, cache transparente, WWCP, aceleración
HTTP, cache de consultas DNS y otras muchas más como filtración de contenido y
control de acceso por IP y por usuario.
Nota: Squid no puede funcionar como proxy para servicios como SMTP, POP3,
TELNET, SSH, etc. Si se requiere hacer proxy para cualquier cosa distinta a HTTP,
HTTPS, FTP, GOPHER y WAIS. Se requerirá o bien implementar
enmascaramiento de IP a través de un NAT (Network Address Translation) o bien
hacer uso de un servidor SOCKS como Dante.
Configuración básica
• El parametro http_port
• El parametro cache_mem
• El parametro ftp_user
• El parametro cache_dir
Parámetro http_port
Squid por defecto utilizará el puerto 3128 para atender peticiones, sin embargo se
puede especificar que lo haga en cualquier otro puerto o bien que lo haga en varios
puertos a la vez.
#
# You may specify multiple socket addresses on multiple lines.
#
# Default: http_port 3128
# http_port 3128
http_port 8080
Parámetro cache_mem
● Objetos populares (Hot objects) Los objetos que squid considera los más
utilizados.
– 403 Forbidden
Por defecto se establecen 8 MB. Puede especificarse una cantidad mayor si así se
considera necesario, dependiendo esto de los hábitos de los usuarios o
necesidades establecidas por el administrador.
Parámetro cache_dir
Este parámetro se utiliza para establecer que tamaño se desea que tenga el cache
en el disco duro para Squid. Puede especificar múltiples cache_dir para distribuir el
cache entre diferentes particiones de disco. Para entender esto un poco mejor,
responda a esta pregunta: ¿Cuanto desea almacenar de Internet en el disco duro?
Por defecto Squid utilizará un cache de 100 MB, de modo tal que encontrará la
siguiente línea:
cache_dir ufs /var/spool/squid 100 16 256
Parámetro ftp_user
Al acceder a un servidor FTP de manera anónima, por defecto Squid enviará como
contraseña Squid@. Si se desea que el acceso anónimo a los servidores FTP sea
más informativo, o bien si se desea acceder a servidores FTP que validan la
autenticidad de la dirección de correo especificada como contraseña, puede
especificarse la dirección de correo electrónico que uno considere pertinente.
ftp_user proxy@linux.com.py
Control de acceso
Es necesario establecer Listas de Control de Acceso que definan una red o bien
ciertas máquinas en particular. A cada lista se le asignará una Regla de Control de
Acceso que permitirá o denegará el acceso a Squid.
El tipo de lista determina los componentes de ella, por ejemplo, es posible indicar
que la lista esta compuesta de direcciones IP utilizando el tipo de lista src/dst,
Si uno desea establecer una lista de control de acceso que defina sin mayor trabajo
adicional a toda la red local definiendo la IP que corresponde a la red y la máscara
de la sub-red. Por ejemplo, si se tienen una red donde las máquinas tienen
direcciones IP 192.168.1.0 con máscara de subred 255.255.255.0, podemos utilizar
lo siguiente:
acl our_networks src 192.168.1.0/255.255.255.0
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.15
192.168.1.16
192.168.1.20
192.168.1.40
Para definir una lista que permita el control de acceso por hora del día, puede
definir una lista de control de acceso como sigue:
acl mediodia time SMTWHFA 12:00-14:00
Este tipo de reglas son útiles cuando se tiene un gran grupo de IP dentro de un
rango de red al que se debe permitir acceso, y otro grupo dentro de la misma red al
que se debe denegar el acceso.
Para permitir el acceso a Internet en el horario indicado por la lista “mediodia” a los
equipos de la red local, deberá establecer como regla:
http_access allow mediodia our_networks
Parámetro cache_mgr
Por defecto, si algo ocurre con el Cache, como por ejemplo que muera el proceso,
se enviará un mensaje de aviso a la cuenta webmaster del servidor. Puede
especificarse una distinta si acaso se considera conveniente.
cache_mgr soporte@linux.com.py
siguiente línea:
cache_peer 192.168.1.1 parent 8080 3130 proxy-only
Cuando se trabaja en redes muy grandes donde existen varios servidores proxy
haciendo cache de contenido de Internet, es una buena idea hacer trabajar todos
los cache entre si. Configurar caches vecinos como sibbling (hermanos) tiene como
beneficio el que se consultarán estos caches localizados en la red local antes de
acceder hacia Internet y consumir ancho de banda para acceder hacia un objeto
que ya podría estar presente en otro cache vecino.
Pueden hacerse combinaciones que de manera tal que se podrían tener caches
padres y hermanos trabajando en conjunto en una red local. Ejemplo:
cache_peer 10.0.0.1 parent 8080 3130 proxy-only
cache_peer 10.1.0.1 sibbling 8080 3130 proxy-only
cache_peer 10.2.0.1 sibbling 8080 3130 proxy-only
cache_peer 10.3.0.1 sibbling 8080 3130 proxy-only
Proxy Transparente
Un proxy transparente combina un servidor proxy con NAT de manera que las
conexiones son enrutadas dentro del proxy sin configuración por parte del cliente, y
habitualmente sin que el propio cliente conozca de su existencia.
Si la versión de squid es anterior a la 2.6, para hacer que trabaje como un proxy
transparente, configure las siguientes opciones:
# Debe especificarse la IP de cualquier servidor Web en la red local
# o bien el valor virtual
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Para que el proxy transparente funcione, debe indicar por medio de iptables que
Considerando que la red local accede a través de eth0 y que Squid escucha
peticiones en puerto 3128, se utiliza la siguiente línea:
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
-j REDIRECT --to-port 3128
Coloque un nuevo enlace simbólico apuntando hacia el directorio con los ficheros
correspondientes a los errores traducidos al español.
ln -s /usr/share/squid/errors/Spanish /etc/squid/errors
Una vez terminada la configuración, ejecute el siguiente comando para iniciar por
primera vez Squid:
service squid start
Si desea que Squid inicie de manera automática la próxima vez que inicie el
sistema, ejecute lo siguiente:
/sbin/chkconfig squid on
Depuración de errores
Cualquier error al inicio de squid solo significa que hubo errores de sintaxis, errores
de dedo o bien se están citando incorrectamente las rutas hacia los ficheros de las
Listas de Control de Acceso.
Puede realizar diagnóstico de problemas revisando los registros del servidor squid
en el directorio /var/log/squid.
Configuración inicial
listen=YES
El parámetro umask define los permisos por defecto cuando se suben archivos al
servidor FTP. El parámetro anon_umask determina los permisos por defecto para
archivos subidos por usuarios anónimos y local_umask determina los permisos por
defecto para archivos subidos por usuarios locales.
anon_umask=077
local_umask=022
nopriv_user=ftp
La directiva pasv_enable habilita o deshabilita el modo pasivo del servidor FTP. Por
defecto el modo pasivo está habilitado.
pasv_enable=NO
pam_service_name=vsftpd
Una vez configurado el servidor vsftpd, puede habilitar la ejecución del servicio
durante el inicio del sistema utilizando los siguientes comandos:
# chkconfig vsftpd on
# chkconfig –list
Usuarios anónimos
Si el servidor FTP permitirá el acceso FTP, puede evitar que los usuarios anónimos
suban archivos y creen directorios por medio de las directivas anon_upload_enable y
anon_mkdir_write_enable. Por seguridad, no es recomendado habilitar estas
opciones.
anon_upload_enable=NO
anon_mkdir_write_enable=NO
Para restringir la tasa de transferencia para las subidas hechas por usuarios
anónimos y locales, puede configurar la opción anon_max_rate y local_max_rate
respectivamente. El valor depende del tipo de conexión que su servidor esta
utilizando y es establecido en bytes por segundo.
anon_max_rate=10485760
local_max_rate=0
Usuarios locales
Normalmente, cualquier usuario que tenga una cuenta en el sistema local puede
iniciar sesión a través de ftp y acceder a sus archivos. Como medida de seguridad,
no todas las cuentas del sistema deberían ser habilitadas para realizar ftp. A
cualquier cuenta de usuario listada en el archivo /etc/vsftpd/user_list se le
denegará el acceso al sistema través de ftp.
Si desea que por defecto, a todas las cuentas de usuario se deniegue el acceso ftp,
excepto a los explícitamente permitidos, configure las opciones userlist_deny y
userlist_enable.
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
Si desea evitar que todas las cuentas locales del sistema puedan iniciar sesión a
través de FTP, configure las opciones local_enable y write_enable a NO.
local_enable=YES
write_enable=YES
Si habilita las tres opciones la lista funciona de forma inversa, esto es, por defecto
todos los usuarios estarán en un entorno chroot excepto los listando en
chroot_list_file.
Para habilitar TLS/SSL, la versión de vsftpd debe haber sido compilada con soporte
TLS/SSL. Para identificar si la versión ha sido compilada con soporte SSL, ejecute
el siguiente comando:
# ldd /usr/sbin/vsftpd
El contenido del archivo debe ser verificado para asegurarse que existe la clave
privada y el certificado digital.
Debera asegurar los permisos del certificado, de tal forma a que solo el usuario root
tenga acceso, para ello ejecute el siguiente comando:
# chmod 600 vsftpd.pem
# mv vsftpd.pem /etc/vsftpd
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
# Permitimos conexiones TLS V1
ssl_tlsv1=YES
# Las conexiones TLS son preferidas, por tanto se deshabilitan las conexiones
# SSL v2 y SSL v3.
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/fsftpd/vsftpd.pem
El cliente FTP gFTP para linux permite conexiones TLS/SSL, sin embargo por
defecto rechazará certificados auto formados. Esto puede evitarse deshabilitando la
opción “Verify SSL Peer” en las opciones. Cuando realiza una conexión, asegúrese
de seleccionar el protocolo FTPS.
Este capítulo revisa el servidor de nombres incluido con CentOS Linux, servidor
DNS Berkeley Internet Name Domain (BIND), con énfasis en la estructura de sus
archivos de configuración y en cómo deberían ser administrados localmente y
remótamente.
Introducción a DNS
update.linux.com.py
Aparte del nombre del dominio, cada sección se llama zona, la cual define un
espacio de nombre particular. Un espacio de nombre, controla los nombres de los
subdominios de la izquierda. Aunque en el ejemplo solamente hay dos
subdominios, un FQDN tiene que contener al menos un subdominio pero puede
incluir muchos más; depende de la organización del espacio de nombres elegido.
Las zonas son definidas en servidores de nombres autorizados a través del uso de
archivos de zona, lo cual describen el espacio de nombres de esa zona, los
servidores de correo a ser utilizados por un dominio particular o sub-dominio, y
más. Los archivos de zona son almacenados en servidores de nombres primarios
(también llamados servidores de nombres maestro), los cuales son
verdaderamente autorizados y donde los cambios se hacen a los archivos, y
servidores de nombres secundarios (también llamados servidores de nombres
esclavos), que reciben sus archivos de zona desde los servidores de nombres
primarios. Cualquier servidor de nombres puede ser un servidor primario y
secundario para zonas diferentes al mismo tiempo, y también pueden ser
considerados autoritarios para múltiples zonas. Todo depende de cómo se
configure el servidor de nombres.
● stub - Es parecida al servidor esclavo, excepto que replica solo los registros
NS de la zona maestra en lugar de toda la zona.
Un servidor de nombres puede contener uno o más de estos tipos de zonas. Por
ejemplo, un servidor de nombres puede ser un maestro para algunas zonas, un
esclavo para otras y sólo ofrecer el reenvío de resoluciones para otras.
entorno enjaulado:
ROOTDIR=/var/named/chroot
Para evitar que named se ejecute en un entorno enjaulado comente esa línea.
El archivo /etc/named.conf
Etiquetas de comentarios
Declaración acl
acl <nombre-acl> {
<elemento-de-concordancia>;
[ <elemento-de-concordancia>; ...]
};
Cuando lo utilice con otras pautas (tales como declaraciones options), las
declaraciones acl pueden ser muy útiles al asegurar el uso correcto de su servidor
de nombres BIND.
El ejemplo siguiente define dos listas de control de acceso y utiliza una declaración
options para definir cómo son tratadas en el servidor de nombres:
acl black-hats {
10.0.2.0/24;
192.168.0.0/24;
};
acl red-hats {
10.0.1.0/24;
};
options {
blackhole { black-hats; };
allow-query { red-hats; };
allow-recursion { red-hats; };
}
Este ejemplo contiene dos listas de control de acceso, black-hats y red-hats. Los
hosts en la lista black-hats se les niega el acceso al servidor de nombres, mientras
que a los hosts en la lista red-hats se les da acceso normal.
Declaración include
include "<nombre-archivo>"
Declaración options
options {
<opcion>;
[<opcion>; ...]
};
En esta declaración, las directivas <opcion> son reemplazadas con una opción
válida.
options {
listen-on { 10.0.1.1; };
};
De esta forma, solamente las peticiones que llegan desde la interfaz de red
sirviendo a la red privada (10.0.1.1) serán aceptadas.
● pid-file Especifica la ubicación del archivo del proceso ID creado por named.
Declaración zone
Una declaración zone define las características de una zona tal como la ubicación
de su archivo de configuración y opciones específicas de la zona. Esta declaración
puede ser usada para ignorar las declaraciones globales options.
[ allow-update { address_match_list }; ]
[ allow-query { address_match_list }; ]
[ allow-transfer { address_match_list }; ]
[ transfer-source ip_addr; ]
[ dialup yes_or_no; ]
[ max-transfer-time-in number; ]
[ notify yes_or_no; ]
[ also-notify { ip_addr; [ ip_addr; ... ] };
[ pubkey number number number string; ]
};
● masters - La opción masters lista las direcciones IP desde las cuales solicitar
información autorizada. Solamente se usa si la zona está definida como tipo
esclavo.
● notify - Controla si named notifica a los servidores esclavos cuando una zona
es actualizada. Acepta las opciones siguientes:
● type - Define el tipo de zona. Abajo se muestra una lista de las opciones
válidas:
– hint Tipo especial de zona que se usa para orientar hacia los
-
servidores de nombres root que sirven para resolver peticiones de una
zona que no se conoce. No se requiere mayor configuración que la
establecida por defecto con una zona hint.
● key "<nombre-clave>" - Define una clave particular por nombre. Las claves
son usadas para autenticar varias acciones, tales como actualizaciones
seguras o el uso del comando rndc. Se usan dos opciones con key:
Por defecto, named registra mensajes estándar al demonio syslog, que les
sitúa en /var/log/messages. Esto se debe a que varios canales estándares se
encuentran incorporados a BIND junto con varios niveles de severidad, tales
como uno que maneja la información de mensajes de registros
(default_syslog) y otro que maneja mensajes de depuración (default_debug).
Una categoría por defecto, llamada default, usa los canales incorporados
para hacer conexiones normales sin ninguna configuración especial.
zone "linux.com.py" IN {
type master;
file "linux.com.py.db";
allow-update { none; };
};
Una declaración de zone para un servidor esclavo para linux.com.py sería como
sigue:
zone "linux.com.py" IN {
type slave;
file "linux.com.py.db";
masters { 192.168.0.1; };
};
Esta declaración zone configura named en el servidor esclavo a que busque por el
servidor maestro en la dirección IP 192.168.0.1 por información sobre la zona
linux.com.py. La información que el servidor esclavo recibe desde el servidor
maestro es guardada al archivo /var/named/chroot/var/named/linux.com.py.db (Si se
ha habilitado el entorno enjaulado).
Las zonas stub son utilizadas normalmente en los servidores DNS padres cuando
se ha implementado delegación de dominios. La siguiente seria una declaración de
zona stub para un dominio llamado linux.com.py que tiene un subdominio delegado
llamado suc1.linux.com.py:
zone "suc1.linux.com.py" {
type stub;
masters { 192.253.254.2; };
file "stub.linux.com.py.db";
};
El paquete bind incluye archivos de ejemplo que puede utilizar como base para la
configuración de un servidor de nombres y se encuentran en el directorio
/usr/share/doc/bind-*/sample/. Copie todos los archivos de configuración de
ejemplo al directorio /etc:
# cp /usr/share/doc/bind-*/sample/etc/* /var/named/chroot/etc
# chown -R root:named /var/named/chroot/etc
//
// Sample named.conf BIND DNS server 'named' configuration file
// for the CentOS BIND distribution.
//
// See the BIND Administrator's Reference Manual (ARM) for details, in:
// file:///usr/share/doc/bind-*/arm/Bv9ARM.html
// Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
// its manual.
//
options
{
/* make named use port 53 for the source of all queries, to allow
* firewalls to block all ports except 53:
*/
query-source port 53;
query-source-v6 port 53;
};
logging
{
/* If you want to enable debugging, eg. using the 'rndc trace' command,
* named will try to write the 'named.run' file in the $directory
* (/var/named).
* By default, SELinux policy does not allow named to modify the /var/named
* directory, so put the default debug log file in data/ :
*/
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view "internal"
{
/* This view will contain zones you want to serve only to "internal" clients
* that connect via your directly attached LAN interfaces - "localnets" .
*/
match-clients { localnets; localhost; };
match-destinations { localnets; localhost; };
recursion yes;
// all views must contain the root hints zone:
include "/etc/named.root.hints";
// include "named.rfc1912.zones";
// you should not serve your rfc1912 names to non-localhost clients.
zone "linux.net.py" {
type master;
file "linux.net.py.db";
};
};
view "external"
{
/* This view will contain zones you want to serve only to "external" clients
* that have addresses that are not on your directly attached LAN interface
* subnets:
*/
match-clients { !localnets; !localhost; };
match-destinations { !localnets; !localhost; };
recursion no;
// you'd probably want to deny recursion to external clients, so you don't
// end up providing free DNS service to all takers
zone "linux.com.py" {
type master;
file "linux.com.py.db";
};
};
En el ejemplo anterior, se han definido dos vistas, una para los recursos de la red
Interna y otra para los recursos publicados hacia Internet. Cada vista tiene su
propia base de datos de zona y restringe el acceso a los hosts listados en las
declaraciones match-clients y match-destinations.
Archivos de zona
zona.
Los comentarios se pueden colocar después de los punto y comas (;) en archivos
de zona.
Las directivas comienzan con el símbolo de dólar ($) seguido del nombre de la
directiva. Usualmente aparecen en la parte superior del archivo de zona.
● $TTL - Ajusta el valor Time to Live (TTL) predeterminado para la zona. Este
es el tiempo, en segundos, que un registro de recurso de zona es válido.
Cada recurso puede contener su propio valor TTL, el cual ignora esta
directiva.
Con BIND, todos los tiempos son siempre referenciados en segundos. Sin
embargo, es posible usar abreviaciones cuando se especifiquen unidades de
tiempo además de segundos, tales como minutos (M), horas (H), días (D) y semanas
(W).
El ejemplo siguiente ilustra la forma que un registro de recursos SOA puede tomar
cuando es configurado con valores reales.
@ IN SOA dns1.linux.com.py. soporte.linux.com.py. (
42 ; serial
3H ; refresh
15M ; retry
1W ; expire
1D ) ; minimum
El registro NS anuncia los nombres de servidores con autoridad para una zona
particular.
Luego, dos nombres de servidores son listados como con autoridad para el
dominio. No es importante si estos nombres de servidores son esclavos o si son
maestros; ambos son todavía considerados con autoridad.
IN NS dns1.linux.com.py.
IN NS dns2.linux.com.py.
Registro A (Address)
Si el valor <host> es omitido, el registro A apunta a una dirección IP por defecto para
la parte superior del espacio de nombres. Este sistema es el objetivo para todas las
peticiones no FQDN.
IN A 10.0.1.3
host1 IN A 10.0.1.5
Las peticiones para linux.com.py son apuntadas a 10.0.1.3, mientras que las
solicitudes para host1.linux.com.py son dirigidas a 10.0.1.5.
Las direcciones IPv6 son representadas en DNS por recursos AAAA, también
llamados registros quad-A para las zonas de búsqueda directa. El siguiente es un
ejemplo de un recuros IPv6:
El registro del nombre canónico, que enlaza un nombre con otro: también conocido
como un alias.
IN MX 10 mail.linux.com.py.
IN MX 20 mail2.linux.com.py.
dominio linux.com.py.
El registro PoinTeR o puntero, diseñado para apuntar a otra parte del espacio de
nombres. Es utilizado en las zonas de búsqueda inversa.
# cp /usr/share/doc/bind-*/sample/var/named/localdomain.zone \
/var/named/chroot/var/named/linux.net.py.db
# cp /usr/share/doc/bind-*/sample/var/named/localdomain.zone \
/var/named/chroot/var/named/linux.com.py.db
# cp /usr/share/doc/bind-*/sample/var/named/named.root \
/var/named/chroot/var/named/
# chown -R root:named /var/named/chroot/var
Modifique los archivos para reflejar la información correspondiente con cada zona.
El siguiente es un ejemplo para la zona linux.com.py:
$ORIGIN linux.com.py.
$TTL 86400
@ IN SOA dns1.linux.com.py. soporte.linux.com.py. (
42 ; serial
3H ; refresh
15M ; retry
1W ; expire
1D ) ; minimum
IN NS dns1.linux.com.py.
IN NS dns2.linux.com.py.
IN MX 10 mail.linux.com.py.
IN MX 20 mail2.linux.com.py.
IN A 10.0.1.5
server1 IN A 10.0.1.5
server2 IN A 10.0.1.7
dns1 IN A 10.0.1.2
dns2 IN A 10.0.1.3
En este ejemplo, las directivas estándar y los valores SOA son usados. Los
servidores de nombres con autoridad se configuran como dns1.linux.com.py y
dns2.linux.com.py, que tiene archivos A que los juntan a 10.0.1.2 y a 10.0.1.3,
respectivamente.
IN NS dns1.linux.net.py.
IN NS dns2.linux.net.py.
IN MX 10 mail.linux.net.py.
IN MX 20 mail2.linux.net.py.
IN A 10.0.1.5
server1 IN A 10.0.1.5
server2 IN A 10.0.1.7
dns1 IN A 10.0.1.2
dns2 IN A 10.0.1.3
pc01 IN A 192.168.1.10
pc02 IN A 192.168.1.11
pc03 IN A 192.168.1.12
imp01 IN A 192.168.1.13
En esta zona se listan recursos de la red privada, tales como estaciones de trabajo
e impresoras.
IN NS dns1.linux.com.py.
IN NS dns2.linux.com.py.
5 IN PTR server1.linux.com.py.
7 IN PTR server2.linux.com.py.
2 IN PTR dns1.linux.com.py.
3 IN PTR dns2.linux.com.py.
zone "1.0.10.in-addr.arpa" IN {
type master;
file "1.0.10.in-addr.arpa.db";
allow-update { none; };
};
Hay muy poca diferencia entre este ejemplo y una declaración de zone estándar,
excepto por el nombre de la zona. Observe que una zona de resolución de
nombres inversa requiere que los primeros tres bloques de la dirección IP estén
invertidos seguido por .in-addr.arpa. Esto permite asociar con la zona a un bloque
único de números IP usados en el archivo de zona de resolución de nombres
inversa.
Uso de rndc
Comando Descripción
halt Para inmediatamente el servicio named.
querylog Registra todas las peticiones hechas a este servidor de nombres.
Comando Descripción
refresh Refresca la base de datos del servidor de nombres.
reload Recarga los archivos de zona pero mantiene todas las respuestas
precedentes situadas en caché. Esto le permite realizar cambios
en los archivos de zona sin perder todas las resoluciones de
nombres almacenadas.
stats Descarga las estadísticas actuales de named al archivo
/var/named/named.stats.
stop Detiene al servidor salvando todas las actualizaciones dinámicas y
los datos de las Transferencias de zona incremental (IXFR) antes
de salir.
Opción Descripción
-c <archivo> Le dice a rndc que use un archivo de configuración diferente
a /etc/rndc.conf.
-p <puerto> Especifica la utilización de un número de puerto diferente del
predeterminado 953 para la conexión del comando rndc.
-s <servidor> Dice a rndc que envie el comando a un servidor distinto al
default-server especificado en su archivo de configuración.
-y <clave> Le permite especificar una clave distinta de la opción default-
key en el archivo /etc/rndc.conf.
El archivo de
configuración del Servidor Apache HTTP es
/etc/httpd/conf/httpd.conf. El archivo httpd.conf está bien comentado y es
bastante autoexplicativo. Su configuración por defecto funciona para la mayoría de
los casos; sin embargo, quizás quiera conocer el resto de las opciones de
configuración más importantes.
Si necesita configurar Servidor Apache HTTP sólo tiene que modificar el archivo
/etc/httpd/conf/httpd.conf y después recargar o bien apagar y arrancar el proceso
del comando httpd.
Antes de modificar el archivo httpd.conf, primero haga una copia del archivo
original. Si crea una copia de respaldo, podrá recuperar el sistema de posibles
errores cometidos antes al editar el nuevo archivo de configuración.
Puede utilizar el comando httpd -t para verificar que esté correcta la sintaxis del
archivo de configuración.
Directiva ServerRoot
Directiva PidFile
Directiva Timeout
Directiva KeepAlive
Directiva MaxKeepAliveRequests
Directiva KeepAliveTimeout
Directiva StartServers
Directiva MaxClients
Directiva Listen
El comando Listen identifica los puertos en los que el servidor Web aceptará las
peticiones entrantes. Por defecto, el Servidor Apache HTTP está configurado para
escuchar en el puerto 80 para comunicaciones Web no seguras y (en
/etc/httpd/conf.d/ssl.conf el cual define cualquier servidor seguro) en el puerto
443 para comunicaciones seguras.
Directiva Include
Directiva User
Directiva Group
Directiva ServerAdmin
Directiva ServerName
ServerName www.linux.com.py:80
Directiva DocumentRoot
http://www.linux.com.py/index.html
Directiva DirectoryIndex
DirectoryIndex es la página por defecto que entrega el servidor cuando hay una
petición de índice de un directorio especificado con una barra (/) al final del nombre
del directorio.
Directiva AccessFileName
Directiva HostnameLookups
Directiva ErrorLog
ErrorLog especifica el archivo donde se guardan los errores del servidor . Por
defecto, esta directiva es configurada a /var/log/httpd/error_log.
Directiva LogLevel
LogLevel establece que tantos detalles tendrán los registros de mensajes de error.
LogLevel se puede configurar (desde el que tiene menos detalles a los más
detallados) a emerg, alert, crit, error, warn, notice, info o debug. El valor
predeterminado de LogLevel es warn.
Directiva ServerSignature
La directiva ServerSignature añade una línea que contiene la versión del Servidor
También se puede configurar a off o a EMail. EMail, agrega una etiqueta HTML
mailto:ServerAdmin a la línea de la firma de las respuestas autogeneradas.
Directiva Redirect
Cuando se mueve una página web, se puede utilizar Redirect para crear
asignaciones de la ubicación del archivo a un nuevo URL. El formato es como
sigue:
Redirect /<old-path> http://<current-domain>/<current-path>
Configuración de directorios
Directiva Alias
La directiva Alias permite que haya directorios fuera del DocumentRoot a los que
puede acceder el servidor. Cualquier URL que termine en el alias será
automáticamente traducido a la ruta del alias. Por defecto, ya existe un alias
configurado para un directorio icons. El servidor web puede acceder al directorio
icons pero el directorio no está en DocumentRoot.
Directiva ScriptAlias
La directiva ScriptAlias define dónde pueden encontrarse los scripts CGI (u otros
scripts). Normalmente, no es una buena idea colocar los scripts CGI dentro de
DocumentRoot. Si los scripts CGI se encontrasen en DocumentRoot, podrían,
potencialmente, ser considerados como documentos de texto. Por esta razón, la
Directiva AddHandler
Esta directiva habilita a CGIs fuera del cgi-bin a que funcionen en cualquier
directorio en el servidor que tengan la opción ExecCGI dentro del contenedor de
directorios.
Directiva Directory
<Directory /web/applications>
Options +ExecCGI
</Directory>
Para que esto funcione, los permisos para los scripts CGI y la ruta completa a los
scripts, se deben colocar a 0755.
Directiva Options
Por defecto, el directorio DocumentRoot, Options está configurado para incluir Indexes
y FollowSymLinks. Indexes permite al servidor generar un listado de un directorio si no
se especifica el DirectoryIndex (por ejemplo, index.html) es especificado.
FollowSymLinks permite al servidor seguir enlaces simbólicos en ese directorio.
Directiva AllowOverride
Directiva Order
La directiva Order controla el orden en el cual las directivas allow y deny son
evaluadas.
● Order Deny,Allow: Las directivas Deny son evaluadas primero y luego las
directivas Allow. Si a un host no se ha denegado explícitamente el acceso,
se otorga el acceso al recurso. Es el orden por defecto si no se especifica lo
contrario.
● Order Allow,Deny: Todas las directivas Allow son evaluadas primero y luego
las directivas Deny. Si a un host no se ha otorgado explícitamente el acceso,
se deniega el acceso al recurso.
Ejemplos:
# Un directorio el cual permitimos acceso solo a la red local
# Se evaluan las directivas Deny primero, luego las allow, por tanto se otorga
# acceso a la red local
<Directory "/web/forms">
Options Multiviews
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.1 linux.com.py 192.168
</Directory>
Directiva UserDir
UserDir es el nombre del subdirectorio dentro del directorio de cada usuario dónde
estarán los archivos HTML personal que serán servidos por el servidor de Web.
Esta directiva esta configurada por defecto a disable.
http://linux.com.py/~username/foo.html
Hay que asegurarse que los permisos de los directorios de usuario sean correctos.
El valor de los permisos deben ser de 0711. Los bits de lectura (r) y ejecución (x)
deben estar activados en el directorio del usuario public_html (0755 también
funcionará). El valor de los permisos con que se servirán los archivos desde
public_html debe ser 0644 por lo menos.
Directiva NameVirtualHost
Directiva VirtualHost
Máquinas Virtuales
Es posible especificar la dirección IP del servidor en lugar del asterisco (*) en las
directivas NameVirtualHost y <VirtualHost>. La dirección IP es requerida en versiones
1.3.12 y anteriores.
<VirtualHost *>
ServerAdmin webmaster@lab.linux.com
DocumentRoot /var/www/html/www
ServerName www.lab.linux.com
ErrorLog logs/www.lab.linux.com-error_log
CustomLog logs/www.lab.linux.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@lab.linux.com
DocumentRoot /var/www/html/foro
ServerName foro.lab.linux.com
ErrorLog logs/foro.lab.linux.com-error_log
CustomLog logs/foro.lab.linux.com-access_log common
</VirtualHost>
Existen servidores que pueden ser accedidos por mas de un nombre a la vez. Esto
es posible por medio de la directiva ServerAlias, que se configura en la sección
<VirtualHost>. Por ejemplo, si desea puede agregar lo siguiente a la directiva
<VirtualHost> para foro.lab.linux.com:
ServerAlias soporte.linux.com
ServerAlias *.linux.com
Todas las solicitudes para cualquier host en linux.com sera respondida por el
servidor virtual al cual se aplica la directiva. Es posible utilizar * y ? como
comodines para hacer concordar los nombres.
Para activar el servidor seguro, necesita, como mínimo, tener instalados los
siguientes tres paquetes:
Para configurar su servidor seguro, usará criptografía pública para crear un par de
claves pública y privada. En muchos casos, enviará su petición de certificado
(incluyendo su clave pública), demostrando la identidad de su compañía y pago a la
CA. La CA verificará la petición del certificado y su identidad, y entonces mandará
Antes de generar la clave, debe identificar donde esta almancenada la clave, esta
información la puede obtener del archivo /etc/httpd/conf.d/ssl.conf. Verifique la
ruta de los archivos mencionados en las opciones:
SSLCertificateFile
SSLCertificateFile
# make genkey
umask 77 ; \
/usr/bin/openssl genrsa -des3 1024 > /etc/pki/tls/private/localhost.key
Generating RSA private key, 1024 bit long modulus
.......++++++
................................................................++++++
e is 65537 (0x10001)
Enter pass phrase:
Necesita teclear una palabra de paso. Para mayor seguridad, su palabra de paso
debe incluir, al menos, ocho caracteres, incluyendo números y símbolos de
puntuación, y no ser una palabra que esté incluida en un diccionario. También,
recuerde que su palabra de paso es sensible a las mayúsculas.
Le será requerido que reingrese su contraseña, para verificar que es correcta. Una
vez que la haya tecleado correctamente, será creado el archivo mostrado en la
redirección de la salida del comando, que contendrá dicha clave.
Observe que si no quiere teclear la palabra de paso cada vez que comience su
servidor seguro, necesitará usar los dos comandos siguientes en vez de make
genkey para crear su clave.
La ruta que debe especificar para el archivo generado usted la obtendrá del archivo
ssl.conf.
Luego, utilice el comando siguiente para asegurarse que los permisos de su clave
están correctamente asignados:
# chmod go-rwx /etc/httpd/conf/ssl.key/server.key
Una vez creada la clave, el siguiente paso es generar la petición de certificado que
necesitaremos enviar al CA de nuestra elección. Asegúrese de estar en el
directorio /usr/share/ssl/certs o /etc/pki/tls/certs, según corresponda, y teclee el
siguiente comando:
# make certreq
Teclee la palabra de paso que eligió cuando generó su clave. Su sistema mostrará
algunas instrucciones y le requerirá una serie de respuestas. Dichas respuestas
serán incorporadas a la petición del certificado. La pantalla, con respuestas de
ejemplo, será similar a esta:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a
DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:PY
State or Province Name (full name) [Berkshire]:Asuncion
Locality Name (eg, city) [Newbury]:Asuncion
Organization Name (eg, company) [My Company Ltd]:CentOS Paraguay
Organizational Unit Name (eg, section) []:Sistemas
Common Name (your name or server's hostname) []:www.linux.com.py
Email Address []:soporte@linux.com.py
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
La entrada por defecto, entre corchetes, es GB. Para aceptarla, pulse [Intro], o
relléne con el código de dos letras de su país.
Tendrá que introducir el resto de las entradas. Todas estas entradas son
autoexplicativas, pero necesitará seguir estas directrices.
Evite caracteres especiales como @, #, &, !, etc. Algunas CAs rechazarán una
petición de certificado que contenga un caracter especial. Así, si el nombre de su
compañía contiene una "y" comercial (&), escríbalo como "y" en vez de "&".
Después de haber decidido una CA, siga las instrucciones que ellos proporcionen
en su sitio web. Estas instrucciones le dirán como mandar su petición de
certificado, cualquier otra documentación que ellos requieran, y como pagarles.
Usted puede crear su propio certificado autofirmado. Por favor, tenga en cuenta
que un certificado autofirmado no proporciona las garantías de seguridad que un
certificado firmado por una CA sí proporciona.
Se le pedirá que introduzca su palabra de paso (a menos que haya generado una
clave sin contraseña):
Probar su certificado
https://server.linux.com.py
Una vez que su navegador acepte el certificado, su servidor seguro mostrará una
página de inicio predeterminada.
Ahora que el servidor tiene habilitado SSL, todas las interacciones con el servidor
que esten relacionadas con nombres de usuarios, contraseñas, detalles personales
o financieros deben ser enviados a traves de este protocolo. Esto se hace
facilmente indicando https:// en lugar de http:// en la dirección URL. Sin embargo,
es posible que las personas olviden este gran detalle.
Para evitar ello, el servidor tiene otro módulo llamado “mod_rewrite”, el cual permite
que una solicitud de USL sea reescrita antes que el servido web responda a la
petición de la página. El módulo rewrite provee una forma de forzar la utilización de
SSL para cualquier solicitud entrante.
# vi /etc/httpd/conf.d/mod-rewrite.conf
Evolution, Mozilla thunderbird, pine son MUA que son usados habitualmente. Entre
la lista de MTAs se encuentran Postfix, Sendmail, Qmail, Exim.
El MTA del destinatario entrega el correo electrónico al (MDA, Mail Delivery Agent),
el cual almacena el correo electrónico mientras espera que el usuario lo acepte. El
MDA mas popular es procmail. Existen dos protocolos principales utilizados para
recuperar un correo electrónico de un MDA:
Postfix
Arquitectura de Postfix
La siguiente figura proporciona una visión global de los elementos que componen
Postfix:
Coloreadas de azul aparecen las tablas que, creadas por el administrador, sirven a
los diferentes procesos para concretar el tratamiento que debe darse a cada
mensaje. Se usan seis tablas: access, aliases, canonical, relocated, transport y
virtual. Aunque no es obligatoria la existencia ni utilización de todas ellas.
La tabla access permite definir una relación explícita de sistemas a los que se les
deben aceptar o rechazar sus mensajes. La utiliza el proceso smptd.
La tabla aliases, al igual que en Sendmail, define una serie de nombres alternativos
a usuarios locales, y la consulta el proceso local.
El proceso qmgr utiliza la tabla relocated para devolver los mensajes de usuarios
Todas estas tablas pueden usar alguno de los siguientes tipos de formato de base
de datos:
Para conocer qué tipos de formato de base de datos soporta nuestra instalación, se
puede usar la directiva /usr/sbin/postconf –m.
Para crear los ficheros binarios indexados, Postfix dispone de la directiva: postmap.
Por ejemplo, para generar el correspondiente binario del fichero anterior se usaría
la directiva postmap /etc/postfix/tabla, con lo que se crearía el fichero
/etc/postfix/tabla.db.
Como Sendmail es el MTA por defecto en CentOS, debe cambiar esto utilizando el
comando alternatives luego de detener el servicio sendmail:
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix
EL archivo main.cf
Las directivas mínimas, para tener nuestro Postfix corriendo son las siguientes;
Especifique el nombre de Internet para este host. El valor de esta variable debe ser
un nombre FQDN resoluble a través de consultas DNS. El valor por defecto es
utilizar el nombre de host retornado por gethostname().
Ej:
myhostname = mail.linux.com.py
El nombre del dominio de Internet para este sistema de correo; por defecto se
utiliza el valor de la variable $myhostname sin el primer componente del valor de la
misma. El valor de la variable $mydomain se utiliza por defecto en muchos otros
parámetros de la configuración de Postfix.
mydomain = <Dominio de Internet de este sistema de correo>
Ej:
mydomain = linux.com.py
Ej:
myorigin = $mydomain
Ej:
inet_interfaces = all
Ej:
mydestination = $myhostname localhost.localdomain localhost $mydomain
Directivas adicionales
La opción default_privs indica los privilegios por defecto del agente de entrega de
correo para ejecutar un comando o abrir un archivo. NO especificar un usuario con
privilegios o el usuario postfix. Generalmente se usa nobody.
default_privs = nobody
Direcciones canónicas
canonical_maps = hash:/etc/postfix/canonical
# postmap /etc/postfix/canonical
# postfix reload
Usuarios reubicados
jperez@linux.com.py jperez@linuxmail.org
@it.linux.com.py linuxmail.org
Listas de correo
Puede crear una lista en el archivo aliases, o cualquier otro archivo que especifica
en el parámetro alias_maps. El archivo por defecto de aliases es /etc/aliases.
Soponga que usted administra el dominio linux.com.py y desea que los mensajes
de carácter técnico sean enviados a soporte@linux.com.py, y que los mensajes
enviados a esta dirección sean recibidos por varios miembros del personal de
soporte técnico. Para lograr esto, edite el archivo /etc/aliases y agregue una línea
como la siguiente:
soporte: jperez, plopez@linux.com.py, hgomez@linuxmail.org
notificaciones: :include:/etc/postfix/notificaciones
Administración de colas
/var/spool/mail/active
/var/spool/mail/bounce
/var/spool/mail/corrupt
/var/spool/mail/deferred
/var/spool/mail/hold
Postfix periódicamente verifica la cola para ver si existen mensajes diferidos cuya
marca de tiempo indica que están listos para otro intento de entrega. Intentos
fallidos de entrega subsiguientes provocan que el tiempo de espera para el
reintento se duplique. Puede configurar un tiempo máximo de espera con el
parámetro maximal_queue_lifetime, cuando el tiempo ha expirado, Postfix rechaza el
mensaje y lo envía al emisor. El periodo por defecto es cinco días (5d). Si establece
el valor a 0, el mensaje es retornado inmediatamente.
● Listar mensajes
● Borrar mensajes
● Retener mensajes
● Reencolar mensajes
● Mostrar mensajes
● Liberar mensajes
Listar mensajes
Puede listar todos los mensajes en la cola con el comando postqueue -p. Postfix
además proporciona el comando mailq para compatibilidad con Sendmail.
# postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
DBA3F1A9 553 Mon May 5 14:42:15 jperez@linux.com.py
(connect to mail.linuxmail.org [192.168.155.63]: Connection refused)
hgomez@linuxmail.org
Borrando mensajes
# postsuper -d DBA3F1A9
postsuper: DBA3F1A9: removed
postsuper: Deleted: 1 message
# postsuper -d ALL
postsuper: Deleted: 23 messages
Reteniendo mensajes
La cola hold está disponible para mensajes que desea mantener en la cola de
forma indefinida. Para ubicar el mensaje del ejemplo en la cola hold, use comando
postsuper con la opción -h:
# postsuper -h DBA3F1A9
# postsuper -H DBA3F1A9
Reencolando mensajes
Si tiene mensajes que fueron diferidos por problemas de configuración que han
sido corregidos, puede reencolar los mensajes para que sean entregados. El
comando postsuper utiliza la opción -r para reencolar mensajes. Puede especificar
el ID de un mensaje o la palabra ALL para reencolar todo:
# postsuper -r ALL
Mostrando mensajes
# postcat -q DBA3F1A9
Liberando mensajes
Liberar la cola provoca que Postfix intente entregar todos los mensajes
inmediatamente. Puede liberar la cola usando el comando postqueue -f.
# postqueue -f
Mapas de transporte
#
# Transport map
#
linux.com.py smtp:[192.168.0.1]:20025
#
#
# Transport map
#
linux.com.py smtp
#
1. Asegúrese que DNS ha sido configurado con los recursos MX correctos para
linux.com.py y que apuntan a gateway.linux.com.py.
relay_domains = linux.com.py
transport_maps = hash:/etc/postfix/transport
#
# transport maps
#
linux.com.py relay:[mail.linux.com.py]
# postfix reload
Para permitir que el servidor mail.linux.com.py envíe mensajes hacia la Internet sin
tener una conexión directa, éste debe enviar los mensajes a gateway.linux.com.py
y éste a su vez reenviarlos hacia la Internet.
relayhost = [gateway.linux.com.py]
# postfix reload
El parámetro toma una lista de dominios. Cualquier dirección cuyo nombre de host
Puede excluir ciertas cuentas del enmascaramiento. Por ejemplo, si desea que una
dirección como root@serv1.linux.com.py se mantenga intacto, agregue la cuenta al
parámetro masquerade_exceptions:
Sendmail
Configurando Sendmail
Por defecto Sendmail solo permitirá enviar correo solo desde la interfaz loopback
(127.0.0.1), es decir, desde el mismo servidor. Si queremos poder enviar correo
desde las máquinas de la red local comente la línea o bien, si tiene varias, añada
las interfaces desde las cuales se quiere que escuche peticiones sendmail y omita
las que no deben, como sería una red local secundaria con restricciones.
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
utilizaremos para todo el correo que emitamos desde nuestro servidor. Debe, por
tanto, añadirse una línea justo debajo de MAILER(procmail)dnl y que va del siguiente
modo:
MASQUERADE_AS(linux.com.py)dnl
Control de RELAY
Deben definirse los dominios para los cuales se estará permitiendo enviar correo
electrónico. Esto se hace generando el fichero /etc/mail/relay-domains:
● TEXTO DE ERROR Cualquier mensaje de error que cumple con RFC 821.
En este archivo también puede agregar las direcciones de correo electrónico que
desee bloquear, como son algunas de quienes envían correo masivo no solicitado
-Spam-.
Al concluir, debemos también compilar este archivo para generar otro en formato
de base de datos a fin de ser utilizado por Sendmail:
# makemap hash /etc/mail/access.db < /etc/mail/access
Los alias de correo son una poderosa opción que permite que el correo sea dirigido
a otros apartados postales que son nombres alternativos de usuarios o procesos en
un servidor destinatario. Por ejemplo, es una práctica común tener
retroalimentación o comentarios con respecto a un servidor de Web y que estén
dirigidos a webmaster.
• Otorgan un nombre corto o bien conocido para el correo que será dirigido hacia
una o más personas.
La orden newaliases es una forma alternativa y más adecuada para hacer esto.
Una organización puede elegir instalar una red IP privada y utilizar sus propias
direcciones IP no registradas. La red privada se puede conectar a Internet
mediante un cortafuegos. El enviar el correo desde y hacia los diversos anfitriones
dentro de la red privada hacia el mundo exterior utilizando SMTP no será posible
en una configuración convencional debido a que los sitios locales no pueden
establecer una conexión directa de red a los sitios que están en Internet. En
cambio, la organización puede optar por que el cortafuegos tenga la función de
anfitrión inteligente. El anfitrión inteligente que se ejecute en el cortafuegos será
capaz de establecer conexiones directas de red con los sitios que se encuentran
tanto en el interior de la red privada como en el exterior de ella. El anfitrión
inteligente puede aceptar correo de ambos anfitriones, de los que están en la red
privada y de los que están en Internet, el correo se guarda en un almacenamiento
local y luego se gestiona la retransmisión de ese correo directamente al sitio
adecuado.
Los anfitriones inteligentes se utilizan en general cuando todos los otros métodos
de entrega han fallado.
define(`SMART_HOST', `mail.isp.net')
Central de correo
Para transferir toda la mensajería local (la que llega) pero debidamente cualificada
a un host determinado se puede emplear la variable MAIL_HUB. Ejemplo:
define(`MAIL_HUB', `smtp:otrohost.localdomain')dnl
Puede habilitar los servicios ipop3 (POP3 tradicional, autenticación en texto plano),
pop3s (POP3 seguro, autenticación con criptografía), imap (IMAP tradicional,
autenticación en texto plano) e imaps (IMAP seguro, autenticación con criptografía).
Utilice aquellos que consideré como más apropiados para su red local de acuerdo a
las capacidades de los clientes de correo electrónico utilizados. Tome en cuenta
que la autenticación por medio de texto plano es definitivamente un método
inseguro, y siempre serán mejor usar los servicios que permitan establecer
conexiones seguras.
Dovecot
Luego, inicie el servicio dovecot y habilite para su ejecución durante el arranque del
sistema:
# service dovecot start
# chkconfig dovecot on
Configuración de Webmail
casillas de correo Imap, no POP3, por tanto su servidor de correo debe priveer
acceso Imap. El paquete dovecot e imap soportan ambos protocolos y también
encriptación TLS. SquirrelMail tiene muchos plugins extra que han sido
desarrollados para él.
Secure Shell
Secure Shell
Secure Shell
El demonio SSH
El demonio SSH actúa como el servidor que escucha y maneja las conexiones
entrantes de los clientes. En su configuración por defecto, el demonio maneja todos
los requerimientos para la generación y rotación de claves criptográficas, por tanto
se discutira como ajustar los parámetros operacionales del servidor.
SSH opera por defecto en el purto TCP 22 y escucha en todos los dispositivos de
red instalados. El demonio openssh ademas soporta versiones 1 y 2 del protocolo
ssh los cuales están habilitados por defecto.
El demonio debería ser configurado para registrar todos los intentos de acceso a
traves de syslog, ya sean satisfactorios o no. Estos eventos serán registrados en el
archivo /var/log/secure según la configuración por defecto de syslogd.
SyslogFacility AUTHPRIV
LogLevel INFO
Por defecto, la cuenta de root tiene permitido el acceso por ssh al sistema. Es
Las directivas AllowUsers y AllowGroups especifican que sólo los usuarios o grupos
listados pueden iniciar sesión a través de ssh.
AllowUsers manager
AllowGroups sshusers
El subsistema sftp (SSH File Transfer Protocol) permite copiar archivos entre la
estación de trabajo y los sistemas remotos usando encriptación para mayor
seguridad.
Subsystem sftp /usr/libexec/openssh/sftp-server
Una vez configurado el servidor sshd, puede habilitar la ejecución del servicio
durante el inicio del sistema utilizando los siguientes comandos:
# chkconfig –level 345 sshd on
# chkconfig –list
Uso de SSH
La primera vez que inicia sesión en un servidor remoto, usted sera advertido que la
identidad del servidor no puedo ser establecida. Si esta seguro de la identidad del
host, puede aceptar el certificado presentado. Una copia es guardada en el archivo
~/.ssh/known_hosts. Usted vera un mensaje similar al siguiente:
$ ssh alice@galaxy.linux.com.py
Una vez autenticado, entrará al prompt del sistema remoto. A partir de ese
momento puede ejecutar cualquier comando en el sistema remoto.
Puede darse la situación que el par de claves del servidor es reemplazada, esto
puede deberse a una reinstalación por ejemplo. Si este es el caso, la clave pública
almacenada anteriormente en el archivo ~/.ssh/known_hosts causará un conflicto
con la nueva clave pública. Esto provocará que el cliente rechace la conexión,
suponiendo que pueda ser un fraude.
# ssh alice@galaxy.linux.com.py
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
8e:ed:e3:45:50:5e:13:33:58:0e:d5:eb:e6:fc:ef:43.
Please contact your system administrator.
Add correct host key in /home/alice/.ssh/known_hosts to get rid of this message.
Offending key in /home/alice/.ssh/known_hosts:14
RSA host key for galaxy.linux.com.py has changed and you have requested strict
checking.
Host key verification failed.
El mensaje de advertencia anterior indica que la huella digital de las claves han
cambiado. Debe confirmar cualquier cambio que ha ocurrido en el sistema remoto
antes de intentar corregir este error.
Una vez verificada la identidad del host remoto nuevamente, deberá eliminar la
clave pública guardada en el archivo ~/.ssh/known_hosts. Para ello, edite el archivo y
elimine la clave pública que corresponde con el host.
PuTTY es un cliente Telnet y SSH gratuito escrito y mantenido por Simon Tatham.
El cliente y el código fuente pueden ser descargados de:
http://www.chiark.greenend.org.uk/~sgtatham/putty
El servidor sftp no debe ser confundido con FTPS disponible en vsftpd. Si bien
ambos sistemas proporcionan la capacidad de encriptar la comunicación, existen
diferencias en como pueden ser implementados.
$ sftp usuario@host
Una vez conectado, tiene disponible los comandos mas comunes de transferencias
de archivos de FTP, utilice el comando help para obtener la lista de comandos
permitidos.
Secure copy
La sintaxis del comando para copiar un archivo del equipo local al equipo remoto
es:
$ scp [opciones] archivo [...] [usuario]@host:[/ruta/de/destino]
Por ejemplo:
Para copiar todos los archivos .txt de su directorio HOME al sistema remoto, también
en su directorio home, iniciando sesión con el mismo usuario utilizado de forma
local, ejecute:
$ scp $HOME/*.txt galaxy.linux.com.py:
La sintaxis del comando para copiar un archivo del equipo local al equipo remoto
es:
$ scp [opciones] [usuario]@host:[/ruta/al/archivo] /ruta/de/destino
Por ejemplo:
Convenciones generales
● WET (Western European Time) - Hora de Europa del Oeste, donde están
Zonas horarias
Las zonas horarias son divisiones geográficas del globo terráqueo de 15° cada
una. Iniciando en Greenwich, creadas para ayudar a las personas a saber que hora
es en otra parte del mundo.
Por razones de ahorro de energía, los gobiernos han creado el horario de verano o
DST. Los relojes son adelantados una hora y esto hace que los dias parezcan mas
largos. Lo que sucede en realidad es tan solo “un cambio en la zona horaria”. El
tiempo primitivo (UTC) es y seguirá siendo el mismo.
# Paraguay
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Para 2003 only - Oct 16 0:00 1:00 S
Rule Para 2004 only - Mar 31 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Asuncion -4:00 Para PY%sT
# Paraguay
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Para 2003 only - Oct 16 0:00 1:00 S
Rule Para 2004 only - Mar 31 0:00 0 -
Rule Para 2005 only - Oct 18 0:00 1:00 S
Rule Para 2006 only - Mar 31 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Asuncion -4:00 Para PY%sT
# zic paraguay.zic
# cp /usr/share/zoneinfo/America/Asuncion /etc/localtime
Puede verificar que las configuraciones fueron realizadas con el comando zdump.
# zdump -v America/Asuncion
El proyecto pool.ntp.org
;; QUESTION SECTION:
;south-america.pool.ntp.org. IN A
;; ANSWER SECTION:
;; ANSWER SECTION:
south-america.pool.ntp.org. 1420 IN A 200.141.215.162
south-america.pool.ntp.org. 1420 IN A 200.141.215.164
south-america.pool.ntp.org. 1420 IN A 200.144.121.33
south-america.pool.ntp.org. 1420 IN A 200.218.160.160
south-america.pool.ntp.org. 1420 IN A 200.89.74.17
El método hace que las puntuaciones bajen muy deprisa en caso de mal
funcionamiento, pero tarden un poco más en subir, asegurando así que no existen
servidores malos en el sistema.
Configuración de NTP
En el archivo de configuración, existe una regla por defecto que aplica cierta
seguridad a la configuración NTP.
restrict default nomodify notrap noquery
Esta regla permite la sincronización con los servidores NTP, pero no permite que
los servidores NTP consulten o modifiquen el servicio en nuestro sistema.
Lo más interesante del fichero de configuración son las lineas que nos indican qué
servidores vamos a usar para sincronizarnos. Como se puede notar, todas ellas
son iguales, aprovechando la resolución DNS que hemos explicado más arriba. De
esta forma, obtenemos tres servidores distintos con los que actuar.
Si desea utilizar otros servidores NTP puede consultar la lista de servidores NTP
publicos en http://www.eecis.udel.edu/~mills/ntp/servers.html.
driftfile /var/lib/ntp/drift
Como una alternativa, puede agregar los servidor NTP al archivo /etc/ntp/step-
Verificación de NTP
● Verificar que ntpd puede formar asociaciones con otros hosts NTP
Luego que ha iniciado el servidor ntpd ejecute el comando ntpq con la opción -p:
# ntpq -p
● st: La columna stratum indica que nivel de stratum para el host remoto.
u = unicast
m = multicast
b = broadcast
- = netaddr (normalmente 0)
● reach:La columna reach indica que tan exitosos son los intentos de alcanzar
un servidor. El valor 001 indica que la prueba mas reciente fue contestada,
mientras 357 indica que una respuesta no fue contestada. El valor 377 indica
que todas las pruebas recientes fueron contestadas.
entre el reloj del servidor y el reloj des cliente. Cuando este numero excede
128, el mensaje de “synchronization lost” aparece en el archivo de registro.
Aquí vemos cómo tomamos como referencia el tercero de los servidores (*), siendo
el segundo y el quinto (+) alternativas a tener en cuenta que entran en el cálculo de
la hora, descartando momentáneamente los demás.
# ntptrace -n
127.0.0.1: stratum 3, offset 0.000038, synch distance 0.18706
217.127.249.18: stratum 2, offset -0.006845, synch distance 0.09442
193.79.237.14: stratum 1, offset -0.006269, synch distance 0.00000, refid 'GPS'
Solución de problemas
Solución de problemas
Solución de problemas
Existen diversas clases de problemas con los que se puede encontrar al trabajar
con configuración de dispositivos y servicios de red. Estas son algunas
recomendaciones a tener en cuenta para diagnosticar problemas de red: