Cap�tulo 22. NNTP y elDemonio nntpd

Tabla de contenidos
22.1. El Protocolo NNTP
22.2. Instalar el servidor NNTP
22.3. Restringir el acceso con NNTP
22.4. Autorizaci�n NNTP
22.5. Interacci�n de nntpd con C News

El Protocolo para la Transferencia de Noticias en Red (NNTP) ofrece un acercamiento al intercambio de noticias muy diferente al de C News y al de otros nuevos servidores sin soporte nativo para NNTP. Antes que confiar en una tecnolog�a por lotes como UUCP para transferir los art�culos entre m�quinas, permite intercambiar los art�culos mediante una conexi�n de red interactiva. NNTP no es un paquete de software en particular, sino un est�ndar de Internet descrito en el RFC-977. Est� basado en conexiones continuas, normalmente sobre TCP, entre un cliente en cualquier parte de una red y un servidor en una m�quina que almacena las noticias en disco. Una conexi�n de este tipo permite que cliente y servidor negocien de manera interactiva la transferencia de art�culos sin apenas retrasos manteniendo al mismo tiempo el n�mero de art�culos duplicados muy bajo. Junto con las altas tasas de transferencia de Internet, esto conforma una nueva manera de transportar noticias que supera con creces a las redes UUCP originales. Mientras hace algunos a�os no era extra�o que un art�culo tardase dos semanas o m�s en llegar al �ltimo rinc�n de Usenet; ahora lo hace a menudo en menos de dos d�as. En cuanto a Internet en s�, eso implica un plazo de apenas unos minutos.

Varias �rdenes permiten a los clientes descargar, enviar y publicar art�culos. La diferencia entre enviar y publicar es que lo �ltimo puede afectar a art�culos con informaci�n incompleta en las cabeceras; esto significa generalmente que el usuario acaba de escribir el art�culo. [1] La descarga de art�culos pueden llevarla a cabo tanto los clientes de transferencia de noticias como los lectores de noticias. Esto hace de NNTP una excelente herramienta para dotar de acceso a las noticias a muchos clientes de una red local sin tener que pasar por las complicaciones de usar NFS.

NNTP tambi�n proporciona un m�todo activo y otro pasivo de transferir noticias, conocidos coloquialmente como “empujar”(pushing) y “tirar”(pulling). Pushing es b�sicamente lo mismo que el protocolo ihave/sendme que usa C News (descrito en Cap�tulo 21). El cliente ofrece un art�culo al servidor mediante la orden IHAVE msgid, y el servidor devuelve un c�digo de respuesta que indica si quiere el art�culo o si ya lo tiene. Si el servidor quiere el art�culo, el cliente se lo env�a haci�ndolo acabar con un punto en una l�nea aparte.

Empujar noticias tiene la �nica desventaja que supone una gran carga para el sistema servidor, al tener �ste que buscar en la base de datos de su historial cada art�culo de manera individual.

La t�cnica opuesta es seleccionar noticias, en la que el cliente solicita una lista con todos los art�culos (disponibles) de un grupo que hayan llegado tras una fecha especificada. Esta petici�n la realiza la orden NEWNEWS. De los IDs de los mensajes de la lista devuelta, el cliente elige aquellos art�culos que a�n no tenga usando la orden ARTICLE para cada uno de ellos.

Seleccionar noticias necesita de un estricto control por parte del servidor en lo que se refiere a qu� grupos y distribuciones se permite solicitar a un cliente. Por ejemplo, tiene que asegurarse de no enviar material confidencial de un grupo de noticias local a clientes no autorizados.

Hay algunas �rdenes convenientes para los lectores de noticias que les permiten descargar las cabeceras y los cuerpos de los art�culos de manera separada, o incluso l�neas sueltas de las cabeceras de un determinado rango de art�culos. Esto le permite mantener todas las noticias en una m�quina central, con todos los usuarios de la red (presumiblemente local) usando clientes basados en NNTP para leer y publicar. Esto es una alternativa a exportar los directorios de noticias mediante NFS, tal y como se describe en Cap�tulo 21.

Un problema global de NNTP es que permite a una persona conocida insertar art�culos en el flujo de noticias con las especificaciones del remitente falseadas. A esto se lo conoce como falsear noticias o spoofing.[2] Una extensi�n de NNTP le permite requerir una autentificaci�n al usuario para ciertas �rdenes, ofreciendo algunas medidas de protecci�n contra la gente que pueda abusar de esta manera de su servidor de noticias.

Existen diferentes paquetes NNTP. Uno de los m�s conocidos es el demonio NNTP, tambi�n conocido como la implementaci�n de referencia. Lo escribieron originalmente Stan Barber y Phil Lapsley para ilustrar los detalles del RFC-977. Como la mayor�a del software de calidad disponible hoy en d�a, puede encontrarlo empaquetado para su distribuci�n de Linux, o puede obtener las fuentes para compilarlo usted mismo. Si elige compilarlo usted mismo, necesitar� estar familiarizado con su distribuci�n para poder asegurarse de que configura todas las rutas de ficheros de manera correcta.

El paquete nntpd tiene un servidor, dos clientes para empujar y seleccionar noticias, y un sustituto de inews. Habitan un entorno B News, pero con unos pocos retoques tambi�n se contentar�n con C News. De todos modos, si piensa usar NNTP para algo m�s que ofrecer acceso de los clientes de noticias al servidor, la implementaci�n de referencia realmente no es una opci�n. S�lo discutiremos aqu� el demonio NNTP que contiene el paquete nntpd prescindiendo de los clientes.

Si piensa poner en marcha un sitio de noticias de gran tama�o, deber�a echar un vistazo al paquete InterNet News o INN, que escribi� Rich Salz. Proporciona transporte de noticias basado tanto en NNTP como en UUCP. El transporte de noticias es definitivamente mejor que nntpd. Discutiremos INN en detalle en Cap�tulo 23.

Notas

[1]

Cuando se publica un art�culo por NNTP, el servidor siempre a�ade al menos un campo a la cabecera, NNTP-Posting-Host:. El campo contiene el nombre de la m�quina del cliente.

[2]

Existe el mismo problema con el Protocolo para la Transferencia Sencilla de Correo (SMTP), aunque muchos agentes transportadores de correo ya ofrecen mecanismos para prevenir el "spoofing".