====== 205.2 Advanced Network Configuration and Troubleshooting ====== Pertenece a [[informatica:certificaciones:lpic:lpic-2:205_network_configuration|LPI Topic 205: Network Configuration]] * **Weight**: 4 * **Description**: Candidates should be able to configure a network device to implement various network authentication schemes. This objective includes configuring a multi-homed network device and resolving communication problems. * **Key Knowledge Areas**: * Utilities to manipulate routing tables * Utilities to configure and manipulate ethernet network interfaces * Utilities to analyze the status of the network devices * Utilities to monitor and analyze the TCP/IP traffic * **Terms and Utilities**: * ''ip'' * ''ifconfig'' * ''route'' * ''arp'' * ''ss'' * ''netstat'' * ''lsof'' * ''ping'', ''ping6'' * ''nc'' * ''tcpdump'' * ''nmap'' ===== VPN ===== VPN (//Virtual Private Network//) permite conectar dos o mas redes remotas de modo seguro a través de una conexión insegura (Internet). Para ello crea un túnel cifrado, y toda la información se cifra antes de ser enviada a través de la conexión insegura. De este modo, estando en cualquier sitio, tenemos la sensación de estar en la red remota a la que nos conectamos. Podemos implementar diferentes tipos de VPNs en función del sistema que usemos para el cifrado, desde certificados SSL/TLS a conexiones SSH. Algunos de los sistemas más utilizados en linux son **IPSEC** y **OpenVPN** ===== Herramientas para resolución de problemas de red ===== ==== ping y ping6 ==== Comando que permite conocer si una máquina está accesible o no. Utiliza el protocolo ICMP Opciones: * ''-c'': Permite especificar el numero de ecos. * ''-b'': Permite hacer ping a una dirección de broadcast. * ''-i'': Permite especificar un intervalo (defecto 1s). * ''-n'': Deshabilita la resolución de nombres (solo muestra direcciones IP) Ctrl + c para detener la ejecución del comando ''ping''. ping 10.0.2.2 PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data. 64 bytes from 10.0.2.2: icmp_seq=1 ttl=64 time=0.293 ms 64 bytes from 10.0.2.2: icmp_seq=2 ttl=64 time=0.297 ms 64 bytes from 10.0.2.2: icmp_seq=3 ttl=64 time=0.225 ms 64 bytes from 10.0.2.2: icmp_seq=4 ttl=64 time=0.326 ms 64 bytes from 10.0.2.2: icmp_seq=5 ttl=64 time=0.399 ms 64 bytes from 10.0.2.2: icmp_seq=6 ttl=64 time=0.093 ms En la salida se ve la dirección de respuesta, el número de secuencia, tiempo de validez del paquete que le enviamos y tiempo de respuesta. ping –c 6 www.google.es También podemos usar ping para comprobar si funciona correctamente el DNS ya que si al hacer ping a un nombre de dominio no nos responde, es posible que haya un problema de resolución de nombres. ==== traceroute ==== Comando que permite comprobar la conectividad con un sistema remoto, devolviendo los routers por lo que pasa el paquete IPv4/IPv6 (''traceroute6'') En el protocolo TCP/IP se envía información a un destino. Para llegar a ese destino, la información va pasando por routers que van encaminando la información hasta el punto correcto. traceroute www.google.de traceroute to google.de (172.217.23.99), 30 hops max, 60 byte packets 1 ip-1-75-136-213.static.contabo.net (213.136.75.1) 0.700 ms 0.655 ms 0.629 ms 2 nug-i1-link.telia.net (62.115.155.130) 3.329 ms nug-b1-link.ip.twelve99.net (213.248.100.130) 2.556 ms nug-b1-link.ip.twelve99.net (62.115.171.252) 2.532 ms 3 ffm-bb1-link.ip.twelve99.net (62.115.113.146) 3.589 ms 3.614 ms ffm-bb2-link.ip.twelve99.net (62.115.114.148) 3.854 ms 4 ffm-b11-link.ip.twelve99.net (62.115.124.117) 4.170 ms ffm-b11-link.ip.twelve99.net (62.115.124.119) 3.831 ms ffm-b11-link.ip.twelve99.net (62.115.124.117) 4.254 ms 5 google-ic319727-ffm-b11.ip.twelve99-cust.net (62.115.151.27) 6.193 ms google-ic324085-ffm-b11.ip.twelve99-cust.net (62.115.153.213) 3.627 ms 3.603 ms 6 * * * 7 108.170.252.1 (108.170.252.1) 7.100 ms 142.250.46.244 (142.250.46.244) 9.305 ms fra16s45-in-f3.1e100.net (172.217.23.99) 3.571 ms En cuanto a la salida, ''*'' representa que el campo requerido no fue encontrado. Con la opción ''-n'' deshabilitamos el mapeo entre nombre de host y dirección IP: traceroute -n google.de traceroute to google.de (142.250.185.99), 30 hops max, 60 byte packets 1 213.136.75.1 0.630 ms 0.604 ms 0.588 ms 2 62.115.172.2 1.044 ms 0.998 ms 0.964 ms 3 62.115.113.146 3.800 ms 3.794 ms 3.756 ms 4 62.115.124.117 3.808 ms 3.726 ms 3.783 ms 5 62.115.151.25 6.228 ms 6.210 ms 6.194 ms 6 * * * 7 108.170.252.1 7.068 ms 142.250.210.196 3.887 ms 108.170.252.1 6.905 ms 8 142.250.236.31 5.971 ms 6.108 ms 9.316 ms 9 142.250.185.99 6.065 ms 6.042 ms 5.970 ms ==== mtr ==== Herramienta que combina las funciones de ''ping'' y ''traceroute''. No viene instalada por defecto. Se consigue a través del paquete ''mtr''. mtr whitehouse.gov My traceroute [v0.92] debian10 (10.0.2.15) 2021-04-08T11:38:23+0200 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 10.0.2.2 0.0% 21 0.3 0.3 0.1 0.6 0.1 2. 192.168.0.1 0.0% 21 2.3 5.8 1.7 30.4 8.2 3. 10.1.32.1 0.0% 21 10.4 11.6 7.1 27.7 5.2 4. 12.15.26.77.dynamic.reverse-mundo-r.com 0.0% 21 8.7 10.1 6.6 19.2 3.2 5. 57.17.26.77.dynamic.reverse-mundo-r.com 0.0% 21 9.4 9.3 6.4 17.0 2.3 6. ix-ae-7-700.tcore1.dvs-bilbao.as6453.net 0.0% 21 21.7 23.4 18.4 42.2 5.2 7. if-ae-14-2.tcore2.sv8-highbridge.as6453.net 0.0% 21 42.2 45.0 39.1 67.5 6.8 8. if-ae-11-2.tcore1.l78-london.as6453.net 4.8% 21 37.7 40.4 35.9 49.3 3.7 9. if-ae-29-2.thar2.ld5-slough.as6453.net 0.0% 21 37.8 41.0 35.6 58.8 6.7 10. 80.231.48.167 0.0% 21 54.0 49.7 39.2 80.6 12.6 11. ae7.r01.lon01.icn.netarch.akamai.com 0.0% 21 115.0 117.3 113.3 132.2 3.9 12. ae1.r01.lon01.ien.netarch.akamai.com 0.0% 20 113.3 115.1 108.6 126.8 5.0 13. ae3.drt-lon6.netarch.akamai.com 0.0% 20 62.9 61.3 43.0 244.7 44.2 14. a23-207-177-41.deploy.static.akamaitechnologies.com 0.0% 20 42.9 45.1 40.8 56.0 4.3 Para detener la ejecución de ''mtr'' se utiliza la combinación C-c. ==== arp y arpwatch ==== Nos permiten detectar problemas de asignación de IPs, que pueden crear conflictos en la red. A menudo, podemos tener en nuestra red errores de varios tipos: * IPs duplicadas. * Asignaciones de IPs fijas en rangos manejados por DHCP. ''arpwatch'' es un demonio que monitoriza cambios en las asignaciones de IPs a las direcciones MAC de la red y los notifica via ''syslog'' o e-mail ==== netstat ==== Muestra un listado de las conexiones activas de nuestra máquina. Además permite obtener información de la red y los protocolos utilizados. * ''-i'': Permite obtener el estado de las tarjetas de red (igual que ''ifconfig –a'') * ''-e'': Visualiza todas las conexiones establecidas. * ''-r'': Permite obtener las tablas de enrutamiento (como ''route'') * ''-n'': Indica las IPs en lugar de los nombres de las conexiones. * ''-a'': Permite visualizar todas las conexiones. * ''-A'': Permite especificar la familia del protocolo. * ''-p'': Muestra el ID y el nombre del proceso que levanta el socket. Ejemplo: netstat -panetu Salida: Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 15658 516/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 16088 811/exim4 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 0 11170 1/init tcp 0 36 192.168.2.10:22 192.168.2.1:62380 ESTABLISHED 0 19672 1019/sshd: vagrant tcp6 0 0 :::22 :::* LISTEN 0 15660 516/sshd tcp6 0 0 ::1:25 :::* LISTEN 0 16089 811/exim4 tcp6 0 0 :::111 :::* LISTEN 0 1874 1/init udp 0 0 0.0.0.0:68 0.0.0.0:* 0 16280 825/dhclient udp 0 0 0.0.0.0:111 0.0.0.0:* 0 11171 1/init udp 0 0 127.0.0.1:123 0.0.0.0:* 109 20939 507/ntpd udp 0 0 192.168.2.10:123 0.0.0.0:* 109 19552 507/ntpd udp 0 0 10.0.2.15:123 0.0.0.0:* 109 19550 507/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 0 15548 507/ntpd udp6 0 0 :::111 :::* 0 1879 1/init udp6 0 0 ::1:123 :::* 109 20943 507/ntpd udp6 0 0 fe80::a00:27ff:fedd:123 :::* 109 19557 507/ntpd udp6 0 0 fe80::a00:27ff:fe45:123 :::* 109 19555 507/ntpd udp6 0 0 :::123 :::* 0 15545 507/ntpd ''netstat'' es un programa obsoleto. El sustituto de ''netstat'' es ''ss''. El sustituto de ''netstat -r'' es ''ip route''. El sustituto de ''nestat -i'' es ''ip -s link''. ==== ss ==== Herramienta similar a ''netstat'' para investigar las conexiones de red: Ejemplo: ss -a -n Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port u_dgr UNCONN 0 0 * 1704 * 1703 u_dgr UNCONN 0 0 * 19370 * 1796 u_dgr UNCONN 0 0 * 14860 * 1796 u_dgr UNCONN 0 0 * 1703 * 1704 u_str ESTAB 0 0 * 12607 * 12608 u_str ESTAB 0 0 * 14910 * 14911 u_str ESTAB 0 0 * 15561 * 15560 udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* udp UNCONN 0 0 127.0.0.1:123 0.0.0.0:* udp UNCONN 0 0 192.168.2.10:123 0.0.0.0:* udp UNCONN 0 0 10.0.2.15:123 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:123 0.0.0.0:* udp UNCONN 0 0 [::]:111 [::]:* udp UNCONN 0 0 [::1]:123 [::]:* udp UNCONN 0 0 [fe80::a00:27ff:fedd:3798]%eth1:123 [::]:* udp UNCONN 0 0 [fe80::a00:27ff:fe45:b8a7]%eth0:123 [::]:* udp UNCONN 0 0 [::]:123 [::]:* tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* ==== nmap ==== Comando que permite realizar el escaneo de puertos de una máquina e identificar los servicios y versión o tipo de sistema operativo. El paquete ''nmap'' no viene instalado por defecto. Se instala con el paquete ''nmap'' Opciones útiles: * ''-A'': habilita determinar el sistema operativo y versión de servicios. * ''-F'': (Fast Scan) nmap –A 10.0.2.15 Starting Nmap 7.70 ( https://nmap.org ) at 2021-04-08 11:52 CEST Nmap scan report for 10.0.2.15 Host is up (0.000032s latency). Not shown: 998 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 ab:a0:fc:53:7c:c5:ed:9d:de:50:41:39:51:e2:90:3f (RSA) | 256 ce:41:ee:41:fb:8b:82:8f:8b:74:1d:14:18:a9:cd:bc (ECDSA) |_ 256 ad:72:b1:81:b5:cc:6c:2b:26:7b:84:78:0e:77:fa:1f (ED25519) 111/tcp open rpcbind 2-4 (RPC #100000) | rpcinfo: | program version port/proto service | 100000 2,3,4 111/tcp rpcbind |_ 100000 2,3,4 111/udp rpcbind Device type: general purpose Running: Linux 2.6.X OS CPE: cpe:/o:linux:linux_kernel:2.6.32 OS details: Linux 2.6.32 Network Distance: 0 hops Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 10.47 seconds ==== Wireshark ==== Antes conocido como **ethereal**, es una herramienta de análisis de red o "sniffer". Nos permite examinar datos en tiempo real que circulan a través de la red o volcarlos a un fichero. Soporta gran cantidad de protocolos y nos permite filtrar la información para obtener de un modo mas detallado lo que buscamos. ==== lsof ==== Comando que permite establecer la lista de archivos abiertos por procesos en un sistema. Como Linux trata todo como un fichero, también nos muestra sockets de red abiertos. Ejemplos: lsof | grep httpd lsof /var/lib/mysql ==== nc (netcat) ==== Herramienta que nos permite abrir puertos, establecer conexiones de red entre ellos, y transmitir datos. Podemos utilizarlo para saber si un puerto está abierto. Por ejemplo, si queremos ver si en nuestra máquina está abierto el puerto 80: nc localhost 80 Si está abierto, obtendríamos lo que devuelve el servicio que corra detrás. ==== tcpdump ==== Es una herramienta que nos permite monitorizar e inspecionar paquetes en tiempo real a través de la red. Podemos especificar origen (src), destino (dst), protocolo y puerto (port) con los operadores AND y OR para seleccionar. Como Wireshark, pero a bajo nivel y desde línea de comandos. * ''-w archivo'':Guarda el resultado en un archivo en formato libpcap. * ''-i interfaz'': Indicamos la interfaz donde vamos a capturar el tráfico. * ''-s ventana'': Permite limitar el tamaño de las tramas capturadas (default 65535 bytes) * ''-n'': Indica las IPs en lugar de los nombres de las conexiones Ejemplos: tcpdump –w archivo.cap –i eth0 –s 0 –n port 22 tcpdump -i eth0 src 10.10.0.1 and dst 10.10.0.254 and tcp port 80 ===== Tests ===== **Which single parameter, when passed to nmap, will instruct nmap to perform a fast scan? (Provide only the option)** * ''-F'' (''nmap -F'') ** The following is an excerpt from the output of tcpdump -nli eth1 'udp'**: 13:03:17.277327 IP 192.168.123.5.1065 > 192.168.5.112.53: 43653+ A? lpi.org. (25) 13:03:17.598624 IP 192.168.5.112.53 > 192.168.123.5.1065: 43653 1/0/0 A 24.215.7.109 (41) **Which network service or protocol was used?** * FTP * HTTP * SSH * DNS (**Solución**) * DHCP En el registro de ''tcpdump'' el último número que aparece en las direcciones IP hace referencia al puerto.