Tabla de Contenidos
205.2 Advanced Network Configuration and Troubleshooting
Pertenece a 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:
ipifconfigroutearpssnetstatlsofping,ping6nctcpdumpnmap
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 Ctrl+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 queifconfig –a)-e: Visualiza todas las conexiones establecidas.-r: Permite obtener las tablas de enrutamiento (comoroute)-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.
