====== 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''.