Interfaces de red

El primer comando que veremos sera ip este nos aporta una serie de opciones que nos permitiran tener infomacion sobre nuestra red.

Comando completo: ip link

Comando abreviado:ip l

Por lo general la abreviacion de un comando es siempre la primera letra de la palabra que seria si es completa, por ejemplo la abreviacion de ip address seria ip a.

Ip link nos devolvera las interfaces de red que tenemos dadas de alta en nuestro sistema.

Si miramos bien la salida que nos devolvio el comando, veremos:

  1. lo LOOPBACK : Esta interfaz es virtual no esta asociada con ninguna tarjeta de red fisica de nuetro sistema. Esta hace referencia a nuestra propia maquina. Por ejemplo cuando hacemos ping a nuestro localhost lo que hace es usar esta interfaz lookback.

Luego de esta, todas las demas tendremos los dispositivos fisicos.

Ip l show dev interfaz

Este comando nos permite obtener toda la informacion de una interfaz dada:

  1. ip l show dev enp6s0

Con esto veremos, el nombre de la interfaz (en mi caso enp6s0), la mac address, si el dispositivo esta up o down entre otros detalles.

Este comando nos permite ver las stats de cada interfaz.

Ip l ls up

ip l ls up: Nos retorna las interfaces que tenemos en status up

Ip l set interfaz down/up

ip l set enp6s0 down: apagaria esa interfaz y nos quedos sin intenet. xddd ip l set enp6s0 up: enciente la interfaz.

Direcciones Ip

Ip a

Si tiramos el comando ip a veremos lo mismo que antes pero con un poco mas de informacion, nos da adicionalmente la ipv4 y la ipv6.

  1. En lookback siempre veremos 127.0.0.1.
  2. En la otra interfaz veremos la direccion ip interna , algo como 192.168.0.10.

Podemos tambien filtrar si queremos solo las ipv4 con -4 o ipv6 con -6

ip -4 a

De esta manera obtenemos todas las interfaces solo con su ipv4

Podemos tambien combinar con show dev asi :

ip -4 a show dev enp6s0

Agregando nuevas direcciones

sudo ip a add 192.168.0.150/24 dev enp6s0

Eliminando direcciones

sudo ip a del 192.168.0.15./24 dev enp6s0

Routing

ip route

Este comando nos permite ver la tabla de rutas, este es como un mapa donde le permite saber al sistema por donde salir.

Por ejemplo si hacemos el comando ip route veremos un campo default y una ip, esa ip es el de nuestro router, por donde saldran todas nuestras peticiones hacia otras redes(fuera de la red local).

traceroute

Por default no viene instalado ni en ubuntu ni en archlinux, lo instalamos :

sudo apt install traceroute #ubuntu
sudo pacman -S traceroute #archlinux

Nos muestra los saltos que va dando a traves de la red hasta llegar al objetivo.

Hacemos:

sudo traceroute -T www.google.com

veremos como sale por la ip default que dijimos antes.

Agregando route por defecto

sudo ip r add default via 192.168.0.2 dev enp6s0

Cuando vayamos a :

ip r

Veremos que aparece primera y por default. Pero no tendras acceso a internet

Para quitarla :

sudo ip r del default via 192.168.0.2

DHCP y DNS

DHCP

Si no tenemos ip podemos tirar sudo dhclient y nuestra interfaz le pedira al servidor dns que le asigne una ip.

DNS

Con dig podemos ver los dns seteados en nuestra pc.

Para cambiar los dns por defecto por los de google temporalmente hasta el proximo reinicio.

sudo vim /etc/resolv.conf

y donde dice nameserver 127.0.0.x podemos nameserver 8.8.8.8

Curl Wget

Estos nos sirven tanto para enviar informacion a un servidor como para descargar infomacion de un server.

Curl

No vienen instalado por defecto.

sudo apt install curl #ubuntu 
sudo pacman -S curl #arch

curl nos permite hacer peticiones a apis, configurando sus encabezados, su body entre otras cosas.

Tambien nos sirve para descargar el html puro, por ejemplo

curl https://www.winrar.com/descargas > winrar.html

Tambien permite descargar paginas de manera consecutiva, estilo pagina.com/resource{1...5}.html

Adicionalmente podemos descargar arhivos si tenemos la url de descarga. Entre muchas otras cosas mas como definirla la configuracion de un proxy.

curl -x proxy_name:port url
curl -u user:password  -x proxy_name:port url

# Wget 

Esta es mas recomendada para desacargar ficheros mas grandes.

wget url_de_descarga


Podemos tambine mandar a 2do plano una descarga e ir monitoreando el avance en 
un archivo de log, asi :

wget -b url_de_descarga ls wget-log tail wget-log

Otra situacion seria, tener todas las url de descargas en un arhivo txt. Para eso :

```sh 
wget -i fichero.txt

A diferencia de curl podemos descargar las paginas ,pero estas contendran tambien la estetica.

wget -o pagina https://la-web-a-descargar.com

ssh

Nos permite establecer una conexion remota por terminal.

ssh es el client, el cual se conectara a la otra pc.

La otra pc tiene que tener activado el servicio/servidor OpenSSH

sudo apt install openssh-server
sudo service ssh status

Con la maquina cliente podemos

ssh usuarioRemoto@ipv4 
ssh perro@192.168.0.10 

perro es un usuario de la maquina remota. Nos pedira la contrasenia de ese usuario.

FTP

FTP es un protocolo que sirve para intercambiar ficheros entre maquinas.

Vamos a necesitar una maquina con FTP cliente que se conectara a una maquina remota que nescesitara un app FTP server.

Toda la infomacion transferia por ftp va en plano, esto quiere decir que si nos estan sniffeando la red, el atacante prodra ver lo que estamos haciendo.

Si queres hacer el ejercicio, podes instalar en otra el very secure ftp que permite tener un server ftp.

sudo apt install vsftpd
sudo service ftp status

Una vez tengas corriedo el server, vamos a la otra pc y ponemos:

ftp ip_de_la_pc_server_ftp

Nos preguntara con que usuario nos queremos logear y la password.

Una vez dentro tendremos un promp ftp con el cual podremos hacer cositas.

#traer fichero 

get fichero1.txt

#llevar de local al server
# pero no nos dejara por seguridad
put fichero2.txt

ftp nos permite listar y navegar entre los ficheros remotos

Cambiando el comportamiento del server ftp para permitir recibir archivos

sudo vim /etc/vsftpd.conf

# Descomentamos 
write_enable=YES

Reiniciamos el servicio.

sudo service vsftpd

Para ver mas comando podemos poner help

Un comando interesante es que podemos tirar ! y eso no sacara nuestro fichero local, luego cuadno queremos volver al ftp ponemos exit y volvemos a la session ftp.

SFTP (secure file transfer protocol)

Lo mismo que ftp pero cifrado

sftp user@ip_de_la_pc_server_ftp

Visualizacion de conexiones

Ver conexiones remotas establecidas TCP

ss -ta

Ver conexiones remotas establecidas UDP

ss -ua

Ver conexiones remotas establecidas

ss -t

Ver conexiones en escucha

ss -l

Netstat

sudo apt install net-tools

Comando netstat -nr se utiliza en sistemas Unix/Linux para mostrar la tabla de rutas del sistema de manera numérica.

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

Es lo mimso que nos daba ip route pero de una manera mas facil de leer.