Skip to content

Olivier-true/Secure-Port-Redirector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 Secure Port Redirector (via SSLStream)

Ce projet est un redirecteur de flux sĂ©curisĂ©, dĂ©veloppĂ© en C#. Il redirige uniquement le trafic d'un port si le client est authentifiĂ© Ă  l’aide d’un certificat SSL. Il repose sur l’utilisation de SSLStream pour garantir une communication sĂ©curisĂ©e entre le client et le serveur.

✹ FonctionnalitĂ©s

  • 🔁 Redirection de flux rĂ©seau entre client et serveur.
  • đŸ›Ąïž Authentification forte via certificats SSL.
  • ⚙ GĂ©nĂ©ration automatique des certificats et configuration.
  • đŸ’Œ Compatible Windows (avec .NET 8.0).
  • đŸ§Ș Build & publish automatisĂ© avec dotnet.
  • 📩 Client embedded

🚀 Installation

💡 Ce projet a Ă©tĂ© testĂ© uniquement sous Windows. Cependant il est possible d'hĂ©berger le serveur sur linux en remplaçant le <RuntimeIdentifier>win-x64</RuntimeIdentifier> par <RuntimeIdentifier>linux-x64</RuntimeIdentifier> dans server/server.csproj

Prérequis

  • une machine sous windows (7, 8.1, 10, 11, serveur, etc) pour gĂ©nĂ©rer les executables avec compile.bat et hĂ©berger le serveur
  • PowerShell
  • AccĂšs Ă  Internet pour l'installation des composant

Étapes d'installation automatique

Le script Python fourni installe automatiquement :

  • Le SDK .NET 8.0
  • 7-Zip (version CLI 7zr.exe / 7za.exe)
  • OpenSSL Windows (prĂ©compilĂ©)
  • GĂ©nĂšre les certificats client/serveur
  • Modifie les fichiers Program.cs avec les bons paramĂštres
  • Compile et publie les projets client et serveur

Exécution du script

Modifier la configuration dans le fichier conf.json et spécifiez vos adresse IP et les ports associés

{
  "client": {
    "RemoteIP": "127.0.0.1", // IP du serveur de redirection celui exposé sur internet
    "RemotePort": 50000,     // Port exposé sur internet
    "ListenPort": 443        // Port sur lequel le flux sera dupliqué et auquel vous devez vous connecter (ex: localhost:443)
  },
  "server": {
    "DestinationIP": "127.0.0.1", // IP de l'appareil qui doit recevoir la requĂȘte (ex: localhost:445) pour un service qui Ă©coute sur le port 445 de la machine local (peut ĂȘtre une machine sur le mĂȘme rĂ©seau tel qu'un nas).
    "DestinationPort": 445,       // Port sur lequel écoute le service comme spécifié plus haut
    "ListenPort": 50000           // Port d'Ă©coute du redirecteur de flux -> doit ĂȘtre ouvert sur internet !
  }
}

AprÚs avoir modifié la configuration exécutez : compile.bat

> Le serveur de redirection se trouve dans : ./server/bin/Release/net8.0/server.exe

> Le client se trouve dans : ./client/bin/Release/net8.0/client.exe

đŸ§Ș Exemple d'utilisation

Une fois les binaires compilés :

1. Lance le serveur sur la machine dont le port du redirecteur est exposé:

./server/bin/Release/net8.0-windows/server.exe

2. Lance le client sur n'importe quelle machine windows :

./client/bin/Release/net8.0-windows/client.exe

Vous pouvez maintenant accĂšder a votre service via localhost:<ListenPort> sur le poste client depuis n'importe oĂč.

📝 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus d’informations.

đŸ€ Contributions

Les contributions sont les bienvenues ! N’hĂ©sitez pas Ă  ouvrir une issue ou une pull request pour amĂ©liorer le projet ou ajouter des fonctionnalitĂ©s.