lunes, 26 de abril de 2010

Instalación de Ubuntu en Virtual Box

Primera entrega de la serie administración de servidores con Linux:

1.- Instalación de las máquinas virtuales Cliente y Servidor.

Para la realización de la práctica, en primer lugar, he instalado el cliente y el servidor, a partir de las imágenes de la versión 8.10 de Ubuntu que previamente he bajado del servidor FTP del curso.

Podemos emplear las opciones de instalación por defecto que nos crearán incluso las particiones básicas, aunque en un entorno real -al menos para el servidor- deberíamos crear particiones distintas, al menos para: /home (ficheros de los usuarios), /var ( páginas web y logs del sistema) , /boot (arranque), / (raíz del sistema) y /swap (intercambio).

En mi caso, tras realizar la instalación, la máquina servidor no arrancaba y me daba un fallo advirtiéndome de que el servidor requería PAE -"Physical Address Extension"- (al habilitarlo, si el sistema operativo lo soporta, incluso un sistema x86 de 32 bits puede direccionar más de 4 GB de RAM), supongo que debido a la RAM o al sistema operativo del sistema anfitrión. Para solucionarlo, simplemente habilitamos PAE en las opciones de configuración de VirtualBox:

image Aunque una gran cantidad de administradores de red prefieren trabajar en modo consola exclusivamente, aunque también empleen opciones “gráficas” de configuración de los servidores como Webmin (conocido entorno web empleado para configurar y mantener servidores); yo prefiero, siempre que no existan problemas de limitaciones hardware, tener la posibilidad de instalar una interfaz gráfica básica que me dé: la posibilidad de trabajar con varias consolas viéndolas de modo simultáneo, un editor gráfico de texto sencillo como notepad, incluso la posibilidad de realizar consultas web con un cliente tipo firefox sin tener que recurrir a un navegador web modo texto como links o Lynx. Por ello he instalado un entorno gráfico básico basado en Gnome, para ello:


sudo apt-get install x-window-system-core gnome-core

Posteriormente he instalado las librerías para el idioma castellano y gksu para los menús:

sudo apt-get install language-pack-es, language-pack-es-base, language-pack-gnome-es, language-pack-gnome-es-base, language-selector, language-support-es, gksu

Para arrancar el modo gráfico lo único que tenemos que hacer una vez iniciada la sesión es teclear: startx.

Si queremos cambiar las resolución de la pantalla y movernos entre VirtualBox y la máquina física, mover ficheros,... debemos instalar las “Guest Additions” de VirtualBox; en el caso del servidor debemos instalar el compilador y make GNU, para ello: sudo apt-get build-essential que además nos instalará una serie de librerías básicas a la hora de compilar proyectos.

Una vez tenemos un compilador básico en el sistema, para realizar la instalación, lo único que tenemos que hacer es seleccionar en el menú “Instalar Guest Additions”, esto montará un cd en el sistema con los ficheros que necesitamos, la manera más sencilla de proceder será:

cd /cdrom

sudo ./autorun.sh

Finalmente y ya que vamos a instalar un servidor debemos asignarle una dirección IP fija al interfaz de red que previamente habremos configurado como Host Only (yo he agregado también un segundo interfaz que he configurado como NAT para tener acceso a Internet con el objetivo de poder bajar aquellos paquetes actualizados que vaya necesitando). Para configurar la red tenemos dos opciones:

  • Mediante el comando ifconfig, por ejemplo: ifconfig eth0 192.168.2.3 netmask 255.255.255.0

  • Editando el fichero /etc/network/interfaces y asignando los valores correspondientes. Una vez hemos insertado los datos debemos recargar los valores con sudo /etc/init.d/networking restart:

image

 

para continuar viendo el resto de manuales Linux siga el enlace:administración de servidores con Linux


Administración de Servidores Linux

Estos días iré subiendo al blog manuales de instalación y configuración de servicios y servidores que corren bajo Windows, a diferencia de los manuales que podéis ver en el enlace y que son copias con ligeras modificaciones, de los manuales del CNICE, estos son materiales elaborados por mi para una asignatura e incluyen –a diferencia de los anteriores- la instalación, configuración y la integración de los servicios con LDAP y en muchos casos encriptación (openssh). Os adelanto un índice general de los servicios:
2.- Servidor DHCP y DNS

6.- Servidor de Correo integrado con LDAP en Ubuntu: Courier + Postfix + LDAP,
6.1 .-Script para la creación automática de los directorios de los usuarios de correo.
6.2 .-Fichero /etc/postfix/main.cf completo antes de encriptación, smtp-auth
6.3 .-Squirrelmail: consulta del correo vía web
6.4 .-Postfix sobre internet, SMTP Autenticado
4.1 Configurando Postifx
4.2 Creación de certificados y configuración de Postfix para su uso
4.3 Autenticación con SASL
4.4 Comprobación del funcionamiento de SMTP-AUTH y TLS
4.5 Configuración y prueba sobre Evolution
6.1 Instalación de ClamSMTP y ClamAV
6.2 Configuración de Postfix para que use ClamSMTP
6.3 Comprobando ClamSMTP
9.1 /etc/postfix/main.cf
9.2 /etc/init.d/master.cf

miércoles, 21 de abril de 2010

Animación del casco histórico de Orense en 3d


Este jueves 22 a las 16:00 Eduardo J. Álvarez presenta en la Escuela de Informática de Orense su proyecto de fin de carrera. Parte del resultado del mismo lo podéis ver en la animación, una recreación en tres dimensiones del casco antiguo de Orense.

Para poder ver los edificios en tres dimensiones reales es necesario un monitor autoestereoscópico -de esos en los que podemos ver las imágenes en 3d sin necesidad de gafas- ya que el proeycto ha sido desarrollado pensando en ello; pero para hacernos una idea del resultado podemos ver el vídeo, sin lugar a dudas la mejor recreación por ordenador de edificios de Orense que he visto hasta el momento -han sido unas cuantas, participando "activamente" en algunas de ellas- tanto por la extensión del modelo -es impresionante el número de edificios- como por la calidad del mismo y especialmente por la iluminación, ...utilización de luces y sombras hay para parar un carro.

Enlaces relacionados:
Ourense 3d

viernes, 16 de abril de 2010

Nivel de transporte

Copio este artículo de la página del IES San Clemente

Contenido

Introdución


No nivel de enlace os datos envíanse entre equipos dentro da mesma LAN, conectados por un switch fisicamente. No nivel de rede os datos envíanse a través de distintas redes conectadas físicamente mediante routers. No nivel de transporte hai unha conexión directa entre os dous extremos que interveñen na comunicación pero é unhaconexión lóxica.

Por conexión lóxica entendemos que hai unha comunicación directa entre os programas ou equipos que interveñen na comunicación, independentemente da rede onde se atopen pero non existe conexión física directa entre eles. Existe, polo tanto, un circuíto virtual entre o emisor e receptor. A capa de transporte proporciona comunicación lóxica extremo a extremo, no canto de comunicación física. O nivel de transporte non é consciente, nin debe selo, de como están interconectados fisicamente os dous equipos (por unha LAN, unha WAN ou unha combinación de múltiples redes de ambos tipos). Que a comunicación sexa extremo a extremo quere dicir que non se coñecen os detalles da subrede, polo tanto, o nivel de transporte non sabe nada de routers, fragmentación, switches, hubs, etc.

Servizos orientados a conexión

Xeralmente as aplicacións requiren que o nivel de transporte lles garanta a entrega dos datos ao destinatario, sen erros, perdas, nin duplicados. Para que isto sexa posible o nivel de transporte pode ofrecer un servizo orientado a conexión, con retransmisións en caso necesario. Este é o caso do protocolo TCP (Transport Control Protocol), utilizado en moitas aplicacións (FTP, SMTP, HTTP...).

Noutros casos as aplicacións confórmanse (ou ata prefiren) un servizo menos fiable no que os datos se envían sen pedir confirmación, de forma independente uns doutros (como fai o IP cos paquetes). Este tipo de servizo ofréceo un protocolo non orientado a conexión que é UDP (User Datagram Protocol). UDP úsase, por exemplo, nas aplicacións en tempo real, onde non se quere incorrer no retardo propio dun protocolo orientado a conexión.

Portos

En TCP/IP defínense dúas direccións que permiten a relación cos niveis superiores e inferiores:

  • A dirección IP, que xa coñecemos
  • O número de porto, que identifica a aplicación que require a comunicación

Os portos son os enderezos do nivel de transporte. Cada porto está asociado a unha aplicación. Pódense asignar de dous xeitos dependendo de se falamos da aplicación cliente ou da aplicación servidor:

  • Aplicación cliente: cando se abre unha aplicación, por exemplo un navegador web, cliente ftp, etc. o sistema operativo asígnalle un porto dos que teña libres.
  • Aplicación servidor: as aplicacións servidor están sempre escoitando nun porto chamado ben coñecido (well known port). Este porto configúrase manualmente. Un porto ben coñecido é como un número de teléfono no que sabemos que existe un servizo determinado, por exemplo, 091 é a policía, 112 son emerxencias, etc.

Toda conexión TCP idéntificase polo par (IP_orixe, Porto_orixe)-(IP_destino, Porto_destino). Vexamos o seguinte exemplo:

Un usuario con IP 194.145.10.5 fai dobre clic sobre o navegador web. Nese intre o sistema operativo asígnalle un porto a esa aplicación (1500). O servidor ten, por exemplo, a IP 200.50.100.45. A aplicación cliente sabe en que porto está escoitando o servidor as peticións (neste caso no 80, xa que é o servizo Web). Se a aplicación servidor está escoitando nun porto distinto ao que lle corresponde, o usuario debe expresar cal é ese porto, por exemplo, o 81. A conexión TCP anterior identifícase polo par (194.145.10.5, 1500) - (200.50.100.45, 80).

As conexión TCP son full dúplex, é dicir, a información envíase en ambos sentidos por canais independentes. Isto fai que os números de porto se invirtan, dependendo de quen sexa o emisor ou o receptor, tal e como podemos ver na seguinte figura:

No seguinte gráfico podemos ver dous clientes usando o mesmo porto de destino (80) para comunicarse co mesmo servidor Web.

A Unidade de Datos do Protocolo (PDU)

O conxunto de bytes que transmite o nivel de transporte TCP coñécese como segmento TCP, mentres que ao conxunto de bytes que transmite o protocolo de transporte UDP chámase datagrama UDP. Ambos son PDU (Protocol Data Unit) do nivel de transporte en TCP/IP.

O UDP (User Datagram Protocol)

Vimos que TCP ten a robustez e funcionalidades propias dun protocolo orientado a conexión o cal conleva unha certa complexidade. O UDP, que está definido no RFC 768, é o protocolo da capa de transporte non orientado a conexión. Xa que logo, non garante que os datos se entreguen en orde (nin sequera que se entreguen, xa que non existen asentementos ou ACK), nin que a conexión se recupere de erros. En consecuencia, é máis rápido que TCP pero tamén máis inseguro.

Por que UDP

As aplicacións que non requiren unha fiabilidade total e non poden tolerar o retardo producido pola complexidade de TCP usan UDP. Algúns exemplos deste tipo de aplicacións son:

  • Transmisión de vídeo ou audio en tempo real
  • Aplicacións que requiren o envío dunha ou dúas mensaxes unicamente
  • Sincronización de reloxos (NTP)
  • Consultas ao servidor de nomes (DNS)
  • Mensaxes de xestión da rede (SNMP)
  • Obtención dinámica de dirección IP (DHCP)

Tamén usan UDP as aplicacións interesadas en transmitir información en modo multicast ou broadcast, é dicir, a un grupo de usuarios ou a todos os usuarios da rede, respectivamente. Isto só é posible cun protocolo non orientado a conexión, xa que pola súa propia natureza os protocolos orientados a conexión son punto a punto (en TCP non é posible establecer conexións multipunto).

A PDU de UDP

A Unidade de Datos do Protocolo no UDP é moi simple e os seus campos son os que se ven na seguinte táboa:

O significado dos campos é o seguinte:

  • Porto orixe: especifica o porto da aplicación que xera o datagrama. Este valerá normalmente cero, salvo que a aplicación solicite unha resposta.
  • Porto destino: especifica o porto da aplicación á que vai dirixido o datagrama.
  • Lonxitude: indica a lonxitude do datagrama, incluíndo os campos de cabeceira.
  • Checksum: é opcional, como en IPv4. Cando UDP recibe un datagrama e determina que hai erros, descártao e non o entrega a ningunha aplicación sen avisar ao emisor.
  • Datos: contén os datos a transmitir. Un datagrama UDP vai encapsulado nun datagrama IP, o cal fixa a lonxitude máxima deste campo.

O TCP (Transport Control Protocol)

UDP non garante a entrega de información que lle proporciona unha aplicación. Tampouco reordena a información no caso de que chegue nunha orde diferente daquela en que se transmitiu. Todo o contrario que o TCP, especificado na RFC 793, que proporciona fiabilidade á aplicación xa que garante a entrega de toda a información no mesmo orde en que foi transmitida e proporciona un servizo orientado a conexión con control de fluxo e erros, ta e como veremos a continuación.

Funcións

Entre as funcións encargadas a TCP están as seguintes:

  • Transmisión libre de erros: entrega á aplicación de destino exactamente a mesma información que lle entregou a aplicación de orixe
  • Garante de entrega da información: toda a información transmitida pola aplicación de orixe entrégase á aplicación de destino. Se non é posible, o TCP debe avisar á aplicación.
  • Garante de mantemento da secuencia de transmisión: garante a entrega no mesmo orde en que lle foi entregado pola aplicación de orixe.
  • Eliminación de duplicados: o TCP garante que só entregará unha copia da información transmitida á aplicación de destino. No caso de que reciba copias a causa do funcionamento da rede ou dos protocolos que se implementan por baixo do nivel de transporte, eliminaranse.

Características

Entre as principais características deste protocolo están as seguintes:

  • Orientado a conexión: para realizar unha comunicación entre dous puntos extremos, séguense tres pasos:
  1. Establecer a conexión (o cliente indícalle ao servidor que quere comunicarse con el)
  2. Unha vez establecida a conexión realízase o intercambio de información
  3. Finalizado o intercambio, libérase a conexión
  • Orientado a fluxos de bytes (stream oriented): as aplicacións non teñen ningún modo de indicar ao TCP os límites en que queren transferir a información. É o TCP o que decide en cada momento cantos bytes transfire nun segmento. Para transmitir eses fluxos usa buffers de envío e recepción, tamén coñecidos como ventás de recepción. Se a aplicación xera un byte o TCP pode esperar que a memoria intermedia (o buffer) estea máis chea antes de transferir a información. Se xera fluxos de gran tamaño transfírea de inmediato (mecanismo push).
  • Ten un tamaño máximo de segmento: o MSS (Maximun Segment Size) é o tamaño do campo de datos do segmento que se especifica durante o establecemento da conexión. Polo tanto, o MSS no inclúe as lonxitudes das cabeceiras IP e TCP (MSS = MTU – 20 – 20). Cada extremo especifica un MSS pero non existe unha negociación entre os extremos. Se son distintos escollerase o menor. O feito de elixir o MSS non é trivial. En xeral, canto maior sexa o MSS, mellor, posto que as cabeceiras IP e TCP se “amortizan” máis. Con todo, se a MTU é pequena, será preciso fragmentar o datagrama IP (é dicir, o segmento TCP). Xa que logo, por norma xeral non interesa elixir MSS maiores que a MTU.
  • Usa asentimentos: Son acuses de recibo, é dicir, segmentos que envía o receptor ao emisor para informalo de se recibiu correctamente o que o emisor enviou. A estes asentementos chámaselles ACK, do inglés acknowledgement. Contempla a técnica de piggybakcing que permite incluír ACK nun segmento de datos, co correspondente aforro fronte ao envío de segmentos específicos de recoñecemento.
  • O TCP utiliza unha conexión full dúplex: xa o comentamos. A transferencia de información é en ambos sentidos. A aplicación ve dous fluxos independentes de bytes. No caso de que a aplicación peche un dos fluxos, a conexión pasa a ser half dúplex. Iso significa que un dos extremos (o que non pechou a conexión) pode continuar enviando información pola canle, mentres que o outro extremo (o que pechou a conexión) limítase a recoñecer a información.

A PDU de TCP

Xa vimos que á Unidade de Datos do Protocolo TCP chámaselle segmento e o seu formato é o seguinte:

Os seus campos teñen o seguinte significado:

  • Porto orixe e porto destino: identifican os portos que van a utilizar en cada equipo as aplicacións.
  • Número de secuencia: indica o primeiro byte do campo datos dese segmento. En TCP numéranse os bytes non os segmentos, xa que é un protocolo orientado a fluxos de bytes.
  • Número de ACK: TCP recoñece datos por medio de piggybacking. Ao activar un bit da cabeceira TCP (o bit ACK), indica ao outro extremo o próximo byte que está disposto a recibir, tal e como podemos ver no seguinte exemplo:

Na figura anterior vese como o host A envía un segmento co número de secuencia 42. O host B resposta cun segmento de datos que ten o bit ACK activado. O número de ACK é 43, é dicir, Número de secuencia +1, xa que logo "recoñece" o segmento anterior ou o que é o mesmo, indícalle ao host A que recibiu correctamente o segmento 42 e espera recibir o 43. Por último, o host A envía o segmento 43 co bit ACK activado e número de ACK = 80, polo que tamén recoñece o semento enviado polo host B.

  • Lonxitude de cabeceira TCP: especifica a lonxitude en palabras de 32 bits, excluído o campo datos (o campo opcións fai que dita lonxitude poida variar).

A continuación hai 6 bits non utilizados, seguidos por outros 6 bits indicadores que se están activados (a 1) teñen un significado específico, que é o seguinte:

  • Bit URG (urgent): serve para indicar que o segmento contén datos urxentes. Utilízase en aplicacións como telnet e rlogin cando se pulsa a tecla de interrupción, ou no FTP cando se aborta a transferencia dun ficheiro.
  • Bit ACK (acknowledgement): indica que é un segmento ACK.
  • PSH (push): indica que se lle entreguen á aplicación todos os datos que estean na memoria intermedia de recepción (no buffer), sen esperar a recibir un segmento de tamaño máximo.
  • RST (reset): indica que se debe abortar unha conexión porque se detectou un erro de calquera tipo; por exemplo que se recibiu un segmento cun valor inadecuado do número de secuencia ou número de ACK.
  • SYN (synchronize): este bit indica que se está establecendo a conexión. Está activado só no primeiro segmento enviado por cada un dos dous equipos no inicio da conexión.
  • FIN (finish): indica que non se teñen máis datos que enviar e que se quere pechar a conexión.

Os seguintes campos da PDU de TCP son:

  • Tamaño de ventá: indica a cantidade de bytes que se está disposto a aceptar do outro lado en cada momento. Suponse que se garante unha cantidade suficiente de espazo nos buffers. Mediante este parámetro o receptor establece un control de fluxo sobre o caudal de datos que pode enviar o emisor. Cada extremo terá a súa ventá de recepción.
  • Checksum: utilízase para detectar erros.
  • O campo Urgent pointer: ten sentido cando o bit de control URG está activo polo que os datos que envía a orixe son urxentes. Así, este campo identifica o último byte do campo de datos que é urxente.
  • Opcións: permite engadir funcionalidades extras ao protocolo.

Establecemento da conexión

Para establecer unha conexión o TCP utiliza un mecanismo coñecido como three-way handshake, ou conexión a tres bandas, porque necesita tres segmentos TCP para poder establecer dita conexión. Inicialmente o servidor está nun estado de escoita, chamado listen. O cliente quere establecer unha conexión co servidor polo que o TCP da máquina cliente iniciará a petición de conexión, que será contestada polo TCP da máquina servidor. O intercambio de segmentos podemos velo no seguinte gráfico:

  • Paso 1: petición de conexión. O TCP cliente envía unha petición de conexión ao servidor mediante un segmento SYN (ten o bit SYN da cabeceira activado). Especifica tamén nese segmento o ISN ou Número de Secuencia Inicial para empezar a numerar os bytes que se enviarán, así como outros parámetros como o MSS. O ISN escóllese ao chou.
  • Paso 2: confirmación de conexión. O servidor responde á petición de establecemento da conexión cun segmento SYN que indica o número de secuencia inicial que utilizará el. Este segmento contén un recoñecemento (ACK) do segmento SYN do cliente que indica o ISN do cliente máis 1. TCP numera os ACK co número de secuencia do próximo byte que espera recibir, tal e como xa se comentou anteriormente.
  • Paso 3: recoñecemento da conexión. O cliente recoñece o segmento SYN do servidor cun ACK que contén o ISN do servidor máis 1, establecendo nese momento a conexión lóxica entre o cliente e o servidor.

Quen envía o primeiro segmento SYN (neste caso, o cliente) efectúa unha apertura activa (active open). Quen recibe o primeiro segmento SYN e envía o seguinte segmento SYN (neste caso, o servidor) leva a cabo unha apertura pasiva (passive open)

Peche da conexión

Cando a transferencia de datos remata, TCP dispón dun mecanismo de finalización da conexión para pechala. Unha conexión TCP é full dúplex, os datos flúen en ambos sentidos, independentes o un do outro, polo que calquera conexión debe pecharse independentemente. O intercambio de segmentos para o peche dunha conexión TCP podémolo ver na seguinte figura:

  1. Paso 1: peche da conexión nun sentido. O cliente envía un segmento TCP co bit FIN activado o que significa que non haberá máis datos dende o cliente ao servidor, nese sentido (cliente->servidor). O servidor envía unha confirmación de peche por medio dun segmento ACK. O TCP servidor indica á súa aplicación que o cliente pecha a conexión.
  2. Paso 2: peche da conexión no outro sentido. O servidor envía un segmento TCP de tipo FIN ao cliente. O TCP cliente responde automaticamente cun ACK.

Quen envía o primeiro segmento FIN (neste caso o cliente) leva a cabo un peche activo (active close). Quen o recibe (neste caso o servidor) realiza un peche pasivo (passive close).


Transferencia de datos

Unha vez establecida a conexión o TCP pode empezar a transferencia de segmentos en ambos os dous sentidos. Para transmitir información de xeito fiable, TCP implementa protocolos de control de erros e de fluxo.

Cando o TCP envía datos mantén un temporizador (timeout) ata que recibe un ACK do receptor. Se o temporizador salta, o TCP retransmite os datos (técnica de envío - espera). Cando o TCP recibe un segmento de datos envía un recoñecemento. Este último pódese retornar atrasado (non de inmediato) se o TCP o considera necesario.

Se un segmento recibido é incorrecto (o checksum indícao), o TCP descártao e devolve un segmento co mesmo número de ACK que recoñecera a última vez (ACK duplicado). O transmisor verá un ACK cun número repetido e interpretará que non lle recoñecen a información e, xa que logo, terá que volver a enviala.

No caso de que non tivese datos para enviar en sentido contrario, o TCP pode enviar un segmento que non conteña datos. Este segmento tería o indicador ACK activado e recoñecería os bytes pertinentes no campo Número de ACK. O número de secuencia non se incrementaría, posto que non se envían datos.

Se os segmentos chegan desordenados o TCP reordénaos e pasa os datos correctamente ordenados á aplicación. Se recibe segmentos duplicados, o TCP descarta as copias.

TCP posúe unha memoria limitada polo que é necesario que efectúe un control de fluxo: cada extremo avisa dos datos que está disposto a recibir en cada momento utilizando o campo Tamaño da Ventá da cabeceira TCP visto anteriormente. Trátase dun mecanismo de ventá deslizante.

Na seguinte figura vemos un escenario interesante dende o punto de vista da transferencia da información, no que se reflicte unha retransmisión debida a unha perda de segmento.

Outro escenario interesante é o da seguinte figura na que se amosa o caso dun ACK duplicado.

Ambos escenarios usan ACK acumulativos, é dicir, un único segmento ACK pode recoñecer varios segmentos de golpe.

Control de fluxo

As memorias intermedias de recepción dos extremos TCP pódense encher, xa que logo, é necesario un protocolo de ventá deslizante (sliding window) para controlar o fluxo de datos. A idea é que cada extremo TCP regula a cantidade de datos que o outro extremo pode transmitir. Por iso, cada extremo notifica ao outro, cada vez que envía un segmento, a ventá que pode aceptar nese momento.

A cabeceira do segmento TCP especifica tres parámetros para a técnica de ventá deslizante:

  • O número de secuencia, que indica á súa conexión oposta o primeiro byte de datos que contén o segmento transmitido.
  • O número de ACK, que indica á súa conexión oposta o próximo byte que espera recibir e, xa que logo, o último byte recibido correctamente.
  • O tamaño da ventá, que indica á súa conexión oposta o tamaño da memoria intermedia de recepción e, xa que logo, o tamaño da fiestra que o transmisor debe utilizar.

O protocolo de ventá deslizante consiste en establecer límite no números de bloques de información que o emisor pode enviar sen recibir acuse de recibo deles. O tamaño da ventá deslizante en TCP mídese en bytes, isto é, cantos bytes se van poder enviar sen estar pendente do acuse de recibo.



lunes, 12 de abril de 2010

Los 10 visionarios de la seguridad

ChannelWeb ha publicado la lista de los que ellos consideran a los 10 visionarios de la seguridad de la información. Ellos son:
  • Steve Bellovin: Researcher, Author Of Firewalls and Internet Security: Repelling the Wily Hacker
  • Bill Cheswick: Lead Member, AT&T Technical Staff
  • Dorothy Denning: Cryptography And Network Security Pioneer, Professor of Defense Analysis, Naval Post-graduate School
  • Whitfield Diffie: Vice President, Sun Fellow, Chief Security Officer, Sun Microsystems
  • Dan Geer: Vice President, Chief Scientist Emeritus, Verdasys; CISO In-Q-Tel
  • Peter G. Neumann: Principal Scientist, Computer Science Lab, SRI International
  • Marcus Ranum: CSO, Tenable Security; Author Of First Commercialized Firewall Proxy
  • SANS Institute: Stephen Northcutt, CEO; Alan Paller, Director Of Research; Marcus Sachs, SANS Internet Storm Center Director
  • Bruce Schneier: CTO, Founder Of BT Counterpane, Author Of Beyond Fear: Thinking Sensibly About Security in an Uncertain World
  • Eugene Spafford: Founder Of Purdue’s Center for Education and Research in Information Assurance And Security
Fuente:
 ChannelWeb
seguridadinformatica.info

domingo, 11 de abril de 2010

Servidor de Correo en Windows Server

Servidor de Correo en Windows 2003

Aunque podemos emplear programas externos para realizar las tareas de envío y recepción de mensajes de correo electrónico, Windows 2003 incluye un “Servidor de Correo (POP3 y SMTP)” que sirve para proporcionar a los usuarios el envío y la recepción de correo electrónico. Esos servicios incluyen el servicio Protocolo de oficina de correo 3 (POP3) y el servicio Protocolo simple de transferencia de correo (SMTP), que recuperan y transfieren correo electrónico, respectivamente.

Instalación del Servidor de Correo

Podemos realizar la instalación de modo Manual o directamente desde el asistente.

Para hacerlo de modo manual:

  • Pulsamos Inicio → Panel de Control → Agregar o quitar programas → Componentes de Windowsimage

  • Activar la casilla de verificación Servicios de correo electrónico, hacer clic en Siguiente y completamos el asistente.


Desde el asistente:

  1. Pulsamos Inicio → Herramientas Administrativas → Administre su Servidor → Agregar o Quitar Componentes → Servidor de Correo (POP3, SMTP) y pulsamos siguiente.image

  2. Escogemos el método de Autenticación (en este caso Integrado en Active Directory para poder emplear las cuentas de los usuarios del dominio) y el nombre del dominio que vamos a configurar.image

  3. Vemos el cuadro resumen y pulsamos Siguiente.

Con estos pasos habremos finalizado la instalación de los servidores SMTP -para envío de los correos- y del servidor POP3 para el reparto de los correos recibidos entre los usuarios. En los siguientes puntos mostraré como configurar ambos servicios y un cliente para conectarnos a ellos de modo que se puedan enviar y recibir correos electrónicos.

Configuración del servidor SMTP

Iniciamos el Administrador de Internet Information Services -bien desde Herramientas Administrativas o bien Inicio → Ejecutar y tecleamos “inetmgr”- expandimos y pulsamos con el botón derecho sobre Servidor virtual de SMTP predeterminado.image

Como podemos apreciar en la imagen superior se puede configurar desde las siguientes pestañas:

1.- General: podemos configurar la IP que escuchará por defecto todas y el puerto (pulsando en avanzadas 25 por defecto). También podemos definir el número máximo de conexiones simultáneas que vamos a permitir, el tiempo de espera y si vamos a registrar la actividad del servidor (envíos, ips,...)

2.- Acceso: desde esta pestaña podremos configurar una serie de opciones que modificarán los aspectos relativos a la seguridad de nuestro servidor:

  • Control de acceso: por defecto permite a los usuarios el acceso anónimo, pero podemos obligar a los usuarios a autentificarse en el dominio y/o usando -más que recomendable- encriptación TLS.

  • Comunicación segura: inicia un asistente que igual que el de los servicios Web nos ayuda a generar e instalar el servicio empleando certificados.

  • Control de conexión: podemos seleccionar que equipo/s o dominios tendrán acceso a nuestro servidor.

  • Restricciones de retransmisión: permite seleccionar equipos a los que se reenviarán los correos ya sean de una Intranet o de Internet. Su importancia radica en que si permitimos retransmisiones y accesos anónimos cualquier usuario desde Internet podría emplear nuestro equipo para reenvío de spam

3.- Mensajes: para evitar abusos en el uso del servicio de envío de correo, desde esta pestaña podremos limitar: el tamaño máximo del mensaje y de la sesión, el número de mensajes por conexión y el número máximo de destinatarios a los que se puede enviar un correo.

Cuando hay un error en el envío de un correo (por ejemplo la dirección es incorrecta) se le notifica al usuario, aquí podremos configurar una dirección de correo a dónde enviar una copia de este mensaje. También podremos configurar en qué directorio almacenaremos estos mensajes, c:\Inetpub\mailroot\badmail por defecto.

4.- Entrega: nos permite configurar cómo se realizará las entregas entrantes y salientes del servidor SMTP, podemos configurar tiempos y número de retransmisiones en caso de error, notificaciones,...

Por otra parte si nuestro servidor debe reenviar el correo a un servidor externo podemos configurar cómo se deberá hacer (si permite conexiones anónimos, require autenticación, cifrado...) desde el botón Seguridad Saliente; el número de conexiones, tiempo de espera y puerto destino desde Conexiones Salientes o el número máximo de saltos y dominio desde el botón Avanzada.

5.- Enrutamiento LDAP: desde aquí podemos configurar el servicio SMTP de manera que se realicen consultas a un servidor LDAP para resolver los emisores y destinatarios de los mensajes.

6.- Seguridad: desde aquí podemos añadir usuarios en los que delegar el control y administración del servidor SMTP.

Configuración del servidor POP3

Al instalar y configurar el servidor de correo SMTP podremos enviar correos a otros servidores, pero además necesitamos organizar los correos entrantes y ordenarlos en los buzones de los usuarios que hayamos dado de alta, con la finalidad de que cuando el usuario lo requiera le sean remitidos los correos recibidos a su nombre, de esto es de lo que se encargará nuestro servidor POP3.

Para acceder a su configuración podremos hacerlo desde Herramientas Administrativas → Servicio POP3 o bien Inicio → Ejecutar y tecleamos p3server.msc. Pulsando con el botón derecho sobre nuestro servidor y seleccionando Propiedades, accederemos a la configuración del mismo.image

Desde aquí podemos ver el método de autenticación que hemos seleccionado en la instalación, el puerto en el que escuchará el servidor -por defecto 110 para el servicio pop3- y el nivel de registro.

Podemos seleccionar también los directorios dónde se almacenarán los correos entrantes, por defecto Inetpub\mailroot\mailbox, dentro de éste se creará un subdirectorio por cada dominio que creemos en nuestro servidor, y , a su vez, dentro de cada uno de ellos uno por usuario dado de alta.

Las dos últimas opciones son requerir la autenticación de contraseña segura (SPA) -recomendable su selección- que hace que las comunicaciones de usuario y contraseña entre servidor y cliente pop se encripten. En caso de habilitarla, debemos reinicar el servidor pop3. Finalmente la última casilla nos facilita la creación de usuarios en el dominio directamente para cada buzón que creemos.

Creación de e-mail y buzón de correo.

Para que los usuarios de un dominio puedan recibir sus correos electrónicos debemos crear previamente un buzón asignado a ellos mismos. Para ello:

  1. Seleccionamos desde Herramientas Administrativas → Servicio Pop3 y pulsamos el dominio al que queramos añadir buzones, en mi caso mczones.es.

  2. Pulsamos Agregar buzón

  3. Introducimos el nombre del buzón y en el caso de no existir ese usuario en el dominio, podemos crearlo y asignarle una contraseña desde esta misma pestaña.image

  4. En el caso de ya existir -como c1 y c2- debemos desmarcar la casilla “crear un usuario asociado...”

Configuración del cliente Outlook Express

Al iniciarlo por primera vez se ejecutará el asistente para configurarlo, que nos pedirá los siguientes datos.

  • Nombre para mostrar (será el nombre que les aparecerá a los destinatarios cuando enviemos un correo), en mi caso Juan Nieto.

  • Dirección de correo electrónico: la que hemos creado previamente, en mi caso juan@mczones.es

  • Tipo de servidor entrante (pop3) y dirección del servidor entrante (POP3): pop3.mczones.es y servidor saliente (SMTP): smtp.mczones.es. Para ello he creado en el servidor de DNS previamente dos alias llamados pop3 y smtp que apuntan al servidor.

  • Inicio de sesión del correo: me pide nombre de usuario -juan- y contraseña -juan-, activo la casilla de verificación de encriptación SPA ya que he habilitado la contraseña segura mediante SPA en el servidor pop3. También creo otra cuenta para el usuario c1 con el fin de probar el envío de mensajes entre c1 y juan.image

Una vez hecho todo esto podemos probar a enviar mensajes entre los distintos usuarios:image

Directorios

Si realizamos una instalación por defecto, el asistente nos creará los siguientes subdirectorios dentro del directorio c:\Inetpub\mailroot - en otro caso dentro del directorio que hayamos especificado-, en dónde almacenará:

  • Badmail: mensajes entrantes con errores que no se pueden entregar

  • Drop: mensajes sin errores pero que no se pueden entregar

  • Pickup: los mensajes entrantes hasta que se envían a destino o a Drop

  • Queue: los mensajes cuando no pueden ser entregados inmediatamente por problemas de red.

  • Route, sorttemp y mailbox: almacén que se emplea para clasificar temporalmente los mensajes salientes por cuestiones de eficiencia.

En cuanto a los ficheros de configuración serán los especificados para IIS en las actividades anteriores:

Windows\Help\iisHelp: ayuda de IIS

Windows\system32\inetsrv: archivos del sistema IIS

WINDOWS\system32\inetsrv\History: copia de seguridad, de los ficheros de configuración de nuestro IIS (metabase.xml y MBSchema.xml).

Windows\system32\Inetsrv\MetaBack: se crea automáticamente una copia del fichero de configuración de la metabase.

\Windows\system32\inetsrv\MetaBase.xml y MBSchema: ficheros dónde se almacena la configuración de todos los servidores y configuraciones instaladas bajo IIS.

 

Para ver el resto de manuales de servidores windows pulsar el enlace.