ÍNDICE ● ● SEGURIDAD EN NFS – Ficheros /etc/hosts.deny y /etc/hosts.allow – Introducción a iptables – Seguridad con iptables SEGURIDAD EN SAMBA – Introducción a Samba – Configuración de Samba – Seguridad en Samba SEGURIDAD EN NFS ● Existen dos formas de hacer más seguro nuestro servidor NFS: 1.Modificando los ficheros /etc/hosts.deny y /etc/hosts.allow 2.Mediante el uso de iptables 1.FICHERO /etc/hosts.deny ● Indica qué hosts no pueden acceder a los servicios, lo más recomendable en este fichero es denegar el acceso por completo: portmap:ALL //nadie puede usar nuestro portmap mountd:ALL //nadie puede una partición rquotad:ALL //no doy información de cuotas 1.FICHERO /etc/hosts.allow ● Especificamos qué hosts van a poder usar los servicios: portmap:192.168.0.0/255.255.255.0 mountd:192.168.0.0/255.255.255.0 rquotad:192.168.0.0/255.255.255.0 2. INTRODUCCIÓN IPTABLES ● ● ● Iptables nos permite configurar un Firewall de forma que tengamos controlado quién entra, sale y/o enruta a través de nuestra máquina Linux. Es una aplicación en línea de comandos que gestiona el filtrado de paquetes en sistemas Linux (kernels 2.4.x), en base a las reglas que hayamos definido. Iptables es mucho más potente que su antecesor Ipchains (kernels 2.2.x). La estructura de Iptables es básicamente una cola : cuando un paquete llega, éste es validado contra cada una de las reglas del firewall, en el momento que alguna regla casa (match) , se ejecuta la acción que haya sido definida en la regla (descartar el paquete, acceptarlo, enrutarlo, etc). 2. INTRODUCCIÓN IPTABLES ● ESTRUCTURA DE UN COMANDO IPTABLES iptables -t [tabla] -[AIRDLFZNXP] [regla] [criterio] -j [acción] ● -t: Tabla en la que se quiere añadir la regla. Hay 3: – Nat: enmascarar conexiones, redirecciones de puertos, etc. realizar – Filter: tabla donde se añaden relacionadas con el filtrado. – Mangler: podemos modificar cualquier aspecto del paquete (flags, TTL, etc). las reglas 2. INTRODUCCIÓN IPTABLES ● -[AIRDLFZNXP] [regla]: Tiene 4 opciones básicas: – A: Añade una regla. – L: Lista las reglas. – F: Borra todas las reglas o las reglas asociadas a una clase. – P: Política por defecto (aceptar todas las conexiones). 2. INTRODUCCIÓN IPTABLES ● [criterio]: Especifica las características del tipo de paquete que casarán con una regla.Opciones: ✗ -s: ip/red fuente ✗ -d: ip/red destino ✗ --sport: puerto fuente ✗ --dport: puerto destino ✗ -p: protocolo Ejemplo: iptables -A FORWARD -p [protocolo] -s [ip/red fuente] --sport [puerto fuente] -d [ip/red destino] --dport [puerto destino] -j DROP 2. INTRODUCCIÓN IPTABLES ● -j [action]: Establece lo que hay que hacer con el paquete: – ACCEPT: Aceptará el paquete. – REJECT o DROP: Rechazará el paquete. – REDIRECT: Redirigirá el paquete. – LOG: Logeará el paquete para analizarlo después. 2. INTRODUCCIÓN IPTABLES EJEMPLOS ● iptables -A INPUT -s 195.65.34.234 -j ACCEPT ● iptables -A INPUT -p tcp -i eth0 --dport 80 -j DROP ● iptables -A INPUT -p tcp -i eth0 -m state --state NEW,ESTABLISHED,RELATED --dport 22 -j ACCEPT 3. SEGURIDAD CON IPTABLES ● ● ● ● ● iptables -t filter -A INPUT -p tcp -s 192.168.25.5 -d 192.168.25.1 - -destination-port sunrpc -j ACCEPT iptables -t filter -A INPUT -p udp -s 192.168.25.5 -d 192.168.25.1 - -destination-port sunrpc -j ACCEPT iptables -t filter -A INPUT -p udp -s 192.168.25.5 -d 192.168.25.1 - -destination-port 2049:2050 -j ACCEPT iptables -t filter -A INPUT -i ! lo -d 192.168.25.1 - -destination-port sunrpc -j DROP iptables -t filter -A INPUT -i ! lo -d 192.168.25.1 - -destination-port 2049:2050 -j DROP Samba-Introducción ● ¿Qué es Samba? – Sistema de compartición de archivos/impresoras en red. – Permite conexión de sistemas heterogéneos entre si (Windows y Unix). – Los clientes windows tendrían la sensación de estar ante un servidor Windows NT. – Controlar el acceso de clientes Windows a servicios de red Windows, UNIX, etc. Samba-Introducción ● ¿Qué Protocolo usa? – SMB (Server Message Block) = Compartir los recursos. – CIFS (Common Internet File Implementación mejorada de SMB. – NetBIOS (Network Basic Input/Output System) sobre TCP/IP (NBT) = Servicio de Nombres: ● ● nombres lógicos en la red Sessiones entre los nombres System) = Samba-Introducción ● ¿Cuándo es útil? – No quieres pagar un servidorWindows NT para obtener las funcionalidades que este proporciona. – Homogeneizar la red local ante clientes unix y Windows. – Compartir impresoras a/entre clientes Windows y unix. SAMBA .vs. NFS ● ● ● ● NFS está prácticamente limitado a máquinas Unix, pues no existe una buena implemtación en Windows. NFS presenta problemas de seguridad, sólo para LAN's bien definidas y bien seguras. NFS no permite compartir impresoras. SAMBA nos dá una buena solución para todos estos problemas. Samba-Configuración ● ● Dos demonios: – smbd= Un demonio que permite compartición de archivos e impresoras sobre una red SMB y proporciona autentificación y autorización de acceso para clientes SMB. – nmbd= Un demonio que se ocupa de anunciar servicios, es decir, informa a las máquinas presentes en la red sobre cuales son los recursos disponibles. Configuración: – Fichero “smb.conf” ó frontend “SWAT” Samba-Configuración ● smb.conf: – Se puede encontrar en “/usr/local/samba/lib/” ó en ”/etc/”. – Este fichero determina qué recursos del sistema quieres compartir con el mundo exterior y que restricciones deseas poner en ellos. – Consta de varias secciones distintas, las cuales comienzan “[nombre-recurso]” – Una sección general y común: [global] – Iniciar y parar: /etc/init.d/samba {start|stop} Samba-Configuración ● ● ● [global] = Define variables de carácter general y aplicables a todos los recursos. [homes] = Permite a los usuarios remotos acceder a su directorio personal desde su máquina local (ya sean clientes Windows o Linux), pero han de tener cuenta en la máquina servidora. [printers] = impresoras. Para la compartición de Samba-Configuración ● Ejemplo simple: ; /etc/smb.conf [global] ; guest account = nobody log file = /var/log/samba-log.%m lock directory = /var/lock/samba share modes = yes Samba-Configuración [homes] comment = Directorios principales browseable = no read only = no create mode = 0750 [tmp] comment = Espacio de ficheros temporales path = /tmp read only = no public = yes Samba-Configuración ● SWAT (Samba Web Administration Tool) 901: Samba-Cliente ● Windows = Transparente, como siempre ● Unix = smbclient – Búsqueda de recursos en un host: ● – #smbclient -L [host] Conexión a un recurso ● #smbclient servicio <password> – – – Servicio: máquina y servicio Password: literal con la clave El resultado es un prompt al estilo ftp. Samba-Seguridad ● Actualmente hay cuatro niveles de seguridad utilizados por Samba en sus redes: share, user, server y domain: – Seguridad a nivel de recurso (share) = Cada recurso compartido tiene asociada una o varias contraseñas, y cualquiera que la conozca puede acceder al recurso – Seguridad a nivel de usuario (user) = Cada recurso se configura para permitir acceso a determinados usuarios. Samba-Seguridad – Seguridad a nivel de servidor (server) = igual que a nivel de usuario (user), pero en este caso el servidor Samba utiliza otro servidor SMB para validar los usuarios y contraseñas antes de concederles el acceso. – Seguridad a nivel de dominio (domain) = En este caso Samba se convierte en un miembro de un dominio Windows y se valida al usuario primero en el dominio para luego darle un atributo especial que le permite acceso a todos los recursos que tenga derecho. Samba-Seguridad ● ● Contraseñas = Pueden ser encriptadas o no. Por defecto no se encriptan por compatibilidad con sistemas windows tales como win 95 o NT 3.x. Mejor opción que sean encriptadas, para ello basta poner en la sección [globlal] lo siguiente: [global] security = user encrypt passwords = yes smb passwd file = /usr/local/samba/private/smbpasswd Samba-Seguridad ● El fichero “smbpasswd”: – Estructura parecida al passwd el cual hay que guardar y proteger muy bien y no permitir ni siquiera lectura para los usuarios. – Añadir usuarios: ● ● – #smbpasswd -a usuario #smbpasswd usuario (para cambiar o poner la clave) NOTA: el usuario ya tiene que existir en “/etc/passwd” Samba-Seguridad ● Usando iptables para el filtrado de paquetes en samba: – Iptables -t filter -A INPUT -p tcp -s 195.168.25.5 \ -d 195.168.25.1 - -destination-port 137:139 \ -j ACCEPT – Iptables -t filter -A INPUT -p udp -s 195.168.25.5 \ -d 195.168.25.1 - -destination-port 137:139 \ -j ACCEPT – Iptables -t filter -A INPUT -i ! lo -d 195.168.25.1 - -destination-port 137:139 -j DROP