seminario administradores febrero 2007

Download Seminario Administradores Febrero 2007

If you can't read please download the document

Upload: antonio-duran

Post on 16-Apr-2017

1.022 views

Category:

Documents


4 download

TRANSCRIPT

Seminario de Administradores del C.P.R. de CastueraAntonio Durn TerrsFebrero, 2007

Contenidos

Conceptos generales sobre PAM

Autenticacin con LDAP

Sniffers y anlisis de protocolos

Introduccin a iptables

PAM

PAM = Pluggable Authentication Modules

Coleccin de libreras que permiten al administrador elegir como se autenticarn los usuarios.

Permite cambiar la autenticacin que usan las aplicaciones PAM sin necesidad de recompilarlas. Por ejemplo: login, gdm, etc.

PAM

Objetivo: separar el SW dedicado a otorgar privilegios del SW dedicado a desarrollar sistemas de autenticacin seguros y apropiados.

Configuracin:

Configuracin basada en un solo fichero: /etc/pam.conf

Configuracin basada en directorios: /etc/pam.d/

Mdulos: /lib/security

PAM

PAM trata con cuatro tipos de tareas:

Gestin de autenticacin

Gestin de cuentas

Gestin de sesines

Gestin de contraseas

PAM

Configuracin mediante un nico fichero

Una entrada por lnea en /etc/pam.conf

nombre_servicio tipo_modulo flag_control path_modulo args

nombre_servicio

El nombre del servicio asociado a la entrada. Suele ser el nombre del programa.

Puede ser 'other' para indicar una opcin por omisin para los programas que no tienen entrada especfica.

PAM

Configuracin

tipo_modulo

Uno de los 4 tipos de mdulos actuales:

auth

account

session

password

PAM

Tipos de mdulo

auth

Proporciona dos aspectos de la autenticacin de usuarios. Primero establece que el usuario es quien dice ser. Segundo, puede otorgar mebresas de grupo independientemente del fichero /etc/groups, u otros privilegios.

PAM

Tipos de mdulo

account. Se encarga de la gestin de cuentas no relacionada con la autenticacin. Suele usarse para permitir/denegar accesos basandose en la hora/da, recursos del sistema disponibles o la localizacin del usuario (por ej: root slo puede hacer login en la consola)

PAM

Tipos de mdulo

session. Principalmente este mdulo se encarga de las cosas que se deben hacer por el usuario antes/despus de que se le conceda el servicio. Estas actividades se refieren, por ejemplo, a la escritura de informacin de registro sobre la apetura/cierre de sesiones, el montaje de directorios, etc.

PAM

Tipos de mdulo

password. Es necesario para actualizar los tokens utilizados para la autenticacin. Normalmente hay uno para cada mdulo del tipo auth.

PAM

Configuracin

bandera de control

Se utiliza para indicar como reaccionar la librera PAM al tener xito o fracaso el mdulo al que est asociada.

Como los mdulos pueden ser apilados, la bandera de control representa la importancia relativa de cada mdulo.

La aplicacin no recibe el resultado de mdulos individuales, sino slo un resultado de la librera.

PAM

Configuracin

bandera de control

2 formas de especificar la bandera de control. Vemos slo la simple (la que usamos en los IES).

Representamos la bandera de control con una sola palabra que indica la severidad de un acierto o fracaso en el mdulo. Las cuatro opciones son:

required, requisite, sufficient, optional e include.

PAM

Configuracin

bandera de control

required: Indica que es necesario el xito de este mdulo.

requisite: como required, sin embargo si falla no se siguen ejecutando ms modulos.

suffcient: El xito de ste mdulo se considera como suficiente para conceder el permiso.

optional: No es crtico para el xito o fracaso de la aplicacin.

PAM

Configuracin

bandera de control

include: Indica al sistema PAM que incluya los contenidos del fichero indicado.

path_modulo

Ruta hacia el mdulo.

args

Argumentos que se pasan al mdulo.

PAM

Configuracin basada en directorios

Ms flexible

Usa los ficheros de /etc/pam.d

Cada fichero tiene el nombre de un servicio, que corresponde con la configuracin para ese servicio.

Formato de las lneas de cada fichero:

tipo_modulo bandera_control path_modulo args

PAM

Configuracin basada en directorios. Ventajas:

Menos propensa al error.

Ms facil de mantener.

Permite enlazar ficheros.

Ms rpido.

Mejor gestin de permisos.

Facilita la administracin de paquetes.

PAM

Configuracin basada en directorios.

Ficheros comunes:

common-account

common-auth

common-password

common-session

En lugar de una entrada other en pamd.conf, hay un fichero other que incluye estos cuatro.

PAM

Configuracin

Argumentos opcionales generales:

debug: informacin de debug en los logs.

no_warn: no dar mensajes de aviso a la aplicacin.

use_first_pass: El mdulo no debe pedir una contrasea al usuario. En cambio, debe usar la contrasea introducida anteriormente en el primer mdulo de tipo auth. Si no funciona, el acceso ser denegado.

PAM

Configuracin

Argumentos opcionales generales:

try_first_pass: El mdulo debe intentar la autentiaccin con la contrasea introducida anteriormente. Si no funciona, se pide otra contrasea al usuario.

expose_account: da mas informacin al usuario sobre las cuentas.

PAM

Ejemplos de common-auth

Versin 1:

auth sufficient pam_unix.so

auth sufficient pam_ldap.so user_first_pass

Versin 2:

auth sufficient pam_unix.so

auth required pam_ldap.so user_first_pass

PAM

Descripcin de los mdulos

pam_unix: Mdulo de autenticacin estandar. Ficheros passwd y shadow.

pam_ldap: Autentiacin contra directorios LDAP.

pam_nologin: Encargado de la funcionalidad Unix nologin, que deshabilita la entrada de usuarios que no sean root.

pam_env: Para asignar valores a variables de entorno.

pam_unix_auth: Mdulo de autenticacin estandar.

Autenticacin con LDAP

LDAP: Lightweight Directory Access Protocol.

LDAP es un protocol de acceso a un servicio de directorio.

Basicamente es como una base de datos, pero organizado jerrquicamente y basado en atributos.

Al usar autenticacin LDAP, simplemente sustituimos las consultas sobre usuarios a la BD local (ficheros passwd y shadow) por consultas al servidor LDAP. PAM se encarga de ello.

Autenticacin con LDAP

El servicio de directorio LDAP se basa en un modelo cliente-servidor.

Uno o ms servidores LDAP contienen los datos que conforman el rbol del directorio LDAP o base de datos troncal.

El cliente ldap se conecta con el servidor LDAP y le hace una consulta.

El servidor contesta con la respuesta correspondiente, o bien con una indicacin de dnde puede el cliente hallar ms informacin (normalmente otro servidor LDAP).

Autenticacin con LDAP

El modelo de informacin de LDAP est basado en entradas. Una entrada es una coleccin de atributos que tienen un nico y global Nombre Distinguido (DN).

El DN se utiliza para referirse a una entrada sin ambigedades. Cada atributo de una entrada posee un tipo y uno o ms valores.

Los tipos son normalmente palabras nemotcnicas, como cn para common name, o mail para una direccin de correo.

La sintaxis de los atributos depende del tipo de atributo. Por ejemplo, un atributo cn puede contener el valor Sergio Gonzlez.

Autenticacin con LDAP

En LDAP, las entradas estn organizadas en una estructura jerrquica en rbol.

Tradicionalmente, esta estructura reejaba los lmites geogrcos y organizacionales.

Las entradas que representan pases aparecen en la parte superior del rbol.

Debajo de ellos, estn las entradas que representan los estados y las organizaciones nacionales.

Autenticacin con LDAP

Debajo de ests, pueden estar las entradas que representan las unidades organizacionales, empleados, impresoras, documentos o todo aquello que pueda imaginarse.

En nuestro caso tenemos:

dc=ex

dc=instituto

ou=People, ou=Groups,cn=admin,cn=cliente

uid=alb | cn=ALE

dn: uid=alb,ou=People,dc=instituto,dc=ex

Autenticacin con LDAP

Autenticacin con LDAP

Programa servidor: slapd

Configuracin: /etc/ldap/slapd.conf

Para conocer todas las opciones:

$man 5 slapd.conf

Opciones importantes:

replogfile: Fichero de logs del servidor.

loglevel: Nivel de detalle en los logs. Dejar a 0 para mejorar el rendimiento.

database: estilo de BD. Usamos ldbm.

Autenticacin con LDAP

Programa servidor: slapd

Configuracin: /etc/ldap/slapd.conf

Opciones importantes:

sufix: La base del directorio.

directory: donde se almacena fisicamente la BD.

access: indican permisos para diferentes acciones y usuarios.

Autenticacin con LDAP

Control de acceso. Indica:

Atributos a los que se concede acceso.

A que usuarios ser permite cada acceso.

El tipo de acceso concedido.

Vemos ejemplos en los ficheros de configuracin proporcionados.

Autenticacin con LDAP

Opciones de tunning:

maxthreads n: indica el nmero mximo de hilos simultneos que puede crear slapd. A este nmero se aade un hilo controlador y un hilo propio del uso de la librera de hilos estndar.

cachesize n: Nmero de entradas que se mantienen en la cach interna en memoria.

dbcachesize n: Tamao en bytes de la memoria cach interna asociada con cada fichero abierto.

Autenticacin con LDAP

Para importar y exportar informacin de directorio entre servidores de directorios basados en LDAP, o para describir una serie de cambios que han de aplicarse al directorio, se usa en general del fichero de formato conocido como LDIF (siglas de "LDAP interchange format", formato de intercambio de LDAP).

Un fichero LDIF almacena informacin en jerarquas de entradas orientadas a objeto.

Autenticacin con LDAP

Fragmento de fichero ldif:

dn: uid=root,ou=People,dc=elbrocense,dc=ex

uid: root

cn::cm9vdA==

objectClass: account

objectClass: posixAccount

objectClass: top

objectClass: shadowAccount

userPassword: {crypt}$1$btERS/EE$l6bMnEg3Yiyt4g0D7u6Yq.

shadowLastChange: 12809

shadowMax: 99999

Autenticacin con LDAP

Ejemplo: preparacin de un servidor alternativo de LDAP con una rplica del real.

Parar slapd y sacar los datos de la BD actual, mediante slapcat.

Editar el fichero ldif de forma que preserve un orden lgico en la creacin de entradas. Esto es necesario porque no puedes aadir entradas hijas de entradas no creadas. Al usar muy poca ramificacin en los IES, es facil hacer esto manualmente.

Instalar slapd en el servidor alternativo y pararlo.

Introducir los nuevos datos mediante slapadd.

Autenticacin con LDAP

Actualizacin del directorio en los I.E.S.

Actualizacin por phpldapadmin

Los cambios slo se aplican al directorio LDAP.

Acceso por web

Actualizacin de la BD local de usuarios y grupos del servidor, y posterior migracin de los datos al directorio LDAP.

Los cambios se hacen en LDAP y en la BD local del servidor.

Acceso por consola: migrar

Actualizaciones de los usuarios al cambiar sus claves.

Autenticacin con LDAP

Actualizacin del directorio en los I.E.S.

/usr/bin/migrar

Script encargado de realizar la migracin de datos de la BD local del servidor al directorio LDAP.

Pasos:

Construir ficheros ldif a partir de la BD de usuarios y grupos del servidor:

migrate_passwd.pl y migrate_group.pl

Hacer el trasvase de informacin al directorio LDAP:

ldapadd, ldapmodify

Autenticacin con LDAP

Actualizacin del directorio en los I.E.S.

/usr/bin/migrar

Aade los nuevos usuarios creados.

Aade los nuevos grupos creados.

NO modifica los atributos de usuarios o grupos que ya estn creados.

/usr/bin/migrar2

Cambio de ldapadd por ldapmodify en la migracin de grupos, para aplicar los cambios. No en los usuarios, ya que se perderan los cambios de contrasea de los usuarios, hechos solo en LDAP.

Autenticacin con LDAP

Configuracin en los clientes

Instalacin del software necesario. Antes de poder autenticar a los usuarios a travs de un servidor LDAP, es necesario instalar algunas utilidades en el cliente, como pam_ldap y nss_ldap.

pam_ldap permite hacer uso de un servidor LDAP para la autenticacin de usuarios (comprobacin de claves) a aquellas aplicaciones que utilicen PAM.

Autenticacin con LDAP

Configuracin en los clientes

Instalacin del software necesario.

nss-ldap permite a un servidor LDAP actuar como un servidor de nombres. Esto significa que provee la informacin de las cuentas de usuario, los IDs de los grupos, la informacin de la mquina, los alias, los grupos de red y bsicamente cualquier cosa que normalmente se obtiene desde los archivos almacenados bajo /etc o desde un servidor NIS.

Autenticacin con LDAP

Configuracin en los clientes

/etc/nsswitch.conf

nsswitch.conf es el fichero de configuracin de las Bases de Datos del Sistema y del sistema de Conmutacin de los Servicios de Nombres (Name Service Switch).

En otras palabras, es un archivo que indica el orden y el procedimiento a seguir para la bsqueda de la informacin requerida, por ejemplo, para hacer bsquedas de hosts o usuarios.

Autenticacin con LDAP

Configuracin en los clientes

/etc/nsswitch.conf

La forma de configurar este archivo es muy simple:

Primero se especifica la base de datos sujeta a la bsqueda(primera columna) seguida del procedimiento que se va a emplear para realizar una bsqueda sobre la misma(columnas siguientes).

De esta forma, basta con configurar el procedimiento de bsqueda para que haga uso de LDAP en algn momento:

passwd: files ldap

Autenticacin con LDAP

Configuracin en los clientes

/etc/libnss-ldap.conf

Configuracin del servidor LDAP al que el cliente conectar. Opciones:

host: Indica la direccin del servidor LDAP.

base: Nombre distinguido de la base de bsqueda.

ldap_version: Nmero de versin LDAP a usar.

binddn: Nombre distinguido con el que hacer bind al servidor.

Autenticacin con LDAP

Configuracin en los clientes

/etc/libnss-ldap.conf

Configuracin del servidor LDAP al que el cliente conectar. Opciones:

bindpw: Las credenciales con las que hacer bind.

/etc/pam-ldap.conf

Mismo contenido que libnss-ldap.conf

Nueva opcin: pam_password. Indica el cifrado a realizar por el cliente antes de enviar la contrasea.

Autenticacin con LDAP

Funcionamiento del protocolo LDAP

Cliente -> ServidorBIND REQUEST

Servidor -> Cliente BIND RESULT

Cliente -> ServidorSEARCH REQUEST

Servidor -> ClienteSEARCH ENTRY

Servidor -> Cliente SEARCH RESULT

Mas informacin: RFC 2251

Autenticacin con LDAP

Funcionamiento del protocolo LDAP

Operacin BIND.

Sirve para conectar a un servidor LDAP. Normalmente protegemos el acceso al servidor LDAP, de modo que solo clientes que conocen la bind password (bindpw) pueden conectarse.

Si el par usuario/contrasea suministrada al servidor no coincide con las credenciales definidas para hacer bind (en slapd.conf), no se permitir el acceso.

Autenticacin con LDAP

Funcionamiento del protocolo LDAP

Operacin SEARCH REQUEST

El cliente pide informacin al servidor

Operacin SEARCH ENTRY

El servidor entrega informacin al cliente

Operacin SEARCH RESULT

El servidor indica al cliente el resultado de la operacin de bsqueda.

Sniffers y anlisis de protocolos

Que es un snnifer?

Es un programa que permite obtener el trfico que circula por un interfaz de red. Visin orientada a concentradores.

Es un programa que permite obtener el trfico que circula por la red. Visin orientada a conmutadores.

Es un programa que permite obtener el trfico que circula por las redes. Vision orientada a wifi.

Sniffers y anlisis de protocolos

Que es necesario saber para usar un snnifer?

Lo primero es saber que estamos buscando: si vamos a usar un sniffer normalmente ser para ayudarnos en la solucin de algn problema.

Conocer, al menos en parte, el funcionamiento del protocolo de red con el que estemos trabajando:

Negociacin TCP y protocolos de aplicacin

HTTP, LDAP, etc.

Protocolos de apliacin sobre UDP

DNS, DHCP, etc.

Sniffers y anlisis de protocolos

Modo promiscuo

El interfaz recoge todos los paquetes que pasan por l, incluyendo aquellos que no van dirigidos a su direccin MAC ni a la de difusin.

til en redes en bus: hubs. Desde un ordenador podemos ver todo el trfico del segmento compartido de la red.

En los I.E.S, red conmutada: switches. A una mquina slo llegan los paquetes que van destinados a ella. No podemos ver el trfico completo de la red. Posibles soluciones:

ARP poisoning (dsniff): muy ruidoso.

Sniffers y anlisis de protocolos

Modo promiscuo

En los I.E.S, red conmutada: switches. A una mquina slo llegan los paquetes que van destinados a ella. No podemos ver el trfico completo de la red. Posibles soluciones:

Observar el trfico en un punto central: todos los clientes salen a Internet por el servidor, miramos alli el trfico.

Problemas:

no detecta si alguien configura su ruta de salida por el router.

Solucin: Conectar un hub entre el router y la red y poner en l el ordenador con el sniffer.

no detecta trfico interno a la red local.

tcpdump

tcpdump: snnifer csico en GNU/Linux, disponible en todas las distribuciones.

Uso en modo texto por consola.

Rpido y facil de usar en remoto.

En general, til para saber si los paquetes llegan o no llegan, pero menos para mirar dentro de los paquetes.

tcpdump

Muestra algunos o todos los paquetes que pasan por un interfaz de red. El rango de paquetes capturados puede especificarse usando una combinacin de operadores lgicos y parmetros como el origen o destino IP, el tipo de protocolo o el nmero de puerto.

Los paquetes capturados pueden guardarse en formato binario a un fichero, o pueden mostrarse por pantalla. Los ficheros escritos deben ser ledos con tcpdump (u otros programas que soporten el estndar pcap)

tcpdump

Mostrar todos los paquetes que pasan por el interfaz eth0:

#tcpdump -i eth0

Mostrar solo los paquetes del puerto 80:

#tcpdump port 80

Mostrar slo los paquetes con origen o destino en una direccin o nombre de mquina determinados:

#tcpdump host 172.21.232.2

Mostrar slo los paquetes con origen en una direccin o nombre de mquina determinado:

#tcpdump source 172.21.232.2

tcpdump

Mostrar slo los paquetes con un puerto destino determinado:

#tcpdump dst port 21

Mostrar slo paquetes TCP:

#tcpdump tcp

Mostrar todos los paquetes menos algunos:

#tcpdump not port 22

No hacer resolucin de nombres:

#tcpdump -n

tcpdump

Combinacin de condiciones:

tcpdump dst port 80 and source 192.168.1.1

Forzar salida inmediata por pantalla:

#tcpdump -l

No mostrar timestamps:

#tcpdump -t

Formato recomendado:

#tcpdump -nlt [filtro]

tcpdump

Formato de salida

Para datagramas UDP:

15:22:41.400299 orac.erg.abdn.ac.uk.1052 > 224.2.156.220.57392: udp 110

Timestamp: 15:22:41.400299

Direccin origen: orac.erg.abdn.ac.uk

Puerto origen: 1052

Direccin destino: 224.2.156.220

Puerto destino: 57392

Protocolo: udp

Tamao: 110

tcpdump

Formato de salida

Para datagramas TCP:

16:23:01.079553 churchward.erg.abdn.ac.uk.33635 > gordon.erg.abdn.ac.uk.32772: P 12765:12925(160) ack 19829 win 24820 (DF)

Timestamp: 16:23:01.079553

Direccin origen: churchward.erg.abdn.ac.uk

Puerto origen: 33635

Direccin destino: gordon.erg.abdn.ac.uk

Puerto destino: 32772

Indica que la PUSH flag est puesta (P)

tcpdump

Formato de salida

Para datagramas TCP:

16:23:01.079553 churchward.erg.abdn.ac.uk.33635 > gordon.erg.abdn.ac.uk.32772: P 12765:12925(160) ack 19829 win 24820 (DF)

Nmero de secuencia: 12765

Contiene bytes de datos desde el nmero de secuencia hasta 12925, sin incluirlo.

Nmero de bytes de datos en el datagrama (160)

Detalles de asentimientos, tamao de ventana y flags de la cabcera: ack 19829 win 24820 (DF)

tcpdump

Formato de salida

Se puede hacer que tcpdump ofrezca ms informacin:

tcpdump -v

tcpdump -vv

tcpdump -vvv

Tambin se puede aumentar el snaplen, que representa el tamao mximo del paquete que decodifica tcpdump. Esto puede hacer que en la captura veamos paquetes que terminan con [|rip] o [|domain]. Para aumentar el tamao por defecto:

tcpdump -s tamao_en_bytes

tcpdump

Vemos algunos ejemplos de uso:

Comprobar si un cliente conecta con el servidor DNS que debe, y ver el resultado de las consultas.

Ver como se cierra una conexin TCP por el uso de los TCP Wrappers.

Una pgina no funciona, investiguemos que pasa exactamente.

ethereal

ethereal es un sniffer con un interfaz grfico ms adecuado para visualizacin del contenido de los paquetes.

Como desventaja, necesita de un entorno grfico para funcionar. No es grave, ya que se puede usar un entorno remoto.

Dispone de una cantidad enorme de definiciones de protocolos, facilitando el anlisis de los datos.

ethereal

Al igual que tcpdump, ethereal puede trabajar capturando paquetes de un interfaz, o abriendo un fichero de datos existente.

Para realizar una nueva captura, pinchamos en el men Capture->Start, y aparece un dilogo para configurar las opciones de la captura.

ethereal

Opciones importantes de la captura:

interfaz: selecciona el interfaz de donde queremos capturar paquetes.

Capturar paquetes en modo promiscuo: poco til en redes conmutadas.

Filtro: filtro igual al usado en tcpdump.

Actualizar vista de paquetes mientras dura la captura.

Activar resolucin de nombres: desaconsejado por el trfico adicional generado.

ethereal

Vista de captura. Se divide en tres partes:

Lista de paquetes capturados. Pueden ordenarse por varios campos.

Detalle decodificado del datagrama seleccionado. Muestra, para cada capa de protocolos presente en el paquete, el contenido de todas sus opciones. Esta es la parte interesante al analizar protocolos.

Detalle en hexadecimal y ASCII del datagrama seleccionado.

ethereal

Detalle decodificado del datagrama seleccionado.

Primero aparce informacin del datagrama en general, como su tamao o cuando se captur.

A continuacin van aparenciendo los distintos protocolos:

Ethernet

IP

TCP

LDAP

ethereal

Ejemplo: observar el trfico LDAP para resolver algn problema.

Ponemos ethereal capturando paquetes con puerto destino 389 TCP.

Comprobamos paso a paso el dilogo LDAP:

Operacin BIND

Comprobando el resultado

Operacin SEARCH

Comprobando el resultado

y los campos devueltos de la entrada solicitada

ethereal

Ethereal tambin puede recomponer conexiones de algunos protocolos para mostrar los datos de manera ms accesible.

Por ejemplo: boton derecho->Follow TCP Stream sobre un paqute de una conexin HTTP, nos mostrar una ventana con la conversacin HTTP entre cliente y servidor en modo texto, juntando todos los paquetes de la conexin.

iptables

iptables es el software de cortafuegos de GNU/Linux.

Aparte de filtrar paquetes hace ms cosas:

NAT

Redireccin de puertos

Modificacin de paquetes

Integracin con otras herramientas: con iptables+iproute2 podemos tener reservas de ancho de banda por aplicaciones.

iptables

Actualmente, en los IES se usa sobre todo para hacer redireccin de puertos y NAT:

Hacer que los clientes pasen por Squid

Hacer que los clientes slo puedan usar los servidores POP y SMTP de la Junta.

Tambin para filtrar en los clientes:

ControlAula incluye una regla para solo permitir acceso VNC al profesor.

iptables

Al poder hacer muchas cosas, iptables es bastante complejo.

Para verlo en profundidad probablemente necesitarimos una sesin entera.

Vemos una introduccin que nos permita lo bsico:

Entender los scripts usados

Crear nuevas reglas para proteger servicios o redirigir trfico.

iptables

iptables es lo que conoce como statefull firewall. Esto significa que realiza un seguimiento de las conexiones, sabiendo que paquetes pertenecen a cada conexin.

iptables se divide en dos partes:

parte de kernel: mdulos o compilado en el propio kernel.

parte de usuario: utilidades para modificar las reglas.

iptables

El procesamiento que iptables realiza con los paquetes se hace en cadenas, algo as como pasos. La serie especfica de pasos depende de si se trata de una conexin entrante, saliente o forwarded.

Tenemos tres tipos de reglas. Cada una se puede usar en determinados pasos, llamadas cadenas y cada cadena usa unas tablas:

MANGLE: Todas

NAT: reglas PREROUTING, POSTROUTING

FILTER: reglas INPUT, OUTPUT, FORWARD.

iptables

Eliminacin de todas las reglas:

iptables -F

elimina las reglas de filtrado, ya que por defecto se usa la tabla filter.

iptables -X

elimina las cadenas definidas por el usuario

iptables -Z

resetea los contadores

iptables -t nat -F

elimina las reglas de NAT.

iptables

Establecer la poltica por defecto:

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

Estas reglas se aplican a los paquetes que no coinciden con ninguna regla.

Aadir reglas

iptables -A ...

La regla se aade al final de la lista, y se mirar, si se mira, la ltima.

iptables

Aadir reglas de filtrado

iptables -A INPUT -p tcp --dport 21 -j DROP

Deniega conexiones FTP a esta mquina:

INPUT indica que la regla debe aplicarse al trfico cuyo destino es local.

-p tcp indica que la regla debe aplicarse a paquetes TCP.

--dport 21 indica que la regla debe aplicar a paquetes con puerto destino 21.

-j DROP indica la accin a realizar con el paquete, en este caso tirarlo. Las opciones son:

ACCEPT, DROP, REJECT, MASQUERADE (slo para la tabla nat)

iptables

Aadir reglas de redireccin de puertos

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

-t nat usar la tabla de nat

PREROUTING, el cambio de puerto hay que hacerlo antes de enrutar.

REDIRECT, hace que el paquete sea redirigido a otro puerto en la misma mquina.

--to-port 3128 hace que el paquete sea redirigido al puerto 3128.

iptables

Borrar reglas

iptables -D INPUT -p tcp --dport 21 -j DROP

Se especifica la misma regla, cambiando -A por -D.

Mostrar reglas

iptables -L

Mostrar reglas de NAT:

iptables -t nat -L

iptables

Probando las reglas con netcat

netcat es una pequea utilidad que lee y escribe datos a travs de conexiones de red, usando los protocolos tcp y udp. Muy til a la hora de solucionar problemas relacionados con la accesibilidad.

Crear una conexin para comprobar si el servidor ssh es accesible:

$nc 172.21.232.2 22

Todo lo que escribas se manda al servidor remoto, y todo lo que el servidor enve se muestra por pantalla.

iptables

Probando las reglas con netcat

Ponemos una regla para denegar el acceso a VNC de un alumno a otro:

#iptables -A INPUT -i eth0 -s ! $PROFESOR -p tcp --destination-port 5900 -j DROP

Comprobamos que realmente hace lo que debe:

Poner netcat escuchando en el puerto 5900 (VNC) en un alumno.

$netcat -l -p 5900

Comprobar que desde otro alumno no podemos acceder al servicio:

$netcat aula-o01 5900