Accès Shell sur une page web - stunnel inside !!! - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 30-12-2002 à 17:00:18
Webmin a une applet java qui te donne un acces ssh/telnet dans une page web
Marsh Posté le 30-12-2002 à 17:08:40
Dans le genre, un peu moins bourin, y a le SSH over SSL qui marche très bien (testé pendant pas mal de temps avec un proxy qui ne laisse passer que le SSL...)
tu fais un stunnel dans lequel tu fais passer du SSH... Faut voir ce qui t'arranges le plus... c'est un peu moins crade que ce que tu proposes... enfin, faut voir...
Marsh Posté le 30-12-2002 à 18:36:53
Lebibi a écrit : Salut, |
cryptcat
un démon coté serveur en écoute sur le 80 (donc pas de http) avec l'option -e ( execution d'un binaire à la connexion en l'occurence un /bin/bash ? )
un client qui se connecte
et tout ce que tu tapes dans le client est envoyé au serveur tel quel , et tu peux choisir le protocole (tcp,udp)
j'ai fait un topic sur ce petit utilitaire il y a pas longtemps
Marsh Posté le 30-12-2002 à 18:39:47
et tu peux choisir l'ip que doit écouter le démon et ainsi restreindre des 'tentatives'.
L'avantage c'est que c'est tres simple à mettre en place , tres pratique mais pas forcément au gout de tout le monde
Marsh Posté le 30-12-2002 à 19:03:05
ok. En fait je voudrais quand même garder le port 80 de libre pour apache
Pour faire un tunnel pkoi pas, mais que me faut il exactement, et comment le mettre en place ?
Marsh Posté le 30-12-2002 à 22:47:49
Bah pour ca, suffit d'utiliser le 443 (port https par défaut), que le proxy doit aussi laiser passer...
A priori, ca a même plus de chances de marcher qu'en utilisant le 80...
Marsh Posté le 30-12-2002 à 23:04:33
sinon, pour la technique du stunnel (je recopie un howto rapide fait par une connaissance...)
céation d'un certificat SSL :
en root sur la machine à laquelle aboutit le tunnel
cd /etc/ssl/certs/
openssl req -new -x509 -nodes -days 365 -out stunnel.pem -keyout stunnel.pem
chmod 600 stunnel.pem
dd if=/dev/random of=temp_file count=2
openssl dhparam -rand temp_file 512 >> stunnel.pem
(Ce sont les instructions du /usr/share/doc/stunnel/README.Debian,
rien de plus.)
ca crée un certificat (stunnel.pem, valable 365 jours) permettant de crypter en SSL les données envoyée sur le stunnel, et lui donne les droits d'accès necessaires.
C'est une étape obligatoire des qu'on veut établir une connexion cryptée, à faire aussi pour l'autre méthode, mais peut-être automatisée dans ce cas...
toujours en root, à chaque démarrage (script) :
stunnel -p /etc/ssl/certs/stunnel.pem -d 443 -r adresse_du_serveur:22
sur le client :
stunnel -c -r adresse_de_la_machine_ou_aboutit_le_tunnel:443 -d 1242
Y va ptet gueuler en disant que le certificat n'est pas signé par une authorité compétence, mais bonn RAF... ca devrait marcher...
puis pour se connecter
ssh -p 1242 utilisateur@localhost
Voila... Le principal problème, c'est qu'il faut avoir stunnel installé sur le client... Ce qui est pas forcément évident...
Marsh Posté le 31-12-2002 à 08:57:56
héhé je me doutais bien de ca. Bah mon poste client est sous NT 4.0.
Je pensais prendre la main via Putty.
Bon je ne pense pas que ca soit possible, le mieux serait vraiment un shell en Java par exemple
J'en ai vu un en php mais c'est assez limitté quand même.
up par la même occasion
Merci pour les réponses deja
Marsh Posté le 31-12-2002 à 09:17:35
stunnel existe sous windows (www.stunnel.org) auquel cas, tu peux tres bien utiliser putty...
bon, ok, j'arrete..
Marsh Posté le 31-12-2002 à 09:35:18
ok je regarde ca
je dl les fichiers pour windows, cette apres-midi je prepare mon linux comme il faut.
Par contre une petite question, j'ai une passerelle, le serveur web et sur un autre pc, je forward donc le port 80.
En utilisant SSH sur SSL je vais atterir sur le port 22 de ma passerelle ou sur le port SSL ?
Ou alors est ce que le port SSL ne me sert que pour sortir et passer au travers du proxy ?
Marsh Posté le 31-12-2002 à 11:19:56
En fait, le principe est le même que pour un tunnel SSH :
tu crées le stunnel côté serveur sur la machine que tu veux (ta passerelle, par exemple) Tout ce quelle va faire, c'est désencapsuler les paquets, et les rediriger vers adresse_du_serveur, qui peux être n'importe quelle machine, à l'autre bout du monde si tu veux (ou, plus logiquement, ton serveur ici, ou localhost, si la machine à administrer est celle qui gère le tunnel...)
Si tu veux pouvoir administrer plusieurs machines, il faut soit redémarrer stunnel côté serveur à chaque fois en changeant l'adresse de destination, ou trouver plusieurs ports que ton proxy forwarde...
Enfin, dans ce cas, le plus simple, à mon avis, c'est de faire un beau tunnel vers une machine (la passerelle par exemple), et depuis le shell de cette machine, réouvrir des cessions SSH vers les autres...
Marsh Posté le 31-12-2002 à 11:32:44
BigBen a écrit : En fait, le principe est le même que pour un tunnel SSH : |
oui c'est ce que je pense aussi. Donc si j'ai bien compris
Je créé le tunnel "serveur" sur ma passerelle linux en ecoute sur le port https.
Sur mon poste Windows au boulot, je lance le soft Stunnel qui ira se connecter au "serveur" tunnel (ma passerelle).
Et apres hop je me connecte en ssh sur le port https.
Par contre, stunnel sous Win veut un fichier de conf, ok mais je ne trouve aucun exemple sur le net d'un fichier de conf pour la version Win
Marsh Posté le 31-12-2002 à 11:44:19
bon, alors, j'essaie de résumer le principe de facon claire (j'ai dit que j'essayais, hein... )
En fait, c'est ca :
|-------|
|serveur|\
|-------| \ |-------|.........(-----)...........|-------|
\|tunnel2|------(proxy)--------|tunnel1|\
|-------|.........(-----)...........|-------| \ |------|
\|client |
|------|
sur tunnel1, t'ouvres une cession stunnel qui ecoute sur un port quelconque (le 1242 dans mon exemple), qui encapsule tout ce qu'il recoit dans du SSL, et qui envoie le tout vers tunnel2 sur le port 443. Ca passe à travers le proxy, vu que c'est du SSL, sur le 443, donc que ca ressemble beaucoup à du https.
tunnel2 recoit les paquets sur son 443, les désencapsule, et les réexpédie sur le 22 de serveur
le plus logique dans tonn cas, ca serait de faire tunnel1=client
tunnel2=ta passerelle
serveur=le serveur que tu veux administrer.
concrètement, pour te connecter, tu lances putty avec comme adresse tunnel1 et port 1242, dans mon exemple...
Pour ce qui est du paramétrage du stunnel, sais pas... y a rien sur leur site ?
Marsh Posté le 31-12-2002 à 11:48:02
BigBen a écrit : bon, alors, j'essaie de résumer le principe de facon claire (j'ai dit que j'essayais, hein... ) |
ok je comprend un peu mieux, c'est interessant comme tout
Sinon pour le fichier de conf stunnel version windows je ne trouve rien
Si tu trouves je suis preneur
Marsh Posté le 31-12-2002 à 12:00:11
apres edition d'un fichier de conf sous linux, à priori, si y a pas d'options supplémentaires pour la version win, y aurais pas de paramaètres à lui mettre ds le fichier de conf (correspondent à des options coté serveur...
t'as essayé avec un fichier de conf vide ?
Marsh Posté le 31-12-2002 à 12:06:49
et sinon, t'as bien fait ca ?
1. Download libssl32.dll and libeay32.dll into \windows\system directory.
(risque d'être dur si t'as pas admin sur la machine... ptet que ca marche en les mettant ds un dossier quelconque qui est dans le PATH...
Marsh Posté le 31-12-2002 à 12:07:16
BigBen a écrit : apres edition d'un fichier de conf sous linux, à priori, si y a pas d'options supplémentaires pour la version win, y aurais pas de paramaètres à lui mettre ds le fichier de conf (correspondent à des options coté serveur... |
oui oui sans le fichier stunnel.conf tu as un message d'erreur.
J'avais donc créé un stunnel.conf vide et stunnel se lance bien.
Il y a juste un message apres qui est :
2002.12.31 11:44:28 LOG5[208:239]: stunnel 4.03 on x86-pc-mingw32-gnu WIN32 with OpenSSL 0.9.6g 9 Aug 2002
2002.12.31 11:44:28 LOG3[208:271]: SSL_accept: Peer suddenly disconnected
C'est la derniere phrase que je n'aime pas trop.
Enfin bref, bon je rentre a la maison et je met en route stunnel sur mon linux, et on verra jeudi ce que ca donne
Faut il activer certaines options particulieres dans le noyau ?
Marsh Posté le 31-12-2002 à 12:15:47
pour le log, sais pas trop, faudra essayer...
sinon, pas d'option particulière dans le noyau (enfin, bon, faut que le "networking" soit activé, quoi...
Sinon, faut juste installer openSSL avec si c'est pas déjà fait...
Marsh Posté le 31-12-2002 à 13:11:33
bon voila j'ai fait comme tu m'as dit, il ne me reste plus qu'a tester jeudi depuis le bureau
Y a un moyen de faire des test ?
en interne ?
Marsh Posté le 02-01-2003 à 16:01:42
euuuh, c'est à dire ? à quel niveau, quel message d'erreur ?
Marsh Posté le 03-01-2003 à 10:17:37
bah je n'arrive pas a me connecter avec putty :'(
C'est comme avant, je dois merder quelque part, c'est sur.
La conf de stunnel sous Win ? (y a rien dedans)
Conf de putty particuliere ?
Marsh Posté le 03-01-2003 à 12:43:16
bah putty, faut juste s'assurer de mettre la bonne adresse et le bon port... celui du tunnel, pas du serveur directement (localhost:1242, si tu as suivi mon exemple...) sinon, bah c'est qu'il y a une couille qq part... sans plus d'indications, va être dur à diagnostiquer...
Marsh Posté le 03-01-2003 à 13:27:35
BigBen a écrit : bah putty, faut juste s'assurer de mettre la bonne adresse et le bon port... celui du tunnel, pas du serveur directement (localhost:1242, si tu as suivi mon exemple...) sinon, bah c'est qu'il y a une couille qq part... sans plus d'indications, va être dur à diagnostiquer... |
stunnel -c -r adresse_de_la_machine_ou_aboutit_le_tunnel:443 -d 1242
ca je l'execute aussi sur ma passerelle ???
Marsh Posté le 03-01-2003 à 14:52:33
t'executes ca sur ton client winnt, puis sur le même client, tu lances putty avec comme paramètres : serveur localhost, port 1242
Marsh Posté le 03-01-2003 à 16:33:53
tiens pour la config de stunnel sous Win
Code :
|
J'ai mis ca mais je ênse que c'est incomplet
Code :
|
Marsh Posté le 11-02-2003 à 17:53:35
si t'y arrive pas avec la solution qu'il t'a été donné, essaye d'utilise http_tunnel
http://www.nocrew.org/software/httptunnel.html
http://linuxfr.org/tips/129.html
Marsh Posté le 12-02-2003 à 17:17:05
ok je vais essayer ca, enfin ca me tente pas trop telnet
je vais plutot voir ca avec SSH et putty
Marsh Posté le 14-02-2003 à 11:37:47
j'ai essayé la solution de Linusfr mais ca ne semble pas marcher.
Par contre j'ai modifié 23 pae 22 (je veux du SSH) et je suis sous du NT 4.0 et je n'ai pas réussi a dl les fichiers pour NT, donc j'ai pris les Win32.
Je vois bien mon script dans le gestionnaire des taches.
Y a t'il quelque chose a configurer (j'utilise putty aussi) que j'ai pu oublier ?
Une autre solution ?
Merci de m'aider
Ha aussi je forward les ports 8888 (avec iptables) en u^dp et tcp vers une autre box de mon réseau
Si vous aves des idées, je suis preneur
Marsh Posté le 18-02-2003 à 02:02:42
http://shellinabox.com/
tu installes l'applet java de pref sur un serveur web en ssl et apres, tu utilises un simple browser pour acceder a ton serveur. Pas de tunnel, pas de truc à lancer toi meme sur les machines, jsute l'applet java qui se gere elle meme plus un daemon qu'elle lance sous le user d'apache qd il le faut.
C sympathique comme soft en tout, chui fan depuis ce matin qu'on me l'a fait découvrir
Marsh Posté le 18-02-2003 à 11:47:54
Ha oui c'est ca me semble cool
j'ai commencé a l'installer mais il me faut java.
je dl la jdk1.1 sur le site de ibm ?
Marsh Posté le 18-02-2003 à 12:07:30
Lebibi a écrit : Ha oui c'est ca me semble cool |
le jdk1.1 c'est la prehistoire !! recupere le jre1.4.1_01 chez sun ce sera bcp mieux
Marsh Posté le 18-02-2003 à 12:28:25
une pitite kestion pour stunnel :
kan le client etablie une connexion avec le server, le server forward le trafic vers un port d une machine (k on a defini)
disons que c est le port 22 sur localhost.
Alors je me demandais : Est ce qu il faut ouvrir le port 22 a l exterieur, ou le port 443 suffit il ???
car si j ai pas besoin d ouvrir le port 22, ca serait vraiment sympa (pour les trous d uc avec nmap et compagnie )
voilou
Marsh Posté le 19-02-2003 à 13:00:12
Salut, j'ai pas compris ton pb sur le java, dsl.
J'ai pris le soft sur la page web, je l'ai decompressé dans un rep d'apache et hop, depuis le browser du taf ca marche. La java n'est requit que pour ton browser en tant que plugin
Marsh Posté le 30-12-2002 à 16:19:06
Salut,
J'ai vu ca avec la distribution ipcop. On pouvait acceder a un shell par l'intermediaire d'une page web. Je ne sais plus ce que c'etait derriere (cgi, php, java, javascript....)
Enfin bref, ca m'interesse de mettre ca en place, car depuis mon boulot je ne peu pas acceder a mes pc a la maison, a moins de passer par le port 80 (SSH par 80 marche pas because proxy au taf)
Donc voila si vous aves un lien svp
Je pense utiliser SSL + .htaccess, pour mettre ca en place histoire d'avoir un accès sécurisé
Merci d'avance
Message édité par lebibi le 11-02-2003 à 17:10:28