linux:network-tools

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:network-tools [2019/05/05 14:35] – Move curl to command page phswlinux:network-tools [2025/01/01 20:01] (Version actuelle) – [Outils réseaux] add trippy phsw
Ligne 3: Ligne 3:
   * [[https://lord.re/posts/137-linux-nonet-app/|Bloquer l'accès au réseau à un logiciel]]   * [[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://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:wifi|WiFi]]
 +  * [[linux:dns|DNS]]
  
 +Trippy
 ==== Lister les ports ouverts ==== ==== Lister les ports ouverts ====
 +
 +''netstat'' est dans le paquet ''net-tools''.
 +
 <code bash> <code bash>
 netstat -tnlp netstat -tnlp
Ligne 15: Ligne 23:
   * ''-p'': affiche le programme associé, nécessaire d’exécuter en tant que root   * ''-p'': affiche le programme associé, nécessaire d’exécuter en tant que root
  
-Le remplaçant de ''netstat'' est ''ss''.+Le remplaçant de ''netstat'' est ''ss'', l'équivalent de la commande ci-dessus est : 
 +<code bash> 
 +ss -lapten 
 +</code>
  
  
Ligne 24: Ligne 35:
  
  
-------+
  
 ==== Table ARP ==== ==== Table ARP ====
Ligne 37: Ligne 48:
 sudo arp -a sudo arp -a
 </code> </code>
 +
 +Directement avec la commande ''ip'' :
 +<code bash>
 +ip neighbor
 +</code>
 +
  
  
------- 
 ==== Spoofer les tables ARP ==== ==== Spoofer les tables ARP ====
  
Ligne 48: Ligne 64:
  
  
-------+
 ==== Tcpdump ==== ==== Tcpdump ====
 <code bash> <code bash>
 tcpdump -i net1 -X -vvv port 143 tcpdump -i net1 -X -vvv port 143
 </code> </code>
 +
 +Paramètres:
 +  * ''-X'': décode les paquets émis/reçus en hexa/ASCII
  
  
----- 
 ==== Netcat ==== ==== Netcat ====
  
-Ecoute sur le port 80+  * [[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
 <code bash> <code bash>
 sudo netcat -l -p 80 sudo netcat -l -p 80
 </code> </code>
  
-Ecoute sur le port 80 en restant interactif:+Écoute sur le port 80 en restant interactif:
 <code bash> <code bash>
 sudo netcat -kl 80 sudo netcat -kl 80
Ligne 76: Ligne 96:
 echo -en "GET / HTTP/1.0\r\n\r\n" | nc adresse port echo -en "GET / HTTP/1.0\r\n\r\n" | nc adresse port
 </code> </code>
 +
 +Code Python pour interagir avec netcat ([[https://gist.github.com/leonjza/f35a7252babdf77c8421|Source]]):
 +<code python>
 +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()
 +</code>
 +
  
  
  
------ 
 ==== Samba ==== ==== Samba ====
  
Ligne 101: Ligne 163:
 sudo mount -t cifs -o guest,iocharset=utf8 //192.168.12.1/home essai sudo mount -t cifs -o guest,iocharset=utf8 //192.168.12.1/home essai
 </code> </code>
 +
 +
 +
 +
 +
 +==== 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 :
 +<code bash>
 +iperf -s
 +</code>
 +Sur le client :
 +<code bash>
 +iperf -c <ip du serveur>
 +</code>
 +
 +
 +=== Faire un speedtest ===
 + 
 +[[https://korben.info/mesurez-votre-debit-internet-en-ligne-de-commande.html|Source]]
 +
 +<code bash>
 +pip3 install speedtest-cli
 +python3 -m speedtest
 +</code>
 +
 +Ou bien juste installer le paquet ''speedtest-cli'', puis :
 +<code bash>
 +speedtest
 +</code>
 +
 +
 +==== 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) :
 +<code bash>
 +sudo ethtool eth0
 +</code>
 +La ligne ''Wake-on'' doit avoir la valeur ''g'' (et pas ''d'').
 +
 +Pour l'activer, ajouter au fichier ''/etc/network/interfaces'' :
 +<code>
 +iface enp8s0 inet manual
 + up /sbin/ethtool -s $IFACE wol g
 +</code>
 +
 +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 :
 +<code bash>
 +sudo etherwake $addr_mac
 +</code>
 +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''.
  • linux/network-tools.1557059705.txt.gz
  • Dernière modification : 2021/04/04 17:01
  • (modification externe)