====== Outils réseaux ======
* [[https://lord.re/posts/137-linux-nonet-app/|Bloquer l'accès au réseau à un logiciel]]
* [[https://opensource.com/article/18/7/sysadmin-guide-networking-commands|A sysadmin's guide to network management]]
* [[https://blog.seboss666.info/2017/12/nethogs-un-petit-utilitaire-sous-linux-pour-savoir-qui-consomme-consume-votre-reseau/|Nethogs, un petit utilitaire sous Linux pour savoir qui consomme (consume ?) votre réseau]]
* [[https://blog.ght1pc9kc.fr/2020/comprendre-la-résolution-dns-sous-debian.html|Comprendre la résolution DNS sous Debian]]
* https://labs.iximiuz.com/tutorials/container-networking-from-scratch
* [[linux:wifi|WiFi]]
* [[linux:dns|DNS]]
Trippy
==== Lister les ports ouverts ====
''netstat'' est dans le paquet ''net-tools''.
netstat -tnlp
* ''-t'': TCP
* ''-n'': ne pas faire de résolution DNS
* ''-l'': lister les ports
* ''-p'': affiche le programme associé, nécessaire d’exécuter en tant que root
Le remplaçant de ''netstat'' est ''ss'', l'équivalent de la commande ci-dessus est :
ss -lapten
==== Lister les connexions ouvertes ====
ss -tn
==== Table ARP ====
Installer le paquet ''net-tools''
=== Afficher la table ARP ===
sudo arp
sudo arp -a
Directement avec la commande ''ip'' :
ip neighbor
==== Spoofer les tables ARP ====
arpspoof -i net1 -c both -t 10.2.0.3 -r 10.2.0.2
Dans le paquet //dsniff//.
==== Tcpdump ====
tcpdump -i net1 -X -vvv port 143
Paramètres:
* ''-X'': décode les paquets émis/reçus en hexa/ASCII
==== Netcat ====
* [[https://connect.ed-diamond.com/Linux-Pratique/lp-123/netcat-l-histoire-d-un-couteau-suisse-pour-le-reseau|Netcat, l’histoire d’un couteau suisse pour le réseau]]
Écoute sur le port 80
sudo netcat -l -p 80
Écoute sur le port 80 en restant interactif:
sudo netcat -kl 80
Ne pas envoyer de CRLF lors de la pression du Enter:
nc -C ...
ou
echo -en "GET / HTTP/1.0\r\n\r\n" | nc adresse port
Code Python pour interagir avec netcat ([[https://gist.github.com/leonjza/f35a7252babdf77c8421|Source]]):
import socket
class Netcat:
""" Python 'netcat like' module """
def __init__(self, ip, port):
self.buff = ""
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.connect((ip, port))
def read(self, length = 1024):
""" Read 1024 bytes off the socket """
return self.socket.recv(length)
def read_until(self, data):
""" Read data into the buffer until we have data """
while not data in self.buff:
self.buff += self.socket.recv(1024)
pos = self.buff.find(data)
rval = self.buff[:pos + len(data)]
self.buff = self.buff[pos + len(data):]
return rval
def write(self, data):
self.socket.send(data)
def close(self):
self.socket.close()
==== Samba ====
Installer le paquet ''smbclient''.
Requêter les partages d'un serveur:
smbclient //ip/ -L
Ouvrir un shell dans un partage:
smbclient //ip/partage
Dans ce shell, les commandes ''cd'', ''ls'', ''put'', ''get'' sont disponibles.
L'option ''-N'' permet de s'authentifier de façon anonyme.
Avec ''mount'', installer le paquet ''cifs-utils'':
sudo mount -t cifs -o guest,iocharset=utf8 //192.168.12.1/home essai
==== Tester les performances du réseau ====
=== Entre deux machines d'un réseau local ===
Installer sur les deux machines le paquet ''iperf''.
Sur le serveur :
iperf -s
Sur le client :
iperf -c
=== Faire un speedtest ===
[[https://korben.info/mesurez-votre-debit-internet-en-ligne-de-commande.html|Source]]
pip3 install speedtest-cli
python3 -m speedtest
Ou bien juste installer le paquet ''speedtest-cli'', puis :
speedtest
==== Wake-on-LAN ====
* [[https://wiki.debian.org/WakeOnLan]]
* [[https://doc.ubuntu-fr.org/wakeonlan]]
* [[https://wiki.archlinux.org/title/Wake-on-LAN]]
=== Activer le wake-on-LAN ===
Il faut commencer par l'activer dans le BIOS.
Pour vérifier qu'il est activé (commande fournie par le paquet éponyme) :
sudo ethtool eth0
La ligne ''Wake-on'' doit avoir la valeur ''g'' (et pas ''d'').
Pour l'activer, ajouter au fichier ''/etc/network/interfaces'' :
iface enp8s0 inet manual
up /sbin/ethtool -s $IFACE wol g
Il faut s'assurer que l'activation survit au reboot.
=== Démarrer une machine ===
En root, avec la commande ''etherwake'' (fournie par le paquet éponyme), il suffit de connaître l'adresse MAC de l'interface à qui il faut envoyer le paquet magique :
sudo etherwake $addr_mac
Par défaut, ''etherwake'' envoie le message par l'interface locale nommée ''eth0'', il est possible de préciser un autre nom avec le paramètre ''-i''.