10 points par xguru 2024-08-27 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Un outil qui exécute des commandes en envoyant des paquets UDP au serveur
  • Les commandes sont configurées côté serveur, donc le client ne définit pas la commande à exécuter et se contente de sélectionner l’une des commandes existantes
  • Composé de 3 binaires
    • client : s’exécute sur un ordinateur et envoie les paquets UDP
    • server : reçoit les paquets UDP et vérifie leur validité
    • commander : exécute la commande encodée dans les données du paquet UDP si elle est valide
  • Sécurité
    • Comme l’envoi se fait en UDP, le serveur ne répond absolument pas : scan de ports impossible
    • Les données envoyées du client vers le serveur sont chiffrées avec RSA
    • Le client définit uniquement la commande à exécuter et la commande est stockée sur le serveur -> le client peut sélectionner une commande, mais ne peut pas la définir
    • Exécuter le logiciel serveur avec le moins de privilèges système possible
    • Tous les paquets reçus par le serveur sont ajoutés à une liste de blocage afin de se protéger contre les replay
    • Protection DoS (WIP)

Exemple d’utilisation : single packet authorization (SPA)

Pour sécuriser le serveur, au lieu de bloquer complètement SSH, il est possible d’adopter une méthode qui ouvre brièvement le port SSH puis le referme

address = "0.0.0.0:8080"  # Adresse sur laquelle le serveur Ruroco écoute (si systemd/ruroco.socket n’est pas utilisé)  
config_dir = "/etc/ruroco/"  # Chemin où sont stockés les fichiers de configuration  
  
[commands]  
# Ouvrir SSH (uniquement pour l’adresse IP d’où vient la requête)  
open_ssh = "ufw allow from $RUROCO_IP proto tcp to any port 22"   
# Fermer SSH (uniquement pour l’adresse IP d’où vient la requête)  
close_ssh = "ufw delete allow from $RUROCO_IP proto tcp to any port 22"  
  • Configurez Ruroco ainsi sur le serveur, puis exécutez la commande suivante côté client
    ruroco-client send --address host.domain:8080 --private-pem-path /path/to/ruroco_private.pem --command open_ssh --deadline 5
  • Le serveur vérifie avec RSA que le client est autorisé à exécuter cette commande, puis lance la commande définie sous open_ssh
  • L’argument --deadline signifie que le serveur doit démarrer la commande dans les 5 secondes suivant son exécution
  • L’accès au port SSH n’est autorisé que pour l’IP depuis laquelle le paquet UDP a été envoyé
  • Bien entendu, comme lorsque le port SSH est exposé à Internet, il faut aussi appliquer toutes les autres mesures de renforcement de la sécurité
  • Vous pouvez définir autant de commandes que vous le souhaitez en en ajoutant davantage dans le fichier de configuration

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.