Configuración básica de la red Departamento de Sistemas Telemáticos y Computación (GSyC) http://gsyc.urjc.es Octubre de 2011 GSyC - 2011 Configuración básica de la red 1 c 2011 GSyC Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution Share-Alike 3.0 GSyC - 2011 Configuración básica de la red 2 Nombres de máquinas Nombre de la propia máquina Nombre de la propia máquina Hay dos maneras de cambiar el nombre de la máquina 1 Usar la orden hostname hostname <nuevo_nombre_de_maquina> 2 El efecto es inmediato, pero se pierde al reiniciar Modificar un fichero de configuración /etc/HOSTNAME (Red Hat) /etc/hostname (Debian) /etc/config/system (OpenWrt) El cambio es persistente, pero solo tiene efecto tras reiniciar GSyC - 2011 Configuración básica de la red 3 Nombres de máquinas Nombre de la propia máquina El nombre cambiado de esta manera afecta al prompt, a la variable de entorno HOSTNAME y poco más (El prompt es la lı́nea que muestra la shell para indicar que está a la espera de órdenes) milogin@zeta40:~$ Los servicios de red no usan ni consultan este nombre, sino que resuelven nombres en /etc/hosts o en el DNS El usuario no suele percibir la diferencia porque lo normal y razonable es usar el mismo nombre en /etc/hostname y en /etc/hosts Pero en una máquina a medio configurar podrı́an ser distintos GSyC - 2011 Configuración básica de la red 4 Nombres de máquinas Nombre de la propia máquina Nombres de otras máquinas: /etc/hosts El fichero /etc/hosts era la única manera de resolver nombres de máquina cuando no existı́a DNS 127.0.0.1 82.159.1.186 212.128.4.4 193.147.73.136 localhost mi_pc pantuflo.es zeta40.aulas.gsyc.es pantuflo zeta40 En la actualidad es útil para Resolver direcciones que no están en ningún servidor de DNS Resolver direcciones muy frecuentes sin usar su nombre de dominio completo (FQDN) Este fichero tiene precedencia sobre el DNS Algunas aplicaciones exigen que tanto localhost como el nombre de la máquina puedan resolverse Su ubicación es la misma en prácticamente todas las distribuciones Linux GSyC - 2011 Configuración básica de la red 5 Nombres de máquinas Nombre de la propia máquina Servidores de DNS Dentro de la URJC 193.147.184.2 193.147.184.11 En las redes domésticas normalmente podremos apuntar al router proporcionado por el ISP, que frecuentemente tiene la dirección 192.168.1.1 En otro lugar, debemos averiguar la dirección del servidor de nuestro ISP También podemos emplear (en cualquier parte) los servidores de google 8.8.8.8 8.8.4.4 GSyC - 2011 Configuración básica de la red 6 Interfaces de red Interfaces de red El Hardware de red puede ser muy variable, pero en TCP/IP se define un interfaz abstracto. Permite enviar y recibir paquetes siempre de la misma forma, con independencia del tipo de dispositivo Interfaz loopback: lo Interfaces ethernet: eth0, eth1, eth2,... Interfaces wifi: wlan0, wlan1... Pueden tener otros nombres, dependiendo del driver Interfaces ppp (teléfonos fijos o móviles): ppp0, ppp1, ppp2,... GSyC - 2011 Configuración básica de la red 7 Interfaces de red Cada máquina normalmente tendrá varios interfaces Según el diseño original de IPv4, cada interfaz tiene exactamente 1 dirección En rigor, las máquinas no tienen dirección IP. (Pertenecen a los interfaces) GSyC - 2011 Configuración básica de la red 8 Interfaces de red El interfaz lo El interfaz lo En las máquinas tipo Unix al interfaz loopback se le suele llamar lo Es un interfaz especial, virtual. Se usa para establecer conexiones dentro de una misma máquina, En /etc/hosts tiene que haber una entrada para la dirección 127.0.0.1 asociada al nombre localhost Que no debe mezclarse con la entrada para el nombre y dirección ordinario Ejemplo correcto: 127.0.0.1 193.147.73.136 localhost zeta40.aulas.gsyc.es zeta40 Ejemplo INCORRECTO 127.0.0.1 GSyC - 2011 localhost zeta40 # ESTO ES UN ERROR!! Configuración básica de la red 9 Interfaces de red El interfaz lo Las tramas con destino a lo no se envı́an a ningún dispositivo de red fı́sico, permanecen dentro de la red interna de la máquina Es necesario que lo siempre esté activo, incluso cuando se identifique a la máquina con una dirección de un rango distinto Ejemplo: Si desactivamos lo y desde una máquina con dirección 193.147.73.136 enviamos un ping a la propia 193.147.73.136 , no habrá respuesta GSyC - 2011 Configuración básica de la red 10 Interfaces de red Nombre y estado de los interfaces Nombre y estado de los interfaces Para conocer los nombres de los interfaces reconocidos por el núcleo, podemos hacer búsquedas sobre los mensajes del proceso de arranque dmesg | grep eth dmesg | grep ath dmesg | grep wlan Para conocer el estado actual de los interfaces activos (solo de los activos) podemos usar la orden ifconfig, sin argumentos GSyC - 2011 Configuración básica de la red 11 Interfaces de red Nombre y estado de los interfaces koji@mazinger:~$ ifconfig eth0 Link encap:Ethernet direcciónHW 00:23:8b:26:b5:81 Direc. inet:193.147.71.119 Difus.:193.147.71.127 Másc:255.25 Dirección inet6: fe80::223:8bff:fe26:b581/64 Alcance:Enlace ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1 Paquetes RX:5321 errores:0 perdidos:0 overruns:0 frame:5 Paquetes TX:82 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000 Bytes RX:438333 (438.3 KB) TX bytes:13002 (13.0 KB) eth1 Link encap:Ethernet direcciónHW 00:21:00:8b:77:2a Dirección inet6: fe80::221:ff:fe8b:772a/64 Alcance:Enlace ACTIVO DIFUSIÓN MULTICAST MTU:1500 Métrica:1 Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0 Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000 Bytes RX:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Bucle local Direc. inet:127.0.0.1 Másc:255.0.0.0 [...] GSyC - 2011 Configuración básica de la red 12 Interfaces de red Nombre y estado de los interfaces iwconfig En el caso de interfaces inalámbricos, podemos tener información adicional con la orden iwconfig koji@mazinger:~$ iwconfig lo no wireless extensions. eth0 no wireless extensions. eth1 IEEE 802.11 Access Point: Not-Associated Link Quality:5 Signal level:0 Noise level:0 Rx invalid nwid:0 invalid crypt:0 invalid misc:0 GSyC - 2011 Configuración básica de la red 13 Interfaces de red Nombre y estado de los interfaces Configuración de los interfaces de red Hay dos maneras de configurar los interfaces de red: con herramientas de bajo nivel o con herramientas de alto nivel. No deben usarse ambos métodos simultáneamente Con herramientas de bajo nivel: El administrador invoca a ifconfig, route pasando párametros directamente. Esta configuración se pierde al reiniciar la máquina. GSyC - 2011 Configuración básica de la red 14 Interfaces de red Nombre y estado de los interfaces Configuración de alto nivel El administrador (o algunos demonios) editan ciertos ficheros de configuración, especificando todos los parámetros de los interfaces La ubicación y el formato de estos ficheros es variable Sistemas basado en Red Hat /etc/sysconfig/network-scripts Sistemas basados en Debian /etc/network OpenWrt /etc/config GSyC - 2011 Configuración básica de la red 15 Interfaces de red Nombre y estado de los interfaces Modificar los ficheros de configuración, sin más, no provoca ningún efecto. Es necesario desactivar el interfaz (si estaba activo) y volverlo a activar ifdown eth0 Desactiva el interfaz eth0 ifup eth0 Activa el interfaz eth0, atendiendo a lo indicado en el fichero de configuración GSyC - 2011 Configuración básica de la red 16 Interfaces de red Nombre y estado de los interfaces Otra manera de que los cambios en el fichero de configuración pasen a tener efecto es reiniciar el demonio de red /etc/init.d/networking stop /etc/init.d/networking start O lo que es lo mismo /etc/init.d/networking restart GSyC - 2011 Configuración básica de la red 17 Interfaces de red Interfaces de red en Debian/Ubuntu Interfaces de red en Debian/Ubuntu Fichero /etc/network/interfaces Interfaz lo auto lo iface lo inet loopback Configuración estática (fijada a mano por el administrador) auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 8.8.8.8 8.8.4.4 Configuración dinámica (DHCP) auto eth1 iface eth1 inet dhcp GSyC - 2011 Configuración básica de la red 18 Interfaces de red Interfaces de red en Debian/Ubuntu Se pueden poner comentarios con #, pero solo a comienzo de lı́nea auto eth0 Todos los interfaces precedidos por auto se activan automáticamente al hacer ifup -a (El sistema hace ifup -a cada vez que se inicia) GSyC - 2011 Configuración básica de la red 19 Interfaces de red Interfaces de red en Debian/Ubuntu El lugar tradicional para especificar la dirección de los servidores de DNS es el fichero /etc/resolv.conf nameserver 193.147.184.2 nameserver 8.8.8.8 Las distribuciones actuales suelen usar la aplicación resolvconf, que modifica dinámicamente /etc/resolv.conf a partir de la opción dns-nameservers de /etc/network/interfaces o del resultado de las consultas DHCP En un ubuntu actual administrado desde la shell, es recomendable especificar los servidores de DNS en ambos sitios, en /etc/resolv.conf y en /etc/network/interfaces GSyC - 2011 Configuración básica de la red 20 Interfaces de red Interfaces de red en Debian/Ubuntu Interfaces Inalámbricos Para configurar una red WiFi (abierta o WEP) los parámetros son: wireless-essid mi identificador de red wireless-mode [Ad-Hoc|Managed] Ad-Hoc: Sin Access Point Managed: Con Access Point wireless-key mi clave wireless-keymode [restricted|open] restricted: El interfaz solo acepta conexiones encriptadas open: El interfaz acepta conexiones de cualquier tipo wireless-channel mi canal GSyC - 2011 Configuración básica de la red 21 Interfaces de red Interfaces de red en Debian/Ubuntu Ejemplo: iface wlan0 inet dhcp wireless-essid WLAN_01 wireless-mode Managed wireless-key 58303030313338345630443031 wireless-keymode open wireless-channel 6 El essid es sensible a mayúsculas/minúsculas GSyC - 2011 Configuración básica de la red 22 Interfaces de red Interfaces de red en Debian/Ubuntu Red con seguridad WPA/WPA2 Es necesario tener instalado el paquete wpasupplicant auto wlan0 iface wlan0 inet dhcp wpa-ssid mi_identificador_de_red wpa-psk mi_clave GSyC - 2011 Configuración básica de la red 23 Interfaces de red Interfaces de red en OpenWrt Interfaces de red en OpenWrt Los interfaces de red en OpenWrt se configuran en /etc/config/network: Ejemplos: Dirección estática config interface option ifname option proto option ipaddr option netmask option gateway option dns lan eth0 static 192.168.1.1 255.255.255.0 192.168.1.254 192.168.1.254 Dirección dinámica (DHCP) config interface lan option ifname eth0 option proto dhcp GSyC - 2011 Configuración básica de la red 24 Interfaces de red Interfaces de red en OpenWrt En OpenWRT es habitual agrupar los interfaces fı́sicos en puentes (bridges) Un puente es un interfaz virtual formado al agregar uno o más interfaces fı́sicos Usando puentes, ya no se puede aplicar ifup, ifdown al interfaz fı́sico, sino al puente completo El nombre del interfaz fı́sico que conocemos p.e. con dmesg|grep eth ya no sirve. Tenemos que fijarnos en la definición del puente (en /etc/config/network) ifdown lan ifup lan GSyC - 2011 Configuración básica de la red 25 NAT: Network Address Translation NAT: Network Address Translation Según el diseño original de IPv4, todos los equipos están conectados directamente a la red Pero la escasez de direcciones IPv4 y la reticencia a desplegar IPv6 ha hecho omnipresente el uso de NAT, que complica la estructura de toda la red GSyC - 2011 Configuración básica de la red 26 NAT: Network Address Translation Puertos Puertos En el nivel de red, la dirección IP identifica el interfaz de una máquina. Dentro de una máquina, es necesario distinguir un proceso de otro. Por eso el nivel de transporte introduce el concepto de puerto En cada dirección se distinguen 65535 puertos TCP y 65535 puertos UDP Cada servicio tiene asociado un puerto por omisión. (En Unix puede consultarse el fichero /etc/services) Es habitual, aunque no obligatorio, que se reserve tanto el puerto TCP como el UDP para el mismo servicio En los puertos hasta el 1023, inclusive, solo pueden atarse procesos cuyo dueño sea root En los puertos del 1024 al 65535 se puede atar cualquier proceso. GSyC - 2011 Configuración básica de la red 27 NAT: Network Address Translation Puertos /etc/services ssh ssh smtp www www pop3 pop3 sunrpc sunrpc ntp ntp irc irc ldap ldap https https rsync rsync GSyC - 2011 22/tcp 22/udp 25/tcp mail 80/tcp http 80/udp 110/tcp pop-3 110/udp pop-3 111/tcp portmapper 111/udp portmapper 123/tcp 123/udp 194/tcp 194/udp 389/tcp 389/udp 443/tcp 443/udp 873/tcp 873/udp Configuración básica de la red 28 NAT: Network Address Translation Direcciones públicas y privadas Direcciones públicas y privadas NAT permite que una red con rango de direcciones IP privadas pueda acceder a máquinas con direcciones IP públicas compartiendo una única dirección pública, la del router que hace NAT En el router que hace NAT, se asocia una dirección pública y un puerto (del router) con una dirección privada y un puerto (de una máquina de la red privada) GSyC - 2011 Configuración básica de la red 29 NAT: Network Address Translation Direcciones públicas y privadas En la arquitectura cliente/servidor, normalmente es el cliente quien inicia la conexión Cliente detrás del NAT: por ser el cliente quien empieza, el router puede ver qué dirección privada:puerto está usando, y automáticamente asociarlo con la dirección pública:puerto Servidor detrás del NAT: Cuando el cliente envı́a una petición, el servidor aún no ha hablado, por tanto no se puede establecer automáticamente la relación dirección privada:puerto Hay que hacerlo a mano, lo que se denomina Port forwarding, o en español, informalmente, abrir puertos GSyC - 2011 Configuración básica de la red 30 NAT: Network Address Translation Configuración del Port Forwarding Configuración del Port Forwarding El Port forwarding, es esencialmente igual en todos los routers Las instrucciones concretas para prácticamente cualquier router podemos encontrarlas en www.portforward.com En nuestro caso lo haremos en el router integrado en VirtualBox El NAT de virtualbox se configura con el mandato VBoxManage (Se ejecuta en el Host, que es donde esá el router) Como es largo y mezcla mayúsculas y minúsculas, podemos definir alias vbm=’VBoxManage’ GSyC - 2011 Configuración básica de la red 31 NAT: Network Address Translation Configuración del Port Forwarding Ejemplo: Definimos la regla apache para que las conexiones a la IP del host, puerto 10080 TCP, vayan al interfaz 0 del la dirección IP del guest mv01, puerto 80 vbm setextradata "mv01" "VBoxInternal/Devices/e1000/0/LUN#0/Config/regla_apache/Protocol" TCP vbm setextradata "mv01" "VBoxInternal/Devices/e1000/0/LUN#0/Config/regla_apache/GuestPort" 80 vbm setextradata "mv01" "VBoxInternal/Devices/e1000/0/LUN#0/Config/regla_apache/HostPort" 10080 (e1000 se corresponde con la tarjeta de red Intel Network Adapter, podrı́a ser pcnet) Para verificar que la regla está bien instalada vbm getextradata mv01 enumerate Para borrar una regla, la creamos sin argumento vbm setextradata "mv01" "VBoxInternal/Devices/e1000/0/LUN#0/Config/regla_apache/Protocol" Tras cargar las reglas, es necesario detener y reiniciar VirtualBox Para ver en el router las conexiones abiertas netstat -t -u GSyC - 2011 Configuración básica de la red 32 NAT: Network Address Translation Llamadas a un servidor tras un NAT Llamadas a un servidor tras un NAT Como usamos un puerto no estándar para el servicio, hay que indicarlo explı́citamente en el cliente. La sintaxis cambia con cada aplicación scp -P 10080 usuario@maquina:/trayecto/fichero . http://maquina:10080 ssh user@localhost -p 10080 GSyC - 2011 Configuración básica de la red 33 NAT: Network Address Translation Llamadas a un servidor tras un NAT Observaciones: Es un error frecuente intentar emplear en el cliente la dirección y/o el puerto que tiene el servidor en la red privada. La dirección y el puerto que ve el cliente es la de la máquina que hace NAT En Debian/Ubuntu, la configuración por omisión no incluye servidor de SSH. Si lo necesitamos, debemos instalarlo explı́citamente GSyC - 2011 Configuración básica de la red 34