www.codigolibre.org
Academia Código Libre
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 1
www.acl.edu.do
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
Aprendiendo Practicando GNU/Redes En esta práctica usted aprenderá:Manejo de Interfaces de Red, Tabla de Enrutamiento, Iniciar Conexión, Captura de Tráfico, Muestra de Registros, Escaneo de Puertos, Comprobar Conexión, Consultar los Dns, Manejo de Traza, Resolución de Nombre, Información de Dominio, Asignación Ip Fijo, Conexión con Ssh, Copiando Remoto. Si completas el 100% de estos ejercicios podremos garantizar su aprendizaje.
__________________________________________________________________
ifconfig 1. Muestra la información de tu interfaz de red activa. [dbolges@deivy:~] ==> $ ifconfig
2. En dado caso que estemos trabajando bajo centos es necesario llamar el binario con la ruta absoluta de super usuario. [dbolges@deivy:~] ==> $ /sbin/ifconfig
3. Muestra la información de todas las interfaz de red incluyendo las inactivas. [dbolges@deivy:~] ==> $ ifconfig -a
4. Muestra la información de una interfaz de red en especifico. [dbolges@deivy:~] ==> $ ifconfig eth0
5. Asigne una ip a su interfaz de red eth0. [root@deivy:~] ==> # ifconfig eth0 192.168.100.141/24
6. También podríamos realizar lo de la siguiente manera. [root@deivy:~] ==> # ifconfig eth0 10.0.0.1 netmask 255.255.255.0
7. Baje su interfaz eth0. [root@deivy:~] ==> # ifconfig eth0 down
8. Confirme que la interfaz eth0 no está encendida. [root@deivy:~] ==> # ifconfig
9. Suba la interfaz de red anteriormente bajada. [root@deivy:~] ==> # ifconfig eth0 up
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 2
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
10. Cree una interfaz virtual con la ip 10.0.0.2 de la eth0. [root@deivy:~] ==> # ifconfig eth0:1 10.0.0.2
11. Asegúrese de que lo anterior se realizo con éxito. [root@deivy:~] ==> # ifconfig eth0:1
12. Cambie la máscara de sub red. [root@deivy:~] ==> # ifconfig eth0:1 netmask 255.255.0.0
13. Cambia la dirección de broadcast [root@deivy:~] ==> # ifconfig eth0:1 broadcast 10.0.0.125
14. Asigne una dirección IP, máscara y broadcast al mismo tiempo a la interfaz virtual. [root@deivy:~] ==> # ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255
15. Para activar el modo promiscuo. [root@deivy:~] ==> # ifconfig eth0 promisc
16. Para verificar se alguna interfaz está en modo promiscuo. [root@deivy:~] ==> # ifconfig | grep -i PROMISC
17. Para desactivar el modo promiscuo. [root@deivy:~] ==> # ifconfig eth0 -promisc
18. Alterando el tipo de medio [root@deivy:~] ==> # ifconfig eth0 media 10baseT
Nota:Su interfaz debe soportar el tipo de medio. 19. Vamos a alterar nuestra Mac Address. [root@JP ~]# ifconfig eth0 hw ether 00:D0:D0:67:2C:05
20. Esta opción establece la métrica de la interfaz. Seguido de "metric" añadimos el valor numérico que queremos darle. [root@JP ~]# ifconfig eth0 metric 2 Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 3
www.codigolibre.org
Academia Código Libre
21. Establece la Unidad de Transferencia Máxima interfaz. Seguido de "MTU" añadimos el valor queremos darle.
www.acl.edu.do
(MTU) de un numérico que
[root@JP ~]# ifconfig eth0 mtu 1600
22. Activa o desactiva el uso del protocolo ARP de la interfaz. [root@JP ~]# ifconfig eth0 arp [root@JP ~]# ifconfig eth0 -arp
23. Similar a ifconfig pero solo para interfaces wireless . [root@JP ~]# iwconfig
ip 24. Muestra la información de tu interfaz de red. [root@deivy:~] ==> # ip addr show
25. Muestra la información de una interfaz de red. [root@deivy:~] ==> # ip addr show eth0
26. Asigne una ip a su interfaz de red eth0. [root@deivy:~] ==> # ip addr add 192.16.22.1/24 dev eth0
27. Elimine la ip de la interfaz. [root@deivy:~] ==> # ip addr del 192.168.22.1/24 dev eth0
28. Cree una interfaz virtual con ip. [root@deivy:~] ==> # ip addr add 192.168.2.11/24 dev eth0:1
29. Muestre su tabla de enrutamiento con ip. [root@deivy:~] ==> # ip route
30. Agrega una entrada en su tabla ARP. [root@deivy:~] ==> # ip neigh add 192.168.0.1 lladdr 00:11:22:33:44:55 nud permanent dev eth0
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 4
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
31. Para renombrar el eth0 a wan. [root@JP ~]# ip link set dev eth0 name wan
32. Para añadir una ruta (ejemplo: Para la red 192.168.2.0/24 a través de la dirección IP 192.168.1.10) y para eliminarla:: [root@JP ~]# ip route add 192.168.2.0/24 via 192.168.1.10 [root@JP ~]# ip route del 192.168.2.0/24
33. Para activar y desactivar ejemplo el eth0).
dispositivos
de
red
(usamos
de
[root@JP ~]# ip link set eth0 down [root@JP ~]# ip link set eth0 up
34. Una opción curiosa es la de asignar dos direcciones IP a un solo ordenador usando el mismo dispositivo (en nuestro caso ethernet). Esto puede ser útil, por ejemplo, si conectamos un mismo ordenador a dos redes distintas (con un mismo dispositivo). [root@JP ~]# ip address add 192.168.100.52/24 dev eth0 label eth0:1
35. Si queremos eliminar estas nuevas IP asignadas a un mismo dispositivo. [root@JP ~]# ip link set dev eth0:1 down
route 36. Muestra la tabla de enrutamiento. [root@deivy:~] ==> # route
37. Muestran direcciones numéricas . [root@deivy:~] ==> # route -n
38. Agrega una interfaz.
ruta
hacia
la
red
192.168.1/24
mediante
[root@deivy:~] ==> # route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 5
una
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
39. Elimina la ruta agregada. [root@deivy:~]==> # route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
40. Agrega una gateway.
ruta
hacia
la
red
192.56.76.0/24
mediante
[root@deivy:~]==> # route add -net 192.56.76.0 netmask 255.255.255.0 192.168.100.1
un
gw
41. Agrega un nuevo gateway. [root@deivy:~] ==> # route add default gw 192.168.100.13
dhclient 42. Inicia conexión dhcp mediante el cliente dhcp-client. [root@JP ~]# dhclient [root@JP ~]# dhclient eth0
tcpdump 43. Capturar tráfico 192.168.100.1.
cuya
dirección
IP
de
origen
sea
destino
sea
[root@deivy:~] ==> # tcpdump src host 192.168.100.1
44. Capturar tráfico 192.168.100.13
cuya
dirección
origen
o
[root@deivy:~] ==> # tcpdump host 192.168.100.13
45. Capturar tráfico 00:1C:25:B6:8D:58.
con
destino
a
la
dirección
[root@deivy:~] ==> # tcpdump ether dst 00:1C:25:B6:8D:58
46. Capturar tráfico con red destino 192.168.100.0. [root@deivy:~] ==> # tcpdump dst net 192.168.100.0
47. Capturar tráfico con red origen 192.168.3.0/28 [root@deivy:~] ==> # tcpdump src net 192.168.3.0 mask 255.255.255.240
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 6
MAC
www.codigolibre.org
48. Capturar manera.
Academia Código Libre
tráfico
con
red
origen
www.acl.edu.do
192.168.3.0/28
[root@deivy:~] ==> # tcpdump src net 192.168.3.0/28
49. Capturar tráfico con destino al puerto 23. [root@deivy:~] ==> # tcpdump dst port 23
50. Capturar tráfico con origen o destino al puerto 110. [root@deivy:~] ==> # tcpdump port 110
51. Capturar los paquetes de tipo ICMP. [root@deivy:~] ==> # tcpdump ip proto \\icmp
52. Capturar los paquetes de tipo UDP. [root@deivy:~] ==> # tcpdump ip proto \\udp
53. Capturar los paquetes de tipo UDP también. [root@deivy:~] ==> # tcpdump udp
54. Capturar el tráfico Web. [root@deivy:~] ==> # tcpdump tcp and port 80
55. Capturar las peticiones de DNS. [root@deivy:~] ==> # tcpdump udp and dst port 53
56. Capturar el tráfico del puerto telnet o SSH. [root@deivy:~] ==> # tcpdump tcp and \(port 22 or port 23\)
57. Capturar todo el tráfico excepto el web. [root@deivy:~] ==> # tcpdump tcp and not port 80
58. Capturar todo el tráfico excepto el web o también. [root@deivy:~] ==> # tcpdump tcp and! port 80
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 7
de
igual
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
59. Capturar todo el trafico a host 192.168.100.13 puerto 80, en full verbose (detalle), sin ponerla en modo promiscuo, sin convertir las direcciones de salida, imprimir en ASCII y volcar todo el dump en un file. [root@deivy:~] ==> # tcpdump -vvv -n -s 65535 -A -p -w /tmp/tcpdump host 192.168.100.13 and port 80
arp 60. Muestra el registro de las tablas correspondientes a todas direcciones IP en la cache arp.
la
[root@deivy:~] ==> # arp -a
61. Muestra el registro de la arp de manera numérica. [root@deivy:~] ==> # arp -e
62. Muestra el registro de la tabla correspondiente a la dirección IP o máquina especificada. [root@deivy:~] ==> # arp 192.168.100.13
63. Muestra la información arp de la interfaz eth0. [root@deivy:~] ==> # arp -i eth0
nmap 64. Muestra los puertos abiertos de tu pc. [root@deivy:~] ==> # nmap localhost
65. Muestra los puertos abiertos de otro host en tu red. [root@deivy:~] ==> # nmap 192.168.100.13
66. Si el escaneo hacerlo.
está
bloqueado
una
forma
más
discreta
de
[root@deivy:~] ==> # nmap -sS 192.168.100.13
67. Escanea la ip 192.168.100.13 y muestra información sobre el sistema operativo instalado. [root@deivy:~] ==> # nmap -O 192.168.100.13
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 8
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
68. Muestra información sobre los puertos y si la dirección es estática. [root@deivy:~] ==> # nmap -sT 192.168.100.13
69. Escanea un rango de puertos de una ip. [root@deivy:~] ==> # nmap
-p 1-50 192.168.100.13
70. Escanea un rango de puertos de una ip pero solo muestra los que estén abiertos. [root@deivy:~] ==> # nmap
-p 1-100 192.168.100.13 –open
71. Escanea solo los puertos 21,22,23,80 de una ip. [root@deivy:~] ==> # nmap
-p 21,22,23,80 192.168.100.13
72. Muestra los detalles de los puerto TCP de un IP. [root@deivy:~] ==> # nmap -v 192.168.100.13
73. Escanea toda la red pero solo muestra información sobre los host encendidos. [root@deivy:~] ==> # nmap -PN 192.168.100.0/24
74. Envía paquete como un ping responden los host en lineas.
a
la
red
completa
pero
solo
[root@deivy:~] ==> # nmap -sP 192.168.100.0/24
75. Muestra información sobre todo los host en lineas de la red completa. [root@deivy:~] ==> # nmap -O 192.168.100.0/24
netstat 76. Muestra la tabla de enrutamiento. [root@deivy:~] ==> # netstat -r
77. Muestra una tabla con la interfaz. [root@deivy:~] ==> # netstat -i
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 9
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
78. Muestra una tabla con las calidades de los miembros de grupo. [root@deivy:~] ==> # netstat -g
79. Muestra las estadísticas del establecimiento de una red (como SNMP) [root@deivy:~] ==> # netstat -s
80. Muestra los puertos con su identificación en forma numérica y no de texto [root@deivy:~] ==> # netstat -n
81. Muestra los host sin resolver sus nombres. [root@deivy:~] ==> # netstat --numeric-hosts
82. Muestra los host sin resolver los nombres de los puertos. [root@deivy:~] ==> # netstat --numeric-ports |less
83. Muestra la información mostrando el nombre de los host. [root@deivy:~] ==> # netstat -N | less
84. Mostrando la tabla de interfaz, similar al comando ifconfig. [root@deivy:~] ==> # netstat -ie
85. Muestra los nombres para las puertas de los programas. [root@deivy:~] ==> # netstat -p |less
86. Muestra las informaciones de manera interactiva. [root@deivy:~] ==> # netstat -c
87. Muestra las puertas que están escuchando. [root@deivy:~] ==> # netstat -l
88. Muestra todas las puertas conectadas por defecto. [root@deivy:~] ==> # netstat -a
89. Muestra el tiempo. [root@deivy:~] ==> # netstat -o Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 10
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
90. Muestra las conexiones activas a Internet. [root@deivy:~] ==> # netstat -F
91. Saber qué puertos tiene abiertos nuestro sistema. [root@JP ~]# netstat -napt
nc 92. Escanea los puertos del 21 al 25 con nc de una ip. [root@deivy:~] ==> # nc -vz 192.168.100.13 21-25
93. Revisar los puertos UDP abiertos que se encuentran entre el rango del puerto 21 al 80 [root@deivy:~] ==> # nc -zu 192.168.100.13 21-80
94. Crea una conexión cliente servidor con tu compañero de al lado por en puerto 5000. [root@deivy:~] ==> # nc -l 5000
#MAQUINA SERVER#
[root@deivy:~] ==> # nc 192.168.100.141 5000 < /etc/passwd
#MAQUINA CLIENTE#
Nota: El server debe estar escuchando y el cliente enviara la salida del archivo passwd al shell donde esta ejecutando nc -l 5000.
95. Para intentar una conexión y obtener información de un sistema y puerto específico la sintaxis es la siguiente. [jp@JP ~]$ nc -vv localhost 22
ping 96. Compruebar si la máquina con la ip 192.168.100.13 [root@deivy:~] ==> # ping 192.168.100.13
97. Comprueba si la máquina con la ip 192.168.100.13 esta en la res, pero solo envía 5 paquete. [root@deivy:~] ==> # ping -c 5 192.168.100.13
98. Comprueba que los DNS Google están funcionando bien. [root@deivy:~] ==> # ping google.com
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 11
www.codigolibre.org
Academia Código Libre
99. Aquí las direcciones de red normalmente muestra hostname.
se
www.acl.edu.do
muestran
como
números,
[jp@JP ~]$ ping codigolibre.org
100.El ping esperará cinco segundos antes de enviar el siguiente paquete. [jp@JP ~]$ ping -i 5 codigolibre.org [jp@JP ~]$ ping -i 0.1 codigolibre.org
101.Chequear si la interfaz de red “está levantada”. [jp@JP ~]$ ping 0
102.Mostrar la ayuda del comando ping. [jp@JP ~]$ ping --help
103.“Inundar” la red. Solo disponible para super-usuarios, envía cien o más paquetes por segundo, imprimiendo un punto por cada paquete enviado y un espacio una vez recibido. [root@JP ~]# ping -f localhost
104.ping con audio, enviar un pitido (beep) cuando el host es encontrado. [root@JP ~]# ping -a codigolibre.org
105.Mostrar solo las estadísticas del comando. Al finalizar el comando ping muestra estadísticas como cantidad de paquetes transmitidos, recibidos, porcentaje de paquetes perdidos y tiempo. Si queremos ver dichas estadísticas sin observar previamente la línea de cada paquete enviado podemos utilizar la opción -q (quiet). [root@JP ~]# ping -c5 -q 127.0.0.1
106.11-Cambiar el tamaño del paquete. Por defecto el tamaño del paquete del ping va de 56 a 100 bytes. Si utilizas el tamaño de paquete 100, verás ‘128 bytes’, esto se debe a que 28 bytes es el tamaño del encabezado del ping. [jp@JP ~]$ ping -s 100 localhost
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 12
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
107.12-Timeout. El parámetro -q especifica el tiempo límite para terminar con el ping. Es decir, por ejemplo -w 5, el comando ping intentará salir luego de cinco segundos terminará del envió de paquetes, independientemente cuantos paquetes hayan sido enviados o recibidos. [jp@JP ~]$ ping -w 5 localhost
108.13-Mostrar la traza del paquete que es enviado y recibido, de esta forma se pueden ver los distintos saltos (hops) que atravesó el paquete para llegar a destino y viceversa. [jp@JP ~]$ ping -R localhost Nota: ping online. Existen páginas webs como http://just-ping.com/ que nos permiten realizar un ping desde diferentes localizaciones a nuestro servidor.
dig 109.Consulta los dns de google. [root@deivy:~] ==> # dig codigolibre.org
110.Consulta los servidores dns de google. [root@deivy:~] ==> # dig NS codigolibre.org
111.Consulta los servidores de correos
de google.
[root@deivy:~] ==> # dig MX codigolibre.org
112.Consulta la ip del servidor donde esta el dominio de google. [root@deivy:~] ==> # dig A codigolibre.org
113.Consulta todo los servidores de google. [root@deivy:~] ==> # dig ANY google.com
114.Consulta si la ip de
google es IPV6.
[root@deivy:~] ==> # dig AAAA codigolibre.org
115.Si probamos con localhost no lo encuentra: no mira en /etc/hosts, consulta a los DNS del ISP y allí no la conocen. [root@JP ~]# dig localhost
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 13
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
116.Mapeo inverso de IPs a nombres, si probamos con 127.0.0.1 consulta a los DNS del ISP y encuentra localhost. [root@JP ~]# dig -x 127.0.0.1
nslookup 117.Consulta la ip del nombre de dominio de la fundación. [root@deivy:~] ==> # nslookup codigolibre.org
118.Consulta la ip del nombre de varios dominios cuando indica el signo “>” especifica en dominio. [root@deivy:~] ==> # nslookup
119.Verifica
cuantos router tu host salta para llegar a google.
[root@deivy:~] ==> # traceroute google.com
mtr 120.Comprueba los distintos saltos hasta llegar a codigolibre.org [root@JP ~]# mtr codigolibre.org
121.Para probar la ruta y la calidad de la conexión del tráfico hacia el destino de acogida example.com, ejecute el comando siguiente desde el host de origen que desee: [root@JP ~]# mtr --report codigolibre.org
122.Traza realizada a la dirección IP 192.168.100.13 sin resolver los nombres. [root@JP ~]# mtr -r
123.Los nombres de los anfitriones están determinados por las búsquedas inversas de DNS. Si desea omitir las búsquedas rDNS puede utilizar la opción - no-dns opción, lo que produciría un resultado similar al siguiente: [root@JP ~]# mtr --no-dns --repor acl.edu.do
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 14
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
Host 124.Resuelve el nombre del nodo. [root@JP ~]# host codigolibre.org
125.Habilita el modo de información detallada. [root@JP ~]# host -v codigolibre.org
126.Para mostrar la información de registro de SOA. [root@JP ~]# host -C codigolibre.org
whois 127.lista la información especificado.
sobre
el
propietario
del
dominio
sobre
el
propietario
del
dominio
[root@JP ~]# whois codigolibre.org
jwhois 128.Lista la información especificado. [root@JP ~]# jwhois codigolibre.org
Varios 129.Inicia los servicios de red. [root@JP ~]# service network restart o [root@JP ~]# /etc/init.d/network restart
130.Archivo donde tenemos los DNS. [root@JP ~]# cat /etc/resolv.conf
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 15
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
131.Archivos importantes para cambiar el nombre del host. [root@JP ~]# cat /etc/sysconfig/network [root@JP ~]# cat /etc/hosts
132.Para asignarse un IP fijo. [root@nixon ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="none" HWADDR="00:0E:7F:22:05:95" NM_CONTROLLED="yes" ONBOOT="yes" # Esta sera la IP del server IPADDR=192.168.100.16 # subnet mask NETMASK=255.255.255.0 TYPE=Ethernet # default gateway GATEWAY=192.168.100.1 # DNS server's IP address #DNS1=10.0.0.10 IPV6INIT=no USERCTL=no # Para Wake On Lan ETHTOOL_OPTS="wol g" [root@nixon ~]# service
network restart
[root@nixon ~]# chkconfig network on [root@nixon ~]# ifconfig
133.Descargar un archivo con curl. [root@nixon ~]# curl -O http://www.caliban.org/files/redhat/RPMS/noarch/bashcompletion-20060301-1.noarch.rpm
134.Descargar un archivo con wget. [root@nixon ~]# wget -c
http://www.caliban.org/files/redhat/RPMS/noarch/bash-completion20060301-1.noarch.rpm 135.El comando tracepath es parecido a traceroute necesitas privilegios de root para ejecutarlo. [root@nixon ~]# tracepath acl.edu.do
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 16
pero
no
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
136.Para saber si un interface de red tiene el cable conectado. [root@nixon ~]# ifplugstatus eth0 Este comando viene por defecto en Ubuntu. Debe instalarlo en Centos. yum install ifplugd
137.Activar una interface de red. [root@nixon ~]# ifup eth0
138.Desactivar una interface de red. [root@nixon ~]# ifdown eth0
139.Configurar la configuración de red y obtendrá la interfaz gráfica de usuario agradable (GUI), que también puede utilizar para configurar la dirección IP, puerta de enlace, DNS, etc, como se muestra a continuación la imagen. [root@nixon ~]# system-config-network
140.Utilidad para investigar los Socker. [root@nixon ~]# ss
141.Saber nuestro IP con el comando hostname. [root@nixon ~]# hostname -i
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 17
www.codigolibre.org
Academia Código Libre
www.acl.edu.do
142.Desplegar nuestro dominio. [root@nixon ~]# hostname -d
143.Realizar una conexión remota hacia otro host. [root@nixon ~]# ssh
[email protected]
GNUNota: Recuerde que de debe tener abierto el puerto 22.
144.Copiar /boot en otro host. [root@nixon ~]# scp -r /boot
[email protected]:~
145.Este este fichero se especifican los nombres, número de puerto, protocolo utilizado y aliases de todos los servicios de red existentes (o, si no de todos los existentes, de un subconjunto lo suficientemente amplio para que ciertos programas de red funcionen correctamente). [root@nixon ~]# cat /etc/services
Para cualquier sugerencia
[email protected]
Aprendiendo Practicando GNU/Redes version 1.0 con Ing. Jose Paredes 18