Sunteți pe pagina 1din 31

CONTROL DE ACCESO A LOS SERVICIOS DE RED

Los wrappers TCP y el comando xinetd El control del acceso a los servicios de red es una de las tareas de seguridad ms importantes que un administrador de servidores debe enfrentar. Afortunadamente, hay un gran nmero de herramientas que hacen justamente estas tareas. Por ejemplo, un firewall basado en iptables deja afuera los paquetes de red que no son bienvenidos. Para los servicios de red que lo utilizan, los TCP wrappers aaden una capa adicional de proteccin mediante la definicin de cules hosts tienen permitido conectarse a los servicios de red "wrapped". Uno de los servicios de red wrapped es el sper servicio xinetd. Este servicio se le llama sper servicio porque controla la conexin a un subconjunto de servicios de red y refina an ms el control de acceso.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Asegure los servicios con TCP Wrappers y xinetd
Los TCP wrappers proporcionan control de acceso a una variedad de servicios. La mayora de los servicios modernos de redes, tales como SSH, Telnet y FTP, hacen uso de TCP wrappers, que montan guardia entre las peticiones entrantes y el servicio solicitado. Los beneficios ofrecidos por TCP wrappers son mejorados cuando se usan en conjunto con xinetd, un sper servicio que proporciona acceso adicional, conexin, enlace, redireccin y control de la utilizacin de recursos.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Mejorar la seguridad con TCP Wrappers
Los TCP wrappers son capaces de mucho ms que simplemente negar el acceso a servicios. Se pueden usar para enviar pancartas de conexin, avisar sobre ataques desde hosts particulares y mejorar la funcionalidad de conexin.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Wrappers TCP El paquete TCP wrappers (tcp_wrappers) est instalado por defecto y proporciona control de acceso basado en host a los servicios de red. El componente ms importante dentro del paquete es la biblioteca /usr/lib/libwrap.a. En trminos generales, un servicio TCP wrapped es uno que ha sido compilado con la biblioteca libwrap.a.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Cuando un intento de conexin es hecho a un servicio wrapped TCP, el servicio primero referencia los archivos de acceso a host (/etc/hosts.allow y /etc/hosts.deny) para determinar si el cliente tiene permitido conectarse. En la mayora de los casos, luego utiliza el demonio syslog (syslogd) para escribir el nombre del host solicitante y el servicio solicitado a /var/log/secure o /var/log/messages.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Si a un cliente se le permite conectarse, los wrappers TCP liberan el control de la conexin al servicio solicitado y no interfieren ms con la comunicacin entre el cliente y el servidor. Adems del control de acceso y registro, los wrappers TCP pueden activar comandos para interactuar con el cliente antes de negar o liberar el control de la conexin al servicio solicitado.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Puesto que los wrappers TCP son una utilidad de gran valor a las herramientas de seguridad de cualquier administrador de servidor, la mayora de los servicios de red dentro de Red Hat Enterprise Linux estn enlazados con la biblioteca libwrap.a. Algunas de tales aplicaciones incluyen /usr/sbin/sshd, /usr/sbin/sendmail, y /usr/sbin/xinetd.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Ventajas de los wrappers TCP Los wrappers TCP ofrecen las siguientes ventajas bsicas comparado con las otras tcnicas de control de servicios de red: Transparencia tanto para el host cliente y el servicio de red wrapped. El cliente que se est conectando as como tambin el servicio de red wrapped no estn al tanto de que estn en uso los wrappers TCP. Los usuarios legtimos son registrados y conectados al servicio solicitado mientras que las conexiones de clientes prohibidos fallan. Administracin centralizada de mltiples protocolos. Los wrappers TCP operan separadamente de los servicios de red que ellos protegen, permitiendo a muchas aplicaciones de servidor compartir un conjunto comn de archivos de configuracin para una administracin ms sencilla.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Archivos de configuracin de Wrappers TCP Para determinar si una mquina cliente tiene permitido conectarse a un servicio, los wrappers TCP referencian los siguientes dos archivos, los cuales se conocen comnmente como archivos de acceso a host: /etc/hosts.allow /etc/hosts.deny

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Cuando una solicitud de un cliente es recibida por un servicio wrapped TCP, sigue los pasos siguientes: Referencias a /etc/hosts.allow. El servicio wrapped TCP analiza secuencialmente el archivo /etc/hosts.allow y aplica la primera regla especificada para ese servicio. Si encuentra una regla que coincide, permite la conexin. Si no, se va al prximo paso. Referencias /etc/hosts.deny. El servicio wrapped TCP analiza secuencialmente el archivo /etc/hosts.deny. Si encuentra una regla que coincide, rechaza la conexin. Si no, se concede acceso al servicio.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Importante: Puesto que las reglas de acceso en hosts.allow son aplicadas primero, ellas toman precedencia sobre las reglas en hosts.deny. Por lo tanto, si se permite el acceso a un servicio en hosts.allow, una regla negando el acceso al mismo servicio en hosts.deny es ignorada.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Importante: Las reglas en cada archivo son ledas de arriba hacia abajo y la primera regla que coincida para un servicio dado es la nica aplicada. Por lo tanto el orden de las reglas es extremadamente importante. Si no se encuentra ninguna regla para el servicio en ninguno de los archivos, o si no existe ninguno de los archivos, se concede el acceso al servicio.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Importante: Los servicios wrapped TCP no hacen cach de las reglas desde los archivos acceso de host, por lo tanto cualquier cambio a hosts.allow o a hosts.deny tomarn efecto de inmediato sin tener que reiniciar el servicio de red.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Ejemplo: vsftpd : .example.com Esta regla instruye a los wrappers TCP a que estn atentos por conexiones al demonio FTP (vsftpd) desde cualquier host en el dominio example.com. Si esta regla aparece en hosts.allow, la conexin ser aceptada. Si esta regla aparece en hosts.deny, la conexin ser rechazada.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Ejemplo 2:
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny

Note que cada campo de opcin est precedido por una barra oblicua invertida (\). Use la barra para prevenir que falle la regla debido al largo de la misma. Esta regla de ejemplo indica que si una conexin al demonio SSH (sshd) se intenta desde un host en el dominio example.com, ejecute el comando echo (lo cual registrar el intento a un archivo especial) y rechace la conexin. Puesto que se usa la directiva opcional deny, esta lnea rechazar el acceso an si aparece en el archivo hosts.allow.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Comodines:

Permiten a los wrappers TCP coincidir ms fcilmente grupos de demonios o hosts. Son usados con mayor frecuencia en el campo de lista de cliente de las reglas de acceso. Se pueden utilizar los siguientes comodines:

ALL Hace corresponder todo. Se puede usar para la lista de demonios o en la lista de clientes. LOCAL Hace corresponder todos los nombres de mquinas que no contengan un punto (.), tal como localhost. KNOWN Hace corresponder todas las mquinas cuyos nombres y direcciones son conocidos o donde el usuario es conocido. UNKNOWN Hace corresponder todas las mquinas cuyos nombres y direcciones sean desconocidas o en el caso en el que se desconozca el usuario. PARANOID Hace corresponder todas las mquinas cuyo nombre no se corresponda con la direccin.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Patrones Los patrones se pueden utilizar en el campo de lista de cliente de las reglas de acceso para especificar de forma ms precisa grupos de host clientes. La siguiente es una lista de los patrones ms comnmente aceptados para una entrada de lista de cliente: Nombre de host comenzando con un punto (.) Al colocar un punto al comienzo de un nombre de host, se hace coincidir todos los hosts compartiendo los componentes listados del nombre. El ejemplo siguiente aplicara a cualquier host dentro del dominio example.com:
ALL : .example.com

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Patrones Direccin IP que termina con un punto (.) Al colocar un punto al final de una direccin IP hace corresponder todos los hosts compartiendo el grupo numrico inicial de una direccin IP. El ejemplo siguiente aplicar a cualquier host dentro de la red 192.168.x.x:
ALL : 192.168.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Patrones
Par direccin IP/mscara Las expresiones de mscaras de red tambin pueden ser usadas como un patrn de control de acceso a un grupo particular de direcciones IP. El ejemplo siguiente aplicara a cualquier host con una direccin de 192.168.0.0 hasta 192.168.0.255: ALL : 192.168.0.0/255.255.255.0

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Patrones
El asterisco (*) Los asteriscos pueden ser usados para coincidir grupos completos de nombres de host o direcciones IP, siempre y cuando no se mezclen en la lista de cliente conteniendo otros tipos de patrones. El ejemplo siguiente aplicarla a cualquier host dentro del dominio example.com: ALL : *.example.com

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Patrones
La barra oblicua (/) Si una lista de cliente con una barra, es tratado como un nombre de archivo. Esto en muy til si es necesario reglas especificando un gran nmero de hosts. El ejemplo siguiente se refiere a wrappers TCP en el archivo /etc/telnet.hosts para todas las conexiones de Telnet: in.telnetd : /etc/telnet.hosts

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Operadores Actualmente, las reglas de control de acceso aceptan un operador, EXCEPT. Se puede usar tanto en la lista de demonios como en la lista de cliente de una regla. El operador EXCEPT permite excepciones especficas a coincidencias ms amplias dentro de la misma regla. En el ejemplo siguiente desde un archivo hosts.allow, todos los hosts de example.com pueden conectarse a todos los servicios excepto cracker.example.com: ALL: .example.com EXCEPT cracker.example.com
En el otro ejemplo desde un archivo hosts.allow, clientes desde la red 192.168.0.x pueden usar todos los servicios excepto para FTP: ALL EXCEPT vsftpd: 192.168.0.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Campos de opciones
Adems de las reglas bsicas para permitir o prohibir el acceso, la implementacin de wrappers TCP soporta extensiones al lenguaje de control de acceso a travs de los campos de opciones. Mediante el uso de campos de opciones dentro de las reglas de acceso al host, los administradores pueden llevar a cabo una gran variedad de tareas tales como alterar el comportamiento del registro, consolidar el control de acceso y lanzar comandos del shell.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Registro
Los campos de opciones le permiten a los administradores cambiar fcilmente la facilidad de conexin y el nivel de prioridad para una regla usando la directiva severity. En el ejemplo siguiente, las conexiones al demonio SSH desde cualquier host en el dominio example.com son registrados a la facilidad por defecto authpriv syslog (debido a que no se especifica un valor de facilidad) con una prioridad de emerg: sshd : .example.com : severity emerg

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Registro
Es tambin posible especificar una facilidad utilizando la opcin severity. El ejemplo siguiente registra cualquier intento de conexin SSH por cualquier hosts desde el dominio example.com a la facilidad local0 con una prioridad de alert: sshd : .example.com : severity local0.alert

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Control de acceso:
Los campos de opciones tambin le permiten a los administradores explcitamente otorgar o prohibir el acceso de mquinas en un sola regla, aadiendo la directiva allow o deny al final de la opcin. Por ejemplo, las dos reglas siguientes permiten conexiones SSH desde client-1.example.com, pero prohiben conexiones desde client2.example.com:

sshd : client-1.example.com : allow sshd : client-2.example.com : deny

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Comandos de la Shell Los campos de opciones permiten a las reglas de acceso lanzar comandos de la shell a travs de las directivas siguientes: spawn Lanza un comando de la shell como un proceso hijo. Esta directiva de opcin puede realizar tareas como el uso de /usr/sbin/safe_finger para obtener ms informacin sobre el cliente solicitante o la creacin de archivos de registro especiales usando el comando echo. En el ejemplo siguiente, los clientes intentando accesar servicios Telnet desde el dominio example.com son registrados discretamente a un archivo especial:
in.telnetd : .example.com \ : spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \ : allow

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Comandos de la Shell twist Reemplaza el servicio solicitado con el comando especificado. Esta directriz se utiliza a menudo para colocar trampas para intrusos (tambin llamados "potes de miel"). Tambin se puede utilizar para enviar mensajes a los clientes que se estan conectando. La directriz twist debe estar al final de la lnea de la regla. En el ejemplo siguiente, los clientes intentando accesar servicios FTP desde el dominio example.com se les enva un mensaje a travs del comando echo:
vsftpd : .example.com \ : twist /bin/echo "421 Bad hacker, go away!"

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Expansiones Las expansiones, cuando se utilizan en conjunto con las directrices spawn y twist, proporcionan informacin sobre el cliente, servidor y los procesos relacionados. Abajo se encuentra una lista de las expansiones soportadas: %a Suministra la direccin IP del cliente. %A Suministra la direccin IP del servidor. %c Proporciona informacin variada sobre el cliente, como el nombre de usuario y el de la mquina o el nombre del usuario y la direccin IP. %d Proporciona el nombre del proceso demonio. %h Suministra el nombre de la mquina del cliente (o la direccin IP, si el nombre de la mquina no est disponible). %H Suministra el nombre de la mquina del servidor (o la direccin IP si el nombre de la mquina no est disponible). %n Proporciona el nombre de la mquina del cliente. Si no est disponible aparecer unknown. Si el nombre de la mquina y la direccin de la mquina no se corresponden, aparecer paranoid. %N Proporciona el nombre de la mquina del servidor. Si no est disponible aparecer unknown. Si el nombre de la mquina y su direccin no coinciden, aparecer paranoid. %p Suministra el ID del proceso demonio. %s Suministra informacin varia del servidor como el proceso demonio y la mquina o la direccin IP del servidor. %u Proporciona el nombre de usuario del cliente. Si no est disponible aparecer unknown.

CONTROL DE ACCESO A LOS SERVICIOS DE RED


El ejemplo siguiente usa una expansin en conjunto con el comando spawn para identificar el host cliente en un archivo de registro personalizado. Cuando se intentan conexiones al demonio SSH (sshd) desde un host en el dominio example.com, ejecute el comando echo para registrar el intento, incluyendo el nombre del host cliente (usando la expansin %h), a un archivo especial:
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \ : deny

CONTROL DE ACCESO A LOS SERVICIOS DE RED


Adems, las expansiones se pueden utilizar para personalizar mensajes de vuelta al cliente. En el ejemplo siguiente, los clientes intentando accesar servicios FTP desde el dominio example.com son informados que se les ha prohibido acceder al servidor:
vsftpd : .example.com \ : twist /bin/echo "421 %h has been banned from this server!"

S-ar putea să vă placă și