0% encontró este documento útil (0 votos)
26 vistas48 páginas

Modulo 3-Sistema Operativo Linux

Linux es un sistema operativo de código abierto basado en Unix, que permite su uso sin costo de licencia y ofrece múltiples distribuciones, siendo Debian la utilizada en este documento. Se abordan aspectos como la instalación, estructura de directorios, comandos básicos, y la configuración de redes, así como la gestión de aplicaciones y permisos. Además, se menciona la capacidad de Linux para funcionar en servidores y dispositivos de red, destacando su flexibilidad y adaptabilidad en diferentes entornos.

Cargado por

ale.fabersani146
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas48 páginas

Modulo 3-Sistema Operativo Linux

Linux es un sistema operativo de código abierto basado en Unix, que permite su uso sin costo de licencia y ofrece múltiples distribuciones, siendo Debian la utilizada en este documento. Se abordan aspectos como la instalación, estructura de directorios, comandos básicos, y la configuración de redes, así como la gestión de aplicaciones y permisos. Además, se menciona la capacidad de Linux para funcionar en servidores y dispositivos de red, destacando su flexibilidad y adaptabilidad en diferentes entornos.

Cargado por

ale.fabersani146
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulo 3.

Sistema operativo Linux

Linux es un Sistema Operativo basado en Unix, pero con una diferencia no menor: es
posible obtenerlo y utilizarlo sin necesidad de pagar una licencia, como sí ocurre en
los casos de Unix o Microsoft Windows. Si bien, lo valioso de las licencias, que
justifica el costo, es el acceso al soporte técnico del fabricante (Microsoft, IBM, HP),
es posible utilizar Linux sin mayor soporte que el de los propios administradores. Esto
es algo realmente ventajoso, no sólo para empresas pequeñas y medianas, sino para
ciertos servicios en empresas grandes.

A diferencia de Windows donde hay una sola versión “actual” y otras más antiguas, o
de Unix, donde existen implementaciones de fabricantes como IBM, HP u Oracle, al
ser Linux un Sistema Operativo de código libre existen infinidad de versiones
llamadas distribuciones. Si consultas la Wikipedia verás una imagen con todas las
ramificaciones que surgen de las primeras distribuciones (Debian, Slackware,
RedHat). Inclusive, existen versiones con soporte comercial.

En esta lectura utilizaremos Debian para las diferentes explicaciones y ejemplos, pero
cualquier tarea bien podría realizarse con otras distribuciones.

Video de inmersión
Unidad 3.1. Principios de funcionamiento

Unidad 3.2. Redes en Linux

Video de habilidades

Cierre

Referencias

¿Cómo resolver las APIS?

Descargá la lectura
Lesson 1 of 8

Video de inmersión

03:33
Lesson 2 of 8

Unidad 3.1. Principios de funcionamiento

Linux es de código abierto. Cualquiera puede descargarlo,


usarlo y modificarlo. Entonces ¿por qué no hacerlo?

3.1.1 Instalación y principio de funcionamiento


(Debian)

El primer paso, consiste en obtener el Sistema Operativo. La última versión de Debian se obtiene
ingresando a www.debian.org y descargando la imagen ISO para luego grabarla en un CD/DVD o
bootearla desde una memoria Flash. Existen diferentes versiones: de 1 CD, de 1 DVD, versión
para instalar por red o de múltiples discos, las cuales incluyen más software.

También existe una versión “estable” y otra de “testing”, siendo recomendable para un ambiente
productivo usar la estable.

Una vez elegida la versión, debemos seleccionar la arquitectura de nuestro procesador. I386 es la
original de Linux, el cual fue desarrollado en un procesador Intel 386. Ahora, para el caso de un
procesador de 64 bits, debemos seleccionar amd64.

Para ver todo el listado de arquitecturas, nos dirigimos a


https://www.debian.org/ports/index.es.html. En la siguiente página estarán los archivos para
descargar como se observa en la figura 1.
Figura 1. Archivos para descargar

Fuente: [Imagen intitulada sobre Archivos para descargar Debian].2017 https://goo.gl/SVXTe8.

Detalle de la Figura 1: Visualizamos los archivos para descargar en la versión de CD.

Además de la versión CD, podemos descargar la versión para instalar por red (netints), para mac
o xfce.

La instalación arranca presentando diferentes opciones, entre ellas, una instalación gráfica o sólo
instalación. Luego debemos seleccionar el idioma de instalación, nuestra ubicación y distribución
del teclado. La red intentará autoconfigurarse en el caso de que exista un servidor DHCP. Luego
de este paso, nombraremos a la máquina, para finalmente elegir un dominio y una contraseña
para el superusuario o root. Es vital no perder esta clave, ya que el usuario root equivale al
Administrador de Windows y es quien puede realizar todo tipo de configuraciones y cambios. La
instalación nos pedirá luego crear un usuario regular, seleccionar como particionaremos el disco
para instalar el Sistema Operativo y la ubicación de los archivos. Allí, tendremos que reconfirmar
las opciones para poder continuar.

Cuando termine la instalación base, el Wizard de instalación nos preguntará si queremos utilizar
una réplica en red. Es muy útil marcar que sí, ya que en los repositorios de Debian existe infinidad
de aplicaciones que instalaremos muy fácilmente a través de la red. Existen múltiples réplicas y
queda a nuestro criterio cual elegir entre las disponibles.

Finalmente, podremos seleccionar programas adicionales al sistema base, como por ejemplo,
algún entorno gráfico como KDE o GNOME o algunos servicios muy utilizados, como el servidor
SSH o Web Server. Los entornos gráficos, en general no están disponibles en Servidores, pero sí
en instalaciones para uso de usuarios finales.

3.1.2. Directorios, archivos y comandos básicos

Linux tiene diferentes servicios básicos, que serán descriptos brevemente a continuación, para así
luego poder comprender diferentes configuraciones.
Init: es el primer proceso que se inicia para dar arranque al sistema,
realizar chequeos e inicializar demonios (procesos en segundo plano).
Cuando se apaga la computadora, init deberá encargarse de matar
todos los procesos.

getty: permite el inicio de sesiones por parte de los usuarios.

Syslog: almacena mensajes de error, información o advertencia de


diferentes eventos.

Cron: permite ejecutar programas de manera periódica

Estructura de directorios

Linux posee una estructura de directorios jerárquica. La raíz es la barra /.

A partir de / comienzan las ramificaciones que luego pueden ser incluso creadas por los usuarios.
Los principales directorios son:

/usr: archivos que no son modificados durante el funcionamiento del


Sistema Operativo, como puede ser el caso de comandos, manuales,
librerías.

/var: contiene archivos que cambian durante el funcionamiento. Por


ejemplo, los registros de eventos pueden almacenarse en archivos
dentro de /var/log

/home: cada usuario tendrá aquí su propio directorio donde almacenará


sus respectivos archivos. Por ejemplo, el usuario Juan Perez, cuyo
nombre para iniciar sesión podría ser jperez, tendrá un directorio
/home/jperez.
Figura 2. Estructura de directorios

Fuente: [Imagen intitulada sobre Estructura de directorios]. 2017. Recuperado de

https://goo.gl/hNVZo7

Detalle de la Figura 2: Podemos ver aquí la estructura de directorios; para conocer más, se recomienda
consultar una Guía de Administración de Linux.

Iniciar sesión y manejo de archivos

En la mayoría de los casos cuando ingresemos a un servidor sólo dispondremos de una consola
(CLI). Cuando el sistema inicia, una consola estará disponible para el usuario, el cual, deberá
ingresar su usuario y clave para poder ingresar. En la figura 3 el usuario teclab intentó iniciar
sesión pero puede que ese usuario no exista o su contraseña no haya sido válida. A continuación,
el usuario sí pudo iniciar sesión y un intérprete de comandos está listo para que el usuario ejecute
comandos.

Figura 3. Inicio de sesión en una consola

Fuente: [Captura de pantalla sobre Inicio de sesión de una consola] (s.f.). Elaboración propia

Detalle de la figura 3: Aquí el intérprete de comandos muestra usuario@teclab:~$, entonces, el usuario


puede ejecutar comandos.

Para moverse en la estructura de directorios, veamos algunos comandos:

pwd permite conocer la ubicación actual

cd .. permite subir un nivel (hay un espacio entre cd y los dos puntos)

cd / permite ir a la raiz

cd /home cambia desde el directorio actual hacia el directorio /home


Figura 4. Cambiando directorios

Fuente: [Captura de pantalla sobre Cambiando directorios] (s.f.). Elaboración propia

ls –a (lista todos los archivos)

ls –l (muestra detalles)

ls –t (ordena por fecha de modificación)

ls –r (invierte el orden de la salida)


Además, es posible combinar opciones. Por ejemplo, ls –ltr listará los archivos en forma detallada,
ordenados por fecha de modificación y con la salida invertida.

Figura 5. Listado de archivos

Fuente: [Captura de pantalla sobre Listado de archivos] (s.f.). Elaboración propia

Detalle de la Figura 5: Observamos un ejemplo práctico de la salida del comando ls –ltr. La


primera columna indica los permisos de cada archivo o directorio. Los permisos están asignados
al dueño del archivo, al grupo del archivo y a otros. A su vez, estos pueden ser de lectura, de
escritura y de ejecución. Por eso, en la primera columna vemos 10 caracteres. Si el primero es
una letra d, indica que es un directorio. Luego siguen los tres grupos: dueño, grupo, otros. Para
cada grupo se pueden activar o desactivar los permisos de lectura r, escritura w y ejecución x. En
el caso de archivo1, el dueño puede leer y grabar pero no ejecutar. Otros miembros del mismo
grupo sólo pueden leer, al igual que el resto de los usuarios.

Es común referirse a los permisos por su código binario pasado a decimal. Por ejemplo, archivo1
tiene activados los bits 110 (rw-), lo que equivale a un 6. Los siguientes dos grupos tienen 100 y
100, ambos 4. Este permiso es 644.
Para cambiar los permisos simplemente ejecutamos chmod y el código decimal. Por ejemplo,
chmod archivo1 664 para otorgarles permisos de escritura a los usuarios del mismo grupo. Este
comando debe ser ejecutado por root. Para esto, ¿cómo nos convertimos en root?

Si iniciamos sesión como usuario regular, podemos escribir su usuario y el sistema nos solicitará
la contraseña. Para dejar de ser root, ingresamos exit y volveremos a ser el usuario regular.

3.1.3 Editores de texto

Editar archivos es sumamente importante en ambientes Linux/Unix, ya que es la forma de


modificar las configuraciones de diferentes servicios y aplicaciones. Para editar archivos en la
consola, hay diferentes herramientas. El editor vi está presente en la mayoría de las distribuciones
Linux e implementaciones Unix. Si bien, la curva de aprendizaje es lenta al comienzo, es bueno
conocer al menos de su existencia ya que es probable que en algunos servidores sea la única
opción con la que nos encontremos.

Para ingresar a vi y editar un archivo, escribir vi archivo en la consola. El editor dispone de modos:

Modo comando: cuando ingresamos a vi no es posible editar, sólo


ingresar comandos. Si quisiéramos pasar al modo edición, una opción
es utilizar la letra i (de insertar) y comenzar a escribir.

Modo edición: luego de ingresar i, estamos en este modo editando el


archivo. Cuando queremos guardarlo, debemos regresar al modo
edición para ingresar el comando correspondiente. La forma de volver al
modo comando es presionando la tecla ESC. Una vez allí podemos
ingresar

:wq para grabar el archivo y salir

:w para grabar el archivo

:q! para salir sin grabar el archivo


:file nombre para guardar el archivo con un nombre

Vi dispone de comandos para edición más avanzada. Esto puedes consultarlo en páginas
especializadas.

Otros editores son menos complejos, aunque no siempre están disponibles. Debian incluye el

editor nano, al cual se ingresa tipeando nano seguido del nombre del archivo.

Un editor aún más amigable es el mcedit, el cual, previamente debe instalarse en Debian. Ahora
bien, ¿cómo instalamos un programa?

3.1.4 Instalación de aplicaciones

Debian, y también otras distribuciones, disponen de repositorios de software online. Las URL de
los repositorios se eligen al momento de la instalación, pero pueden cambiarse editando el archivo
/etc/apt/sources.list

Este archivo contiene un listado donde la primera entrada identifica si los archivos son binarios
(deb) o fuentes (deb-src). La segunda entrada contiene la URL donde están ubicados los
archivos. Podemos encontrar un listado completo en https://www.debian.org/mirror/list. Existen
mirrors o espejos a lo largo de todo el mundo, y resulta conveniente, para mejorar el rendimiento,
elegir los más cercanos a nuestra red.

A continuación de la URL, va la distribución de Debian con su alias o el tipo (estable, testing, no


estable).

Finalmente, podemos encontrar main, contrib y non-free, “que son nombres de directorios de los
paquetes” (Manchitrax0, 2008. Recuperado de https://goo.gl/ynrHV6). Main contiene sólo
paquetes considerados parte de la distribución Debian. Contrib son paquetes que cumplen con las
guías de software libre de Debian al igual que los paquetes de Main, pero podrían tener
dependencias con otros paquetes que no las cumplan. Finalmente, non-free contiene paquetes
que no cumplen con dichas guías (Manchitrax0, 2008. Recuperado de https://goo.gl/ynrHV6).

Para buscar aplicaciones existentes en el repositorio, podemos ejecutar:

apt-cache search nombre

Aquí, el nombre sería la palabra clave que buscamos.

Si lo que intentamos en cambio es, instalar una nueva aplicación, debemos ejecutar:

apt-get install nombre

Por ejemplo, apt-get install mc instala el programa mc (una especie de explorador de Windows
para la consola de Linux), el cual, incluye el editar mcedit.

Mientras que, para desinstalar una aplicación, es preciso ejecutar:

apt-get remove nombre

¿Sabías que muchos equipos de redes utilizan Linux


como Sistema Operativo? Investiga sobre Mikrotik y
prueba un simulador.
Lesson 3 of 8

Unidad 3.2. Redes en Linux


Linux es un Sistema Operativo para servidores, para usuarios finales de computadoras, para
dispositivos móviles y también, para dispositivos de conectividad. Una computadora hogareña
puede convertirse fácilmente en un Router o un Firewall. Inclusive un dispositivo de red físico,
como un Switch o un Router, pueden utilizar a Linux como Sistema Operativo.

Analicemos primero cuestiones básicas sobre el manejo de redes.

3.2.1 Configuración de interfaces

El instalador de Debian es capaz de configurar una IP de forma automática en caso de que exista
un servidor DHCP, pero si nuestra computadora es un servidor, tendremos que cambiar esa IP por
una fija para que los clientes puedan conectarse.

Para conocer cuál es la configuración de red actual, se utiliza el comando ip addr

Figura 6. Cómo ver la configuración de red


Fuente: [Captura de pantalla sobre Cómo ver la configuración de red] (s.f.). Elaboración propia

Detalle de la Figura 6: Vemos aquí un ejemplo de configuración de red. La interfaz de loopback


se identifica como lo, mientras que existe otra interfaz denominada enp0s3, con su dirección MAC
y los parámetros de configuración de red IPv4 e IPv6.

Para cambiar la IP, que fue obtenida mediante DHCP, es necesario configurar los parámetros de
red en un archivo dentro de /etc/network/interfaces.d, en el caso de nuestro ejemplo:
/etc/network/interfaces.d/enp0s3

También es necesario agregar una línea en el archivo /etc/network/interfaces que haga referencia
a esta interfaz: allow-hotplug enp0s3

Para aplicar los cambios, es necesario reiniciar los servicios de red; para ello deberíamos
ejecutar: /etc/init.d/networking restart

Mientras que para configurar servidores DNS, el archivo que debemos editar es el /etc/resolv.conf

Allí, agregaremos una línea por cada servidor DNS de la siguiente manera:

nameserver <IP del servidor>

Figura 7. Archivos de configuración de red


Fuente: [Captura de pantalla sobre Archivos de configuración de red] (s.f.). Elaboración propia

Detalle de la figura 7: Vemos aquí un ejemplo de configuración de servidores DNS en red en Sistema
Operativo Linux.

Interfaces virtuales

En Linux, es posible crear interfaces virtuales con configuraciones IP independientes. Esto puede
ser útil, por ejemplo, para correr servicios similares con direcciones IP distintas.

Para crear una interfaz virtual llamada enp0s3.1 sobre la física enp0s3 debemos escribir:

ip addr add 10.0.0.1/8 dev enp0s3 label enp0s3.1

De esta forma, la interfaz física enp0s3 tiene ahora la dirección IP. 192.168.1.150 y la 10.0.0.1 en
la virtual enp0s3.

Con el comando ip addr también es posible deshabilitar o habilitar interfaces. Es así que, ip
link set enp0s3 down la deshabilita, mientras que ip link set enp0s3 up la vuelva a habilitar. Si
lo que queremos es eliminar la dirección IP configurada anteriormente a la interfaz virtual,
entonces el comando será ip addr del 10.0.0.1 dev enp0s3.

Ping y Traceroute

En caso de que deseemos probar la conectividad de capa 3 (IP) podemos utilizar la herramienta
ping. Esta aplicación utiliza mensajes del protocolo ICMP: solicitud de eco y respuesta de eco. La
forma de utilizarla es escribiendo ping <dirección IP> (sin símbolos < y >). Si el paquete llega a
destino y este responde, en la consola veremos las respuestas a cada paquete con el tiempo que
tardó en ir y volver. Y cuando queramos detener el programa, deberemos presionar control + c.

Es importante tener en cuenta que en algunas ocasiones los dispositivos filtran este tipo de
tráfico, por lo que puede darse el caso de que el destino esté encendido y con conectividad IP,
más, no recibir ningún tipo de respuesta.

Otra herramienta que utiliza ICMP, y también el campo TTL del protocolo IP, es traceroute (tracert
para sistemas Windows). Esta herramienta permite crear una traza de la red, es decir, conocer la
ruta por la que viajan los paquetes hasta llegar a destino (Microsoft, 2017, Recuperado de:
https://goo.gl/yctMwz).

La forma de utilizarla es:

traceroute <IP o Nombre de destino>

La salida del comando muestra en pantalla una línea por cada salto a Router, junto a tres tiempos
de ida y vuelta, lo cual permite tener una noción del rendimiento.

Existe una aplicación (mtr) que en la misma consola muestra de forma dinámica el porcentaje de
paquetes perdidos, los paquetes enviados y el tiempo de respuesta de ping para toda la traza.
Figura 8. Aplicación mtr en ejecución

Fuente: [Captura de pantalla sobre Aplicación mtr en ejecución] (s.f.). Elaboración propia

Detalle de la figura 8: Vemos en la captura de pantalla, la salida de ejecutar mtr 8.8.8.8; la traza
completa de 11 pasos y las estadísticas luego de haber enviado entre 88 y 87 paquetes según el salto.

Estado de puertos

Cuando un servidor está ofreciendo determinado servicio, un puerto (capa de transporte) tiene
que estar esperando conexiones de los clientes, es decir, hay un puerto escuchando. Para
determinar qué puertos se encuentran abiertos o escuchando en un servidor, el comando ss es de
suma utilidad. Cabe recordar que, en versiones antiguas, el comando más utilizado era netstat.

Existen diferentes opciones para el comando ss. Algunas de ellas son:

ss (muestra todas las conexiones)


ss –s (muestra un resumen)

ss –l (muestra sockets actualmente escuchando)

ss –t –a (muestra solo TCP)

ss –u –a (muestra solo UDP)

También es posible utilizar filtros avanzados, por ejemplo, si queremos conocer si hay conexiones
establecidas que usan el protocolo HTTP, o determinadas direcciones IP de destino. Entonces, en
estos casos los filtros que debemos usar son:

ss -o state established '( dport = :http or sport = :http )'

ss dst 192.168.1.5:http

Escaneo de red

Resulta útil realizar un escaneo de red para descubrir los dispositivos que están conectados junto
a sus principales características, como son el tipo de Sistema Operativo, puertos activos y
aplicaciones. Esto se utiliza con fines positivos, como auditorías o controles internos, pero
también con otros no tan positivos, como puede llegar a ser el descubrimiento de dispositivos para
ingresar de forma no autorizada.

Para descubrir dispositivos, lo primero que puede realizarse es utilizar ICMP. Si un dispositivo
responde al ICMP Echo Request dirigido a su dirección IP, entonces está activo. Además del
clásico ping con ICMP tipo 8 con respuesta 0, es posible utilizar TCP ping. En este caso, se envía
un segmento SYN de TCP. Si el destinatario responde, entonces está activo.
Una desventaja de cualquiera de estos métodos es que puede existir un Firewall bloqueando esos
paquetes.

Una vez que un dispositivo fue descubierto, entonces el siguiente paso es escanear sus puertos

activos o abiertos. Existen diversas técnicas para escanear puertos en un dispositivo remoto, por
ejemplo establecer una conexión TCP (saludo de 3 vías). Si se establece, entonces el puerto está
abierto. También es posible sólo enviar el segmento SYN y al recibir el SYN/ACK enviar un Reset;
en este caso la conexión no se establece pero de igual forma la fuente sabe que el destinatario
tiene ese puerto escuchando.

Nmap es una herramienta de código libre que sirve para realizar este tipo de escaneos. Para
instalarla en Debían, debemos tipear: apt-get install nmap. Una vez instalada, el comando más
simple para descubrir un único dispositivo es:

Nmap <IP Dispositivo>

Figura 9. La herramienta Nmap

Fuente: [Captura de pantalla sobre la herramienta Nmap] (s.f.). Elaboración propia

Detalle de la figura 9: Vemos en la imagen precedente que se realizó el escaneo en el localhost.


Sólo el puerto 631 se encuentra escuchando.
Si quisiéramos escanear toda una subred, entonces deberíamos ejecutar:

nmap 192.168.1.0/24

En la siguiente tabla, encontrarás más opciones para correr Nmap.

Tabla 1. Comandos Nmap

Comando Función

Escanea solo el puerto 80 en la IP


nmap –p 80 192.168.1.1
especificada

Escanea solo el puerto 80 TCP en la IP


nmap –p T:80 192.168.1.1
especificada

Escanea los puertos 80 y 21 en la IP


nmap –p 80, 21 192.168.1.1
especificada

nmap –p 80-90 192.168.1.1 Escanea un rango de puertos

Detecta el Sistema Operativo en la IP


nmap –O 192.168.1.1
especificada

Realiza un escaneo rápido en 50


Nmap –n –sP 192.168.1.1-50
dispositivos

Fuente: elaboración propia.

Rutas
Las tablas de ruteo no sólo están presentes en routers, sino que cada dispositivo necesita al
menos una puerta de enlace predeterminada en una tabla de ruteo para poder distinguir entre los
paquetes que tienen como destino a otro dispositivo de la misma red y los que deben salir hacia
otras redes.

Para poder visualizar la tabla de ruteo en Debian, utilizamos el comando ip route

Pero este comando también nos permite manipular las rutas: modificando, agregando o sacando.

Para agregar una ruta estática a la tabla de ruteo utilizamos:

ip route add <IP Destino> via <Gateway> dev <nombre dispositivo>

Este comando agrega una entrada en la tabla hacia el destino IP Destino, que usará la puerta de
enlace Gateway y el dispositivo nombre dispositivo.

Para remove esa ruta, se utiliza:

ip route del <IP Destino>

Analizadores de tráfico

Los sniffers o analizadores de paquetes son programas que permiten capturar todo el tráfico que
pasa por una determinada placa de red para luego procesarlo y mostrarlo de diversas maneras al
administrador de la red.

Para poder capturar tráfico es necesario hacerlo físicamente, es decir, que el software deberá
ubicar en el dispositivo dónde se quiere capturar software. O podría utilizarse la técnica de
espejado en un switch para obtener todo el tráfico que circula por un puerto en otro.
Como los switches dividen los dominios de colisión, por cada puerto sólo circula tráfico con origen
o destino al dispositivo físicamente conectado, a menos que sea broadcast.

El software por excelencia para captura de tráfico en la consola de Linux es tcpdump. Para
instalarlo en Debian debemos escribir: apt-get install tcpdump.

Tcpdump permite almacenar en un archivo todo el tráfico que se vaya capturando en tiempo real.
Esto es útil, ya que de lo contrario veremos pasar por la pantalla infinidad de líneas sin realmente
comprender lo que está sucediendo. Teniendo la información almacenada en un archivo, podemos
luego analizarla con detenimiento.

Figura 10. Cómo guardar salida de tcpdump en archivo y luego


leerlo

Fuente: [Captura de pantalla sobre cómo guardar salida de tcpdump en archivo y luego leerlo]

(s.f.). Elaboración propia

Detalle de la figura 10: Vemos aquí cómo se realiza una captura y se almacena la misma en el archivo
captura1. Luego se lee ese archivo. Fueron capturados 4 paquetes y a continuación, tcpdump muestra una
línea por paquete.
En el caso del primer paquete:

el tiempo de la captura (15:00:18.03891)

el protocolo de capa de red (IP)

la dirección IP de origen y el puerto (192.168.1.250, 35398)

la dirección IP de destino y el puerto (255.255.255.255, 7437)

el protocolo de capa de transporte (UDP)

la longitud (173)

Para obtener más información es posible aumentar el nivel de verbosidad colocando –v. Esto
puede incrementarse hasta tres veces con –vvv

Analicemos ahora, con ejemplos, las diferentes opciones y filtros disponibles en tcpdump.

Tabla 2. Filtros tcpdump

Comando Función

Solo paquetes que contengan el


tcpdump icmp
protocolo ICMP
Comando Función

tcpdump arp Solo paquetes ARP

tcpdump ‘broadcast or multicast’ Solo paquetes broadcast o multicast

Solo paquetes que contengan ICMP


tcpdump -v icmp[icmptype] == 0
Echo Reply

tcpdump 'dst host 192.168.1.150 and Solo paquetes cuyo destino sea
dst port 22' 192.168.1.150 y el Puerto de destino 22

Solo paquetes cuyo destino sea


tcpdump 'dst host 192.168.1.150 and
192.168.1.150 y el Puerto de destino 22
(dst port 22 or dst port 23)’
o 23

Fuente: elaboración propia

Figura 11. tcpdump filtrando solo ICMP Echo Reply


Fuente: [Captura de pantalla sobre tcpdump filtrando solo ICMP Echo Reply] (s.f.). Elaboración
propia

Detalle de la figura 11: Se observa aquí, a modo de ejemplo, la salida del comando tcpdump con
filtro de mensaje ICMP Echo Reply. Son 4 paquetes capturados cuya IP de origen es
192.168.1.150 y su IP de destino 192.168.1.21. Es decir, que el ping lo originó la .21. Como está
activo el modo verbose, se pueden ver más detalles del encabezado IP, como por ejemplo el ttl en
64.

Wireshark es otra herramienta que, gracias al diseño de su interfaz gráfica, nos permite capturar
el tráfico que pasa a través de nuestra tarjeta de red con información muy precisa. Esto gracias a
su capacidad de interpretar diversos protocolos (RedinSkala, 2013. Recuperado de
https://goo.gl/xnLFei).

Para instalarla:

instalar apt-get install wireshark.


Para comenzar una captura es posible hacer doble click sobre la interfaz o ir al menú Capture /
Options. En el segundo caso, podemos por ejemplo capturar directamente en un archivo, crear
varios eligiendo el tamaño o parar la captura cuando se cumpla alguna de las condiciones.

Una vez que comienza la captura, la pantalla cambia al modo captura como se observa en la
figura 12. Dependiendo el tráfico, el avance de las filas será mas o menos rápido, pero, al igual
que tcpdump, podemos aplicar filtros o guardar en archivos para su posterior análisis.

Figura 12. Pantalla inicial de Wireshark

Fuente: [Captura de pantalla sobre la pantalla inicial de Wireshark] (s.f.). Elaboración propia

Detalle de la figura 12: En la imagen precedente se observa la pantalla inicial de la aplicación


Wireshark. Figura allí, un listado de interfaces de red donde es posible capturar, entre ellas la que
utilizaremos: enp0s3.
La ventaja de esta opción, en relación a tcpdump, es que en Wireshark podemos ver en forma
más gráfica los paquetes y su composición.

Figura 13. Wireshark capturando paquetes

Fuente: [Captura de pantalla de la aplicación Wireshark capturando paquetes] (s.f.). Elaboración


propia

Detalle de la figura 13: Vemos aquí que se ha seleccionado el paquete número 14. Es posible
ver el tiempo de captura, la IP de origen, IP de destino, el protocolo, longitud e información
adicional.

Pero también podemos ver el paquete completo en la sección central de la pantalla. Se divide en
capas: Frame (la trama completa), Ethernet (solo el encabezado Ethernet), Internet Protocolo
version 4 (solo el encabezado IP) y finalmente Internet Control Message Protocol (el paquete
ICMP). Dependiendo el tipo de paquete, resultará que habrá mas niveles: capa de transporte y
capa de aplicación.

Al hacer clic sobre alguna de las capas y desplegarla, podemos ver todos los campos y sus
respectivos valores en hexadecimal en la parte inferior de la ventana. A la derecha de los valores,
en hexadecimal, encontramos los mismos valores pero con caracteres. Si el contenido de un
paquete es texto plano (sin cifrar) podremos leerlo aquí mismo.

Con la captura en marcha, o antes de ella, es posible implementar filtros utilizando la barra. Una
forma simple es escribir el nombre del protocolo, por ejemplo icmp. Si la barra cambia a verde,
entonces el filtro es correcto. Luego de presionar Enter, sólo se visualizarán aquellos paquetes
que cumplan con dicho filtro. También es posible crear expresiones complejas con filtros varios,
de forma similar a tcpdump.

Wireshark dispone además de múltiples estadísticas y herramientas de análisis.

Figura 14. Otro ejemplo de Wireshark capturando paquetes


Fuente: [Captura de pantalla de otro ejemplo de la aplicación Wireshark capturando paquetes]

(s.f.). Elaboración propia

Detalle de la figura 14: Vemos aquí en el menú Statistics / Protocolo Hierarchy (jerarquía de
protocolos), un resumen del porcentaje de paquetes para cada protocolo y los bytes transmitidos.

3.2.3 Firewall ipetables

En un Firewall definimos reglas, donde establecemos si los paquetes pueden o no pasar a una
determinada porción de la red. Si el Firewall corre sobre un Sistema Operativo en un Servidor con
una sola placa de red y configuración IP, entonces el tráfico sólo será bloqueado en ese equipo.
Pero, si el Firewall se ubica estratégicamente entre un Router y un Switch, entonces los paquetes
destinados a toda la red serán procesados por el Firewall. En esta implementación también existe
la denominada DMZ o zona desmilitarizada. Los usuarios ubicados en la red externa pueden
acceder a la DMZ, pero no a la red interna. Esto permite ofrecer servicios a aquellos que deben
ingresar desde Internet y no desde la propia red de la empresa, al mismo tiempo que protege la
red interna de dicha compañía con el Firewall. Ejemplos de servidores que se ubican en la DMZ
son: el de correo, páginas web o DNS.

Figura 15. Firewall y DMZ


Fuente: [Imagen intitulada sobre Firewall y DMZ]. Guías Prácticas.com 2013. Recuperado de
https://goo.gl/Xwk1ua

Detalle de la figura 15: La imagen es la representación gráfica de cómo actúa el Firewall,


conduciendo a los usuarios externos hacia la zona desmilitarizada.

El propio Kernel de Linux trae un Firewall denominado IPtables. IPtables. Este analiza cada
paquete que llega al Kernel, define si el destino es la propia máquina u otra, y en base al destino,
consulta las reglas de Firewall que el administrador cargó.

Las reglas de filtrado pueden ser: INPUT, OUTPUT (para la propia máquina) o FORWARD (para
el caso en que el paquete vaya hacia otra máquina).

Para agregar reglas al Firewall, sólo deben introducirse línea por línea. Por ejemplo, si
quisiéramos bloquear los mensajes ICMP Echo Request entrantes, debemos utilizar:

iptables –A INPUT –p icmp --icmp-type 8-j DROP

-A agrega esa línea al final

-p identifica al protocolo

-j especifica que hacer, en este caso lo descarta pero también podría


rechazarlo con un REJECT

El orden es sumamente importante, ya que iptables va leyendo línea por línea. En el caso de
encontrar una coincidencia, la utiliza. Si hubiera otra regla más abajo, no sería utilizada.
Para visualizar en pantalla las reglas actualmente en funcionamiento es necesario listarlas con
iptables –L

Es posible saber cuántos paquetes y bytes fueron aceptados y bloqueados utilizando el modo
verbose: iptables -vL

Figura 16. Listado reglas de IPtables

Fuente: [Captura de pantalla del listado de reglas de IPtables] (s.f.). Elaboración propia

Detalle de la Figura 16: Se observa en la captura de pantalla, una salida de iptables –L en donde
existen dos reglas similares para paquetes que ingresen con ICMP Echo request. En este caso, y
tal como fuera explicado anteriormente, sólo será procesada la primera regla y así, los paquetes
serán descartados.
Para eliminar una regla, se utiliza un comando similar al utilizado para agregarla pero con la
opción –D de delete (eliminar).

iptables -DA INPUT –p icmp --icmp-type 8-j REJECT

Para optimizar el tiempo y la gestión, es posible utilizar scripts que contengan todas las reglas que
queremos aplicar al Firewall. Un script básico comenzaría borrando todas las reglas actuales con
iptables –F para luego continuar línea por línea con todas las reglas que se requieran.

Es bueno recordar nuevamente que el Firewall procesa línea por línea, por lo que se debe tener el
cuidado de colocar las reglas permisivas primero y las prohibitivas al final, ya que las permisivas
tendrán más prioridad.

A continuación, veamos algunas reglas de ejemplo para comprender las diferentes opciones que
maneja iptables:

Descartar todos los paquetes cuyo puerto de destino TCP esté entre 1 y 1024:

iptables –A INPUT –p tcp –dport 1:1024 –j DROP

Permitir paquetes que provengan de la red local 192.168.1.0/24

iptables –A INPUT –s 192.168.1.0/24 –i enp0s3 –j ACCEPT

Permitir paquetes que vayan a la red local (no al propio firewall) y que tengan como puerto de
destino TCP 80 o 443 (Web Server)

iptables –A FORWARD –s 192.168.1.0/24 –i enp0s3 –p tcp –dport 80 –j ACCEPT

iptables –A FORWARD –s 192.168.1.0/24 –i enp0s3 –p tcp –dport 443 –j ACCEPT

Permitir consultas al servidor de DNS tanto por UDP como por TCP
iptables –A FORWARD –s 192.168.1.0/24 –i enp0s3 –p tcp –dport 53 –j ACCEPT

iptables –A FORWARD –s 192.168.1.0/24 –i enp0s3 –p udp –dport 53 –j ACCEPT

Bloquear al resto de los paquetes

iptables –A FORWARD –s 192.168.1.0/24 –i enp0s3 –j DROP

Para activar el NAT para traducción de direcciones, se realiza un cambio de dirección IP,
generalmente desde una IP privada a una pública. Si la IP pública es estática, entonces se utiliza
SNAT, el cual remplazará cualquier dirección del rango 192.168.1.0/24 en la IP 200.1.2.3
(pública).

iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –o enp0s4 –j SNAT –to 200.1.2.3

En el caso de que la IP pública no sea estática, se utiliza MASQUERADE, quien toma la dirección
IP que tenga la placa de red enp0s4 en ese momento, y realiza el cambio.

Iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –o enp0s4 –j MASQUERADE

Finalmente, activamos el bit de forward para que los paquetes que ingresan al Firewall puedan ser
enrutados

echo 1 > /proc/sys/net/ipv4/ip_forward

Resumiendo los temas tratados, Linux puede ser un simple Sistema Operativo para usuarios
finales con entorno gráfico, procesadores de texto, planilla de cálculo, acceso a Internet, etc., pero
también una estación capaz de realizar diversas gestiones en la red o hasta convertirse en un
poderoso Firewall / NAT.

En el siguiente módulo estudiaremos cómo el sistema operativo también permite ofrecer diversos
servicios de la capa de aplicación.
Lesson 4 of 8

Video de habilidades

El video explica algunos comandos que pueden usarse con el software Nmap para verificar
puertos abiertos en dispositivos.

Escaneo de puertos con Nmap

Nmap es una herramienta:


Open Source.

Basada en entorno gráfico.

Utilizada para realizar configuraciones de red.

Licenciada.

Malware.

SUBMIT

Un sondeo de Nmap sigiloso (nmap -sS) es posible porque no termina de completarse una
conexión TCP.

Verdadero.

Falso.
SUBMIT

La salida del comando nmap -sS 192.168.0.1 muestra:

Los puertos abiertos en el dispositivo 192.168.0.1.

Los puertos cerrados en el dispositivo 192.168.0.1.

Las conexiones en el dispositivo 192.168.0.1.

Las vulnerabilidades en el dispositivo 192.168.0.1.

La cantidad de usuarios conectados al dispositivo 192.168.0.1.

SUBMIT
Los comandos nmap -sS y nmap -sT, muestran:

Puertos abiertos utilizando técnicas diferentes.

Puertos abiertos utilizando la misma técnica.

Puertos abiertos y puertos cerrados respectivamente.

Puertos abiertos TCP y UDP respectivamente.

-sS muestra puertos abiertos mientras que -sT no es una opción válida.

SUBMIT

Para escanear puertos abiertos UDP utilizo el mismo comando utilizado para escanear

puertos TCP

Verdadero.
Falso.

SUBMIT
Lesson 5 of 8

Cierre

Directorios, archivos y comandos básicos

Linux posee una estructura de directorios jerárquica. La raíz es la barra /.

A partir de / comienzan las ramificaciones que luego pueden ser incluso creadas por los usuarios. Los
principales directorios son:

/usr

/var

/home

Una acción común, es listar los archivos y subdirectorios en un determinado directorio de la jerarquía. Para
ello, se utiliza el comando ls, el cual, también ofrece muchas opciones. Algunas de ellas son:

ls –a (lista todos los archivos)

ls –l (muestra detalles)

ls –t (ordena por fecha de modificación)

ls –r (invierte el orden de la salida)

Editores de texto

Editar archivos es sumamente importante en ambientes Linux/Unix, ya que es la forma de modificar las
configuraciones de diferentes servicios y aplicaciones. Para editar archivos en la consola, hay diferentes
herramientas. El editor vi está presente en la mayoría de las distribuciones Linux e implementaciones Unix.
Configuración de interfaces

El instalador de Debian es capaz de configurar una IP de forma automática en caso de que exista un
servidor DHCP, pero si nuestra computadora es un servidor, tendremos que cambiar esa IP por una fija
para que los clientes puedan conectarse.

Para conocer cuál es la configuración de red actual, se utiliza el comando ip addr

Interfaces virtuales: en Linux, es posible crear interfaces virtuales con configuraciones IP independientes.
Esto puede ser útil, por ejemplo, para correr servicios similares con direcciones IP distintas.

Firewall ipetables

En un Firewall definimos reglas, donde establecemos si los paquetes pueden o no pasar a una
determinada porción de la red. Si el Firewall corre sobre un Sistema Operativo en un Servidor con una sola
placa de red y configuración IP, entonces el tráfico sólo será bloqueado en ese equipo. Pero, si el Firewall
se ubica estratégicamente entre un Router y un Switch, entonces los paquetes destinados a toda la red
serán procesados por el Firewall. En esta implementación también existe la denominada DMZ o zona
desmilitarizada. Los usuarios ubicados en la red externa pueden acceder a la DMZ, pero no a la red
interna. Esto permite ofrecer servicios a aquellos que deben ingresar desde Internet y no desde la propia
red de la empresa, al mismo tiempo que protege la red interna de dicha compañía con el Firewall. Ejemplos
de servidores que se ubican en la DMZ son: el de correo, páginas web o DNS.
Lesson 6 of 8

Referencias

Cuello Cannavo, E. (2017) Capturas de pantalla de la aplicación Wireshark. [Figuras 12, 13 y 14].
Argentina

Cuello Cannavo, E. (2017) Capturas de pantalla del Sistema Operativo Linux. [Figuras 3, 4, 5, 6,
7, 8, 9, 10, 11, y 16]. Argentina

Debian (2013). Guía de referencia de Debian. Recuperado de


https://www.debian.org/doc/manuals/debian-reference/debian-reference.es.pdf

Debian (2017). [Imagen intitulada sobre Archivos para descargar Debian]. Recuperado de
https://cdimage.debian.org/debian-cd/current/i386/iso-cd/

Debian (2017). Guía de instalación de Debian GNU/Linux. Recuperado de


https://www.debian.org/releases/stable/i386/install.pdf.es

GuíasPracticas.com (2013) [Imagen intitulada sobre Firewall y DMZ] Recuperado de


http://www.guiaspracticas.com/seguridad-en-el-ordenador/dmz-zona-desmilitarizada

MAN Pages (2017) TCPDUMP. Recuperado de http://www.tcpdump.org/tcpdump_man.html

Microsoft (2017) Recuperado de: https://support.microsoft.com/es-ar/help/314868/how-to-use-


tracert-to-troubleshoot-tcp-ip-problems-in-windows
Nexolinus (2017) [Imagen intitulada sobre Estructura de directorios]. Recuperado de
http://nexolinux.com/wp-content/uploads/2013/04/fhs1-e1365160570150.png

NMAP (2011) Guía de referencia de Nmap (Página de manual) Recuperado de


https://nmap.org/man/es/index.html

Pello, X. (2003). IPtables manual práctico. Recuperado de http://es.tldp.org/Manuales-


LuCAS/doc-iptables-firewall/doc-iptables-firewall.pdf

RedinSkala (2013). Recuperado de http://www.redinskala.com/2013/09/26/analisis-de-smtp-con-


wireshark/

Wireshark (2014) Wireshark User’s Guide: For Wireshark2.5. Recuperado de


https://www.wireshark.org/download/docs/user-guide-a4.pdf
Lesson 7 of 8

¿Cómo resolver las APIS?

¿Cómo resolver las APIS?


Te detallamos todo el proceso
Lesson 8 of 8

Descargá la lectura

Módulo 3. Sistema operativo Linux.pdf


1.2 MB

Servidores y servicios de red - Módulo 3.mp3


12.3 MB

También podría gustarte