2009-01-04 18 views
5

Je travaille actuellement chez un client où ils ont verrouillé le réseau, sauf pour les ports 80 et 443. Je dois Connectez-vous à notre serveur en utilisant SSH, mais le même serveur gère également notre site Web. Nous ne voulons pas investir dans un nouveau serveur ou placer une deuxième carte réseau.Pare-feu client bloque tous les ports sauf 80 et 443, besoin de rediriger les requets sur le port 443 vers SSH ou HTTPS

J'ai cherché sur Internet pour installer notre serveur linux (sous CentOS 5), de sorte qu'un démon écoute sur le port 443 qui, selon le protocole client, transmet la requête au port interne correct (SSH 22 ou HTTPS déplacé vers un differentport_.

Il y a beaucoup de personnes sur Internet à la recherche de cette solution type, mais pas d'instructions claires comment faire.

Quelqu'un a des idées/des instructions claires comment faire cela?

Cordialement, nidkil

+0

La plupart du temps, le port 443 est également ouvert. Si votre serveur Web ne prend pas en charge le protocole HTTPS, vous pouvez transférer ce port à 22 dans votre pare-feu. – krosenvold

+0

vrai, mais il veut exécuter HTTPS! – Mikeage

Répondre

3

Une solution facile à votre problème pourrait être d'assigner plusieurs adresses IP à votre boîte et de lier votre SSH au port 443 sur une adresse IP distincte; you can usually assign multiple IP addresses to a single adapter, pas besoin d'ajouter une deuxième carte réseau. Sinon, je ne connais aucune solution prête à l'emploi pour ce que vous voulez faire. Vous devrez probablement créer un démon personnalisé pour cela, ce qui serait un peu difficile mais faisable.

+0

C'est probablement la meilleure solution s'il a plusieurs adresses IP disponibles. – Mikeage

1

Vous pouvez créer une petite application Web en écoute sur le port 443 qui active un shell SSH inversé vers l'adresse IP de la connexion entrante, en utilisant l'authentification par clé publique. Dites:

  • Vous vous authentifiez sur l'application Web; l'application Web récupère votre adresse IP
  • L'application démarre un tunnel SSH depuis son adresse IP à votre IP (sur le port 22)
  • Le serveur SSH sur votre machine se termine le tunnel et écoute à localhost: 8080
  • Ensuite, vous démarrer une session SSH avec localhost: 8080. Les commandes de la session interactive suivante sont redirigées vers l'hôte distant.
3

Les restrictions de pare-feu sont en place pour une raison. Ils ne sont peut-être pas bons, mais ils ont un sens pour la personne qui l'a mise en œuvre ou qui l'a fait appliquer. Je ne tenterais pas de violer la politique de l'entreprise sur les connexions externes.

Si votre besoin est légitime, je demanderais que le port, ou un autre, soit ouvert aux adresses dont vous avez besoin. Si cela ne fonctionne pas alors peut-être qu'une solution VPN serait acceptable.

Dans le cas où les gens du réseau sont juste follement protecteurs, ne veulent pas répondre à la raison, ou tout simplement incompétent, je voudrais m'assurer que j'ai reçu un accord d'un manager qui est prêt à aller pour moi cela devient un problème avant que je mette en place une solution de rechange. Tout le reste pourrait raisonnablement aboutir à la fin de votre emploi. Après tout, vous parlez de violer une politique de sécurité de l'entreprise.

+0

Imaginez qu'il est en Thaïlande ou dans un autre pays qui bloque SSH. Bien sûr, vous risqueriez la police secrète au lieu de juste la colère de votre emploer. Probablement besoin de furtivité SSH à l'intérieur de gif est trop;) – krosenvold

+0

Bon point sur l'utilisation de SSH pour contourner la sécurité. La plupart des gens de sécurité n'aiment pas quand vous contournez leurs règles, et ils ont généralement beaucoup de traction. En ce qui concerne l'ouverture du port par quelqu'un, je suppose que vous n'avez jamais travaillé dans une grande entreprise auparavant où la politique l'emportait sur une bonne raison? –

0

Si vous avez apache sur notre boîte centos, vous pouvez utiliser mod_proxy pour rediriger les demandes d'un port à un autre. Je l'utiliser pour rediriger les requêtes vers http://webmin.myserver.com-http://myserver.com:10000 (Webmin en cours d'exécution sur un port inaccessible)

ServerName webmin.myserver.co.uk 
SSLProxyEngine On 

ProxyRequests Off 
ProxyPass/https://myserver.co.uk:10000/ 
ProxyPassReverse/https://myserver.co.uk:10000/ 

place ci-dessus dans votre directive serveur virtuel, et vous êtes bon pour aller.Cela peut ne pas fonctionner avec Putty, mais si vous installez webmin, il dispose d'un module SSH auquel vous pouvez accéder via un navigateur.

6

sslh: http://www.rutschle.net/tech/sslh.shtml

J'utilise 1,5; Je n'ai pas encore essayé 1.6b, et 1.3 a un problème avec les zombies.

Exécutez-le sur le port 443; Si aucune donnée n'est envoyée avec 2 secondes (la valeur par défaut), elle est transmise à ssh. Sinon, il redirige vers votre serveur Web.

Je l'exécute sur mon site Web (http://mikeage.net) - vous pouvez netcat si vous voulez voir les deux bannières de connexion.

Dans mon cas, il a aussi un autre but. Nous avons une configuration encore plus restrictive que vous: tous les ports sont bloqués, mais 80 et 443 peuvent être atteints via un proxy. Je peux avoir SSH utiliser un programme comme tire-bouchon (ou putty nativement) pour ma connexion proxy SSH via le proxy de l'entreprise à mon serveur: 443, où après un bref délai, mon serveur SSH répond avec sa bannière de connexion. Je peux également servir des pages Web sur le HTTPS standard (et faire, en fait).

+0

Nice. +1 Voir les commentaires de http://stackoverflow.com/questions/487737. 1 vers le bas, 14 pour aller (1 par jour) – VonC