GNU/Linux >> Tutoriales Linux >  >> Panels >> Webmin

Servicios y protocolos de red

Este capítulo cubre los super-servidores inetd y xinetd , que son responsables de iniciar servidores para protocolos como telnet y FTP cuando sea necesario.

Contenido

Introducción a los servicios de Internet

Los servicios de red muy utilizados, como el correo electrónico, el proxy y el servicio web, son manejados por procesos de servidor que se ejecutan continuamente y tienen sus propios archivos de configuración complejos y módulos Webmin. Sin embargo, hay otros servicios como telnet, finger y POP que no necesitan ninguna configuración y no necesitan su propio proceso de servidor permanente. En cambio, sus servidores se ejecutan cuando es necesario por un super servidor como inetd o xinetd que escucha las conexiones de red en múltiples puertos. Solo cuando recibe una conexión inicia el proceso adecuado para comunicarse con el cliente, el cual finaliza cuando se cierra la conexión. Esto ahorra memoria al limitar la cantidad de procesos que se ejecutan en un momento dado, pero hace que el manejo de nuevas conexiones sea un poco más lento.

Cada servicio tiene un nombre corto como telnet o pop3, un número de puerto como 23 o 110 y un protocolo como TCP o UDP. El archivo /etc/services enumera todos los nombres de servicio y sus números de puerto correspondientes que su sistema conoce, solo algunos de los cuales pueden tener un superservidor u otro servidor escuchando en ellos.

El superservidor más utilizado es inetd, que es utilizado por casi todas las distribuciones de Linux y variantes de Unix. Todas las configuraciones del servidor se almacenan en el archivo de configuración /etc/inetd.conf. Además de iniciar servidores en respuesta a las conexiones TCP y UDP, también puede manejar llamadas de función RPC (llamada a procedimiento remoto) de manera similar. Una de las principales deficiencias de inetd es su incapacidad para rechazar conexiones según la dirección IP del cliente. Sin embargo, esto se puede solucionar mediante el uso de un programa de servidor TCP-wrappers intermedio, que tiene su propio archivo de configuración de control de acceso IP.

Otro súper servidor que está ganando popularidad y tiene más funciones es xinetd, que usa el archivo de configuración /etc/xinetd.conf y, a veces, otros archivos en el directorio /etc/xinetd.d. Al igual que inetd, puede iniciar procesos de servidor en respuesta a conexiones TCP y UDP, pero no es compatible con RCP. Su principal ventaja es el soporte incorporado para restringir las conexiones a ciertas direcciones IP de clientes sin necesidad de un programa configurado por separado. También puede redirigir conexiones entrantes en ciertos puertos a otro host y puerto al hacer su propia conexión de cliente y reenviar datos de un lado a otro.

Debido a que inetd y xinetd tienen archivos de configuración y formatos de archivo totalmente diferentes, hay un módulo Webmin separado para configurar cada uno de ellos. La mayoría de las distribuciones de Linux se enviarán con uno o cualquiera de los dos, pero en algunos casos ambos pueden instalarse y coexistir pacíficamente. La única limitación es que no pueden escuchar en el mismo puerto al mismo tiempo.

El módulo de Protocolos y Servicios de Red

Este módulo se ocupa de la configuración de inetd y se puede encontrar en la categoría Redes en Webmin. Si el icono no está visible, Webmin ha detectado que no está instalado. Esto podría deberse a que su distribución está utilizando xinetd en su lugar, en cuyo caso debe saltar a la sección "El módulo de servicio de Internet extendido". Si ninguno de los módulos está visible, busque en su CD de distribución o sitio web un paquete inetd o xinetd.

La página principal del módulo (que se muestra en la Figura 15-1) muestra dos tablas, una para Servicios de Internet que responden a conexiones TCP o UDP, y uno para Programas RCP . En los Servicios de Internet sección, se muestran los nombres y protocolos de todos los servicios; en algunos casos, el mismo servicio puede ser reconocido por más de un protocolo. Cada servicio puede estar en uno de los tres estados, indicados por la fuente en la que se muestra su nombre :

Habilitado (negrita) Se ha asignado un programa de servidor a este servicio y actualmente está activo.
Deshabilitado (negrita-cursiva) Se ha asignado un programa de servidor, pero no está activo. Esto corresponde a una entrada comentada en el archivo inetd.conf.
Sin asignar (normal) No se ha asignado ningún programa de servidor a este servicio, lo que significa que no hay una entrada inetd.conf para él.

Si la opción de configuración del módulo Mostrar servicios sin programa se ha establecido en No , los servicios en estado no asignado no se mostrarán. Este es el valor predeterminado en algunos sistemas operativos, debido a la gran cantidad de servicios que conoce el sistema.

La mayoría de las distribuciones de Linux se envían con casi todos los servicios en estado deshabilitado de forma predeterminada. Esto limita la cantidad de servicios innecesarios a los que su sistema permite conexiones y, por lo tanto, reduce la posibilidad de que un atacante explote un agujero de seguridad en uno de los programas del servidor.

La página principal del módulo Protocolos y servicios de Internet

Debido a que cada servicio se muestra solo con un nombre corto como telnet o chargen, no es obvio para un administrador inexperto lo que hace cada uno de ellos. Algunos de los servicios más utilizados y sus finalidades son:

Los servicios diurnos, de eco y de carga para los protocolos TCP y UDP son manejados internamente por inetd cuando están habilitados, no por un programa de servidor separado.

Habilitación de un servicio de Internet

Si desea permitir que los usuarios obtengan correo de su sistema utilizando el protocolo POP3 o iniciar sesión a través de telnet, es necesario activar el servicio de Internet adecuado si no está habilitado actualmente. Para ello, los pasos a seguir son :

  1. En la página principal del módulo, haga clic en el nombre del servicio que desea habilitar en los Servicios de Internet mesa. Esto lo llevará a la página que se muestra en la Figura 15-2 para editar sus detalles. Si los servicios no asignados no se muestran en su sistema, puede ingresar el nombre del servicio y seleccionar el protocolo en los campos junto a Editar servicio botón. Al hacer clic en el botón, accederá al formulario de edición, suponiendo que se reconozca el nombre del servicio.
  2. El nombre del servicio , Número de puerto , Protocolo y Alias los campos deben dejarse sin cambios a menos que desee cambiar el nombre del servicio o cambiar el puerto en el que está escuchando. Para los servicios que no creó usted mismo, cambiar cualquiera de estos campos es una mala idea, ya que puede evitar que los programas de su sistema se conecten a otros servidores.
  3. En el programa del servidor sección, para habilitar el servicio seleccione el Programa habilitado opción. Si Programa deshabilitado se seleccionó anteriormente, todas las demás configuraciones en la sección deberían ser correctas y no será necesario cambiarlas. Sin embargo, si No hay ningún programa asignado se seleccionó antes, deberá elegir un programa de servidor y un usuario para que se ejecute el servidor. Seleccione el Programa campo Comando e ingrese la ruta completa al programa del servidor en el campo al lado, como /usr/sbin/in.ftpd. En los argumentos campo, ingrese el comando del servidor nuevamente y cualquier argumento que necesite, como in.ftpd –l –a. Aunque la ruta del programa está en el Comando campo, el nombre del programa debe aparecer en los Args campo también. Deberá ingresar un usuario para que el programa del servidor se ejecute en Ejecutar como usuario campo. Para casi todos los servidores, será root. Uno de los modos de espera las opciones también deben configurarse; a menos que el servidor se ejecute y se ejecute muy rápido, elija No esperar . Algunos servicios como el de día, el eco, el cobro y el descarte son administrados internamente por inetd. Si está habilitando uno de ellos, simplemente seleccione Interno a inetd . No es necesario ingresar ningún programa o argumento, y el usuario que el servidor ejecuta es irrelevante.
  4. Cuando haya terminado, haga clic en el botón Guardar. Siempre que no haya errores y el programa del servidor elegido realmente exista, el navegador volverá a la lista de servicios en la página principal.
  5. Haga clic en Aplicar cambios en la parte inferior de la página para activar los cambios.
Figure 15-2 “Editing an internet service” 

En algunos casos, no podrá habilitar un servicio porque el programa del servidor correspondiente aún no está instalado. Si este es el caso, use el módulo Paquetes de software para instalarlo desde su sitio web o CD de distribución de Linux.

Si desea deshabilitar un servicio, simplemente siga los mismos pasos pero seleccione el Programa deshabilitado opción en su lugar. Esto es mejor que elegir Ningún programa asignado ya que es fácil volver a activar el servicio sin tener que volver a ingresar los detalles del programa del servidor.

Crear su propio servicio de Internet

En algunas situaciones, es posible que desee agregar un nuevo servidor a su sistema que escuche en un puerto que no esté asignado a nada más. Es posible que desee ejecutar un servidor telnet en algún puerto no estándar o redirigir el tráfico desde un puerto de su sistema a otro servidor utilizando un programa como nc. Si solo está intentando activar algún servicio estándar como ftp o imap, las instrucciones de esta sección no son para usted; en su lugar, consulte la sección "Habilitación de un servicio de Internet".

Los pasos a seguir para crear un nuevo servicio son:

  1. En la página principal del módulo, haga clic en el enlace *Crear un nuevo servicio de Internet*. Esto lo llevará al formulario de creación de servicios, que es similar al formulario de edición de la Figura 15-2.
  2. Complete el Nombre del servicio campo con un nombre único para su servicio.
  3. Introduzca el número de puerto con el que desea asociar el servicio en el Número de puerto campo.
  4. Seleccione el protocolo de Protocolo lista. Casi siempre será TCP, pero en algunos casos es posible que deba usar UDP.
  5. Ingrese los nombres alternativos con los que desea que se haga referencia al servicio en Alias campo.
  6. Suponiendo que desea tener un programa de servidor asociado con este servicio, elija el Programa habilitado opción en el Programa del servidor sección. De lo contrario, todo lo que se creará es una asociación entre un nombre de servicio y un número de puerto.
  7. Para el Programa campo, seleccione el Comando e ingrese la ruta completa al programa del servidor en el campo junto a él, por ejemplo, /usr/local/bin/someserver. En los argumentos campo, ingrese el nombre del programa y cualquier argumento de la línea de comandos con el que deba ejecutarse, como someserver –foo. Para dar otro ejemplo, si quisiera crear un servicio que mostrara todos los procesos que se ejecutan en su sistema a cualquier persona que se conectara a través de telnet, podría establecer el Comando a /bin/ps y los Args a ps auxwww. Sin embargo, esto sería una mala idea desde el punto de vista de la seguridad.
  8. Si el programa del servidor va a tardar más de un segundo en ejecutarse o si acepta alguna entrada, configure el modo de espera campo para No esperar . De lo contrario, inetd dejará de manejar nuevas conexiones de red hasta que el programa haya terminado. La única ventaja de este Espere hasta completar modo es una ligera reducción en el uso de la memoria.
  9. Ingrese el nombre de usuario del usuario de Unix que el programa del servidor debe ejecutar en Ejecutar como usuario campo. Suele ser root, pero puede ser cualquiera.
  10. Para limitar la velocidad a la que inetd aceptará conexiones para su servicio, ingrese un número en Máximo por minuto campo. Si se supera el límite, se rechazarán las conexiones posteriores hasta el minuto siguiente.
  11. De forma predeterminada, el grupo con el que se ejecuta el programa del servidor es el grupo principal del usuario establecido en Ejecutar como usuario. campo. Para cambiar esto, ingrese un nombre de grupo en Ejecutar como grupo campo.
  12. Haga clic en Crear botón para crear su servicio. Siempre que no haya errores en el formulario, volverá a la lista de servicios en la página principal.
  13. Haga clic en Aplicar cambios botón para activar el servicio.

Una vez que se ha creado un servicio, puede probarlo ejecutando telnet localhost portnumber en el indicador de shell de su sistema. Puede editar su servicio en cualquier momento haciendo clic en su nombre en la página principal y cambiando cualquiera de las opciones antes de hacer clic en Guardar – o Borrar si quieres deshacerte de él. Después de realizar cualquier modificación, el Aplicar cambios se debe usar el botón para activarlos,

Creación y edición de programas RPC

RPC es un protocolo y formato de datos que es la base para otros protocolos como NFS y NIS. Los clientes RPC realizan llamadas de función a los servidores RPC, pasan parámetros y obtienen resultados. Para el cliente o el servidor, hacer una llamada a un procedimiento remoto no es más difícil que llamar a una función de biblioteca normal, que es mucho más fácil escribir programas que usan RPC que crear su propio protocolo desde cero.

Un programa RPC es un conjunto de funciones que son manejadas por un servidor. Cada programa tiene un número único, similar al puerto de un servicio de Internet. Los programas no están asociados a un protocolo en particular, ya que generalmente pueden aceptar conexiones y llamadas de función a través de UDP o TCP. Tampoco tiene un puerto fijo, ya que se asignan dinámicamente cuando se necesitan.

Los servidores RPC (como los servidores NIS y NFS) que manejan una gran cantidad de tráfico tienen sus propios procesos que se ejecutan todo el tiempo. Sin embargo, inetd puede ejecutar algunos servidores que solo deben ejecutarse ocasionalmente cuando sea necesario, al igual que con los servicios de Internet que se usan con poca frecuencia. Algunos de los programas RPC más utilizados son:

En algunos sistemas, estos programas RPC pueden ser manejados por servidores que no se ejecutan desde inetd sino como procesos independientes. En ese caso, el módulo de Arranque y Apagado (explicado en el capítulo 9) es el lugar para activarlo o desactivarlo. Debido a la pequeña cantidad de programas RPC comunes y su utilidad limitada, muchas distribuciones de Linux no tienen ningún programa habilitado o deshabilitado en la configuración de inetd de manera predeterminada. Sin embargo, este no es el caso en otros sistemas operativos como Solaris.

Si desea utilizar un protocolo RPC que no está habilitado actualmente, puede usar este módulo para activarlo. Por supuesto, primero se debe instalar el programa de servidor RPC apropiado, e inetd en su sistema debe ser compatible con los programas RPC. De ser así, los pasos a seguir son:

  1. En la página principal del módulo, haga clic en el nombre del programa de los Programas RPC mesa. Esto lo llevará al formulario de edición de programas que se muestra en la Figura 15-3.
  2. Bajo el Programa de servidor sección, seleccione la opción *Programa habilitado*. Si Programa deshabilitado se seleccionó anteriormente, todas las demás configuraciones en la sección deberían ser correctas y no será necesario cambiarlas. Sin embargo, si No hay ningún programa asignado se marcó, deberá completar varios otros campos. Las versiones RPC El campo debe establecerse en el rango de versiones que admite el programa del servidor, como 1_ – _3 . El campo *Tipo de socket* debe establecerse en Datagrama , y el Protocolo campo establecido solo en udp opción. Para el Programa Servidor campo, ingrese la ruta completa al programa RPC, como /usr/sbin/rpc.rusersd. Para el Comando campo, etner el nombre del programa y cualquier argumento, como rpc.rusersd –a. Para el modo de espera , selecciona *No esperes*. Para el campo Ejecutar como usuario, ingrese el nombre de usuario con el que desea que se ejecute el programa del servidor, generalmente root.
  3. Cuando haya terminado, haga clic en Guardar botón. Siempre que no haya errores en su entrada, volverá a la página principal del módulo donde el programa RPC debería aparecer como habilitado.
  4. Haga clic en Aplicar cambios botón para activar el programa.
Figure 15-3 “The RPC program editing form” 

Configuración del módulo Servicios y Protocolos de Internet

Para acceder a las opciones configurables del módulo Servicios de Internet, haga clic en Configuración del módulo enlace en la esquina superior izquierda de su página principal. Esto lo llevará al formulario de configuración estándar, en el que puede cambiar las siguientes opciones:

El resto de opciones de configuración del módulo en Configuración del sistema son configurados automáticamente por Webmin en función de su tipo de sistema operativo, por lo que no deben cambiarse.

Otros sistemas operativos

Casi todas las versiones de Unix incluyen inetd como estándar y lo utilizan para iniciar programas de servidor que se ejecutan con poca frecuencia de la misma manera que lo hace Linux. Sin embargo, su formato de archivo de configuración y sus capacidades son ligeramente diferentes en otros sistemas operativos, lo que significa que la interfaz de usuario del módulo no será exactamente la misma. La página principal siempre mostrará listas de servicios de Internet y RPC, pero al editar o crear un servicio, estarán disponibles diferentes campos y opciones dependiendo de la variante de Unix que esté ejecutando:

Sol Solaris
Al editar un servicio de Internet, *Máximo por minuto* y Ejecutar como grupo los campos no están disponibles. - Las versiones 8 y superiores de Solaris son compatibles con los protocolos IPv6 TCP y UDP, así como con el estándar IPv4 que utiliza Linux. - Muchos servicios RPC existen en el estado deshabilitado de forma predeterminada, para cosas como cuotas NFS y bloqueo.
FreeBSD
Los servicios RPC no pueden tener programas asignados. Todo lo que puede hacer es editar los nombres de servicio y los números de programa. - Al editar o crear un servicio, puede controlar la cantidad de programas de servidor que pueden estar activos en cualquier momento con Max Child Processes campo. - Además, al editar, puede establecer la clase de inicio de sesión que ejecuta el programa del servidor con Ejecutar como clase de inicio de sesión campo.
NetBSD
Al igual que en FreeBSD, los campos *Max Child Processes y *Execute as Login Class* están disponibles al editar o crear un servicio. - Al igual que con Solaris, los servicios de Internet pueden usar protocolos IPv6 TCP y UDP.

OpenBSD , Compaq Tru64/OSF1 , IBM AIX , SCO OpenServer y SCO UnixWare

Al igual que en Solaris, el *Máximo por minuto y Los campos Ejecutar como grupo no están disponibles.
SGI Irix
El máximo por minuto y Ejecutar como grupo los campos no están disponibles al editar un servicio. - Hay una casilla de verificación adicional debajo del programa del servidor Comando campo con la etiqueta *¿Es posible que el comando no exista?*, que si se establece le dice a inetd que ignore el servicio si el programa del servidor no está instalado. De forma predeterminada, está activado para muchos servicios relacionados con los paquetes de Irix que no están instalados de forma predeterminada.
HP/UX
En HP/UX, el módulo tiene exactamente las mismas opciones que Linux.
Apple Mac OS X
Al igual que en Solaris, los campos *Máximo por minuto y *Ejecutar como grupo* no están disponibles. - Los servicios RPC no pueden tener programas asignados, como en FreeBSD. - En lugar de utilizar el archivo /etc/services para almacenar nombres de servicios y puertos, estos se encuentran en una tabla de NetInfo. Webmin vuelca y vuelve a cargar esta tabla para leer y editar servicios.

Webmin
  1. Reforzamiento de VPN:qué es y cómo hacerlo

  2. ¿Resolución de problemas y depuración de redes Linux?

  3. Warpinator:envíe y reciba archivos a través de una red

  4. Prueba de servicios de red con Netcat

  5. RHEL 7 – RHCSA Notas:iniciar, detener y verificar el estado de los servicios de red.

Introducción a VPN y aquí está cómo usarlo en Linux

Cómo reiniciar los servicios de red en Linux

Sistemas de archivos de disco y red

Servicios de red

SmarterMail y servicios de seguridad de correo electrónico de terceros

¿Cómo conectar en red Ubuntu y Windows 10?