Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information
aide





Programmation.c : relai de connection TCP via apache

Posté par Emeric Verschuur (Jabber id, page perso, ) le 09 mai 2008

Bonjour,



Étant comme beaucoup de gens confronté à un blocage de port, je voudrais élaborer une solution dont voici le principe :



Donnée du problème :

* Serveur x en local qui est en écoute d'une connections sur un port y

* Serveur HTTP (apache qui héberge mon sites ainsi que d'autres services)

* Un client z qui ne peux pas se connecter directement au serveur x car le port y est bloqué en sortie par le routeur.

Le mode de communication entre le client z et le serveur x est asynchrone donc le client envoie des données (requêtes) au serveur et vice-versa.



Principe :

Voilà : le souci c'est comment faire passer une session TCP via le port 80 pour finalement être relayer sur le port y...



Ce que je voudrais c'est par exemple :

z commence une session TCP avec apache sur le port 80

z envoie une requête une requête "GET /dossier-redirect/" (On suppose que apache est configuré de telle manière que l'accès au dossier /dossier-redirect/ fait appel à un module ou script CGI nommé s).

s récupère le no de socket (descripteur de fichier) associé à la connexion http avec z

s commence une session TCP avec le serveur x sur le port y

en fin s relaye les données de s vers z et vice-versa jusqu'à ce que z ou s effectue une clôture de session tcp.



voilà, je sais que c'est assez tordu mais ma question c'est : est ce que c'est faisable ? et est ce qu'il y aurait d'autre alternatives.



ps: ce que je voudrais éviter, c'est un proxy http ou tunnel http...



merci d'avance

> Lire le message (5 commentaires, moyenne: 1,4).  

Re: SSH

Posté par Benjamin (Jabber id, page perso, ) le 09/05/2008 à 19:37. (lien). Évalué à 2.

Il y a une autre possibilité de filtrage : le niveau 7 : si le routeur bloque tous les ports et vérifie la cohérence applicative des ports autorisés, cela devient plus chaud

Exemple : le routeur peut vérifier que sur le 21, tu ne fais que des commandes FTP, que tu fais bien du HTTP sur le port 80 etc.

Or, il y a une faille bien souvent dans ce type d'appli : le 443, souvent relayé tel quel, ou, au mieux, le routeur à pare-feu applicatif vérifie juste qu'il s'agit bien de dialogue SSL. Or, SSH et HTTPS ont ce point commun ;)

Moralité, installer un serveur ssh sur le port 443 peut parfois s'avérer très utile, ...

Après, une fois ssh ouvert, -L et -R (voire -D, furieux va ! ) sont vos amis

[ Répondre ]

Vous ne pouvez plus rajouter de commentaires! (trop vieux)