tcp-wrappers

3
CONTROL DE ACCESO TCPWRAPPERS TCPWRAPPERS Los envolventes de acceso o TCPWrappers permiten controlar y limitar el acceso a los servicios que ejecuta un ordenador en sistemas GNU/Linux Para realizar dicho control, los envolventes de acceso se basan en dos archivos hosts.allow y hosts.deny que especifican respectivamente los servicios a los que se permite el acceso y los servicios a los que se deniega el acceso y desde que ordenadores. Dichos archivos se encuentran dentro del directorio /etc CONFIGURACIÓN Los envolventes de acceso funcionan mediante reglas. Su sintaxis (en ambos archivos) es lista_servicios:lista_clientes [spawn comando_shell] donde lista_servicios es una lista de uno o más servicios separados por espacios, donde los servicios se especifican mediante el nombre del servidor que los proporciona (vsftpd, sshd, etc…) lista_clientes es uno o más nombres de ordenador, direcciones IP o patrones separados por espacios comando_shell indica una acción a ejecutar si una regla se cumple. Es opcional Además de los patrones *, ? y . se pueden utilizar una serie de palabras reservadas en lugar de especificar una lista de clientes OPCIÓN DESCRIPCIÓN ALL Especifica todos los ordenadores LOCAL Especifica todos los ordenadores de nuestra red local KNOWN Especifica todos los ordenadores cuyo nombre o dirección IP son conocidos UNKNOW Especifica todos los ordenadores cuyo nombre o dirección IP son desconocidos PARANOI D Especifica todos los ordenadores cuyo nombre no se corresponde con su dirección IP KNOWN, UNKNOW y PARANOID se deben utilizar con precaución pues cualquier error o modificación en el servidor DNS puede producir que ordenadores o usuarios no autorizados obtengan acceso a los servicios En la lista de clientes se puede utilizar el operador EXCEPT, permitiéndonos combinar dos listas en la misma línea, es decir, una regla se aplicará a la primera lista y excluirá a la segunda Ejemplo. Uso de EXCEPT en el archivo hosts.allow vsftpd:192.168.1. EXCEPT 192.168.1.xx 192.168.1.yy Además de todo lo expuesto la palabra reservada ALL puede utilizarse en la lista de servicios significando todos los permisos Ejemplo. Uso de ALL en la lista de servicios ALL:192.168.1.xx Ejemplo. Uso de ALL y EXCEPT ALL:ALL EXCEPT vsftpd:192.168.1.xx Por último la opción spawn que ejecutará un comando en caso de que una regla se cumpla Ejemplo. Crear un log con los intentos de acceso al servicio openSSH mostrando la dirección IP del cliente y el nombre del servicio sshd:ALL: spawn echo ‘cliente’ %a ‘servicio’ %d >> /var/log/deny.log

description

introducción al control de acceso mediante tcp wrappers en gnu linux los ejemplos están probados en ubuntu 10.04 desktop

Transcript of tcp-wrappers

Page 1: tcp-wrappers

CONTROL DE ACCESO TCPWRAPPERS

TCPWRAPPERS

Los envolventes de acceso o TCPWrappers permiten controlar y limitar el acceso a los servicios que ejecuta un ordenador en sistemas GNU/Linux

Para realizar dicho control, los envolventes de acceso se basan en dos archivos hosts.allow y hosts.deny que especifican respectivamente los servicios a los que se permite el acceso y los servicios a los que se deniega el acceso y desde que ordenadores. Dichos archivos se encuentran dentro del directorio /etc

CONFIGURACIÓN

Los envolventes de acceso funcionan mediante reglas. Su sintaxis (en ambos archivos) es lista_servicios:lista_clientes [spawn comando_shell] donde

lista_servicios es una lista de uno o más servicios separados por espacios, donde los servicios se especifican mediante el nombre del servidor que los proporciona (vsftpd, sshd, etc…)

lista_clientes es uno o más nombres de ordenador, direcciones IP o patrones separados por espacios

comando_shell indica una acción a ejecutar si una regla se cumple. Es opcional

Además de los patrones *, ? y . se pueden utilizar una serie de palabras reservadas en lugar de especificar una lista de clientes

OPCIÓN DESCRIPCIÓNALL Especifica todos los ordenadoresLOCAL Especifica todos los ordenadores de nuestra red localKNOWN Especifica todos los ordenadores cuyo nombre o dirección IP son conocidosUNKNOW Especifica todos los ordenadores cuyo nombre o dirección IP son desconocidosPARANOID Especifica todos los ordenadores cuyo nombre no se corresponde con su dirección IP

KNOWN, UNKNOW y PARANOID se deben utilizar con precaución pues cualquier error o modificación en el servidor DNS puede producir que ordenadores o usuarios no autorizados obtengan acceso a los servicios

En la lista de clientes se puede utilizar el operador EXCEPT, permitiéndonos combinar dos listas en la misma línea, es decir, una regla se aplicará a la primera lista y excluirá a la segunda

Ejemplo. Uso de EXCEPT en el archivo hosts.allow

vsftpd:192.168.1. EXCEPT 192.168.1.xx 192.168.1.yy

Además de todo lo expuesto la palabra reservada ALL puede utilizarse en la lista de servicios significando todos los permisos

Ejemplo. Uso de ALL en la lista de servicios

ALL:192.168.1.xx

Ejemplo. Uso de ALL y EXCEPT

ALL:ALL EXCEPT vsftpd:192.168.1.xx

Por último la opción spawn que ejecutará un comando en caso de que una regla se cumpla

Ejemplo. Crear un log con los intentos de acceso al servicio openSSH mostrando la dirección IP del cliente y el nombre del servicio

sshd:ALL: spawn echo ‘cliente’ %a ‘servicio’ %d >> /var/log/deny.log

Page 2: tcp-wrappers

CONTROL DE ACCESO TCPWRAPPERS

VARIABLES DESCRIPCIÓN%a Dirección IP del cliente%A Dirección IP del servidor%c Identificador del proceso, nombre o dirección IP del cliente entre otros%d Nombre del servicio solicitado%h Nombre del cliente o dirección IP si no existe%H Nombre del servidor o dirección IP si no existe%n Nombre del cliente

unknow si no existe paranoid si no coincide el nombre y su dirección IP

%N Nombre del servidorunknow si no existe paranoid si no coincide el nombre y su dirección IP

%p Identificador del proceso del servicio%s Identificador del proceso, nombre o dirección IP del servidor entre otros%u Nombre del cliente, unknow si no existe

Ejemplo. Denegar todos los servicios excepto el servicio FTP que se permitirá a todo el mundo y el servicio openSSH que se permitirá a un ordenador específico

#HOSTS.ALLOWvsftpd:ALLsshd:192.168.1.xx

#HOSTS.DENYALL:ALL

Ejercicios1. Configura los envolventes de acceso de forma que

a. Se permita el acceso al servicio FTP a todos los ordenadoresb. Se permita el acceso al servicio openSSH a todos los ordenadores del aula excepto al ordenador 192.168.1.xxc. Se genere un fichero log con el nombre del servicio, IP y nombre del cliente en caso de que se deniegue el acceso a algún

permiso

2. Configura los envolventes de acceso de forma quea. Se permita el acceso al servicio NFS a dos ordenadores del aulab. En cualquier caso, cuando se permita o deniegue el acceso al servicio se tiene que generar un fichero log con información

sobre el mismo