2010-09-02 22 views
0

Considérons que j'ai un service dans ma session d'utilisateur qui écoute sur un port TCP.Existe-t-il un moyen d'interdire la connexion depuis l'extérieur de la session locale dans Windows?

Existe-t-il un moyen, sous Windows, d'autoriser uniquement les processus de la même session à se connecter, et de refuser les connexions de l'extérieur? ("outside" signifie un autre ordinateur, et une autre session d'utilisateur sur le même hôte).

Je vais également accepter toute alternative à TCP qui permet seulement deux processus dans la même session de communiquer.

Cela doit travailler pour Windows Vista, Seven et Server 2008.

Un grand merci.

Répondre

0

Vous pouvez lier votre socket d'écoute sur localhost (127.0.0.1), ce qui limite les connexions aux seules connexions locales internes.

Si vous souhaitez ensuite limiter la session d'origine, vous devez créer une forme d'authentification dans le protocole qui s'exécute sur la connexion TCP. Par exemple: le client doit envoyer le nom de session de sa propre session avant que le serveur ne communique davantage.

+0

En fait, si quelqu'un dérange la table de routage, un hôte externe peut, dans certaines circonstances, accéder à '127.0.0.1'. Quoi qu'il en soit, je voudrais éviter de construire mon propre schéma d'authentification si le système peut fournir une alternative. – ereOn

+0

Un utilisateur disposant de privilèges limités peut-il jouer avec la table de routage ou avez-vous besoin de privilèges d'administrateur? Si vous avez besoin de droits d'administrateur pour manipuler la table de routage, l'authentification "locale" (éventuellement) intégrée peut également être contournée en déconnant la pile TCP/IP ou en remplaçant les fichiers système. – Otherside