Añadir puerta de enlace de forma temporal:

sudo ip route del default via 192.168.1.2 dev eno1 => Borramos puerta de enlace


permanent manual i permanent dinámica: las 2 maneras que nos quedan de aprender a configurar la IP en nuestro ordenador
Configurar las tarjetas de red:
sudo nano /etc/network/interfaces

Aquí van todas las configuraciones de todas las tarjetas de red de nuestro sistema
Activació y creació de la tarjeta loopback (“The loopback network interface): tarjeta para que la máquina pueda conectarse con sigo misma.
Este fichero se carga siempre al arrancar el ordenador.
Configuración de la tarjeta de red de forma manual y permanente:

Para que se ponga en marcha, o reiniciamos la máquina o reiniciamos el servicio
Un servicio es un programa en ejecucion en segundo plano.
sudo systemctl stop servicio-x => parar el servicio servicio-x
sudo systemctl start servicio-x => parar el servicio servicio-x

forma clásica:
sudo /etc/init.d/networking stop => Muy antiguo!
sudo systemctl status networking
sudo systemctl enable networking
sudo systemctl disable networking => es una putada! lo deshabilita!
sudo systemctl mask networking => evita que se ejecute, para ejecutarlo, hay que arrancar el servicio a mano
En el escritorio, se usa otro programa independiente a networking
Network Manager:

sudo systemctl stop NetworkManager
cat /etc/resolv.conf => aquí se ponen los servidores DNS

Hay una manera de poner los DNS en interfaces, pero tendremos que tener instalado un programa llamado “resolvconf”, que se encarga de que si hay alguna linea de configuracion de DNS en interfaces, la copia en resolv.conf (al reainiciar el servicio networking):

auto eno1
iface eno1 inet dhcp
=> es como suele estar configurado: pide IP por DHCP al arrancar la máquina
systemctl status systemd-networkd

Systemd se come todo!

Systemd quiere homogeizar todo entre Red Hat y Debian, del modo que por ejemplo, la configuración de red, sea usando los mismos modos para los dos sistemas.

devuan.org => Igual que Debian, pero sin SystemD! jajajajaja
Servicio alternativo a “networking”, que es de SystemD:
SystemD (System Daemon)
NetworkD (Network Daemon)
Lo normal seria hacer un disable del networking y utilizar el NetworkD
systemctl disable networking
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
sudo systemctl status systemd-networkd
en /etc/systemd/network se configuran las tarjetas de red
cada tarjeta tendrá su fichero independiente de configuración
sudo tarjeta1.network
aquí dentro ponemos:
[Match]
Name=eno1
[Network]
Address=192.168.1.200/24
Gateway=192.168.1.1
sudo systemctl stop systemd-networkd
sudo systemctl start systemd-networkd
systemctl status => si hay algún error con la configuración de la red, sale aquí
Si queremos DHCP en el fichero de configuracion de red por systemd, simplemente:
[Match]
Name=eno1
[Network]
DHCP=yes

rtt = route time…? estadísticas de tiempo
ping -c 4 www.hola.com => enviamos sólo 4 paquetes
ping -c 4 -i 3 www-hola.com => intérvalo de 3 sergundos entre paquete y paquete
sudo ping -f www.hola.com (parametro f se ha de hacer como Root, f=flujo, envía paquetes a chorro)
punto=se ha enviado un paquete. Cuando recibimos la respuesta, se borra el punto
Si aparecen muchos puntos, es que se pierden paquetes
mtr www.hola.com (tracert en Windows)
ncurses (programa de terminal)
X11=programa gráfico


mtr -c 4 www.hola.com
mtr -c 4 -r www.hola.com => Sólo muestra el resultado final
ss == Socket (extremo de una conexión)
netstat, NO USAR! obsoleto, usar “ss”

ss -tu
Conexiones TCP, que son fiables (comprobación de errores: paquetes repetidos, perdidos, desordenados, defectuoso, etc).
Conexiones UDP no tienen ese mecanismo de control de comprobación de errores. Pero las conexiones son más rápidas.


puerto: numero asociado a un extremo de la conexión (socket). Un extremos ha de tener un puerto y el otro extremo, otro puerto.
Los puertos sirven para tener muchos servidores en una misma máquina. Servicios separados por puertos.

puerto 443: puerto por defecto que escuchan los servidores HTTPS.
el navegador por defecto usa el puerto 80.
SSH, puerto 22.
HTTP: peticiones sin encriptar
HTTPS: peticiones encriptadas (seguras) -> Servidores web HTTPS. Escuchan en el puerto 443.
Lista de puertos asignado por la IANA:


puerto 53: servidores DNS

Puerto 53836, puerto “basurilla”, asignado por nuestra máquina cliente. Son puertos de “usar y tirar”.
Número máximo de puertos: 65535
ss -tunl

Puertos abiertos: disponibles para que alguien se comunique con nosotros
Útil para ver si tenemos algún troyano
- => cualquier IP de las que mi máquina tenga. Si especifica IP, sólo para esa IP.
::: => lo mismo que el *, pero es para IPv6
Programas concretos que están detrás de un puerto:
sudo ss -tunlp



Manipular conexiones: “Cortafuegos”, cerrarlas, redirecionarlas, etc
Comando “iptables”: sudo iptables -L
Comando ncat (o netcat), o nc (es una navaja suiza, MUY útil)
Te puedes inventar un servidor web si quieres con esto!!
Establece una conexión con otro lado
Crea un hilo, una carretera, una conexión entre 2 puntos.
nc -l -p 5000 => ponemos en marcha el servidor: se pone a escuchar en el puerto 5000:



Enviamos un fichero:
nc 192.168.20.204 5000 < /etc/fstab
nc -l -p 5000 > unfichero.txt => cuando reciba lo que sea, lo pondrá en unfichero.txt
nc -l -p 5000 < unfichero.txt => envia unfichero.txt al cliente
“net cat web server” XP XD 🙂
Clonación remota de un disco:
nc -l -p 5000 | dd of=/dev/sdc
y en otro terminal (en otra maquina): dd if=/dev/sdb | nc 192.168.20.200 5000
Backup en una ISO:
nc -l -p 5000 | dd of=archivo.iso
y en otro terminal (en otra maquina): dd if=/dev/sdb | nc 192.168.20.200 5000
Servidor a la espera de que alguien se conecte para enviarle la ISO:
dd if=archivo.iso | nc -l -p 5000
y en otra maquina: nc 192.168.20.200 5000 | dd of=/dev/sdb
Se puede hacer streaming de video, por ejemplo! Y un montón de cosas!
Comando nmap

es un escaneador, ¿que ordenadores hay encendidos en mi red? ¿qué puertos tiene abiertos?
OJO! Un puerto abierto = una puerta abierta! OJO!!
¿Qué máquinas hay encendidas en la red? Scan network (sn):
nmap -sn 192.168.20.0/24

“Kali Linux” tiene herramientas como en nmap.
Rangos: nmap -sn 192.168.20.5-30
¿Qué puertos abiertos tiene cierta máquina?





Comando host (cliente DNS)
hace una petición DNS y el ÇDNS te contesta:

nombre canónico y “alias”
apt install dnsutils

¿qué ventajas tiene tener servidores DNS propios? Velocidad.

Por que la ip resuleta puede ser diferente? por granjas de servidores “clones” con diferentes IPs, pero que balancean la carga de los servidores web.
A los DNSs se les puede preguntar otras cosas, a parte de la resolución del nombre.
wget

wget -r –no-parent


comando curl: es un cliente http (hace peticiones como si fuera un navegador)

Cabeceras del cliente:

Cada peticion tiene un conjunto de datos q sirven para informarle al servidor del contexto de esa petición: quien soy, de donde vengo, por qué te lo pido, etc…
cabecera “reference”: de qué web venía antes.
cabecera “host”: a qué servidor estoy conectándome
content-type: ¿qué tipo de cosa le está devolviendo el servidor al cliente?
Pues, el comando curl permite estudiar todo esto desde el terminal

301: ahi no hay nada que ver, hay que ir a otro sitio (redireccion): https://www.hola.com/

Muestra el código fuente:

curl -L https://www.hola.com => redirige automáticamente si se encuentra con 301
REST APIs
Manera que tienen los programas para comunicarse entre sí.
Pueden usar un servidor web normal para enviar y recibir comandos.
curl http://www.bd.com/usuarios/pepe – “obtener datos de pepe” en formato JSON, por ejemplo
“Servidor REST” (para almacenar datos)
SHELL SCRIPTS


VARIABLES:
x=35
y=22
echo La variable x vale $x y la variable y vale $y

z=x+y
“cliphandler” 🙂 adelantar y que el espectador se queda “aaaaaahhh qué será?” 🙂
Operaciones matemáticas: $$(( … ))