Administración y gestion de sistemas Linux
Bloque 4: Administración de redes
Manuel David Fernández Vaamonde
(page 1)
Introducción.
Administrador de redes
- Configuración de equipos y sus redes
- Configuración de las tablas de rutado
- Mantenimiento de la seguridad en las redes
- Firewalling.
- Monitorización.
- Mantenimiento de eficiencia de la red.
(page 2)
Introducción. TCP/IP.
Cuatro capas:
- Enlace -> Driver del sistema operativo.
- Red -> Direcciones IP
- Realiza el movimiento del paquete por la red.
- Rutado de paquetes
- Saltos entre máquinas conectadas directamente.
- Protocolos: IP, ICMP
(page 3)
Introducción. TCP/IP
- Transporte -> Flujo entre dos máquinas
- TCP
- Orientado a la conexión
- Se producen confirmaciones de llegada
- Procolo de saludo (handshaking)
- UDP
- NO orientado a la conexión
- No se producen confirmaciones de llegada
- Mas rapido ( usado por video y aplicaciones RT)
- Aplicación -> Proceso de esos datos
- Introducción de puertos para nombrar aplicaciones.
(page 4)
Introducción. TCP/IP
- Cliente: SYN (SYN_SENT)(LISTEN)
- Servidor: SYN (ESTABLISHED)(SYN_RCVD)
- Cliente: ACK (ESTABLISHED)(ESTABLISHED)
- ...
- Cliente: FIN (FIN_WAIT1)(ESTABLISHED)
- Servidor: ACK (FIN WAIT2)(CLOSE_WAIT)
- Servidor: FIN (TIME_WAIT)(LAST_ACK)
- Cliente: ACK (TIME_WAIT)(CLOSED)
- Números de secuencias aleatorios e incrementales.
(page 5)
Red. Rutado.
- Contiene ips o redes y el interfaz para alcanzarlas.
- Las rutas pueden ser para una red o para un host.
- Para activar el rutado de paquetes:
- echo 1 > /proc/sys/net/ipv4/ip_forward
- Ruta por defecto (default)
(page 6)
Red. Rutado
- add
- default
- gw (ip gateway)
- -net red (para una ruta a red)
- netmask mascara
- dev dispositivo
- route add default gw 192.168.1.100
- route -net 192.168.1.0 netmask 255.255.255.0 dev eth1
- route -net 192.168.2.0 netmask 255.255.255.0 dev eth2
- route add 192.168.1.4 dev plip0
(page 7)
Red. Comando ip (introducción)
- Nuevo sistema de configuración de red: ip
- Nuevas funcionalidades:
- Control de trafico
- Tuneles ip
(page 8)
Red. Comando ip (introducción)
- Objetos ip:
- link,address,route,tunnel,neighbor
- link: Muestra datos de la capa de red (tarjeta)
- show : Muestra datos de la interfaz
- mtu -> maximum transfer unit
- link/ether -> Dirección mac
- brd -> Broadcast de red
- set : Parametros
- up o down: levanta o no el interfaz.
- mtu: Cambia el mtu
- address: direccion mac
(page 9)
Red. Comando ip (introducción)
- address: Muestra datos de una dirección ip
- show (dispositivo): direcciones
- direccion/alcance broadcast ...
- dev dispositivo
- Ejemplo:
- ip address add 192.168.1.5/24 dev eth0
(page 10)
Red. Comando ip (introducción)
- route: Añade una tabla de rutas ( por defecto a main)
- add: Añade una ruta
- dirección(ip o red) dev dispositivo
- dirección(ip o red) via direccion (gw)
- default via direccion
- Ejemplos:
- ip route add default via 192.168.1.3
- ip route add 192.168.3.0 via 192.168.1.3
- ip route add 192.168.1.0 dev eth0
(page 11)
Red. Monitorización de red
- Logs: ippl (ver fichero de configuración)
- log-in (all|udp|tcp|icmp) fichero
- ignore (udp|tcp|icmp)
- from maquina
- port puerto (en letra)
- type (echo_reply)(echo_request)
- srcport puerto
- run (tcp|upd|icmp)
- Herramienta de monitorización:
(page 12)
Tipos de servicios de red.
- metademonio que arranca los servers bajo demanda.
(page 13)
Auditoría de la red.
- ¿ Que estamos sirviendo en nuestra red?
- Desde el interior: netstat
- -r -> Ruta de la máquina
- -i -> Tabla de interfaces
- -l -> Sockets escuchando
- -t -> tcp
- -u -> udp
- -s -> estadisticas ( un tanto duras )
- -a -> Todos los sockets conectados
- -p -> Da los programas que usan los sockets
(page 14)
Auditoría de Red
- Desde el exterior: escaneo de puertos (nmap)
- nmap (escanea puertos tcp)
- -sU (escanea udp como root)
- -sT (scan de tipo conect)
- -sP (ping scan, maquinas existentes)
- -sS (scan por TCP SYN)
- -O adivina el sistema operativo
- -p rango (rango de puertos a escanear)
- -F ( Fast Scan)
- 192.168.1.* ...
- -e interface
(page 15)
Red. TCP Wrappers
- Aplicación en el metademonio inetd.conf
- Filtran a nivel de aplicación
- Se puede filtrar por aplicación.
- El path de la aplicación se sustituye por /usr/sbin/tcpd
- Se le pasan como parametros la aplicación a arrancar
(page 16)
Red. TCP Wrappers
- Se chequea el acceso por el siguiente orden:
- Si hay entrada en /hosts.allow se permite
- Si han entrada en /hosts.deny se deniega
- Si no hay entrada, se permite
(page 17)
Red. TCP Wrappers
- Formato:
- demonio : clientes : shell
- Demonio:
- Clientes:
- ALL
- LOCAL
- .es, .yahoo.es
- yahoo.
- PARANOID
- ALL EXCEPT
- usuario@dominio
(page 18)
Red. TCP Wrappers
- /etc/hosts.allow:
- ALL: LOCAL @some_netgroup
- ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
- /etc/hosts.deny:
- in.tftpd: ALL: (/usr/sbin/safe_finger -l @%h | \
- /usr/bin/mail -s %d-%h root) &
(page 19)
Red. TCP Wrappers
- %c -> Informacion del cliente
- %h -> Direccion del cliente
- %d -> Daemon que provoca el salto de reglas
- %u -> Usuario del cliente
(page 20)
Red. Firewalling
- Firewall
- Máquina o sistema que se introduce entre redes para controlar su tráfico.
- Generalmente se usa para cortar accesos, pero no tiene porque ser así
- Exige tener muy claro los servicios y accesos de nuestra red.
- Parte más compleja: Diseño de las reglas.
- La máquina de firewall ha de ser una máquina SEGURA
- Algunas configuraciones: perimetro o usual.
(page 21)
Red. Firewalling.
- Actúa en la capa de Red
- Distinto de los TCP/Wrappers
- Más rápido
- Puede restringir por:
- direcciones
- protocolos
- SYN/ACK, etc...
(page 22)
Red. Firewalling
- Evolución del firewalling en Linux
(page 23)
Red. Firewalling
- Se establecen las reglas en cadenas
- Las tres cadenas básicas se asocian a tipo de conexiones
- input -> Entrante
- output -> Saliente
- forward -> Enrutamiento
- Podemos crear nuevas cadenas
- Las cadenas primarias pueden descargar paquetes en las nuevas
(page 24)
Red. Firewalling
- -L cadena -> Lista las reglas de las cadenas
- -F cadena -> Vacia las reglas de todas las cadenas
(page 25)
Red. Firewalling
- Ordenes
- -A (cadena) Se añade una regla al final de la cadena
- -I (cadena) Se añade una regla al final de la cadena
- -D (cadena) Se elimina una regla que concuerde
- -D (cadena) (Numero de regla)
- -Z (cadena) Establece a cero los contadores de bytes y dat.
- -N (cadena) Crea una nueva cadena
- -X (cadena) elimina una cadena.
- -P (cadena) política de cadena
- ACCEPT
- DENY
- REJECT
- RETURN
(page 26)
Red. Firewalling
- -p[!] Protocolo
- -s[!] dirección/mascara [!] puerto
- -d "" "" "
- -j cadena (lo manda a otra cadena)
- -i [!]interfaz
- -f se aplica a todo menos al primer fragmento
(page 27)
Red. Firewalling
- -l habilita registro en el nucleo
- -m valor de marca
- -y SIN=1 y ACK,FIN=0 (filtra tcp)
(page 28)
Red. Firewalling
(page 29)
Red. Firewallling
ipchains -A input -d 0/0 25 -p tcp -i ppp0 -j ACCEPT
ipchains -A input -d 0/0 22 -p tcp -i ppp0 -j ACCEPT
ipchains -A input -d 0/0 21 -p tcp -i ppp0 -j ACCEPT
ipchains -A input -d 0/0 20 -p tcp -i ppp0 -j ACCEPT
ipchains -A input -d 0/0 1025:65535 -p tcp -i ppp0 -j ACCEPT
ipchains -A input -d 0/0 -p tcp -i ppp0 -j REJECT
(page 30)
Red. Firewallling
- IPChains. Creacion de otra cadena. Ejemplo
ipchains -N prueba
ipchains -A prueba -d 0/0 25 -p tcp -i ppp0 -j ACCEPT
ipchains -A prueba -d 0/0 22 -p tcp -i ppp0 -j ACCEPT
ipchains -A prueba -d 0/0 21 -p tcp -i ppp0 -j ACCEPT
ipchains -A prueba -d 0/0 20 -p tcp -i ppp0 -j ACCEPT
ipchains -A prueba -d 0/0 1025:65535 -p tcp -i ppp0 -j ACCEPT
ipchains -A input -d 0/0 -p tcp -i ppp0 -j prueba
ipchains -A input -d 0/0 -p tcp -i ppp0 -j REJECT
(page 31)
Red. Firewalling
- Se permite enmascarar direcciones con una sola ip
- La vuelta se localiza mediante los puertos de conex.
- -j MASQ en la cadena forward.
(page 32)
Red. Firewalling
- IPchains. Algunas deficiencias.
- Mayor número de reglas específicas
- Posibilidad de logeo mas 'expresivo'
(page 33)
Red. Firewalling
- IPtables ( kernels 2.4.x )
- Mejoras con respecto a ipchains.
- Nuevas características con módulos
- Un NAT mucho más mejorado
- No especialmente distinto a ipchains
(page 34)
Red. Firewalling
- Seguimos con el concepto de cadenas:
- Estas despues de la decision de rutado.
- Existen ciertas cadenas para NAT:
(page 35)
Red. Firewalling
- Diferencias con respecto a ipchains ( en filtrado ):
- Las cadenas se nombran en MAYUSCULAS
- El target DENY es cambiado por DROP
- -i significa el interfaz de ENTRADA
- -o sera el interfaz de salida
- Han de ser activados los protocolos de los módulos
- -p tcp, -p udp
- -m limits etc...
- Los puertos se nombran como: --dport, --sport
- LOG y REJECT son módulos separados
- El target MASQ es ahora MASQUERADE
- Se conserva la sintaxis.
(page 36)
Red. Firewalling
- Ejemplo del firewall anterior adaptado a ipchains:
iptables -A INPUT -d 0/0 -p tcp --dport 25 -i ppp0 -j ACCEPT
iptables -A INPUT -d 0/0 -p tcp --dport 22 -i ppp0 -j ACCEPT
iptables -A INPUT -d 0/0 -p tcp --dport 21 -i ppp0 -j ACCEPT
iptables -A INPUT -d 0/0 -p tcp --dport 20 -i ppp0 -j ACCEPT
iptables -A INPUT -d 0/0 -p tcp --dport 1025:65535 -i ppp0 -j ACCEPT
iptables -A INPUT -d 0/0 -p tcp -i ppp0 -j DROP
(page 37)
Red. Firewalling
IPtables
- Extensiones tcp/ip ( en protocolos )
- -p tcp
- --tcp-flags ALL SYN,ACK
- --sport, --dport
- -p udp
- -p icmp
- --icmp-type (echo-reply, echo-request)
- iptables -p prot --help
(page 38)
Red. Firewalling
IPtables
- Nuevos "targets" (además de DROP, ACCEPT, y cadenas propias)
- LOG:
- --log-level (debug,info,notice,warning,err,crit,...)
- --log-prefix (29 caracteres)
- Util despues de un "match" para no llenar logs
(page 39)
Red. Firewalling
IPtables
- Algunos modulos interesantes en iptables:
- Los módulos se activan con -m modulo
- mac:
- -m mac
- permite discriminar por dirección mac ( ethernet )
- --mac-source 00:60:08:91:CC:B7
(page 40)
Red. Firewalling
IPtables
- -m limit
- --limit 1/s (/h, /m), da el límite máximo con el que se hará match en la regla.
- Ejemplo:
- iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
(page 41)
Red. NAT
IPtables. NAT
- Network Address Translation
- Mejora considerablemente ipchains
- Implementa muchos más tipos de NAT
(page 42)
Red. NAT
IPtables. NAT
- Nat de destino (DNAT) :
- Traduce direcciones del campo destino.
- Se hace post-routing
- Nat de origen (SNAT) :
- Traduce direcciones del campo origen.
- Un superconjunto de MASQUERADING.
- Se hace pre-routing
(page 43)
Red. NAT
- Hemos de indicar la tablan NAT (-t nat)
- Para masquerading:
- iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
- echo 1 > /proc/sys/net/ipv4/ip_forward
- Para SNAT:
- iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
- Para DNAT:
- iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 5.6.7.8:8080
(page 44)
Red. Seguridad en red.
- Puntos de seguridad en red ( generales ):
- Saber exactamente que estamos sirviendo (tcp/udp)
- Saber que versiones de lo que servimos y actualizarnos.
- Filtrar con un firewall, lo más restrictivo posible
- Realizar una planificacion correcta.
- Servir únicamente lo necesario, nada más.
(page 45)